govuk_frontend_toolkit 7.6.0 → 9.0.1

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -0
  3. data/app/assets/.ruby-version +1 -1
  4. data/app/assets/CHANGELOG.md +37 -0
  5. data/app/assets/Gemfile +0 -1
  6. data/app/assets/Gruntfile.js +0 -3
  7. data/app/assets/README.md +7 -21
  8. data/app/assets/VERSION.txt +1 -1
  9. data/app/assets/docs/mixins.md +1 -1
  10. data/app/assets/javascripts/govuk/show-hide-content.js +1 -7
  11. data/app/assets/javascripts/stageprompt.js +7 -1
  12. data/app/assets/package-lock.json +2471 -0
  13. data/app/assets/spec/unit/show-hide-content.spec.js +57 -0
  14. data/app/assets/spec/unit/stageprompt.spec.js +170 -0
  15. data/app/assets/stylesheets/colours/_organisation.scss +1 -1
  16. data/govuk_frontend_toolkit.gemspec +0 -3
  17. data/publish.sh +1 -2
  18. metadata +5 -49
  19. data/Rakefile +0 -10
  20. data/app/assets/docs/analytics.md +0 -272
  21. data/app/assets/javascripts/govuk/analytics/analytics.js +0 -153
  22. data/app/assets/javascripts/govuk/analytics/download-link-tracker.js +0 -41
  23. data/app/assets/javascripts/govuk/analytics/error-tracking.js +0 -51
  24. data/app/assets/javascripts/govuk/analytics/external-link-tracker.js +0 -56
  25. data/app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js +0 -176
  26. data/app/assets/javascripts/govuk/analytics/govuk-tracker.js +0 -134
  27. data/app/assets/javascripts/govuk/analytics/mailto-link-tracker.js +0 -38
  28. data/app/assets/javascripts/govuk/analytics/print-intent.js +0 -39
  29. data/app/assets/spec/unit/analytics/analytics.spec.js +0 -403
  30. data/app/assets/spec/unit/analytics/download-link-tracker.spec.js +0 -72
  31. data/app/assets/spec/unit/analytics/error-tracking.spec.js +0 -65
  32. data/app/assets/spec/unit/analytics/external-link-tracker.spec.js +0 -109
  33. data/app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js +0 -187
  34. data/app/assets/spec/unit/analytics/govuk-tracker.spec.js +0 -171
  35. data/app/assets/spec/unit/analytics/mailto-link-tracker.spec.js +0 -62
