@ministryofjustice/frontend 3.3.1 → 3.5.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.
Files changed (83) hide show
  1. package/README.md +4 -10
  2. package/govuk-prototype-kit.config.json +5 -16
  3. package/moj/all.jquery.min.js +15 -4
  4. package/moj/all.js +2856 -2280
  5. package/moj/all.scss +2 -0
  6. package/moj/components/_all.scss +1 -0
  7. package/moj/components/action-bar/_action-bar.scss +4 -6
  8. package/moj/components/add-another/_add-another.scss +9 -7
  9. package/moj/components/add-another/add-another.js +128 -76
  10. package/moj/components/alert/README.md +0 -0
  11. package/moj/components/alert/_alert.scss +142 -0
  12. package/moj/components/alert/alert.js +482 -0
  13. package/moj/components/alert/alert.spec.helper.js +92 -0
  14. package/moj/components/alert/macro.njk +3 -0
  15. package/moj/components/alert/template.njk +83 -0
  16. package/moj/components/badge/_badge.scss +3 -4
  17. package/moj/components/banner/_banner.scss +5 -10
  18. package/moj/components/button-menu/_button-menu.scss +10 -9
  19. package/moj/components/button-menu/button-menu.js +348 -318
  20. package/moj/components/cookie-banner/_cookie-banner.scss +6 -5
  21. package/moj/components/currency-input/_currency-input.scss +4 -4
  22. package/moj/components/date-picker/README.md +14 -17
  23. package/moj/components/date-picker/_date-picker.scss +122 -106
  24. package/moj/components/date-picker/date-picker.js +927 -900
  25. package/moj/components/filter/README.md +1 -1
  26. package/moj/components/filter/_filter.scss +53 -75
  27. package/moj/components/filter-toggle-button/filter-toggle-button.js +122 -87
  28. package/moj/components/form-validator/form-validator.js +399 -156
  29. package/moj/components/header/_header.scss +17 -19
  30. package/moj/components/identity-bar/_identity-bar.scss +5 -5
  31. package/moj/components/interruption-card/_interruption-card.scss +2 -2
  32. package/moj/components/messages/_messages.scss +12 -19
  33. package/moj/components/multi-file-upload/README.md +1 -1
  34. package/moj/components/multi-file-upload/_multi-file-upload.scss +34 -30
  35. package/moj/components/multi-file-upload/multi-file-upload.js +454 -183
  36. package/moj/components/multi-select/_multi-select.scss +4 -3
  37. package/moj/components/multi-select/multi-select.js +106 -70
  38. package/moj/components/notification-badge/_notification-badge.scss +12 -12
  39. package/moj/components/organisation-switcher/_organisation-switcher.scss +1 -1
  40. package/moj/components/page-header-actions/_page-header-actions.scss +3 -2
  41. package/moj/components/pagination/_pagination.scss +26 -31
  42. package/moj/components/password-reveal/_password-reveal.scss +1 -2
  43. package/moj/components/password-reveal/password-reveal.js +63 -31
  44. package/moj/components/primary-navigation/_primary-navigation.scss +26 -29
  45. package/moj/components/progress-bar/_progress-bar.scss +21 -26
  46. package/moj/components/rich-text-editor/_rich-text-editor.scss +17 -16
  47. package/moj/components/rich-text-editor/rich-text-editor.js +186 -139
  48. package/moj/components/search/_search.scss +6 -4
  49. package/moj/components/search-toggle/search-toggle.js +83 -53
  50. package/moj/components/search-toggle/search-toggle.scss +21 -15
  51. package/moj/components/side-navigation/_side-navigation.scss +12 -21
  52. package/moj/components/sortable-table/_sortable-table.scss +25 -23
  53. package/moj/components/sortable-table/sortable-table.js +162 -119
  54. package/moj/components/sub-navigation/_sub-navigation.scss +24 -28
  55. package/moj/components/tag/_tag.scss +8 -9
  56. package/moj/components/task-list/_task-list.scss +8 -7
  57. package/moj/components/ticket-panel/_ticket-panel.scss +14 -6
  58. package/moj/components/timeline/_timeline.scss +18 -20
  59. package/moj/filters/all.js +28 -30
  60. package/moj/filters/prototype-kit-13-filters.js +2 -1
  61. package/moj/helpers/_all.scss +1 -0
  62. package/moj/helpers/_hidden.scss +1 -1
  63. package/moj/helpers/_links.scss +20 -0
  64. package/moj/helpers.js +218 -51
  65. package/moj/init.js +2 -2
  66. package/moj/moj-frontend.min.css +2 -2
  67. package/moj/moj-frontend.min.js +15 -4
  68. package/moj/objects/_filter-layout.scss +11 -10
  69. package/moj/objects/_scrollable-pane.scss +11 -14
  70. package/moj/settings/_colours.scss +5 -0
  71. package/moj/settings/_measurements.scss +0 -2
  72. package/moj/utilities/_hidden.scss +3 -3
  73. package/moj/utilities/_width-container.scss +1 -1
  74. package/moj/version.js +28 -1
  75. package/package.json +1 -1
  76. package/moj/all.spec.js +0 -22
  77. package/moj/components/button-menu/button-menu.spec.js +0 -361
  78. package/moj/components/date-picker/date-picker.spec.js +0 -1130
  79. package/moj/components/filter-toggle-button/filter-toggle-button.spec.js +0 -304
  80. package/moj/components/multi-select/multi-select.spec.js +0 -135
  81. package/moj/components/password-reveal/password-reveal.spec.js +0 -55
  82. package/moj/components/search-toggle/search-toggle.spec.js +0 -134
  83. package/moj/namespace.js +0 -1
