govuk_publishing_components 21.60.0 → 21.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) 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/ie.js +2 -0
  4. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +1 -1
  5. data/app/assets/javascripts/govuk_publishing_components/vendor/html5shiv-printshiv.js +4 -0
  6. data/app/assets/javascripts/govuk_publishing_components/vendor/json2.js +487 -0
  7. data/app/assets/stylesheets/component_guide/application.scss +4 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +8 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-public.scss +4 -0
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +87 -1
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +1 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +46 -0
  14. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +4 -2
  15. data/app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss +8 -0
  16. data/app/models/govuk_publishing_components/audit_applications.rb +35 -23
  17. data/app/models/govuk_publishing_components/audit_comparer.rb +13 -0
  18. data/app/models/govuk_publishing_components/audit_components.rb +1 -1
  19. data/app/models/govuk_publishing_components/component_example.rb +4 -0
  20. data/app/views/govuk_publishing_components/audit/show.html.erb +32 -3
  21. data/app/views/govuk_publishing_components/component_guide/component_doc/_component.html.erb +1 -0
  22. data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -1
  23. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +32 -21
  24. data/app/views/govuk_publishing_components/components/_layout_for_public.html.erb +76 -0
  25. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +39 -51
  26. data/app/views/govuk_publishing_components/components/_search.html.erb +10 -5
  27. data/app/views/govuk_publishing_components/components/_share_links.html.erb +9 -9
  28. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +45 -0
  29. data/app/views/govuk_publishing_components/components/docs/image_card.yml +13 -1
  30. data/app/views/govuk_publishing_components/components/docs/layout_footer.yml +17 -0
  31. data/app/views/govuk_publishing_components/components/docs/layout_for_admin.yml +5 -1
  32. data/app/views/govuk_publishing_components/components/docs/layout_for_public.yml +29 -0
  33. data/app/views/govuk_publishing_components/components/docs/layout_header.yml +34 -0
  34. data/app/views/govuk_publishing_components/components/docs/search.yml +6 -0
  35. data/app/views/govuk_publishing_components/components/layout_header/_header_logo.html.erb +23 -0
  36. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +17 -0
  37. data/app/views/govuk_publishing_components/components/layout_header/_search.html.erb +9 -0
  38. data/config/initializers/assets.rb +8 -0
  39. data/lib/govuk_publishing_components.rb +1 -0
  40. data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb +1 -0
  41. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +3 -2
  42. data/lib/govuk_publishing_components/presenters/public_layout_helper.rb +380 -0
  43. data/lib/govuk_publishing_components/version.rb +1 -1
  44. data/node_modules/govuk-frontend/govuk/all.js +160 -57
  45. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -4
  46. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +16 -8
  47. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +6 -0
  48. data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +1 -0
  49. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -5
  50. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +68 -21
  51. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +1 -1
  52. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -27
  53. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -3
  54. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +1 -1
  55. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  56. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +2 -2
  57. data/node_modules/govuk-frontend/govuk/components/hint/template.njk +2 -2
  58. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -3
  59. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +6 -0
  60. data/node_modules/govuk-frontend/govuk/components/input/template.njk +1 -0
  61. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +76 -28
  62. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -3
  63. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +1 -0
  64. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -3
  65. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +6 -0
  66. data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +1 -0
  67. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +4 -2
  68. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +1 -1
  69. data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +2 -2
  70. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +33 -33
  71. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +4 -1
  72. data/node_modules/govuk-frontend/package.json +1 -1
  73. metadata +12 -2
@@ -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>
@@ -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>
@@ -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 %>
@@ -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: |
@@ -9,6 +9,7 @@ accessibility_criteria: |
9
9
 
10
10
  - include alt text for images when present
11
11
  - not have duplicate links for the image and the text
12
+ - if the contents of the component are in a different language than the rest of the document, include an appropriate `lang` attribute to correctly identify the language used in the component
12
13
  shared_accessibility_criteria:
13
14
  - link
14
15
  examples:
@@ -191,7 +192,7 @@ examples:
191
192
  description: Can be used for links to people pages to indicate payment type
192
193
  data:
193
194
  href: "/government/people/"
194
- image_src: "http://placekitten.com/215/140"
195
+ image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/62756/s300_courts-of-justice.JPG"
195
196
  image_alt: "some meaningful alt text please"
196
197
  context:
197
198
  text: "The Rt Hon"
@@ -204,3 +205,14 @@ examples:
204
205
  }
205
206
  ]
206
207
  extra_links_no_indent: true
208
+ with_lang:
209
+ description: |
210
+ Pass through an appropriate `lang` to set a HTML lang attribute for the component.
211
+
212
+ The `lang` attribute **must** be set to a [valid BCP47 string](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang#Language_tag_syntax). A valid code can be the two or three letter language code - for example, English is `en` or `eng`, Korean is `ko` or `kor` - but if in doubt please check.
213
+ data:
214
+ href: "/not-a-page"
215
+ image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/62756/s300_courts-of-justice.JPG"
216
+ image_alt: "some meaningful alt text please"
217
+ heading_text: Yr hyn rydym ni'n ei wneud
218
+ lang: cy
@@ -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: