katalyst-govuk-formbuilder 1.14.0 → 1.16.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/app/assets/builds/katalyst/govuk/formbuilder.css +149 -182
- data/app/assets/builds/katalyst/govuk/formbuilder.js +39 -37
- data/app/assets/builds/katalyst/govuk/formbuilder.min.js +1 -1
- data/app/assets/stylesheets/katalyst/govuk/formbuilder.scss +0 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +167 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +14 -10
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +12 -21
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +18 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66f84bbe719cc94f15b64188e046cdb6bbb2decf066b615c6a7adaa4a37d20c8
|
4
|
+
data.tar.gz: 58deb9615c2a6b69d1601dd6f88238c68660fa624ce9c5829cb6fc7bb8d2c0b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1a9e9a42d38251a62d76c0c8a6f80f3af68be97c78a87d0ec969425aa7d8044a0d7d7a5581b0c8bb5d6ff2e175386e006efbcca9b04a56865e3337d3f4fd728
|
7
|
+
data.tar.gz: 110255497782e0824b1c86ab970bfce2699cc05253fd25fe1208aa401d13d95808cd7d9d123a0281e8601394e64c4d684e8171c6ab04f757422091a663e38d17
|
@@ -38,12 +38,15 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
+
|
42
|
+
|
43
|
+
|
41
44
|
|
42
45
|
|
43
46
|
|
44
47
|
|
45
48
|
:root {
|
46
|
-
--govuk-frontend-version: "5.
|
49
|
+
--govuk-frontend-version: "5.9.0";
|
47
50
|
--govuk-frontend-breakpoint-mobile: 20rem;
|
48
51
|
--govuk-frontend-breakpoint-tablet: 40.0625rem;
|
49
52
|
--govuk-frontend-breakpoint-desktop: 48.0625rem;
|
@@ -801,6 +804,9 @@
|
|
801
804
|
|
802
805
|
|
803
806
|
|
807
|
+
|
808
|
+
|
809
|
+
|
804
810
|
|
805
811
|
|
806
812
|
|
@@ -905,6 +911,9 @@
|
|
905
911
|
|
906
912
|
|
907
913
|
|
914
|
+
|
915
|
+
|
916
|
+
|
908
917
|
|
909
918
|
|
910
919
|
|
@@ -975,6 +984,9 @@
|
|
975
984
|
|
976
985
|
|
977
986
|
|
987
|
+
|
988
|
+
|
989
|
+
|
978
990
|
|
979
991
|
|
980
992
|
|
@@ -1167,6 +1179,9 @@
|
|
1167
1179
|
|
1168
1180
|
|
1169
1181
|
|
1182
|
+
|
1183
|
+
|
1184
|
+
|
1170
1185
|
|
1171
1186
|
|
1172
1187
|
|
@@ -1234,6 +1249,9 @@
|
|
1234
1249
|
|
1235
1250
|
|
1236
1251
|
|
1252
|
+
|
1253
|
+
|
1254
|
+
|
1237
1255
|
|
1238
1256
|
|
1239
1257
|
|
@@ -1303,6 +1321,9 @@
|
|
1303
1321
|
|
1304
1322
|
|
1305
1323
|
|
1324
|
+
|
1325
|
+
|
1326
|
+
|
1306
1327
|
|
1307
1328
|
|
1308
1329
|
|
@@ -1345,187 +1366,6 @@
|
|
1345
1366
|
|
1346
1367
|
|
1347
1368
|
|
1348
|
-
.govuk-button {
|
1349
|
-
font-family: "Open Sans", sans-serif;
|
1350
|
-
-webkit-font-smoothing: antialiased;
|
1351
|
-
-moz-osx-font-smoothing: grayscale;
|
1352
|
-
font-weight: 400;
|
1353
|
-
font-size: 1rem;
|
1354
|
-
line-height: 1.1875;
|
1355
|
-
box-sizing: border-box;
|
1356
|
-
display: inline-block;
|
1357
|
-
position: relative;
|
1358
|
-
width: 100%;
|
1359
|
-
margin-top: 0;
|
1360
|
-
margin-right: 0;
|
1361
|
-
margin-left: 0;
|
1362
|
-
margin-bottom: 22px;
|
1363
|
-
padding: 8px 10px 7px;
|
1364
|
-
border: 2px solid transparent;
|
1365
|
-
border-radius: 0;
|
1366
|
-
color: #ffffff;
|
1367
|
-
background-color: #00703c;
|
1368
|
-
box-shadow: 0 2px 0 rgb(0, 44.8, 24);
|
1369
|
-
text-align: center;
|
1370
|
-
vertical-align: top;
|
1371
|
-
cursor: pointer;
|
1372
|
-
-webkit-appearance: none;
|
1373
|
-
}
|
1374
|
-
@media print {
|
1375
|
-
.govuk-button {
|
1376
|
-
font-family: sans-serif;
|
1377
|
-
}
|
1378
|
-
}
|
1379
|
-
@media (min-width: 40.0625em) {
|
1380
|
-
.govuk-button {
|
1381
|
-
font-size: 1.1875rem;
|
1382
|
-
line-height: 1;
|
1383
|
-
}
|
1384
|
-
}
|
1385
|
-
@media print {
|
1386
|
-
.govuk-button {
|
1387
|
-
font-size: 14pt;
|
1388
|
-
line-height: 19px;
|
1389
|
-
}
|
1390
|
-
}
|
1391
|
-
@media (min-width: 40.0625em) {
|
1392
|
-
.govuk-button {
|
1393
|
-
margin-bottom: 32px;
|
1394
|
-
}
|
1395
|
-
}
|
1396
|
-
@media (min-width: 40.0625em) {
|
1397
|
-
.govuk-button {
|
1398
|
-
width: auto;
|
1399
|
-
}
|
1400
|
-
}
|
1401
|
-
.govuk-button:link, .govuk-button:visited, .govuk-button:active, .govuk-button:hover {
|
1402
|
-
color: #ffffff;
|
1403
|
-
text-decoration: none;
|
1404
|
-
}
|
1405
|
-
.govuk-button::-moz-focus-inner {
|
1406
|
-
padding: 0;
|
1407
|
-
border: 0;
|
1408
|
-
}
|
1409
|
-
.govuk-button:hover {
|
1410
|
-
background-color: rgb(0, 89.6, 48);
|
1411
|
-
}
|
1412
|
-
.govuk-button:active {
|
1413
|
-
top: 2px;
|
1414
|
-
}
|
1415
|
-
.govuk-button:focus {
|
1416
|
-
border-color: #ffdd00;
|
1417
|
-
outline: 3px solid transparent;
|
1418
|
-
box-shadow: inset 0 0 0 1px #ffdd00;
|
1419
|
-
}
|
1420
|
-
.govuk-button:focus:not(:active):not(:hover) {
|
1421
|
-
border-color: #ffdd00;
|
1422
|
-
color: #0b0c0c;
|
1423
|
-
background-color: #ffdd00;
|
1424
|
-
box-shadow: 0 2px 0 #0b0c0c;
|
1425
|
-
}
|
1426
|
-
.govuk-button::before {
|
1427
|
-
content: "";
|
1428
|
-
display: block;
|
1429
|
-
position: absolute;
|
1430
|
-
top: -2px;
|
1431
|
-
right: -2px;
|
1432
|
-
bottom: -4px;
|
1433
|
-
left: -2px;
|
1434
|
-
background: transparent;
|
1435
|
-
}
|
1436
|
-
.govuk-button:active::before {
|
1437
|
-
top: -4px;
|
1438
|
-
}
|
1439
|
-
|
1440
|
-
.govuk-button[disabled] {
|
1441
|
-
opacity: 0.5;
|
1442
|
-
}
|
1443
|
-
.govuk-button[disabled]:hover {
|
1444
|
-
background-color: #00703c;
|
1445
|
-
cursor: not-allowed;
|
1446
|
-
}
|
1447
|
-
.govuk-button[disabled]:active {
|
1448
|
-
top: 0;
|
1449
|
-
box-shadow: 0 2px 0 rgb(0, 44.8, 24);
|
1450
|
-
}
|
1451
|
-
|
1452
|
-
.govuk-button--secondary {
|
1453
|
-
background-color: #f3f2f1;
|
1454
|
-
box-shadow: 0 2px 0 rgb(145.8, 145.2, 144.6);
|
1455
|
-
}
|
1456
|
-
.govuk-button--secondary, .govuk-button--secondary:link, .govuk-button--secondary:visited, .govuk-button--secondary:active, .govuk-button--secondary:hover {
|
1457
|
-
color: #0b0c0c;
|
1458
|
-
}
|
1459
|
-
.govuk-button--secondary:hover {
|
1460
|
-
background-color: rgb(218.7, 217.8, 216.9);
|
1461
|
-
}
|
1462
|
-
.govuk-button--secondary:hover[disabled] {
|
1463
|
-
background-color: #f3f2f1;
|
1464
|
-
}
|
1465
|
-
|
1466
|
-
.govuk-button--warning {
|
1467
|
-
background-color: #d4351c;
|
1468
|
-
box-shadow: 0 2px 0 rgb(84.8, 21.2, 11.2);
|
1469
|
-
}
|
1470
|
-
.govuk-button--warning, .govuk-button--warning:link, .govuk-button--warning:visited, .govuk-button--warning:active, .govuk-button--warning:hover {
|
1471
|
-
color: #ffffff;
|
1472
|
-
}
|
1473
|
-
.govuk-button--warning:hover {
|
1474
|
-
background-color: rgb(169.6, 42.4, 22.4);
|
1475
|
-
}
|
1476
|
-
.govuk-button--warning:hover[disabled] {
|
1477
|
-
background-color: #d4351c;
|
1478
|
-
}
|
1479
|
-
|
1480
|
-
.govuk-button--inverse {
|
1481
|
-
background-color: #ffffff;
|
1482
|
-
box-shadow: 0 2px 0 rgb(20.3, 78.4, 128.8);
|
1483
|
-
}
|
1484
|
-
.govuk-button--inverse, .govuk-button--inverse:link, .govuk-button--inverse:visited, .govuk-button--inverse:active, .govuk-button--inverse:hover {
|
1485
|
-
color: #1d70b8;
|
1486
|
-
}
|
1487
|
-
.govuk-button--inverse:hover {
|
1488
|
-
background-color: rgb(232.4, 240.7, 247.9);
|
1489
|
-
}
|
1490
|
-
.govuk-button--inverse:hover[disabled] {
|
1491
|
-
background-color: #ffffff;
|
1492
|
-
}
|
1493
|
-
|
1494
|
-
.govuk-button--start {
|
1495
|
-
font-weight: 700;
|
1496
|
-
font-size: 1.125rem;
|
1497
|
-
line-height: 1;
|
1498
|
-
display: inline-flex;
|
1499
|
-
min-height: auto;
|
1500
|
-
justify-content: center;
|
1501
|
-
}
|
1502
|
-
@media (min-width: 40.0625em) {
|
1503
|
-
.govuk-button--start {
|
1504
|
-
font-size: 1.5rem;
|
1505
|
-
line-height: 1;
|
1506
|
-
}
|
1507
|
-
}
|
1508
|
-
@media print {
|
1509
|
-
.govuk-button--start {
|
1510
|
-
font-size: 18pt;
|
1511
|
-
line-height: 1;
|
1512
|
-
}
|
1513
|
-
}
|
1514
|
-
|
1515
|
-
.govuk-button__start-icon {
|
1516
|
-
margin-left: 5px;
|
1517
|
-
vertical-align: middle;
|
1518
|
-
flex-shrink: 0;
|
1519
|
-
align-self: center;
|
1520
|
-
forced-color-adjust: auto;
|
1521
|
-
}
|
1522
|
-
@media (min-width: 48.0625em) {
|
1523
|
-
.govuk-button__start-icon {
|
1524
|
-
margin-left: 10px;
|
1525
|
-
}
|
1526
|
-
}
|
1527
|
-
|
1528
|
-
|
1529
1369
|
.govuk-error-message {
|
1530
1370
|
font-family: "Open Sans", sans-serif;
|
1531
1371
|
-webkit-font-smoothing: antialiased;
|
@@ -2446,6 +2286,133 @@
|
|
2446
2286
|
cursor: not-allowed;
|
2447
2287
|
}
|
2448
2288
|
|
2289
|
+
.govuk-drop-zone {
|
2290
|
+
display: block;
|
2291
|
+
position: relative;
|
2292
|
+
z-index: 0;
|
2293
|
+
background-color: #ffffff;
|
2294
|
+
}
|
2295
|
+
|
2296
|
+
.govuk-drop-zone--disabled {
|
2297
|
+
cursor: not-allowed;
|
2298
|
+
}
|
2299
|
+
|
2300
|
+
.govuk-file-upload-button__pseudo-button {
|
2301
|
+
width: auto;
|
2302
|
+
margin-right: 10px;
|
2303
|
+
margin-bottom: 3px;
|
2304
|
+
flex-shrink: 0;
|
2305
|
+
}
|
2306
|
+
|
2307
|
+
.govuk-file-upload-button__instruction {
|
2308
|
+
margin-top: 7px;
|
2309
|
+
margin-bottom: 0;
|
2310
|
+
text-align: left;
|
2311
|
+
}
|
2312
|
+
|
2313
|
+
.govuk-file-upload-button__status {
|
2314
|
+
display: block;
|
2315
|
+
margin-bottom: 10px;
|
2316
|
+
padding: 15px 10px;
|
2317
|
+
background-color: #ffffff;
|
2318
|
+
text-align: left;
|
2319
|
+
}
|
2320
|
+
|
2321
|
+
.govuk-file-upload-button__pseudo-button-container {
|
2322
|
+
display: flex;
|
2323
|
+
align-items: baseline;
|
2324
|
+
flex-wrap: wrap;
|
2325
|
+
}
|
2326
|
+
|
2327
|
+
.govuk-file-upload-button {
|
2328
|
+
width: 100%;
|
2329
|
+
padding: 18px;
|
2330
|
+
border: 2px #b1b4b6 solid;
|
2331
|
+
background-color: #f3f2f1;
|
2332
|
+
cursor: pointer;
|
2333
|
+
}
|
2334
|
+
@media (min-width: 40.0625em) {
|
2335
|
+
.govuk-file-upload-button {
|
2336
|
+
padding: 23px;
|
2337
|
+
}
|
2338
|
+
}
|
2339
|
+
.govuk-file-upload-button .govuk-file-upload-button__pseudo-button {
|
2340
|
+
background-color: #ffffff;
|
2341
|
+
}
|
2342
|
+
.govuk-file-upload-button:hover {
|
2343
|
+
background-color: rgb(192.6, 195, 196.6);
|
2344
|
+
}
|
2345
|
+
.govuk-file-upload-button:hover .govuk-file-upload-button__pseudo-button {
|
2346
|
+
background-color: rgb(218.7, 217.8, 216.9);
|
2347
|
+
}
|
2348
|
+
.govuk-file-upload-button:hover .govuk-file-upload-button__status {
|
2349
|
+
background-color: rgb(209.8, 226.4, 240.8);
|
2350
|
+
}
|
2351
|
+
.govuk-file-upload-button:active, .govuk-file-upload-button:focus {
|
2352
|
+
border: 2px solid #0b0c0c;
|
2353
|
+
outline: 3px solid #ffdd00;
|
2354
|
+
outline-offset: 0;
|
2355
|
+
background-color: rgb(192.6, 195, 196.6);
|
2356
|
+
box-shadow: inset 0 0 0 2px;
|
2357
|
+
}
|
2358
|
+
.govuk-file-upload-button:active .govuk-file-upload-button__pseudo-button, .govuk-file-upload-button:focus .govuk-file-upload-button__pseudo-button {
|
2359
|
+
background-color: #ffdd00;
|
2360
|
+
box-shadow: 0 2px 0 #0b0c0c;
|
2361
|
+
}
|
2362
|
+
.govuk-file-upload-button:active:hover .govuk-file-upload-button__pseudo-button, .govuk-file-upload-button:focus:hover .govuk-file-upload-button__pseudo-button {
|
2363
|
+
border-color: #ffdd00;
|
2364
|
+
outline: 3px solid transparent;
|
2365
|
+
background-color: #f3f2f1;
|
2366
|
+
box-shadow: inset 0 0 0 1px #ffdd00;
|
2367
|
+
}
|
2368
|
+
|
2369
|
+
.govuk-file-upload-button--empty {
|
2370
|
+
border-style: dashed;
|
2371
|
+
background-color: #ffffff;
|
2372
|
+
}
|
2373
|
+
.govuk-file-upload-button--empty .govuk-file-upload-button__pseudo-button {
|
2374
|
+
background-color: #f3f2f1;
|
2375
|
+
}
|
2376
|
+
.govuk-file-upload-button--empty .govuk-file-upload-button__status {
|
2377
|
+
color: rgb(11.6, 44.8, 73.6);
|
2378
|
+
background-color: rgb(187.2, 212.1, 233.7);
|
2379
|
+
}
|
2380
|
+
.govuk-file-upload-button--empty:hover, .govuk-file-upload-button--empty:focus, .govuk-file-upload-button--empty:active {
|
2381
|
+
background-color: #f3f2f1;
|
2382
|
+
}
|
2383
|
+
.govuk-file-upload-button--empty:hover .govuk-file-upload-button__status, .govuk-file-upload-button--empty:focus .govuk-file-upload-button__status, .govuk-file-upload-button--empty:active .govuk-file-upload-button__status {
|
2384
|
+
background-color: rgb(209.8, 226.4, 240.8);
|
2385
|
+
}
|
2386
|
+
|
2387
|
+
.govuk-file-upload-button--dragging {
|
2388
|
+
border-style: solid;
|
2389
|
+
border-color: #0b0c0c;
|
2390
|
+
}
|
2391
|
+
.govuk-file-upload-button--dragging.govuk-file-upload-button {
|
2392
|
+
background-color: rgb(192.6, 195, 196.6);
|
2393
|
+
}
|
2394
|
+
.govuk-file-upload-button--dragging.govuk-file-upload-button--empty {
|
2395
|
+
background-color: #f3f2f1;
|
2396
|
+
}
|
2397
|
+
.govuk-file-upload-button--dragging.govuk-file-upload-button--empty:not(:disabled) .govuk-file-upload-button__status, .govuk-file-upload-button--dragging.govuk-file-upload-button--empty .govuk-file-upload-button__pseudo-button {
|
2398
|
+
background-color: #ffffff;
|
2399
|
+
}
|
2400
|
+
.govuk-file-upload-button--dragging .govuk-file-upload-button__pseudo-button {
|
2401
|
+
background-color: rgb(218.7, 217.8, 216.9);
|
2402
|
+
}
|
2403
|
+
|
2404
|
+
.govuk-file-upload-button:disabled {
|
2405
|
+
pointer-events: none;
|
2406
|
+
opacity: 0.5;
|
2407
|
+
background-color: #ffffff;
|
2408
|
+
}
|
2409
|
+
.govuk-file-upload-button:disabled .govuk-file-upload-button__pseudo-button {
|
2410
|
+
background-color: #f3f2f1;
|
2411
|
+
}
|
2412
|
+
.govuk-file-upload-button:disabled .govuk-file-upload-button__status {
|
2413
|
+
background-color: rgb(187.2, 212.1, 233.7);
|
2414
|
+
}
|
2415
|
+
|
2449
2416
|
|
2450
2417
|
|
2451
2418
|
|
@@ -107,7 +107,7 @@ class InitError extends GOVUKFrontendError {
|
|
107
107
|
}
|
108
108
|
}
|
109
109
|
|
110
|
-
class
|
110
|
+
class Component {
|
111
111
|
/**
|
112
112
|
* Returns the root element of the component
|
113
113
|
*
|
@@ -118,7 +118,7 @@ class GOVUKFrontendComponent {
|
|
118
118
|
return this._$root;
|
119
119
|
}
|
120
120
|
constructor($root) {
|
121
|
-
this._$root =
|
121
|
+
this._$root = void 0;
|
122
122
|
const childConstructor = this.constructor;
|
123
123
|
if (typeof childConstructor.moduleName !== 'string') {
|
124
124
|
throw new InitError(`\`moduleName\` not defined in component`);
|
@@ -158,12 +158,12 @@ class GOVUKFrontendComponent {
|
|
158
158
|
*/
|
159
159
|
|
160
160
|
/**
|
161
|
-
* @typedef {typeof
|
161
|
+
* @typedef {typeof Component & ChildClass} ChildClassConstructor
|
162
162
|
*/
|
163
|
-
|
163
|
+
Component.elementType = HTMLElement;
|
164
164
|
|
165
165
|
const configOverride = Symbol.for('configOverride');
|
166
|
-
class ConfigurableComponent extends
|
166
|
+
class ConfigurableComponent extends Component {
|
167
167
|
[configOverride](param) {
|
168
168
|
return {};
|
169
169
|
}
|
@@ -179,9 +179,9 @@ class ConfigurableComponent extends GOVUKFrontendComponent {
|
|
179
179
|
}
|
180
180
|
constructor($root, config) {
|
181
181
|
super($root);
|
182
|
-
this._config =
|
182
|
+
this._config = void 0;
|
183
183
|
const childConstructor = this.constructor;
|
184
|
-
if (
|
184
|
+
if (!isObject(childConstructor.defaults)) {
|
185
185
|
throw new ConfigError(formatErrorMessage(childConstructor, 'Config passed as parameter into constructor but no defaults defined'));
|
186
186
|
}
|
187
187
|
const datasetConfig = normaliseDataset(childConstructor, this._$root.dataset);
|
@@ -191,7 +191,7 @@ class ConfigurableComponent extends GOVUKFrontendComponent {
|
|
191
191
|
function normaliseString(value, property) {
|
192
192
|
const trimmedValue = value ? value.trim() : '';
|
193
193
|
let output;
|
194
|
-
let outputType = property == null ?
|
194
|
+
let outputType = property == null ? void 0 : property.type;
|
195
195
|
if (!outputType) {
|
196
196
|
if (['true', 'false'].includes(trimmedValue)) {
|
197
197
|
outputType = 'boolean';
|
@@ -213,16 +213,19 @@ function normaliseString(value, property) {
|
|
213
213
|
return output;
|
214
214
|
}
|
215
215
|
function normaliseDataset(Component, dataset) {
|
216
|
-
if (
|
216
|
+
if (!isObject(Component.schema)) {
|
217
217
|
throw new ConfigError(formatErrorMessage(Component, 'Config passed as parameter into constructor but no schema defined'));
|
218
218
|
}
|
219
219
|
const out = {};
|
220
|
-
|
220
|
+
const entries = Object.entries(Component.schema.properties);
|
221
|
+
for (const entry of entries) {
|
222
|
+
const [namespace, property] = entry;
|
223
|
+
const field = namespace.toString();
|
221
224
|
if (field in dataset) {
|
222
225
|
out[field] = normaliseString(dataset[field], property);
|
223
226
|
}
|
224
|
-
if ((property == null ?
|
225
|
-
out[field] = extractConfigByNamespace(Component.schema, dataset,
|
227
|
+
if ((property == null ? void 0 : property.type) === 'object') {
|
228
|
+
out[field] = extractConfigByNamespace(Component.schema, dataset, namespace);
|
226
229
|
}
|
227
230
|
}
|
228
231
|
return out;
|
@@ -264,17 +267,17 @@ function validateConfig(schema, config) {
|
|
264
267
|
}
|
265
268
|
function extractConfigByNamespace(schema, dataset, namespace) {
|
266
269
|
const property = schema.properties[namespace];
|
267
|
-
if ((property == null ?
|
270
|
+
if ((property == null ? void 0 : property.type) !== 'object') {
|
268
271
|
return;
|
269
272
|
}
|
270
273
|
const newObject = {
|
271
|
-
[namespace]:
|
274
|
+
[namespace]: {}
|
272
275
|
};
|
273
276
|
for (const [key, value] of Object.entries(dataset)) {
|
274
277
|
let current = newObject;
|
275
278
|
const keyParts = key.split('.');
|
276
279
|
for (const [index, name] of keyParts.entries()) {
|
277
|
-
if (
|
280
|
+
if (isObject(current)) {
|
278
281
|
if (index < keyParts.length - 1) {
|
279
282
|
if (!isObject(current[name])) {
|
280
283
|
current[name] = {};
|
@@ -292,8 +295,8 @@ function extractConfigByNamespace(schema, dataset, namespace) {
|
|
292
295
|
class I18n {
|
293
296
|
constructor(translations = {}, config = {}) {
|
294
297
|
var _config$locale;
|
295
|
-
this.translations =
|
296
|
-
this.locale =
|
298
|
+
this.translations = void 0;
|
299
|
+
this.locale = void 0;
|
297
300
|
this.translations = translations;
|
298
301
|
this.locale = (_config$locale = config.locale) != null ? _config$locale : document.documentElement.lang || 'en';
|
299
302
|
}
|
@@ -302,7 +305,7 @@ class I18n {
|
|
302
305
|
throw new Error('i18n: lookup key missing');
|
303
306
|
}
|
304
307
|
let translation = this.translations[lookupKey];
|
305
|
-
if (typeof (options == null ?
|
308
|
+
if (typeof (options == null ? void 0 : options.count) === 'number' && typeof translation === 'object') {
|
306
309
|
const translationPluralForm = translation[this.getPluralSuffix(lookupKey, options.count)];
|
307
310
|
if (translationPluralForm) {
|
308
311
|
translation = translationPluralForm;
|
@@ -534,7 +537,7 @@ class Button extends ConfigurableComponent {
|
|
534
537
|
*/
|
535
538
|
|
536
539
|
/**
|
537
|
-
* @
|
540
|
+
* @import { Schema } from '../../common/configuration.mjs'
|
538
541
|
*/
|
539
542
|
Button.moduleName = 'govuk-button';
|
540
543
|
Button.defaults = Object.freeze({
|
@@ -585,14 +588,14 @@ class CharacterCount extends ConfigurableComponent {
|
|
585
588
|
constructor($root, config = {}) {
|
586
589
|
var _ref, _this$config$maxwords;
|
587
590
|
super($root, config);
|
588
|
-
this.$textarea =
|
589
|
-
this.$visibleCountMessage =
|
590
|
-
this.$screenReaderCountMessage =
|
591
|
+
this.$textarea = void 0;
|
592
|
+
this.$visibleCountMessage = void 0;
|
593
|
+
this.$screenReaderCountMessage = void 0;
|
591
594
|
this.lastInputTimestamp = null;
|
592
595
|
this.lastInputValue = '';
|
593
596
|
this.valueChecker = null;
|
594
|
-
this.i18n =
|
595
|
-
this.maxLength =
|
597
|
+
this.i18n = void 0;
|
598
|
+
this.maxLength = void 0;
|
596
599
|
const $textarea = this.$root.querySelector('.govuk-js-character-count');
|
597
600
|
if (!($textarea instanceof HTMLTextAreaElement || $textarea instanceof HTMLInputElement)) {
|
598
601
|
throw new ElementError({
|
@@ -787,8 +790,8 @@ class CharacterCount extends ConfigurableComponent {
|
|
787
790
|
*/
|
788
791
|
|
789
792
|
/**
|
790
|
-
* @
|
791
|
-
* @
|
793
|
+
* @import { Schema } from '../../common/configuration.mjs'
|
794
|
+
* @import { TranslationPluralForms } from '../../i18n.mjs'
|
792
795
|
*/
|
793
796
|
CharacterCount.moduleName = 'govuk-character-count';
|
794
797
|
CharacterCount.defaults = Object.freeze({
|
@@ -846,7 +849,7 @@ CharacterCount.schema = Object.freeze({
|
|
846
849
|
*
|
847
850
|
* @preserve
|
848
851
|
*/
|
849
|
-
class Checkboxes extends
|
852
|
+
class Checkboxes extends Component {
|
850
853
|
/**
|
851
854
|
* Checkboxes can be associated with a 'conditionally revealed' content block
|
852
855
|
* – for example, a checkbox for 'Phone' could reveal an additional form field
|
@@ -863,7 +866,7 @@ class Checkboxes extends GOVUKFrontendComponent {
|
|
863
866
|
*/
|
864
867
|
constructor($root) {
|
865
868
|
super($root);
|
866
|
-
this.$inputs =
|
869
|
+
this.$inputs = void 0;
|
867
870
|
const $inputs = this.$root.querySelectorAll('input[type="checkbox"]');
|
868
871
|
if (!$inputs.length) {
|
869
872
|
throw new ElementError({
|
@@ -1029,7 +1032,7 @@ class ErrorSummary extends ConfigurableComponent {
|
|
1029
1032
|
*/
|
1030
1033
|
|
1031
1034
|
/**
|
1032
|
-
* @
|
1035
|
+
* @import { Schema } from '../../common/configuration.mjs'
|
1033
1036
|
*/
|
1034
1037
|
ErrorSummary.moduleName = 'govuk-error-summary';
|
1035
1038
|
ErrorSummary.defaults = Object.freeze({
|
@@ -1056,10 +1059,10 @@ class PasswordInput extends ConfigurableComponent {
|
|
1056
1059
|
*/
|
1057
1060
|
constructor($root, config = {}) {
|
1058
1061
|
super($root, config);
|
1059
|
-
this.i18n =
|
1060
|
-
this.$input =
|
1061
|
-
this.$showHideButton =
|
1062
|
-
this.$screenReaderStatusMessage =
|
1062
|
+
this.i18n = void 0;
|
1063
|
+
this.$input = void 0;
|
1064
|
+
this.$showHideButton = void 0;
|
1065
|
+
this.$screenReaderStatusMessage = void 0;
|
1063
1066
|
const $input = this.$root.querySelector('.govuk-js-password-input-input');
|
1064
1067
|
if (!($input instanceof HTMLInputElement)) {
|
1065
1068
|
throw new ElementError({
|
@@ -1165,8 +1168,7 @@ class PasswordInput extends ConfigurableComponent {
|
|
1165
1168
|
*/
|
1166
1169
|
|
1167
1170
|
/**
|
1168
|
-
* @
|
1169
|
-
* @typedef {import('../../i18n.mjs').TranslationPluralForms} TranslationPluralForms
|
1171
|
+
* @import { Schema } from '../../common/configuration.mjs'
|
1170
1172
|
*/
|
1171
1173
|
PasswordInput.moduleName = 'govuk-password-input';
|
1172
1174
|
PasswordInput.defaults = Object.freeze({
|
@@ -1192,7 +1194,7 @@ PasswordInput.schema = Object.freeze({
|
|
1192
1194
|
*
|
1193
1195
|
* @preserve
|
1194
1196
|
*/
|
1195
|
-
class Radios extends
|
1197
|
+
class Radios extends Component {
|
1196
1198
|
/**
|
1197
1199
|
* Radios can be associated with a 'conditionally revealed' content block –
|
1198
1200
|
* for example, a radio for 'Phone' could reveal an additional form field for
|
@@ -1209,7 +1211,7 @@ class Radios extends GOVUKFrontendComponent {
|
|
1209
1211
|
*/
|
1210
1212
|
constructor($root) {
|
1211
1213
|
super($root);
|
1212
|
-
this.$inputs =
|
1214
|
+
this.$inputs = void 0;
|
1213
1215
|
const $inputs = this.$root.querySelectorAll('input[type="radio"]');
|
1214
1216
|
if (!$inputs.length) {
|
1215
1217
|
throw new ElementError({
|
@@ -1,4 +1,4 @@
|
|
1
|
-
function e(e=document.body){return!!e&&e.classList.contains("govuk-frontend-supported")}function t(e){return!!e&&"object"==typeof e&&!function(e){return Array.isArray(e)}(e)}function n(e,t){return`${e.moduleName}: ${t}`}class o extends Error{constructor(...e){super(...e),this.name="GOVUKFrontendError"}}class s extends o{constructor(e=document.body){const t="noModule"in HTMLScriptElement.prototype?'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet':"GOV.UK Frontend is not supported in this browser";super(e?t:'GOV.UK Frontend initialised without `<script type="module">`'),this.name="SupportError"}}class i extends o{constructor(...e){super(...e),this.name="ConfigError"}}class r extends o{constructor(e){let t="string"==typeof e?e:"";if("object"==typeof e){const{component:o,identifier:s,element:i,expectedType:r}=e;t=s,t+=i?` is not of type ${null!=r?r:"HTMLElement"}`:" not found",t=n(o,t)}super(t),this.name="ElementError"}}class a extends o{constructor(e){super("string"==typeof e?e:n(e,"Root element (`$root`) already initialised")),this.name="InitError"}}class u{get $root(){return this._$root}constructor(e){this._$root=void 0;const t=this.constructor;if("string"!=typeof t.moduleName)throw new a("`moduleName` not defined in component");if(!(e instanceof t.elementType))throw new r({element:e,component:t,identifier:"Root element (`$root`)",expectedType:t.elementType.name});this._$root=e,t.checkSupport(),this.checkInitialised();const n=t.moduleName;this.$root.setAttribute(`data-${n}-init`,"")}checkInitialised(){const e=this.constructor,t=e.moduleName;if(t&&function(e,t){return e instanceof HTMLElement&&e.hasAttribute(`data-${t}-init`)}(this.$root,t))throw new a(e)}static checkSupport(){if(!e())throw new s}}u.elementType=HTMLElement;const c=Symbol.for("configOverride");class l extends u{[c](e){return{}}get config(){return this._config}constructor(e,
|
1
|
+
function e(e=document.body){return!!e&&e.classList.contains("govuk-frontend-supported")}function t(e){return!!e&&"object"==typeof e&&!function(e){return Array.isArray(e)}(e)}function n(e,t){return`${e.moduleName}: ${t}`}class o extends Error{constructor(...e){super(...e),this.name="GOVUKFrontendError"}}class s extends o{constructor(e=document.body){const t="noModule"in HTMLScriptElement.prototype?'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet':"GOV.UK Frontend is not supported in this browser";super(e?t:'GOV.UK Frontend initialised without `<script type="module">`'),this.name="SupportError"}}class i extends o{constructor(...e){super(...e),this.name="ConfigError"}}class r extends o{constructor(e){let t="string"==typeof e?e:"";if("object"==typeof e){const{component:o,identifier:s,element:i,expectedType:r}=e;t=s,t+=i?` is not of type ${null!=r?r:"HTMLElement"}`:" not found",t=n(o,t)}super(t),this.name="ElementError"}}class a extends o{constructor(e){super("string"==typeof e?e:n(e,"Root element (`$root`) already initialised")),this.name="InitError"}}class u{get $root(){return this._$root}constructor(e){this._$root=void 0;const t=this.constructor;if("string"!=typeof t.moduleName)throw new a("`moduleName` not defined in component");if(!(e instanceof t.elementType))throw new r({element:e,component:t,identifier:"Root element (`$root`)",expectedType:t.elementType.name});this._$root=e,t.checkSupport(),this.checkInitialised();const n=t.moduleName;this.$root.setAttribute(`data-${n}-init`,"")}checkInitialised(){const e=this.constructor,t=e.moduleName;if(t&&function(e,t){return e instanceof HTMLElement&&e.hasAttribute(`data-${t}-init`)}(this.$root,t))throw new a(e)}static checkSupport(){if(!e())throw new s}}u.elementType=HTMLElement;const c=Symbol.for("configOverride");class l extends u{[c](e){return{}}get config(){return this._config}constructor(e,o){super(e),this._config=void 0;const s=this.constructor;if(!t(s.defaults))throw new i(n(s,"Config passed as parameter into constructor but no defaults defined"));const r=function(e,o){if(!t(e.schema))throw new i(n(e,"Config passed as parameter into constructor but no schema defined"));const s={},r=Object.entries(e.schema.properties);for(const t of r){const[n,i]=t,r=n.toString();r in o&&(s[r]=h(o[r],i)),"object"===(null==i?void 0:i.type)&&(s[r]=p(e.schema,o,n))}return s}(s,this._$root.dataset);this._config=d(s.defaults,null!=o?o:{},this[c](r),r)}}function h(e,t){const n=e?e.trim():"";let o,s=null==t?void 0:t.type;switch(s||(["true","false"].includes(n)&&(s="boolean"),n.length>0&&isFinite(Number(n))&&(s="number")),s){case"boolean":o="true"===n;break;case"number":o=Number(n);break;default:o=e}return o}function d(...e){const n={};for(const o of e)for(const e of Object.keys(o)){const s=n[e],i=o[e];t(s)&&t(i)?n[e]=d(s,i):n[e]=i}return n}function p(e,n,o){const s=e.properties[o];if("object"!==(null==s?void 0:s.type))return;const i={[o]:{}};for(const[e,s]of Object.entries(n)){let n=i;const r=e.split(".");for(const[i,a]of r.entries())t(n)&&(i<r.length-1?(t(n[a])||(n[a]={}),n=n[a]):e!==o&&(n[a]=h(s)))}return i[o]}class m{constructor(e={},t={}){var n;this.translations=void 0,this.locale=void 0,this.translations=e,this.locale=null!=(n=t.locale)?n:document.documentElement.lang||"en"}t(e,t){if(!e)throw new Error("i18n: lookup key missing");let n=this.translations[e];if("number"==typeof(null==t?void 0:t.count)&&"object"==typeof n){const o=n[this.getPluralSuffix(e,t.count)];o&&(n=o)}if("string"==typeof n){if(n.match(/%{(.\S+)}/)){if(!t)throw new Error("i18n: cannot replace placeholders in string if no option data provided");return this.replacePlaceholders(n,t)}return n}return e}replacePlaceholders(e,t){const n=Intl.NumberFormat.supportedLocalesOf(this.locale).length?new Intl.NumberFormat(this.locale):void 0;return e.replace(/%{(.\S+)}/g,(function(e,o){if(Object.prototype.hasOwnProperty.call(t,o)){const e=t[o];return!1===e||"number"!=typeof e&&"string"!=typeof e?"":"number"==typeof e?n?n.format(e):`${e}`:e}throw new Error(`i18n: no data found to replace ${e} placeholder in string`)}))}hasIntlPluralRulesSupport(){return Boolean("PluralRules"in window.Intl&&Intl.PluralRules.supportedLocalesOf(this.locale).length)}getPluralSuffix(e,t){if(t=Number(t),!isFinite(t))return"other";const n=this.translations[e],o=this.hasIntlPluralRulesSupport()?new Intl.PluralRules(this.locale).select(t):this.selectPluralFormUsingFallbackRules(t);if("object"==typeof n){if(o in n)return o;if("other"in n)return console.warn(`i18n: Missing plural form ".${o}" for "${this.locale}" locale. Falling back to ".other".`),"other"}throw new Error(`i18n: Plural form ".other" is required for "${this.locale}" locale`)}selectPluralFormUsingFallbackRules(e){e=Math.abs(Math.floor(e));const t=this.getPluralRulesForLocale();return t?m.pluralRules[t](e):"other"}getPluralRulesForLocale(){const e=this.locale.split("-")[0];for(const t in m.pluralRulesMap){const n=m.pluralRulesMap[t];if(n.includes(this.locale)||n.includes(e))return t}}}m.pluralRulesMap={arabic:["ar"],chinese:["my","zh","id","ja","jv","ko","ms","th","vi"],french:["hy","bn","fr","gu","hi","fa","pa","zu"],german:["af","sq","az","eu","bg","ca","da","nl","en","et","fi","ka","de","el","hu","lb","no","so","sw","sv","ta","te","tr","ur"],irish:["ga"],russian:["ru","uk"],scottish:["gd"],spanish:["pt-PT","it","es"],welsh:["cy"]},m.pluralRules={arabic:e=>0===e?"zero":1===e?"one":2===e?"two":e%100>=3&&e%100<=10?"few":e%100>=11&&e%100<=99?"many":"other",chinese:()=>"other",french:e=>0===e||1===e?"one":"other",german:e=>1===e?"one":"other",irish:e=>1===e?"one":2===e?"two":e>=3&&e<=6?"few":e>=7&&e<=10?"many":"other",russian(e){const t=e%100,n=t%10;return 1===n&&11!==t?"one":n>=2&&n<=4&&!(t>=12&&t<=14)?"few":0===n||n>=5&&n<=9||t>=11&&t<=14?"many":"other"},scottish:e=>1===e||11===e?"one":2===e||12===e?"two":e>=3&&e<=10||e>=13&&e<=19?"few":"other",spanish:e=>1===e?"one":e%1e6==0&&0!==e?"many":"other",welsh:e=>0===e?"zero":1===e?"one":2===e?"two":3===e?"few":6===e?"many":"other"};
|
2
2
|
/**
|
3
3
|
* JavaScript enhancements for the Button component
|
4
4
|
*
|
@@ -6,7 +6,6 @@ $govuk-font-family: "Open Sans", sans-serif !default;
|
|
6
6
|
@import "govuk-frontend/dist/govuk/core";
|
7
7
|
@import "govuk-frontend/dist/govuk/objects";
|
8
8
|
|
9
|
-
@import "govuk-frontend/dist/govuk/components/button";
|
10
9
|
@import "govuk-frontend/dist/govuk/components/checkboxes";
|
11
10
|
@import "govuk-frontend/dist/govuk/components/date-input";
|
12
11
|
@import "govuk-frontend/dist/govuk/components/error-message";
|
@@ -11,6 +11,14 @@
|
|
11
11
|
.govuk-textarea {
|
12
12
|
margin-bottom: govuk-spacing(1);
|
13
13
|
}
|
14
|
+
|
15
|
+
// If the textarea enters the error state whilst the user is focused on it,
|
16
|
+
// show the error state. This presents feedback to the user that the value
|
17
|
+
// has become invalid without needing to see the counter.
|
18
|
+
.govuk-textarea--error:focus {
|
19
|
+
border-color: $govuk-error-colour;
|
20
|
+
box-shadow: inset 0 0 0 $govuk-border-width-form-element $govuk-error-colour;
|
21
|
+
}
|
14
22
|
}
|
15
23
|
|
16
24
|
.govuk-character-count__message {
|
@@ -3,7 +3,11 @@
|
|
3
3
|
@import "../label/index";
|
4
4
|
|
5
5
|
@include govuk-exports("govuk/component/file-upload") {
|
6
|
+
$file-upload-border-width: 2px;
|
6
7
|
$component-padding: govuk-spacing(1);
|
8
|
+
$empty-button-background-colour: govuk-colour("white");
|
9
|
+
$empty-pseudo-button-background-colour: govuk-colour("light-grey");
|
10
|
+
$empty-status-background-colour: govuk-tint(govuk-colour("blue"), 70%);
|
7
11
|
|
8
12
|
.govuk-file-upload {
|
9
13
|
@include govuk-font($size: 19);
|
@@ -46,6 +50,169 @@
|
|
46
50
|
cursor: not-allowed;
|
47
51
|
}
|
48
52
|
}
|
53
|
+
|
54
|
+
.govuk-drop-zone {
|
55
|
+
display: block;
|
56
|
+
position: relative;
|
57
|
+
z-index: 0;
|
58
|
+
background-color: $govuk-body-background-colour;
|
59
|
+
}
|
60
|
+
|
61
|
+
// required because disabling pointer events
|
62
|
+
// on the button means that the cursor style
|
63
|
+
// be applied on the button itself
|
64
|
+
.govuk-drop-zone--disabled {
|
65
|
+
cursor: not-allowed;
|
66
|
+
}
|
67
|
+
|
68
|
+
.govuk-file-upload-button__pseudo-button {
|
69
|
+
width: auto;
|
70
|
+
margin-right: govuk-spacing(2);
|
71
|
+
margin-bottom: $govuk-border-width-form-element + 1;
|
72
|
+
flex-shrink: 0;
|
73
|
+
}
|
74
|
+
|
75
|
+
.govuk-file-upload-button__instruction {
|
76
|
+
margin-top: govuk-spacing(2) - ($govuk-border-width-form-element + 1);
|
77
|
+
margin-bottom: 0;
|
78
|
+
text-align: left;
|
79
|
+
}
|
80
|
+
|
81
|
+
.govuk-file-upload-button__status {
|
82
|
+
display: block;
|
83
|
+
margin-bottom: govuk-spacing(2);
|
84
|
+
padding: govuk-spacing(3) govuk-spacing(2);
|
85
|
+
background-color: govuk-colour("white");
|
86
|
+
text-align: left;
|
87
|
+
}
|
88
|
+
|
89
|
+
// bugs documented with button using flex
|
90
|
+
// https://github.com/philipwalton/flexbugs#flexbug-9
|
91
|
+
// so we need a container here
|
92
|
+
.govuk-file-upload-button__pseudo-button-container {
|
93
|
+
display: flex;
|
94
|
+
align-items: baseline;
|
95
|
+
flex-wrap: wrap;
|
96
|
+
}
|
97
|
+
|
98
|
+
.govuk-file-upload-button {
|
99
|
+
width: 100%;
|
100
|
+
// align the padding to be same as notification banner and error summary accounting for the thicker borders
|
101
|
+
padding: (govuk-spacing(3) + $govuk-border-width - $file-upload-border-width);
|
102
|
+
border: $file-upload-border-width govuk-colour("mid-grey") solid;
|
103
|
+
background-color: govuk-colour("light-grey");
|
104
|
+
cursor: pointer;
|
105
|
+
|
106
|
+
@include govuk-media-query($from: tablet) {
|
107
|
+
padding: (govuk-spacing(4) + $govuk-border-width - $file-upload-border-width);
|
108
|
+
}
|
109
|
+
|
110
|
+
.govuk-file-upload-button__pseudo-button {
|
111
|
+
background-color: govuk-colour("white");
|
112
|
+
}
|
113
|
+
|
114
|
+
&:hover {
|
115
|
+
background-color: govuk-tint(govuk-colour("mid-grey"), 20%);
|
116
|
+
|
117
|
+
.govuk-file-upload-button__pseudo-button {
|
118
|
+
background-color: govuk-shade(govuk-colour("light-grey"), 10%);
|
119
|
+
}
|
120
|
+
|
121
|
+
.govuk-file-upload-button__status {
|
122
|
+
background-color: govuk-tint(govuk-colour("blue"), 80%);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
&:active,
|
127
|
+
&:focus {
|
128
|
+
border: $file-upload-border-width solid govuk-colour("black");
|
129
|
+
outline: $govuk-focus-width solid $govuk-focus-colour;
|
130
|
+
// Ensure outline appears outside of the element
|
131
|
+
outline-offset: 0;
|
132
|
+
background-color: govuk-tint(govuk-colour("mid-grey"), 20%);
|
133
|
+
// Double the border by adding its width again. Use `box-shadow` for this
|
134
|
+
// instead of changing `border-width` - this is for consistency with
|
135
|
+
// components such as textarea where we avoid changing `border-width` as
|
136
|
+
// it will change the element size. Also, `outline` cannot be utilised
|
137
|
+
// here as it is already used for the yellow focus state.
|
138
|
+
box-shadow: inset 0 0 0 $govuk-border-width-form-element;
|
139
|
+
|
140
|
+
.govuk-file-upload-button__pseudo-button {
|
141
|
+
background-color: $govuk-focus-colour;
|
142
|
+
box-shadow: 0 2px 0 govuk-colour("black");
|
143
|
+
}
|
144
|
+
|
145
|
+
&:hover .govuk-file-upload-button__pseudo-button {
|
146
|
+
border-color: $govuk-focus-colour;
|
147
|
+
outline: 3px solid transparent;
|
148
|
+
background-color: govuk-colour("light-grey");
|
149
|
+
box-shadow: inset 0 0 0 1px $govuk-focus-colour;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
.govuk-file-upload-button--empty {
|
155
|
+
border-style: dashed;
|
156
|
+
background-color: $empty-button-background-colour;
|
157
|
+
|
158
|
+
.govuk-file-upload-button__pseudo-button {
|
159
|
+
background-color: $empty-pseudo-button-background-colour;
|
160
|
+
}
|
161
|
+
|
162
|
+
.govuk-file-upload-button__status {
|
163
|
+
color: govuk-shade(govuk-colour("blue"), 60%);
|
164
|
+
background-color: $empty-status-background-colour;
|
165
|
+
}
|
166
|
+
|
167
|
+
&:hover,
|
168
|
+
&:focus,
|
169
|
+
&:active {
|
170
|
+
background-color: govuk-colour("light-grey");
|
171
|
+
|
172
|
+
.govuk-file-upload-button__status {
|
173
|
+
background-color: govuk-tint(govuk-colour("blue"), 80%);
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
.govuk-file-upload-button--dragging {
|
179
|
+
border-style: solid;
|
180
|
+
border-color: govuk-colour("black");
|
181
|
+
|
182
|
+
// extra specificity to apply when
|
183
|
+
// empty
|
184
|
+
&.govuk-file-upload-button {
|
185
|
+
background-color: govuk-tint(govuk-colour("mid-grey"), 20%);
|
186
|
+
}
|
187
|
+
|
188
|
+
&.govuk-file-upload-button--empty {
|
189
|
+
background-color: govuk-colour("light-grey");
|
190
|
+
}
|
191
|
+
|
192
|
+
&.govuk-file-upload-button--empty:not(:disabled) .govuk-file-upload-button__status,
|
193
|
+
&.govuk-file-upload-button--empty .govuk-file-upload-button__pseudo-button {
|
194
|
+
background-color: govuk-colour("white");
|
195
|
+
}
|
196
|
+
|
197
|
+
.govuk-file-upload-button__pseudo-button {
|
198
|
+
background-color: govuk-shade(govuk-colour("light-grey"), 10%);
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
.govuk-file-upload-button:disabled {
|
203
|
+
pointer-events: none;
|
204
|
+
opacity: 0.5;
|
205
|
+
|
206
|
+
background-color: $empty-button-background-colour;
|
207
|
+
|
208
|
+
.govuk-file-upload-button__pseudo-button {
|
209
|
+
background-color: $empty-pseudo-button-background-colour;
|
210
|
+
}
|
211
|
+
|
212
|
+
.govuk-file-upload-button__status {
|
213
|
+
background-color: $empty-status-background-colour;
|
214
|
+
}
|
215
|
+
}
|
49
216
|
}
|
50
217
|
|
51
218
|
/*# sourceMappingURL=_index.scss.map */
|
@@ -204,18 +204,9 @@
|
|
204
204
|
|
205
205
|
.govuk-header__menu-button {
|
206
206
|
@include govuk-font($size: 16);
|
207
|
-
position: absolute;
|
208
|
-
// calculate top offset by:
|
209
|
-
// - getting the vertical spacing for the top and the bottom of the header
|
210
|
-
// - adding that to the crown height
|
211
|
-
// - dividing it by 2 so you have the vertical centre of the header
|
212
|
-
// - subtracting half the height of the menu button
|
213
|
-
top: (((govuk-spacing($govuk-header-vertical-spacing-value) * 2) + $govuk-header-crown-height) / 2) -
|
214
|
-
($govuk-header-menu-button-height / 2);
|
215
|
-
right: 0;
|
216
207
|
max-width: $govuk-header-menu-button-width;
|
217
208
|
min-height: $govuk-header-menu-button-height;
|
218
|
-
margin:
|
209
|
+
margin-bottom: govuk-spacing(1);
|
219
210
|
padding: 0;
|
220
211
|
border: 0;
|
221
212
|
color: govuk-colour("white");
|
@@ -246,6 +237,19 @@
|
|
246
237
|
@include govuk-shape-arrow($direction: up, $base: 10px, $display: inline-block);
|
247
238
|
}
|
248
239
|
|
240
|
+
@include govuk-media-query($from: mobile) {
|
241
|
+
position: absolute;
|
242
|
+
// calculate top offset by:
|
243
|
+
// - getting the vertical spacing for the top and the bottom of the header
|
244
|
+
// - adding that to the crown height
|
245
|
+
// - dividing it by 2 so you have the vertical centre of the header
|
246
|
+
// - subtracting half the height of the menu button
|
247
|
+
top: (((govuk-spacing($govuk-header-vertical-spacing-value) * 2) + $govuk-header-crown-height) / 2) -
|
248
|
+
($govuk-header-menu-button-height / 2);
|
249
|
+
right: 0;
|
250
|
+
margin: 0;
|
251
|
+
}
|
252
|
+
|
249
253
|
@include govuk-media-query($from: tablet) {
|
250
254
|
top: govuk-spacing(3);
|
251
255
|
}
|
@@ -96,18 +96,21 @@
|
|
96
96
|
padding: 0; // Reset default user agent styles
|
97
97
|
}
|
98
98
|
|
99
|
-
.govuk-summary-list__actions-list-item
|
99
|
+
.govuk-summary-list__actions-list-item,
|
100
|
+
.govuk-summary-card__action {
|
100
101
|
display: inline-block;
|
101
102
|
}
|
102
103
|
|
103
104
|
@include govuk-media-query($until: tablet) {
|
104
|
-
.govuk-summary-list__actions-list-item
|
105
|
+
.govuk-summary-list__actions-list-item,
|
106
|
+
.govuk-summary-card__action {
|
105
107
|
margin-right: govuk-spacing(2);
|
106
108
|
padding-right: govuk-spacing(2);
|
107
109
|
border-right: 1px solid $govuk-border-colour;
|
108
110
|
}
|
109
111
|
|
110
|
-
.govuk-summary-list__actions-list-item:last-child
|
112
|
+
.govuk-summary-list__actions-list-item:last-child,
|
113
|
+
.govuk-summary-card__action:last-child {
|
111
114
|
margin-right: 0;
|
112
115
|
padding-right: 0;
|
113
116
|
border: 0;
|
@@ -115,16 +118,19 @@
|
|
115
118
|
}
|
116
119
|
|
117
120
|
@include govuk-media-query($from: tablet) {
|
118
|
-
.govuk-summary-list__actions-list-item
|
121
|
+
.govuk-summary-list__actions-list-item,
|
122
|
+
.govuk-summary-card__action {
|
119
123
|
margin-left: govuk-spacing(2);
|
120
124
|
padding-left: govuk-spacing(2);
|
121
125
|
}
|
122
126
|
|
123
|
-
.govuk-summary-list__actions-list-item:not(:first-child)
|
127
|
+
.govuk-summary-list__actions-list-item:not(:first-child),
|
128
|
+
.govuk-summary-card__action:not(:first-child) {
|
124
129
|
border-left: 1px solid $govuk-border-colour;
|
125
130
|
}
|
126
131
|
|
127
|
-
.govuk-summary-list__actions-list-item:first-child
|
132
|
+
.govuk-summary-list__actions-list-item:first-child,
|
133
|
+
.govuk-summary-card__action:first-child {
|
128
134
|
margin-left: 0;
|
129
135
|
padding-left: 0;
|
130
136
|
border: 0;
|
@@ -220,13 +226,6 @@
|
|
220
226
|
|
221
227
|
.govuk-summary-card__action {
|
222
228
|
display: inline;
|
223
|
-
margin: 0 govuk-spacing(2) 0 0;
|
224
|
-
padding-right: govuk-spacing(2);
|
225
|
-
border-right: 1px solid $govuk-border-colour;
|
226
|
-
|
227
|
-
@include govuk-media-query($from: "tablet") {
|
228
|
-
margin-right: 0;
|
229
|
-
}
|
230
229
|
|
231
230
|
// We use the following media query to target IE11 and 10 only to add margin
|
232
231
|
// between actions.
|
@@ -243,14 +242,6 @@
|
|
243
242
|
}
|
244
243
|
|
245
244
|
.govuk-summary-card__action:last-child {
|
246
|
-
margin: 0;
|
247
|
-
padding-right: 0;
|
248
|
-
border-right: none;
|
249
|
-
|
250
|
-
@include govuk-media-query($from: "tablet") {
|
251
|
-
padding-left: govuk-spacing(2);
|
252
|
-
}
|
253
|
-
|
254
245
|
// See above comment for why this is here
|
255
246
|
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
256
247
|
margin-bottom: 0;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
:root {
|
2
2
|
// This variable is automatically overwritten during builds and releases.
|
3
3
|
// It doesn't need to be updated manually.
|
4
|
-
--govuk-frontend-version: "5.
|
4
|
+
--govuk-frontend-version: "5.9.0";
|
5
5
|
|
6
6
|
// CSS custom property for each breakpoint
|
7
7
|
@each $name, $value in $govuk-breakpoints {
|
@@ -67,7 +67,7 @@
|
|
67
67
|
}
|
68
68
|
|
69
69
|
// Output a warning if $websafe is set.
|
70
|
-
@if $websafe and
|
70
|
+
@if $websafe and _should-warn("organisation-colour-websafe-param") {
|
71
71
|
@warn _warning-text("organisation-colour-websafe-param",
|
72
72
|
"The `$websafe` parameter of `govuk-organisation-colour` has been " +
|
73
73
|
"renamed to `$contrast-safe`. The old parameter name will be removed in " +
|
@@ -77,7 +77,7 @@
|
|
77
77
|
|
78
78
|
$org-colour: map-get($govuk-colours-organisations, $organisation);
|
79
79
|
|
80
|
-
@if map-has-key($org-colour, deprecation-message) and
|
80
|
+
@if map-has-key($org-colour, deprecation-message) and _should-warn("organisation-colours") {
|
81
81
|
@warn _warning-text(
|
82
82
|
"organisation-colours",
|
83
83
|
map-get($org-colour, deprecation-message)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
@import "../settings/warnings";
|
2
|
+
|
1
3
|
////
|
2
4
|
/// @group settings/colours
|
3
5
|
////
|
@@ -11,6 +13,7 @@
|
|
11
13
|
///
|
12
14
|
/// @type Boolean
|
13
15
|
/// @access public
|
16
|
+
/// @deprecated Using new organisation colours will become the default in Frontend v6.0.
|
14
17
|
|
15
18
|
$govuk-new-organisation-colours: false !default;
|
16
19
|
|
@@ -211,6 +214,7 @@ $_govuk-organisation-colours: (
|
|
211
214
|
/// nor provide better contrast than the base colour.
|
212
215
|
///
|
213
216
|
/// @access private
|
217
|
+
/// @deprecated Migrate to using the new organisation colour palette instead.
|
214
218
|
|
215
219
|
$_govuk-legacy-organisation-colours: (
|
216
220
|
"attorney-generals-office": (
|
@@ -349,11 +353,20 @@ $_govuk-legacy-organisation-colours: (
|
|
349
353
|
/// @type Map
|
350
354
|
/// @access public
|
351
355
|
|
352
|
-
$govuk-colours-organisations:
|
353
|
-
|
354
|
-
|
355
|
-
$_govuk-
|
356
|
-
|
356
|
+
$govuk-colours-organisations: $_govuk-legacy-organisation-colours !default;
|
357
|
+
|
358
|
+
@if $govuk-new-organisation-colours and $govuk-colours-organisations == $_govuk-legacy-organisation-colours {
|
359
|
+
$govuk-colours-organisations: $_govuk-organisation-colours;
|
360
|
+
}
|
361
|
+
|
362
|
+
// Output a deprecation warning if the legacy colour palette is being used.
|
363
|
+
// Remove in next major version.
|
364
|
+
@if $govuk-colours-organisations == $_govuk-legacy-organisation-colours {
|
365
|
+
@include _warning(
|
366
|
+
"legacy-organisation-colours",
|
367
|
+
"The legacy organisation colour palette has been deprecated and will be removed in the next major version."
|
368
|
+
);
|
369
|
+
}
|
357
370
|
|
358
371
|
/// Organisation colour aliases
|
359
372
|
///
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katalyst-govuk-formbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katalyst Interactive
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-03-14 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: govuk_design_system_formbuilder
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version:
|
18
|
+
version: 5.8.0
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
25
|
+
version: 5.8.0
|
26
26
|
description: UK.GOV form builder ready for use in Katalyst projects
|
27
27
|
email:
|
28
28
|
- developers@katalyst.com.au
|