dxw_govuk_frontend_rails 3.0.0 → 3.1.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.
- checksums.yaml +4 -4
- data/.github/workflows/gempush.yml +33 -0
- data/Gemfile.lock +2 -2
- data/README.md +11 -1
- data/lib/dxw_govuk_frontend_rails/version.rb +1 -1
- data/package-lock.json +3 -3
- data/package.json +1 -1
- data/vendor/assets/javascripts/govuk_frontend_rails.js +56 -63
- data/vendor/assets/stylesheets/components/footer/_footer.scss +4 -2
- metadata +3 -4
- data/.circleci/config.yml +0 -33
- data/.circleci/setup-rubygems.sh +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbcd2ddb17bdc8d387895ac9a4ddeb7dcd25239b7c1090ce8b58d47af168c07a
|
4
|
+
data.tar.gz: c2993f4da0ed20359c196a5149d208241acce40338ffffedc229d729d5b97cdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fb847feb82101b5a189176d65ce95cf8bfaed0cfb6db18fa161080b76c9003a1e7ae2471014cacb591522fd0a9e9a6b2c1ae0cc30ff052035370204d0bc9f46
|
7
|
+
data.tar.gz: 4f96f18d8e39a95bb7b2a187d944eb3b33527f3d0f7a18fdde0d2f74399c9f920af932fe7ba9696ba9abea08cb4f1b05d684dbe80a13a8d9ba32ed8f364f8c62
|
@@ -0,0 +1,33 @@
|
|
1
|
+
name: Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- '*'
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
name: Build + Publish
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@master
|
15
|
+
- name: Set up Ruby 2.6
|
16
|
+
uses: actions/setup-ruby@v1
|
17
|
+
with:
|
18
|
+
version: 2.6.x
|
19
|
+
|
20
|
+
- name: Compile sass
|
21
|
+
run: |
|
22
|
+
npx node-sass ./vendor/assets/stylesheets/govuk-frontend-rails.scss /tmp/govuk-frontend-rails.css
|
23
|
+
|
24
|
+
- name: Publish to RubyGems
|
25
|
+
run: |
|
26
|
+
mkdir -p $HOME/.gem
|
27
|
+
touch $HOME/.gem/credentials
|
28
|
+
chmod 0600 $HOME/.gem/credentials
|
29
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
30
|
+
gem build *.gemspec
|
31
|
+
gem push *.gem
|
32
|
+
env:
|
33
|
+
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
# GOVUK Frontend for Rails
|
2
2
|
|
3
|
+
Adds the GOVUK Frontend for Rails using the asset pipeline.
|
4
|
+
|
3
5
|
https://github.com/alphagov/govuk-frontend
|
4
6
|
|
7
|
+
## Breaking Changes in v3.0.0
|
8
|
+
|
9
|
+
This release of the GOVUK Frontend has breaking changes! Do not update to this version until you have read and understood:
|
10
|
+
|
11
|
+
You will not be required to updated any file paths with govuk as we take care of that for you, all others changes will need to be managed:
|
12
|
+
|
13
|
+
https://github.com/alphagov/govuk-frontend/releases/tag/v3.0.0
|
14
|
+
|
5
15
|
## Limitations
|
6
16
|
|
7
17
|
This gem does not include the ie8 version of GOVUK Frontend, as the service standard no longer requires it:
|
@@ -75,4 +85,4 @@ When a new version of the GOVUK Frontend is released:
|
|
75
85
|
- commit the changes
|
76
86
|
- tag with the same release number as GOVUK Frontend
|
77
87
|
- push the changes
|
78
|
-
-
|
88
|
+
- Github acitons will build the gem and push to Rubygems
|
data/package-lock.json
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
"requires": true,
|
6
6
|
"dependencies": {
|
7
7
|
"govuk-frontend": {
|
8
|
-
"version": "3.
|
9
|
-
"resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-3.
|
10
|
-
"integrity": "sha512-
|
8
|
+
"version": "3.1.0",
|
9
|
+
"resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-3.1.0.tgz",
|
10
|
+
"integrity": "sha512-ozyG6ulmawzg3rsf9Efxcgj81mk4yzea3tfl0hgmXWILGC0/uEGj6A+g9pJ2ETgk78rgNlRLXDv0WvlaHd/LnA=="
|
11
11
|
}
|
12
12
|
}
|
13
13
|
}
|
data/package.json
CHANGED
@@ -1361,58 +1361,28 @@ Button.prototype.init = function () {
|
|
1361
1361
|
var KEY_ENTER = 13;
|
1362
1362
|
var KEY_SPACE$1 = 32;
|
1363
1363
|
|
1364
|
-
// Create a flag to know if the browser supports navtive details
|
1365
|
-
var NATIVE_DETAILS = typeof document.createElement('details').open === 'boolean';
|
1366
|
-
|
1367
1364
|
function Details ($module) {
|
1368
1365
|
this.$module = $module;
|
1369
1366
|
}
|
1370
1367
|
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1375
|
-
*/
|
1376
|
-
Details.prototype.handleInputs = function (node, callback) {
|
1377
|
-
node.addEventListener('keypress', function (event) {
|
1378
|
-
var target = event.target;
|
1379
|
-
// When the key gets pressed - check if it is enter or space
|
1380
|
-
if (event.keyCode === KEY_ENTER || event.keyCode === KEY_SPACE$1) {
|
1381
|
-
if (target.nodeName.toLowerCase() === 'summary') {
|
1382
|
-
// Prevent space from scrolling the page
|
1383
|
-
// and enter from submitting a form
|
1384
|
-
event.preventDefault();
|
1385
|
-
// Click to let the click event do all the necessary action
|
1386
|
-
if (target.click) {
|
1387
|
-
target.click();
|
1388
|
-
} else {
|
1389
|
-
// except Safari 5.1 and under don't support .click() here
|
1390
|
-
callback(event);
|
1391
|
-
}
|
1392
|
-
}
|
1393
|
-
}
|
1394
|
-
});
|
1368
|
+
Details.prototype.init = function () {
|
1369
|
+
if (!this.$module) {
|
1370
|
+
return
|
1371
|
+
}
|
1395
1372
|
|
1396
|
-
//
|
1397
|
-
|
1398
|
-
var target = event.target;
|
1399
|
-
if (event.keyCode === KEY_SPACE$1) {
|
1400
|
-
if (target.nodeName.toLowerCase() === 'summary') {
|
1401
|
-
event.preventDefault();
|
1402
|
-
}
|
1403
|
-
}
|
1404
|
-
});
|
1373
|
+
// If there is native details support, we want to avoid running code to polyfill native behaviour.
|
1374
|
+
var hasNativeDetails = typeof this.$module.open === 'boolean';
|
1405
1375
|
|
1406
|
-
|
1376
|
+
if (hasNativeDetails) {
|
1377
|
+
return
|
1378
|
+
}
|
1379
|
+
|
1380
|
+
this.polyfillDetails();
|
1407
1381
|
};
|
1408
1382
|
|
1409
|
-
Details.prototype.
|
1383
|
+
Details.prototype.polyfillDetails = function () {
|
1410
1384
|
var $module = this.$module;
|
1411
1385
|
|
1412
|
-
if (!$module) {
|
1413
|
-
return
|
1414
|
-
}
|
1415
|
-
|
1416
1386
|
// Save shortcuts to the inner summary and content elements
|
1417
1387
|
var $summary = this.$summary = $module.getElementsByTagName('summary').item(0);
|
1418
1388
|
var $content = this.$content = $module.getElementsByTagName('div').item(0);
|
@@ -1442,9 +1412,7 @@ Details.prototype.init = function () {
|
|
1442
1412
|
//
|
1443
1413
|
// We have to use the camelcase `tabIndex` property as there is a bug in IE6/IE7 when we set the correct attribute lowercase:
|
1444
1414
|
// See http://web.archive.org/web/20170120194036/http://www.saliences.com/browserBugs/tabIndex.html for more information.
|
1445
|
-
|
1446
|
-
$summary.tabIndex = 0;
|
1447
|
-
}
|
1415
|
+
$summary.tabIndex = 0;
|
1448
1416
|
|
1449
1417
|
// Detect initial open state
|
1450
1418
|
var openAttr = $module.getAttribute('open') !== null;
|
@@ -1454,20 +1422,18 @@ Details.prototype.init = function () {
|
|
1454
1422
|
} else {
|
1455
1423
|
$summary.setAttribute('aria-expanded', 'false');
|
1456
1424
|
$content.setAttribute('aria-hidden', 'true');
|
1457
|
-
|
1458
|
-
$content.style.display = 'none';
|
1459
|
-
}
|
1425
|
+
$content.style.display = 'none';
|
1460
1426
|
}
|
1461
1427
|
|
1462
1428
|
// Bind an event to handle summary elements
|
1463
|
-
this.
|
1429
|
+
this.polyfillHandleInputs($summary, this.polyfillSetAttributes.bind(this));
|
1464
1430
|
};
|
1465
1431
|
|
1466
1432
|
/**
|
1467
1433
|
* Define a statechange function that updates aria-expanded and style.display
|
1468
1434
|
* @param {object} summary element
|
1469
1435
|
*/
|
1470
|
-
Details.prototype.
|
1436
|
+
Details.prototype.polyfillSetAttributes = function () {
|
1471
1437
|
var $module = this.$module;
|
1472
1438
|
var $summary = this.$summary;
|
1473
1439
|
var $content = this.$content;
|
@@ -1478,27 +1444,54 @@ Details.prototype.setAttributes = function () {
|
|
1478
1444
|
$summary.setAttribute('aria-expanded', (expanded ? 'false' : 'true'));
|
1479
1445
|
$content.setAttribute('aria-hidden', (hidden ? 'false' : 'true'));
|
1480
1446
|
|
1481
|
-
|
1482
|
-
$content.style.display = (expanded ? 'none' : '');
|
1447
|
+
$content.style.display = (expanded ? 'none' : '');
|
1483
1448
|
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
}
|
1449
|
+
var hasOpenAttr = $module.getAttribute('open') !== null;
|
1450
|
+
if (!hasOpenAttr) {
|
1451
|
+
$module.setAttribute('open', 'open');
|
1452
|
+
} else {
|
1453
|
+
$module.removeAttribute('open');
|
1490
1454
|
}
|
1455
|
+
|
1491
1456
|
return true
|
1492
1457
|
};
|
1493
1458
|
|
1494
1459
|
/**
|
1495
|
-
*
|
1460
|
+
* Handle cross-modal click events
|
1496
1461
|
* @param {object} node element
|
1462
|
+
* @param {function} callback function
|
1497
1463
|
*/
|
1498
|
-
Details.prototype.
|
1499
|
-
node.
|
1500
|
-
|
1501
|
-
|
1464
|
+
Details.prototype.polyfillHandleInputs = function (node, callback) {
|
1465
|
+
node.addEventListener('keypress', function (event) {
|
1466
|
+
var target = event.target;
|
1467
|
+
// When the key gets pressed - check if it is enter or space
|
1468
|
+
if (event.keyCode === KEY_ENTER || event.keyCode === KEY_SPACE$1) {
|
1469
|
+
if (target.nodeName.toLowerCase() === 'summary') {
|
1470
|
+
// Prevent space from scrolling the page
|
1471
|
+
// and enter from submitting a form
|
1472
|
+
event.preventDefault();
|
1473
|
+
// Click to let the click event do all the necessary action
|
1474
|
+
if (target.click) {
|
1475
|
+
target.click();
|
1476
|
+
} else {
|
1477
|
+
// except Safari 5.1 and under don't support .click() here
|
1478
|
+
callback(event);
|
1479
|
+
}
|
1480
|
+
}
|
1481
|
+
}
|
1482
|
+
});
|
1483
|
+
|
1484
|
+
// Prevent keyup to prevent clicking twice in Firefox when using space key
|
1485
|
+
node.addEventListener('keyup', function (event) {
|
1486
|
+
var target = event.target;
|
1487
|
+
if (event.keyCode === KEY_SPACE$1) {
|
1488
|
+
if (target.nodeName.toLowerCase() === 'summary') {
|
1489
|
+
event.preventDefault();
|
1490
|
+
}
|
1491
|
+
}
|
1492
|
+
});
|
1493
|
+
|
1494
|
+
node.addEventListener('click', callback);
|
1502
1495
|
};
|
1503
1496
|
|
1504
1497
|
function CharacterCount ($module) {
|
@@ -224,9 +224,11 @@
|
|
224
224
|
}
|
225
225
|
}
|
226
226
|
|
227
|
-
//
|
227
|
+
// If there are only two sections, set the layout to be two-third:one-third on desktop
|
228
228
|
@include mq ($from: desktop) {
|
229
|
-
|
229
|
+
// We match the first section with `:first-child`.
|
230
|
+
// To ensure the section is one of two, we can count backwards using `:nth-last-child(2)`.
|
231
|
+
.govuk-footer__section:first-child:nth-last-child(2) {
|
230
232
|
-webkit-box-flex: 2;
|
231
233
|
-webkit-flex-grow: 2;
|
232
234
|
-ms-flex-positive: 2;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dxw_govuk_frontend_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mec
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-09-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -45,8 +45,7 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- ".
|
49
|
-
- ".circleci/setup-rubygems.sh"
|
48
|
+
- ".github/workflows/gempush.yml"
|
50
49
|
- ".gitignore"
|
51
50
|
- CODE_OF_CONDUCT.md
|
52
51
|
- Gemfile
|
data/.circleci/config.yml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
version: 2
|
2
|
-
jobs:
|
3
|
-
deploy:
|
4
|
-
docker:
|
5
|
-
- image: circleci/ruby:2.6.1-node-browsers
|
6
|
-
|
7
|
-
working_directory: ~/repo
|
8
|
-
|
9
|
-
steps:
|
10
|
-
- checkout
|
11
|
-
- run:
|
12
|
-
name: Compile sass
|
13
|
-
command: |
|
14
|
-
npx node-sass ./vendor/assets/stylesheets/govuk-frontend-rails.scss /tmp/govuk-frontend-rails.css
|
15
|
-
- run:
|
16
|
-
name: Setup Rubygems
|
17
|
-
command: bash .circleci/setup-rubygems.sh
|
18
|
-
|
19
|
-
- run:
|
20
|
-
name: Publish to Rubygems
|
21
|
-
command: |
|
22
|
-
gem build dxw_govuk_frontend_rails.gemspec
|
23
|
-
gem push "dxw_govuk_frontend_rails-$(git describe --tags).gem"
|
24
|
-
workflows:
|
25
|
-
version: 2
|
26
|
-
test-deploy:
|
27
|
-
jobs:
|
28
|
-
- deploy:
|
29
|
-
filters:
|
30
|
-
tags:
|
31
|
-
only: /.*/
|
32
|
-
branches:
|
33
|
-
ignore: /.*/
|
data/.circleci/setup-rubygems.sh
DELETED