govuk_publishing_components 27.8.1 → 27.8.2
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/components/intervention.js +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_intervention.scss +13 -10
- data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +17 -10
- data/app/views/govuk_publishing_components/components/_intervention.html.erb +39 -26
- data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +4 -24
- data/app/views/govuk_publishing_components/components/_search.html.erb +1 -0
- data/app/views/govuk_publishing_components/components/docs/intervention.yml +45 -6
- data/app/views/govuk_publishing_components/components/docs/title.yml +0 -11
- data/app/views/govuk_publishing_components/components/search/_search_icon.html.erb +28 -0
- data/config/locales/en.yml +0 -5
- data/lib/govuk_publishing_components/presenters/intervention_helper.rb +19 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/lib/govuk_publishing_components.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3763a55d9466b65e17b6d352fcbc6a646aebe57cb22dfca0918a8732244af04b
|
|
4
|
+
data.tar.gz: 1cd543455e2a9881bb70efff661206cb6869ff7608f782429d767c8cf6287893
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0e50da185727b17d9440a957019e0231de4947251bfe3a06273f19e4a0d4fa60bc1b67c9a937877c6dd09f3ac494bc80fb287c767d6541bb4399b1ef194828e7
|
|
7
|
+
data.tar.gz: 59f7ef7156937d87460beebe6c798c9307ef7472a84fa44eaaa9795e7d41adfb6510833ee16af03b54911c13a834b2514a0b026ad2a3fa2e62aa08dd0ef9be2e
|
|
@@ -8,6 +8,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
8
8
|
|
|
9
9
|
Intervention.prototype.init = function () {
|
|
10
10
|
if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
|
|
11
|
+
// Send a tracking event when this component is shown
|
|
11
12
|
window.GOVUK.analytics.trackEvent('interventionBanner', 'interventionShown')
|
|
12
13
|
}
|
|
13
14
|
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
.gem-c-intervention {
|
|
2
2
|
@include govuk-text-colour;
|
|
3
|
-
@include govuk-responsive-padding(
|
|
4
|
-
@include govuk-responsive-padding(6, "right");
|
|
5
|
-
@include govuk-responsive-padding(4, "top");
|
|
6
|
-
@include govuk-responsive-padding(4, "bottom");
|
|
3
|
+
@include govuk-responsive-padding(3);
|
|
7
4
|
@include govuk-responsive-margin(6, "bottom");
|
|
8
5
|
background-color: govuk-colour("light-grey", $legacy: "grey-4");
|
|
9
|
-
|
|
10
|
-
.gem-c-intervention__title {
|
|
11
|
-
@include govuk-responsive-margin(0);
|
|
12
|
-
@include govuk-responsive-padding(4, "bottom");
|
|
13
|
-
}
|
|
6
|
+
border-left: 10px solid $govuk-success-colour;
|
|
14
7
|
|
|
15
8
|
.govuk-body:last-of-type {
|
|
16
|
-
|
|
9
|
+
margin-bottom: 0;
|
|
17
10
|
}
|
|
18
11
|
}
|
|
12
|
+
|
|
13
|
+
.gem-c-intervention__textwrapper {
|
|
14
|
+
display: block;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.gem-c-intervention__dismiss-icon {
|
|
18
|
+
width: 1em;
|
|
19
|
+
height: 1em;
|
|
20
|
+
margin-bottom: -2px;
|
|
21
|
+
}
|
|
@@ -85,6 +85,19 @@ $large-input-size: 50px;
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
@mixin icon-positioning($container-size) {
|
|
89
|
+
$icon-dimension: 20px;
|
|
90
|
+
$icon-position: ($container-size - $icon-dimension) / 2;
|
|
91
|
+
|
|
92
|
+
display: block;
|
|
93
|
+
pointer-events: none;
|
|
94
|
+
position: absolute;
|
|
95
|
+
height: $icon-dimension;
|
|
96
|
+
width: $icon-dimension;
|
|
97
|
+
top: $icon-position;
|
|
98
|
+
left: $icon-position;
|
|
99
|
+
}
|
|
100
|
+
|
|
88
101
|
.gem-c-search__submit {
|
|
89
102
|
border: 0;
|
|
90
103
|
cursor: pointer;
|
|
@@ -93,15 +106,11 @@ $large-input-size: 50px;
|
|
|
93
106
|
padding: 0;
|
|
94
107
|
width: $input-size;
|
|
95
108
|
height: $input-size;
|
|
96
|
-
background-image: image-url("govuk_publishing_components/search-button.png");
|
|
97
|
-
background-repeat: no-repeat;
|
|
98
|
-
background-position: 2px 50%;
|
|
99
109
|
text-indent: -5000px;
|
|
100
110
|
overflow: hidden;
|
|
101
111
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
background-position: 115% 50%;
|
|
112
|
+
.gem-c-search__icon {
|
|
113
|
+
@include icon-positioning($input-size);
|
|
105
114
|
}
|
|
106
115
|
|
|
107
116
|
&:focus {
|
|
@@ -222,11 +231,9 @@ $large-input-size: 50px;
|
|
|
222
231
|
.gem-c-search__submit {
|
|
223
232
|
width: $large-input-size;
|
|
224
233
|
height: $large-input-size;
|
|
225
|
-
background-position: 8px 50%;
|
|
226
234
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
background-position: 160% 50%;
|
|
235
|
+
.gem-c-search__icon {
|
|
236
|
+
@include icon-positioning($large-input-size);
|
|
230
237
|
}
|
|
231
238
|
}
|
|
232
239
|
}
|
|
@@ -1,33 +1,46 @@
|
|
|
1
1
|
<%
|
|
2
|
+
dismiss_text ||= false
|
|
3
|
+
suggestion_link_text ||= false
|
|
4
|
+
suggestion_link_url ||= false
|
|
5
|
+
suggestion_text ||= nil
|
|
6
|
+
|
|
2
7
|
data_attributes ||= {}
|
|
3
8
|
data_attributes[:module] = 'intervention'
|
|
4
|
-
|
|
9
|
+
suggestion_data_attributes ||= {}
|
|
10
|
+
dismiss_data_attributes ||= {}
|
|
11
|
+
|
|
12
|
+
aria_attributes ||= {}
|
|
13
|
+
aria_attributes[:label] = 'Intervention'
|
|
5
14
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
local_assigns[:query_string] ||= request.query_string
|
|
16
|
+
|
|
17
|
+
intervention_helper = GovukPublishingComponents::Presenters::InterventionHelper.new(local_assigns)
|
|
18
|
+
dismiss_href = intervention_helper.dismiss_link
|
|
19
|
+
%>
|
|
20
|
+
<% if suggestion_text or (suggestion_link_text and suggestion_link_text) %>
|
|
21
|
+
<%= tag.section class: "gem-c-intervention", role: "region", aria: aria_attributes, data: data_attributes do %>
|
|
22
|
+
<p class="govuk-body">
|
|
23
|
+
<%= tag.span suggestion_text, class: "gem-c-intervention__textwrapper" if suggestion_text %>
|
|
24
|
+
<% if suggestion_link_text and suggestion_link_url %>
|
|
25
|
+
<%= tag.a suggestion_link_text, class: "govuk-link gem-c-intervention__suggestion-link", href: suggestion_link_url, data: suggestion_data_attributes %>
|
|
17
26
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</p>
|
|
27
|
+
<% end %>
|
|
28
|
+
</p>
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
<% if dismiss_text %>
|
|
31
|
+
<p class="govuk-body">
|
|
32
|
+
<%= tag.a class: "govuk-link gem-c-intervention__dismiss", href: dismiss_href, data: dismiss_data_attributes do %>
|
|
33
|
+
<svg class="gem-c-intervention__dismiss-icon"
|
|
34
|
+
width="19" height="19" viewBox="0 0 19 19"
|
|
35
|
+
aria-hidden="true"
|
|
36
|
+
fill="none" stroke="currentColor">
|
|
37
|
+
<path d="M0.499997 9.5C0.499997 4.52944 4.52944 0.499999 9.5 0.499999C14.4706 0.5 18.5 4.52944 18.5 9.5C18.5 14.4706 14.4706 18.5 9.5 18.5C4.52943 18.5 0.499997 14.4706 0.499997 9.5Z"/>
|
|
38
|
+
<path d="M13.3477 5.4209L9.67383 9.09473L6 5.4209"/>
|
|
39
|
+
<path d="M6 13.4209L9.67383 9.74707L13.3477 13.4209"/>
|
|
40
|
+
</svg>
|
|
41
|
+
<%= dismiss_text %>
|
|
42
|
+
<% end %>
|
|
43
|
+
</p>
|
|
44
|
+
<% end %>
|
|
45
|
+
<% end %>
|
|
33
46
|
<% end %>
|
data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb
CHANGED
|
@@ -213,30 +213,10 @@
|
|
|
213
213
|
<span class="govuk-visually-hidden">
|
|
214
214
|
<%= search_text %>
|
|
215
215
|
</span>
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
viewBox="0 0 27 27"
|
|
221
|
-
fill="none"
|
|
222
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
223
|
-
aria-hidden="true"
|
|
224
|
-
focusable="false"
|
|
225
|
-
>
|
|
226
|
-
<circle
|
|
227
|
-
cx="10.0161"
|
|
228
|
-
cy="10.0161"
|
|
229
|
-
r="8.51613"
|
|
230
|
-
stroke="currentColor"
|
|
231
|
-
stroke-width="3" />
|
|
232
|
-
<line
|
|
233
|
-
x1="15.8668"
|
|
234
|
-
y1="16.3587"
|
|
235
|
-
x2="25.4475"
|
|
236
|
-
y2="25.9393"
|
|
237
|
-
stroke="currentColor"
|
|
238
|
-
stroke-width="3" />
|
|
239
|
-
</svg>
|
|
216
|
+
<%=
|
|
217
|
+
render "govuk_publishing_components/components/search/search_icon",
|
|
218
|
+
classes: %W[gem-c-layout-super-navigation-header__search-toggle-button-link-icon]
|
|
219
|
+
%>
|
|
240
220
|
</button>
|
|
241
221
|
|
|
242
222
|
<div id="super-search-menu" class="gem-c-layout-super-navigation-header__search-items">
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
<div class="gem-c-search__item gem-c-search__submit-wrapper">
|
|
54
54
|
<%= tag.button class: "gem-c-search__submit", type: "submit", data: data_attributes do %>
|
|
55
55
|
<%= button_text %>
|
|
56
|
+
<%= render "govuk_publishing_components/components/search/search_icon" %>
|
|
56
57
|
<% end %>
|
|
57
58
|
</div>
|
|
58
59
|
</div>
|
|
@@ -6,19 +6,58 @@ body: |
|
|
|
6
6
|
that would be useful to them. This component would be used to add this personalised content and would
|
|
7
7
|
indicate to the user that this is not normally part of the page, but has been added for them specifically.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
Since many pages will use this component with the same text, we hard-code it here for now.
|
|
9
|
+
The dismiss link points to the current URL with the "hide-intervention" query string parameter set to "true". The backend should check for this string in order to render the same page without the intervention.
|
|
11
10
|
|
|
12
|
-
The dismiss link will reload the page but the `hide-intervention` query string parameter will cause the
|
|
13
|
-
backed not to show the intervention again. Some progressive enhancement will be added in later to avoid
|
|
14
|
-
reloading the page if JavaScript is available.
|
|
15
11
|
accessibility_criteria: |
|
|
16
12
|
The intervention component must:
|
|
17
13
|
|
|
18
14
|
- have a border colour contrast ratio of more than 4.5:1 with its background to be visually distinct
|
|
15
|
+
- prevent screen readers from announcing the dismiss link icon
|
|
16
|
+
|
|
19
17
|
|
|
20
|
-
- always render headings with associated description content, so there are no isolated heading elements inside the component
|
|
21
18
|
shared_accessibility_criteria:
|
|
22
19
|
- link
|
|
23
20
|
examples:
|
|
24
21
|
default:
|
|
22
|
+
data:
|
|
23
|
+
suggestion_text: "You should renew your permit every 6 months."
|
|
24
|
+
|
|
25
|
+
with_suggestion_link:
|
|
26
|
+
data:
|
|
27
|
+
suggestion_text: "Based on your browsing you might be interested in"
|
|
28
|
+
suggestion_link_text: "Travel abroad: step by step"
|
|
29
|
+
suggestion_link_url: "/travel-abroad"
|
|
30
|
+
|
|
31
|
+
with_dismiss_link:
|
|
32
|
+
data:
|
|
33
|
+
suggestion_text: "You should renew your permit every 6 months."
|
|
34
|
+
dismiss_text: "Hide this suggestion"
|
|
35
|
+
|
|
36
|
+
with_suggestion_link_only:
|
|
37
|
+
data:
|
|
38
|
+
suggestion_link_text: "You can now apply for a permit online."
|
|
39
|
+
suggestion_link_url: "/permit"
|
|
40
|
+
|
|
41
|
+
with_data_attributes:
|
|
42
|
+
description: |
|
|
43
|
+
This example shows the use of `suggestion_data_attributes` and
|
|
44
|
+
`dismiss_data_attributes` for click tracking.
|
|
45
|
+
data:
|
|
46
|
+
suggestion_text: "Based on your browsing you might be interested in"
|
|
47
|
+
suggestion_link_text: "Travel abroad: step by step"
|
|
48
|
+
suggestion_link_url: "/travel-abroad"
|
|
49
|
+
suggestion_data_attributes:
|
|
50
|
+
module: "gem-track-click"
|
|
51
|
+
track-category: "interventionBanner"
|
|
52
|
+
track-action: "interventionClicked"
|
|
53
|
+
track-dimension: "Travel abroad: step by step"
|
|
54
|
+
track-dimension-index: "29"
|
|
55
|
+
track-label: "clicked suggestion"
|
|
56
|
+
dismiss_text: "Hide this suggestion"
|
|
57
|
+
dismiss_data_attributes:
|
|
58
|
+
module: "gem-track-click"
|
|
59
|
+
track-category: "interventionBanner"
|
|
60
|
+
track-action: "interventionDismissed"
|
|
61
|
+
track-dimension: "Hide this suggestion"
|
|
62
|
+
track-dimension-index: "29"
|
|
63
|
+
track-label: "hid the intervention"
|
|
@@ -62,17 +62,6 @@ examples:
|
|
|
62
62
|
margin_bottom: 0
|
|
63
63
|
context:
|
|
64
64
|
dark_background: true
|
|
65
|
-
in_html_publication_with_context_link:
|
|
66
|
-
description: Page titles are used in HTML Publications ([see example](https://www.gov.uk/government/publications/fees-for-civil-and-family-courts/court-fees-for-the-high-court-county-court-and-family-court))
|
|
67
|
-
data:
|
|
68
|
-
context:
|
|
69
|
-
text: Publication
|
|
70
|
-
href: '/link'
|
|
71
|
-
title: HTML publication page title
|
|
72
|
-
inverse: true
|
|
73
|
-
margin_bottom: 0
|
|
74
|
-
context:
|
|
75
|
-
dark_background: true
|
|
76
65
|
using_design_system_template:
|
|
77
66
|
description: |
|
|
78
67
|
This option allows the removal of top margin from the component so that it works within a [Design System page template](https://design-system.service.gov.uk/styles/page-template/default/index.html), where spacing above the title is already provided by padding on the wrapping div.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<%
|
|
2
|
+
classes ||= %w[gem-c-search__icon]
|
|
3
|
+
%>
|
|
4
|
+
|
|
5
|
+
<svg
|
|
6
|
+
class="<%= classes.join(" ") %>"
|
|
7
|
+
width="27"
|
|
8
|
+
height="27"
|
|
9
|
+
viewBox="0 0 27 27"
|
|
10
|
+
fill="none"
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
aria-hidden="true"
|
|
13
|
+
focusable="false"
|
|
14
|
+
>
|
|
15
|
+
<circle
|
|
16
|
+
cx="10.0161"
|
|
17
|
+
cy="10.0161"
|
|
18
|
+
r="8.51613"
|
|
19
|
+
stroke="currentColor"
|
|
20
|
+
stroke-width="3" />
|
|
21
|
+
<line
|
|
22
|
+
x1="15.8668"
|
|
23
|
+
y1="16.3587"
|
|
24
|
+
x2="25.4475"
|
|
25
|
+
y2="25.9393"
|
|
26
|
+
stroke="currentColor"
|
|
27
|
+
stroke-width="3" />
|
|
28
|
+
</svg>
|
data/config/locales/en.yml
CHANGED
|
@@ -86,11 +86,6 @@ en:
|
|
|
86
86
|
news_and_communications: News and communications
|
|
87
87
|
statistics: Statistics
|
|
88
88
|
worldwide: Worldwide
|
|
89
|
-
intervention:
|
|
90
|
-
title: Check the next steps for your limited company
|
|
91
|
-
description: You might be interested in this because you’ve been browsing guidance relevant to starting a limited company.
|
|
92
|
-
dismiss_link_text: Hide this suggestion
|
|
93
|
-
dismiss_post_link: if it’s not relevant to you
|
|
94
89
|
layout_footer:
|
|
95
90
|
copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© Crown copyright</a>
|
|
96
91
|
licence_html: All content is available under the <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open Government Licence v3.0</a>, except where otherwise stated
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module GovukPublishingComponents
|
|
2
|
+
module Presenters
|
|
3
|
+
class InterventionHelper
|
|
4
|
+
attr_reader :query_string
|
|
5
|
+
|
|
6
|
+
def initialize(local_assigns)
|
|
7
|
+
@query_string = local_assigns[:query_string]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def dismiss_link
|
|
11
|
+
if @query_string.present?
|
|
12
|
+
"#{@query_string}&hide-intervention=true"
|
|
13
|
+
else
|
|
14
|
+
"?hide-intervention=true"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -30,6 +30,7 @@ require "govuk_publishing_components/presenters/schema_org"
|
|
|
30
30
|
require "govuk_publishing_components/presenters/heading_helper"
|
|
31
31
|
require "govuk_publishing_components/presenters/contents_list_helper"
|
|
32
32
|
require "govuk_publishing_components/presenters/image_card_helper"
|
|
33
|
+
require "govuk_publishing_components/presenters/intervention_helper"
|
|
33
34
|
require "govuk_publishing_components/presenters/organisation_logo_helper"
|
|
34
35
|
require "govuk_publishing_components/presenters/highlight_boxes_helper"
|
|
35
36
|
require "govuk_publishing_components/presenters/taxonomy_list_helper"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_publishing_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 27.8.
|
|
4
|
+
version: 27.8.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GOV.UK Dev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-10-
|
|
11
|
+
date: 2021-10-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -844,6 +844,7 @@ files:
|
|
|
844
844
|
- app/views/govuk_publishing_components/components/layout_header/_search.html.erb
|
|
845
845
|
- app/views/govuk_publishing_components/components/metadata/_sentence.html.erb
|
|
846
846
|
- app/views/govuk_publishing_components/components/related_navigation/_section.html.erb
|
|
847
|
+
- app/views/govuk_publishing_components/components/search/_search_icon.html.erb
|
|
847
848
|
- app/views/layouts/govuk_publishing_components/application.html.erb
|
|
848
849
|
- config/i18n-tasks.yml
|
|
849
850
|
- config/initializers/assets.rb
|
|
@@ -943,6 +944,7 @@ files:
|
|
|
943
944
|
- lib/govuk_publishing_components/presenters/heading_helper.rb
|
|
944
945
|
- lib/govuk_publishing_components/presenters/highlight_boxes_helper.rb
|
|
945
946
|
- lib/govuk_publishing_components/presenters/image_card_helper.rb
|
|
947
|
+
- lib/govuk_publishing_components/presenters/intervention_helper.rb
|
|
946
948
|
- lib/govuk_publishing_components/presenters/machine_readable/article_schema.rb
|
|
947
949
|
- lib/govuk_publishing_components/presenters/machine_readable/creative_work_schema.rb
|
|
948
950
|
- lib/govuk_publishing_components/presenters/machine_readable/dataset_schema.rb
|