govuk_frontend_toolkit 7.6.0 → 9.0.1

Sign up to get free protection for your applications and to get access to all the features.
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