@@ -3,9 +3,9 @@
3
3
  ========================================================================== */
4
4
 
5
5
  .moj-header {
6
- background-color: govuk-colour("black");
7
6
  padding-top: govuk-spacing(3);
8
7
  border-bottom: 10px solid $govuk-brand-colour;
8
+ background-color: govuk-colour("black");
9
9
  }
10
10
 
11
11
  .moj-header__container {
@@ -20,7 +20,6 @@
20
20
  @include govuk-media-query($from: desktop) {
21
21
  float: left;
22
22
  }
23
-
24
23
  }
25
24
 
26
25
  .moj-header__logotype-crown {
@@ -28,7 +27,6 @@
28
27
  top: -4px;
29
28
  margin-right: govuk-spacing(1);
30
29
  vertical-align: top;
31
-
32
30
  }
33
31
 
34
32
  .moj-header__logotype-crest {
@@ -44,19 +42,19 @@
44
42
  @include govuk-media-query($from: desktop) {
45
43
  float: right;
46
44
  }
47
-
48
45
  }
49
46
 
50
- .moj-header__link, .moj-header__link > a {
47
+ .moj-header__link,
48
+ .moj-header__link > a {
51
49
  @include govuk-link-common;
52
50
  @include govuk-link-style-default;
53
- border-bottom: 1px solid transparent;
54
- color: govuk-colour("white");
55
51
  display: inline-block;
56
- text-decoration: none;
57
- line-height: 25px; // Override due to alignment issue in Chrome
58
52
  margin-bottom: -1px;
59
53
  overflow: hidden; // Fixes focus gaps in background colour
54
+ border-bottom: 1px solid transparent;
55
+ color: govuk-colour("white");
56
+ line-height: 25px; // Override due to alignment issue in Chrome
57
+ text-decoration: none;
60
58
  vertical-align: middle;
61
59
 
62
60
  &:link,
@@ -78,6 +76,7 @@
78
76
  &--organisation-name {
79
77
  @include govuk-font($size: 24, $weight: "bold");
80
78
  vertical-align: middle;
79
+
81
80
  &:hover {
82
81
  border-color: transparent;
83
82
  }
@@ -93,6 +92,7 @@
93
92
  @include govuk-media-query($from: desktop) {
94
93
  margin-left: govuk-spacing(1);
95
94
  }
95
+
96
96
  &:hover {
97
97
  border-color: transparent;
98
98
  }
@@ -100,20 +100,19 @@
100
100
  }
101
101
 
102
102
  .moj-header__link a {
103
- vertical-align: text-bottom;
104
103
  margin-bottom: 1px;
104
+ vertical-align: text-bottom;
105
105
 
106
106
  &:hover {
107
107
  border-color: govuk-colour("white");
108
108
  }
109
109
 
110
110
  @include govuk-media-query($until: desktop) {
111
- vertical-align: middle;
112
111
  margin-bottom: -1px;
112
+ vertical-align: middle;
113
113
  }
114
114
  }
115
-
116
-
115
+ // stylelint-disable-next-line selector-no-qualifying-type
117
116
  span.moj-header__link {
118
117
  &:hover {
119
118
  border-color: transparent;
@@ -122,15 +121,15 @@ span.moj-header__link {
122
121
 
123
122
  // Navigation
124
123
  .moj-header__navigation {
124
+ margin-top: govuk-spacing(1) - 2px;
125
125
  color: govuk-colour("white");
126
- margin-top: govuk-spacing(1)-2px;
127
126
  }
128
127
 
129
128
  .moj-header__navigation-list {
130
- font-size: 0; // Removes white space when using inline-block on child element.
131
- list-style: none;
132
129
  margin: 0;
133
130
  padding: 0;
131
+ font-size: 0; // Removes white space when using inline-block on child element.
132
+ list-style: none;
134
133
  }
135
134
 
136
135
  .moj-header__navigation-item {
@@ -141,7 +140,6 @@ span.moj-header__link {
141
140
  &:last-child {
142
141
  margin-right: 0;
143
142
  }
144
-
145
143
  }
146
144
 
147
145
  .moj-header__navigation-link {
@@ -156,15 +154,15 @@ span.moj-header__link {
156
154
  }
157
155
 
158
156
  &:hover {
157
+ // stylelint-disable-next-line declaration-no-important
159
158
  text-decoration: underline !important;
160
159
  }
161
160
 
162
161
  &:focus {
163
162
  color: govuk-colour("black");
164
163
  }
165
-
166
164
  }
167
165
 
168
- .moj-header__navigation-link[aria-current=page] {
166
+ .moj-header__navigation-link[aria-current="page"] {
169
167
  text-decoration: none;
170
168
  }
@@ -4,11 +4,11 @@
4
4
 
5
5
  .moj-identity-bar {
6
6
  @include govuk-clearfix;
7
+ padding-top: govuk-spacing(2);
8
+ padding-bottom: govuk-spacing(2) - 1px; /* Negative by 1px to compensate */
9
+ color: govuk-colour("black");
7
10
  background-color: govuk-colour("white");
8
11
  box-shadow: inset 0 -1px 0 0 govuk-colour("mid-grey"); /* Takes up no space */
9
- color: govuk-colour("black");
10
- padding-bottom: govuk-spacing(2) - 1px; /* Negative by 1px to compensate */
11
- padding-top: govuk-spacing(2);
12
12
  }
13
13
 
14
14
  .moj-identity-bar__container {
@@ -16,7 +16,7 @@
16
16
  font-size: 0; /* Hide whitespace between elements */
17
17
  text-align: justify; /* Trick to remove the need for floats */
18
18
 
19
- &:after {
19
+ &::after {
20
20
  content: "";
21
21
  display: inline-block;
22
22
  width: 100%;
@@ -36,9 +36,9 @@
36
36
 
37
37
  @include govuk-media-query($from: tablet) {
38
38
  display: inline-block;
39
- vertical-align: top;
40
39
  padding-top: govuk-spacing(2) + 1px; /* Alignment tweaks */
41
40
  padding-bottom: govuk-spacing(2) - 1px; /* Alignment tweaks */
41
+ vertical-align: top;
42
42
  }
43
43
  }
44
44
 
@@ -1,8 +1,8 @@
1
1
  .moj-interruption-card {
2
- background-color: govuk-colour("blue");
3
2
  margin-bottom: govuk-spacing(3);
4
- @include govuk-responsive-padding(7, $adjustment: $govuk-border-width*-1);
5
3
  border: $govuk-border-width solid transparent;
4
+ background-color: govuk-colour("blue");
5
+ @include govuk-responsive-padding(7, $adjustment: $govuk-border-width * -1);
6
6
  }
7
7
 
8
8
  .moj-interruption-card__content {
@@ -9,38 +9,37 @@
9
9
 
10
10
  .moj-message-list {
11
11
  min-height: 200px;
12
- overflow-y: scroll;
13
- overflow-x: hidden;
14
12
  padding: govuk-spacing(1);
13
+ overflow-x: hidden;
14
+ overflow-y: scroll;
15
15
 
16
16
  &__date {
17
17
  @include govuk-font($size: 19, $weight: "bold");
18
+ display: inline-block;
19
+ width: 100%;
18
20
  padding: govuk-spacing(3) 0;
19
21
  color: govuk-colour("dark-grey");
20
- display: inline-block;
21
22
  text-align: center;
22
- width: 100%;
23
23
  }
24
-
25
24
  }
26
25
 
27
26
  .moj-message-item {
28
- border-radius: 0.5em 0.5em 0.75em 0.5em;
27
+ position: relative;
29
28
  margin-bottom: govuk-spacing(1);
30
29
  padding: govuk-spacing(3);
31
- position: relative;
30
+ border-radius: 0.5em 0.5em 0.75em;
32
31
 
33
32
  @include govuk-media-query($from: tablet) {
34
33
  width: 50%;
35
34
  }
36
35
 
37
36
  &--sent {
38
- color: govuk-colour("white");
39
- background-color: $govuk-brand-colour;
40
37
  margin-right: govuk-spacing(2);
41
38
  padding-right: govuk-spacing(5);
42
- text-align: right;
43
39
  float: right;
40
+ color: govuk-colour("white");
41
+ background-color: $govuk-brand-colour;
42
+ text-align: right;
44
43
 
45
44
  &::after {
46
45
  content: "";
@@ -55,24 +54,22 @@
55
54
  }
56
55
 
57
56
  &--received {
58
- background-color: govuk-colour("light-grey");
59
- float: left;
60
57
  margin-left: govuk-spacing(2);
61
58
  padding-left: govuk-spacing(5);
59
+ float: left;
60
+ background-color: govuk-colour("light-grey");
62
61
 
63
62
  &::after {
64
63
  content: "";
65
64
  position: absolute;
66
- left: -1.5em;
67
65
  bottom: 0;
66
+ left: -1.5em;
68
67
  width: 1.5em;
69
68
  height: 1.5em;
70
69
  border-right: 1em solid govuk-colour("light-grey");
71
70
  border-bottom-right-radius: 1.75em 1.5em;
72
71
  }
73
-
74
72
  }
75
-
76
73
  }
77
74
 
78
75
  .moj-message-item a:link,
@@ -85,7 +82,6 @@
85
82
  }
86
83
 
87
84
  .moj-message-item__text {
88
-
89
85
  &--sent table {
90
86
  color: govuk-colour("white");
91
87
 
@@ -93,9 +89,7 @@
93
89
  & td {
94
90
  border-bottom: 1px solid govuk-colour("white");
95
91
  }
96
-
97
92
  }
98
-
99
93
  }
100
94
 
101
95
  .moj-message-item__meta {
@@ -108,5 +102,4 @@
108
102
  &--timestamp {
109
103
  @include govuk-font($size: 16, $weight: "bold");
110
104
  }
111
-
112
105
  }
@@ -1 +1 @@
1
- # Multi file upload
1
+ # Multi file upload
@@ -1,66 +1,70 @@
1
1
  .moj-multi-file-upload {
2
- margin-bottom: 40px;
2
+ margin-bottom: 40px;
3
3
  }
4
4
 
5
5
  .moj-multi-file-upload--enhanced .moj-multi-file-upload__button {
6
- display: none;
6
+ display: none;
7
7
  }
8
8
 
9
9
  .moj-multi-file-upload__dropzone {
10
- outline: 3px dashed govuk-colour('black');
11
- display: flex;
12
- text-align: center;
13
- padding: govuk-spacing(9) govuk-spacing(3);
14
- transition: outline-offset .1s ease-in-out, background-color .1s linear;
10
+ display: flex;
11
+ padding: govuk-spacing(9) govuk-spacing(3);
12
+ transition:
13
+ outline-offset 0.1s ease-in-out,
14
+ background-color 0.1s linear;
15
+ outline: 3px dashed govuk-colour("black");
16
+ text-align: center;
15
17
  }
16
18
 
17
19
  .moj-multi-file-upload__dropzone label {
18
- margin-bottom: 0;
19
- display: inline-block;
20
- width: auto;
20
+ display: inline-block;
21
+ width: auto;
22
+ margin-bottom: 0;
21
23
  }
22
24
 
23
25
  .moj-multi-file-upload__dropzone p {
24
- margin-bottom: 0;
25
26
  margin-right: 10px;
27
+ margin-bottom: 0;
26
28
  padding-top: 7px;
27
29
  }
28
30
 
29
- .moj-multi-file-upload__dropzone [type=file] {
30
- position: absolute;
31
- left: -9999em;
31
+ .moj-multi-file-upload__dropzone [type="file"] {
32
+ position: absolute;
33
+ left: -9999em;
32
34
  }
33
35
 
34
36
  .moj-multi-file-upload--dragover {
35
- background: #b1b4b6;
36
- outline-color: #6f777b;
37
+ outline-color: #6f777b;
38
+ background: #b1b4b6;
37
39
  }
38
40
 
39
41
  .moj-multi-file-upload--focused {
40
- background-color: $govuk-focus-colour;
41
- color: $govuk-focus-text-colour;
42
- box-shadow: 0 -2px $govuk-focus-colour, 0 4px $govuk-focus-text-colour;
43
42
  outline: none;
43
+ color: $govuk-focus-text-colour;
44
+ background-color: $govuk-focus-colour;
45
+ box-shadow:
46
+ 0 -2px $govuk-focus-colour,
47
+ 0 4px $govuk-focus-text-colour;
44
48
  }
45
49
 
46
50
  .moj-multi-file-upload__error {
47
- color: govuk-colour('red');
48
- font-weight: bold;
51
+ color: govuk-colour("red");
52
+ font-weight: bold;
49
53
  }
50
54
 
51
55
  .moj-multi-file-upload__success {
52
- color: govuk-colour('green');
53
- font-weight: bold;
56
+ color: govuk-colour("green");
57
+ font-weight: bold;
54
58
  }
55
59
 
56
60
  .moj-multi-file-upload__error svg {
57
- fill: currentColor;
58
- float: left;
59
- margin-right: govuk-spacing(2);
61
+ margin-right: govuk-spacing(2);
62
+ float: left;
63
+ fill: currentcolor;
60
64
  }
61
65
 
62
66
  .moj-multi-file-upload__success svg {
63
- fill: currentColor;
64
- float: left;
65
- margin-right: govuk-spacing(2);
66
- }
67
+ margin-right: govuk-spacing(2);
68
+ float: left;
69
+ fill: currentcolor;
70
+ }