@@ -32,6 +32,18 @@ describe('show-hide-content', function () {
32
32
  '<div id="show-hide-radios" class="panel js-hidden" />' +
33
33
  '</form>' +
34
34
 
35
+ '<form>' +
36
+ '<div class="multiple-choice" data-target="show-hide-radios--name-with-characters-to-escape">' +
37
+ '<input type="radio" name="test.single[option1=\'value1\'][option2=\'value2\']" value="yes">' +
38
+ '<label>Yes</label>' +
39
+ '</div>' +
40
+ '<div class="multiple-choice">' +
41
+ '<input type="radio" name="test.single[option1=\'value1\'][option2=\'value2\']" value="no">' +
42
+ '<label>No</label>' +
43
+ '</div>' +
44
+ '<div id="show-hide-radios--name-with-characters-to-escape" class="panel js-hidden" />' +
45
+ '</form>' +
46
+
35
47
  // Checkboxes (multiple values)
36
48
  '<form>' +
37
49
  '<div class="multiple-choice" data-target="show-hide-checkboxes">' +
@@ -58,6 +70,10 @@ describe('show-hide-content', function () {
58
70
  this.$radio1 = $radios.eq(0)
59
71
  this.$radio2 = $radios.eq(1)
60
72
 
73
+ // Two more radios, with name attributes that include periods
74
+ this.$radio3 = $radios.eq(2)
75
+ this.$radio4 = $radios.eq(3)
76
+
61
77
  // Three checkboxes
62
78
  this.$checkbox1 = $checkboxes.eq(0)
63
79
  this.$checkbox2 = $checkboxes.eq(1)
@@ -68,6 +84,7 @@ describe('show-hide-content', function () {
68
84
 
69
85
  // Show/Hide content
70
86
  this.$radioShowHide = $('#show-hide-radios')
87
+ this.$radioShowHide_nameWithCharactersToEscape = $('#show-hide-radios--name-with-characters-to-escape')
71
88
  this.$checkboxShowHide = $('#show-hide-checkboxes')
72
89
 
73
90
  // Add show/hide content support
@@ -79,25 +96,36 @@ describe('show-hide-content', function () {
79
96
  it('should add the aria attributes to inputs with show/hide content', function () {
80
97
  expect(this.$radio1.attr('aria-expanded')).toBe('false')
81
98
  expect(this.$radio1.attr('aria-controls')).toBe('show-hide-radios')
99
+
100
+ expect(this.$radio3.attr('aria-expanded')).toBe('false')
101
+ expect(this.$radio3.attr('aria-controls')).toBe('show-hide-radios--name-with-characters-to-escape')
82
102
  })
83
103
 
84
104
  it('should add the aria attributes to show/hide content', function () {
85
105
  expect(this.$radioShowHide.attr('aria-hidden')).toBe('true')
86
106
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(true)
107
+
108
+ expect(this.$radioShowHide_nameWithCharactersToEscape.attr('aria-hidden')).toBe('true')
109
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(true)
87
110
  })
88
111
 
89
112
  it('should hide the show/hide content visually', function () {
90
113
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(true)
114
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(true)
91
115
  })
92
116
 
93
117
  it('should do nothing if no radios are checked', function () {
94
118
  expect(this.$radio1.attr('aria-expanded')).toBe('false')
95
119
  expect(this.$radio2.attr('aria-expanded')).toBe(undefined)
120
+ expect(this.$radio3.attr('aria-expanded')).toBe('false')
121
+ expect(this.$radio4.attr('aria-expanded')).toBe(undefined)
96
122
  })
97
123
 
98
124
  it('should do nothing if no checkboxes are checked', function () {
99
125
  expect(this.$radio1.attr('aria-expanded')).toBe('false')
100
126
  expect(this.$radio2.attr('aria-expanded')).toBe(undefined)
127
+ expect(this.$radio3.attr('aria-expanded')).toBe('false')
128
+ expect(this.$radio4.attr('aria-expanded')).toBe(undefined)
101
129
  })
102
130
 
103
131
  describe('with non-default markup', function () {
@@ -107,12 +135,18 @@ describe('show-hide-content', function () {
107
135
 
108
136
  it('should do nothing if a radio without show/hide content is checked', function () {
109
137
  this.$radio2.prop('checked', true)
138
+ this.$radio4.prop('checked', true)
110
139
 
111
140
  // Defaults changed, initialise again
112
141
  this.showHideContent = new GOVUK.ShowHideContent().init()
113
142
  expect(this.$radio1.attr('aria-expanded')).toBe('false')
143
+ expect(this.$radio3.attr('aria-expanded')).toBe('false')
144
+
114
145
  expect(this.$radioShowHide.attr('aria-hidden')).toBe('true')
146
+ expect(this.$radioShowHide_nameWithCharactersToEscape.attr('aria-hidden')).toBe('true')
147
+
115
148
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(true)
149
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(true)
116
150
  })
117
151
 
118
152
  it('should do nothing if a checkbox without show/hide content is checked', function () {
@@ -138,12 +172,18 @@ describe('show-hide-content', function () {
138
172
 
139
173
  it('should make the show/hide content visible if its radio is checked', function () {
140
174
  this.$radio1.prop('checked', true)
175
+ this.$radio3.prop('checked', true)
141
176
 
142
177
  // Defaults changed, initialise again
143
178
  this.showHideContent = new GOVUK.ShowHideContent().init()
144
179
  expect(this.$radio1.attr('aria-expanded')).toBe('true')
180
+ expect(this.$radio3.attr('aria-expanded')).toBe('true')
181
+
145
182
  expect(this.$radioShowHide.attr('aria-hidden')).toBe('false')
183
+ expect(this.$radioShowHide_nameWithCharactersToEscape.attr('aria-hidden')).toBe('false')
184
+
146
185
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(false)
186
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(false)
147
187
  })
148
188
 
149
189
  it('should make the show/hide content visible if its checkbox is checked', function () {
@@ -160,14 +200,23 @@ describe('show-hide-content', function () {
160
200
  describe('and a show/hide radio receives a click', function () {
161
201
  it('should make the show/hide content visible', function () {
162
202
  this.$radio1.click()
203
+ this.$radio3.click()
163
204
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(false)
205
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(false)
164
206
  })
165
207
 
166
208
  it('should add the aria attributes to show/hide content', function () {
167
209
  this.$radio1.click()
210
+ this.$radio3.click()
211
+
168
212
  expect(this.$radio1.attr('aria-expanded')).toBe('true')
213
+ expect(this.$radio3.attr('aria-expanded')).toBe('true')
214
+
169
215
  expect(this.$radioShowHide.attr('aria-hidden')).toBe('false')
216
+ expect(this.$radioShowHide_nameWithCharactersToEscape.attr('aria-hidden')).toBe('false')
217
+
170
218
  expect(this.$radioShowHide.hasClass('js-hidden')).toEqual(false)
219
+ expect(this.$radioShowHide_nameWithCharactersToEscape.hasClass('js-hidden')).toEqual(false)
171
220
  })
172
221
  })
173
222
 
@@ -223,6 +272,10 @@ describe('show-hide-content', function () {
223
272
  namespace: 'ShowHideContent',
224
273
  selector: 'input[type="radio"][name="single"]'
225
274
  }))
275
+ expect(events && events.click).toContain(jasmine.objectContaining({
276
+ namespace: 'ShowHideContent',
277
+ selector: 'input[type="radio"][name="test.single[option1=\'value1\'][option2=\'value2\']"]'
278
+ }))
226
279
  expect(events && events.click).toContain(jasmine.objectContaining({
227
280
  namespace: 'ShowHideContent',
228
281
  selector: '[data-target] > input[type="checkbox"]'
@@ -241,6 +294,10 @@ describe('show-hide-content', function () {
241
294
  namespace: 'ShowHideContent',
242
295
  selector: 'input[type="radio"][name="single"]'
243
296
  }))
297
+ expect(events && events.click).not.toContain(jasmine.objectContaining({
298
+ namespace: 'ShowHideContent',
299
+ selector: 'input[type="radio"][name="test.single[option1=\'value1\'][option2=\'value2\']"]'
300
+ }))
244
301
  expect(events && events.click).not.toContain(jasmine.objectContaining({
245
302
  namespace: 'ShowHideContent',
246
303
  selector: '[data-target] > input[type="checkbox"]'
@@ -0,0 +1,170 @@
1
+ /* global describe it expect beforeEach afterEach jasmine */
2
+
3
+ var $ = window.jQuery
4
+
5
+ describe('stageprompt', function () {
6
+ 'use strict'
7
+ var GOVUK = window.GOVUK
8
+
9
+ var analyticsCallback
10
+
11
+ beforeEach(function () {
12
+ $('<div id="sandbox"></div>').appendTo('body')
13
+ })
14
+
15
+ afterEach(function () {
16
+ $('#sandbox').remove()
17
+ })
18
+
19
+ it('should exist in a namespace', function () {
20
+ expect(GOVUK.performance.stageprompt).not.toBeNull()
21
+ })
22
+
23
+ it('should not blow up if there are no data-journey tags', function () {
24
+ expect($('[data-journey]').length).toBe(0)
25
+ GOVUK.performance.stageprompt.setup(function () {})
26
+ })
27
+
28
+ describe('fire the analytics callback when a data-journey tag is found', function () {
29
+ beforeEach(function () {
30
+ analyticsCallback = jasmine.createSpy()
31
+ $('<div id="sandbox"></div>').appendTo('body')
32
+ })
33
+
34
+ afterEach(function () {
35
+ $('#sandbox').remove()
36
+ $('[data-journey]').removeAttr('data-journey')
37
+ })
38
+
39
+ it('should send an event if the page has a data-journey tag on the body', function () {
40
+ $('body').attr('data-journey', 'test-journey:someStage')
41
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
42
+
43
+ expect(analyticsCallback).toHaveBeenCalledWith('test-journey', 'someStage')
44
+ })
45
+
46
+ it('should send an event if the page has a data-journey tag on another tag', function () {
47
+ $('#sandbox').attr('data-journey', 'test-journey:nextStep')
48
+
49
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
50
+
51
+ expect(analyticsCallback).toHaveBeenCalledWith('test-journey', 'nextStep')
52
+ })
53
+
54
+ it('should send one event if the page has multiple elements with data-journey attribute', function () {
55
+ $('#sandbox').attr('data-journey', 'test-journey:stuff')
56
+ $('#sandbox').html('<p id="foo" data-journey="test-journey:moreStuff">something</p>')
57
+
58
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
59
+
60
+ expect(analyticsCallback.calls.count()).toBe(1)
61
+ })
62
+ })
63
+
64
+ describe('callback arguments', function () {
65
+ var analyticsCallback
66
+
67
+ beforeEach(function () {
68
+ analyticsCallback = jasmine.createSpy()
69
+ $('<div id="sandbox"></div>').appendTo('body')
70
+ })
71
+
72
+ afterEach(function () {
73
+ $('#sandbox').remove()
74
+ $('[data-journey]').removeAttr('data-journey')
75
+ })
76
+
77
+ it('should pass action parts as separate arguments to the callback', function () {
78
+ $('#sandbox').attr('data-journey', 'part-1:part-2')
79
+
80
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
81
+
82
+ expect(analyticsCallback).toHaveBeenCalledWith('part-1', 'part-2')
83
+ })
84
+
85
+ it('should pass a single-part action as one argument', function () {
86
+ $('#sandbox').attr('data-journey', 'single-part')
87
+
88
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
89
+
90
+ expect(analyticsCallback).toHaveBeenCalledWith('single-part')
91
+ })
92
+
93
+ it('should pass at most three arguments to the callback', function () {
94
+ $('#sandbox').attr('data-journey', 'part-1:part-2:part-3:additional-content')
95
+
96
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
97
+
98
+ expect(analyticsCallback).toHaveBeenCalledWith('part-1', 'part-2', 'part-3:additional-content')
99
+ })
100
+ })
101
+
102
+ describe('sending events for click actions', function () {
103
+ beforeEach(function () {
104
+ analyticsCallback = jasmine.createSpy()
105
+ $('<div id="sandbox"></div>').appendTo('body')
106
+ })
107
+
108
+ afterEach(function () {
109
+ $('#sandbox').remove()
110
+ })
111
+
112
+ it('should send an event when a help link is clicked', function () {
113
+ $('#sandbox').attr('data-journey-click', 'test-journey:stuff:help')
114
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
115
+
116
+ $('#sandbox').click()
117
+
118
+ expect(analyticsCallback).toHaveBeenCalledWith('test-journey', 'stuff', 'help')
119
+ })
120
+
121
+ it('should send events for multiple help elements on the same page', function () {
122
+ $('#sandbox').append('<a href="#" id="1" data-journey-click="a">foo</a>')
123
+ $('#sandbox').append('<a href="#" id="2" data-journey-click="b">bar</a>')
124
+
125
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
126
+ $('#1').click()
127
+ $('#2').click()
128
+
129
+ expect(analyticsCallback).toHaveBeenCalledWith('a')
130
+ expect(analyticsCallback).toHaveBeenCalledWith('b')
131
+ })
132
+
133
+ it('should send one event per click on tagged item', function () {
134
+ $('#sandbox').append('<a href="#" id="1" data-journey-click="a">foo</a>')
135
+ GOVUK.performance.stageprompt.setup(analyticsCallback)
136
+
137
+ $('#1').click()
138
+ $('#1').click()
139
+
140
+ expect(analyticsCallback.calls.count()).toBe(2)
141
+ })
142
+ })
143
+
144
+ describe('out-of-the-box Google Analytics setup', function () {
145
+ beforeEach(function () {
146
+ $('<div id="gaTest" data-journey="thisIsATest"></div>').appendTo('body')
147
+ })
148
+
149
+ afterEach(function () {
150
+ $('#gaTest').remove()
151
+ })
152
+
153
+ it('should get set up to send events to google analytics using ga() if it exists', function () {
154
+ window.ga = jasmine.createSpy('ga')
155
+
156
+ GOVUK.performance.stageprompt.setupForGoogleAnalytics()
157
+
158
+ expect(window.ga).toHaveBeenCalledWith('send', 'event', 'thisIsATest', undefined, undefined, { nonInteraction: true })
159
+ })
160
+
161
+ it('should get set up to send events to google analytics using gaq.push() if ga() does not exist', function () {
162
+ delete window.ga
163
+ window._gaq = {push: jasmine.createSpy('_gaq.push')}
164
+
165
+ GOVUK.performance.stageprompt.setupForGoogleAnalytics()
166
+
167
+ expect(window._gaq.push).toHaveBeenCalledWith(['_trackEvent', 'thisIsATest', undefined, undefined, undefined, true])
168
+ })
169
+ })
170
+ })
@@ -9,7 +9,7 @@ $cabinet-office-websafe: #347da4;
9
9
  $civil-service: #af292e;
10
10
  $department-for-business-innovation-skills: #003479;
11
11
  $department-for-business-innovation-skills-websafe: #347da4;
12
- $department-for-communities-and-local-government: #00857e;
12
+ $department-for-communities-and-local-government: #009999;
13
13
  $department-for-communities-and-local-government-websafe: #37836e;
14
14
  $department-for-culture-media-sport: #d40072;
15
15
  $department-for-culture-media-sport-websafe: #a03155;
@@ -13,9 +13,6 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.add_dependency "railties", ">= 3.1.0"
15
15
 
16
- s.add_dependency "sass", ">= 3.2.0"
17
- s.add_development_dependency "rake", "0.9.2.2"
18
-
19
16
  s.require_paths = ["lib", "app"]
20
17
  s.files = `git ls-files`.split($\)
21
18
 
data/publish.sh CHANGED
@@ -18,9 +18,8 @@ git submodule foreach git pull origin master
18
18
  # The version of the toolkit defined in the submodules master branch
19
19
  NEW_SUBMODULE_VERSION=`cat app/assets/VERSION.txt`
20
20
 
21
- # Install gem dependencies and run tests
21
+ # Check we can install gem dependencies
22
22
  bundle install
23
- bundle exec rake
24
23
 
25
24
  # If the submodule has a new version string
26
25
  if [ "$PINNED_SUBMODULE_VERSION" != "$NEW_SUBMODULE_VERSION" ]; then
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_frontend_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.6.0
4
+ version: 9.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-18 00:00:00.000000000 Z
11
+ date: 2021-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -24,34 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.0
27
- - !ruby/object:Gem::Dependency
28
- name: sass
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 3.2.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 3.2.0
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 0.9.2.2
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 0.9.2.2
55
27
  description:
56
28
  email:
57
29
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -69,7 +41,6 @@ files:
69
41
  - Gemfile
70
42
  - LICENCE
71
43
  - README.md
72
- - Rakefile
73
44
  - app/assets/.gitignore
74
45
  - app/assets/.ruby-version
75
46
  - app/assets/.travis.yml
@@ -85,7 +56,6 @@ files:
85
56
  - app/assets/README.md
86
57
  - app/assets/VERSION.txt
87
58
  - app/assets/create-release.sh
88
- - app/assets/docs/analytics.md
89
59
  - app/assets/docs/functions.md
90
60
  - app/assets/docs/javascript.md
91
61
  - app/assets/docs/mixins.md
@@ -217,14 +187,6 @@ files:
217
187
  - app/assets/images/player-icon-volume.png
218
188
  - app/assets/images/separator-2x.png
219
189
  - app/assets/images/separator.png
220
- - app/assets/javascripts/govuk/analytics/analytics.js
221
- - app/assets/javascripts/govuk/analytics/download-link-tracker.js
222
- - app/assets/javascripts/govuk/analytics/error-tracking.js
223
- - app/assets/javascripts/govuk/analytics/external-link-tracker.js
224
- - app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js
225
- - app/assets/javascripts/govuk/analytics/govuk-tracker.js
226
- - app/assets/javascripts/govuk/analytics/mailto-link-tracker.js
227
- - app/assets/javascripts/govuk/analytics/print-intent.js
228
190
  - app/assets/javascripts/govuk/details.polyfill.js
229
191
  - app/assets/javascripts/govuk/modules.js
230
192
  - app/assets/javascripts/govuk/modules/auto-track-event.js
@@ -238,6 +200,7 @@ files:
238
200
  - app/assets/javascripts/stageprompt.js
239
201
  - app/assets/javascripts/vendor/jquery/jquery.player.min.js
240
202
  - app/assets/javascripts/vendor/polyfills/bind.js
203
+ - app/assets/package-lock.json
241
204
  - app/assets/package.json
242
205
  - app/assets/spec/manifest.js
243
206
  - app/assets/spec/stylesheets/_colour_contrast_spec.scss
@@ -245,13 +208,6 @@ files:
245
208
  - app/assets/spec/support/console-runner.js
246
209
  - app/assets/spec/support/load.js
247
210
  - app/assets/spec/support/run_jasmine_test.js
248
- - app/assets/spec/unit/analytics/analytics.spec.js
249
- - app/assets/spec/unit/analytics/download-link-tracker.spec.js
250
- - app/assets/spec/unit/analytics/error-tracking.spec.js
251
- - app/assets/spec/unit/analytics/external-link-tracker.spec.js
252
- - app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js
253
- - app/assets/spec/unit/analytics/govuk-tracker.spec.js
254
- - app/assets/spec/unit/analytics/mailto-link-tracker.spec.js
255
211
  - app/assets/spec/unit/details.polyfill.spec.js
256
212
  - app/assets/spec/unit/modules.spec.js
257
213
  - app/assets/spec/unit/modules/auto-track-event.spec.js
@@ -259,6 +215,7 @@ files:
259
215
  - app/assets/spec/unit/selection-button.spec.js
260
216
  - app/assets/spec/unit/shim-links-with-button-role.spec.js
261
217
  - app/assets/spec/unit/show-hide-content.spec.js
218
+ - app/assets/spec/unit/stageprompt.spec.js
262
219
  - app/assets/spec/unit/stick-at-top-when-scrolling.spec.js
263
220
  - app/assets/stylesheets/.gitkeep
264
221
  - app/assets/stylesheets/_colours.scss
@@ -304,8 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
304
261
  - !ruby/object:Gem::Version
305
262
  version: '0'
306
263
  requirements: []
307
- rubyforge_project:
308
- rubygems_version: 2.7.7
264
+ rubygems_version: 3.0.8
309
265
  signing_key:
310
266
  specification_version: 4
311
267
  summary: Tools for building frontend applications