govuk_publishing_components 62.0.0 → 62.2.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 (196) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/option-select.js +4 -3
  3. data/app/assets/javascripts/govuk_publishing_components/lib/filter-list.js +48 -0
  4. data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +373 -245
  5. data/app/assets/stylesheets/component_guide/application.scss +1 -42
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +5 -1
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +6 -11
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +34 -165
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +9 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_option-select.scss +2 -2
  11. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +6 -38
  12. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +2 -3
  13. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +6 -1
  14. data/app/controllers/govuk_publishing_components/applications_page_controller.rb +50 -0
  15. data/app/models/govuk_publishing_components/applications_page.rb +64 -0
  16. data/app/views/govuk_publishing_components/applications_page/_table-content.html.erb +39 -0
  17. data/app/views/govuk_publishing_components/applications_page/show.html.erb +37 -0
  18. data/app/views/govuk_publishing_components/audit/show.html.erb +5 -1
  19. data/app/views/govuk_publishing_components/component_guide/_component_list.html.erb +14 -0
  20. data/app/views/govuk_publishing_components/component_guide/example.html.erb +3 -3
  21. data/app/views/govuk_publishing_components/component_guide/index.html.erb +50 -75
  22. data/app/views/govuk_publishing_components/component_guide/show.html.erb +7 -7
  23. data/app/views/govuk_publishing_components/components/_image_card.html.erb +11 -13
  24. data/app/views/govuk_publishing_components/components/_inverse_header.html.erb +1 -0
  25. data/app/views/govuk_publishing_components/components/contextual_sidebar/_ukraine_cta.html.erb +27 -25
  26. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +6 -0
  27. data/app/views/govuk_publishing_components/components/docs/inverse_header.yml +14 -0
  28. data/app/views/govuk_publishing_components/components/docs/organisation_logo.yml +7 -1
  29. data/config/routes.rb +1 -0
  30. data/lib/govuk_publishing_components/minitest/component_guide_test.rb +1 -1
  31. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +0 -1
  32. data/lib/govuk_publishing_components/presenters/organisation_logo_helper.rb +7 -1
  33. data/lib/govuk_publishing_components/version.rb +1 -1
  34. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +37 -133
  35. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -1
  36. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +37 -133
  37. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -1
  38. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
  39. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +4 -4
  40. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss.map +1 -1
  41. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +1 -126
  42. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -1
  43. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +1 -126
  44. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -1
  45. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +1 -1
  46. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss.map +1 -1
  47. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +2 -2
  48. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss.map +1 -1
  49. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +1 -126
  50. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -1
  51. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +1 -126
  52. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -1
  53. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/fixtures.json +34 -29
  54. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/macro-options.json +1 -1
  55. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-default.html +23 -23
  56. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-conditional-reveal.html +21 -21
  57. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-divider-and-none.html +30 -30
  58. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-error.html +26 -26
  59. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-hint.html +25 -25
  60. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-long-text.html +23 -23
  61. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small.html +23 -23
  62. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items.html +35 -35
  63. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-and-none.html +30 -30
  64. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-none-and-conditional-items.html +40 -40
  65. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message.html +32 -32
  66. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-hint.html +25 -25
  67. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-hints-on-items.html +21 -21
  68. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-legend-as-a-page-heading.html +27 -27
  69. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-optional-form-group-classes-showing-group-error.html +36 -36
  70. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-pre-checked-values.html +35 -35
  71. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-very-long-option-text.html +25 -25
  72. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template.njk +1 -1
  73. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss +1 -1
  74. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss.map +1 -1
  75. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +1 -126
  76. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -1
  77. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +1 -126
  78. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -1
  79. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +2 -1
  80. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss.map +1 -1
  81. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.js +36 -132
  82. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.js.map +1 -1
  83. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.mjs +36 -132
  84. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.mjs.map +1 -1
  85. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs +35 -6
  86. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs.map +1 -1
  87. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/fixtures.json +17 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-enhanced-multiple-files.html +10 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +4 -4
  90. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss.map +1 -1
  91. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +20 -20
  92. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss.map +1 -1
  93. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +7 -15
  94. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss.map +1 -1
  95. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +2 -2
  96. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss.map +1 -1
  97. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +4 -2
  98. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss.map +1 -1
  99. data/node_modules/govuk-frontend/dist/govuk/components/pagination/fixtures.json +1 -1
  100. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-many-pages.html +2 -2
  101. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template.njk +1 -1
  102. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +2 -2
  103. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss.map +1 -1
  104. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +2 -2
  105. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss.map +1 -1
  106. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +1 -126
  107. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -1
  108. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +1 -126
  109. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -1
  110. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +1 -1
  111. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss.map +1 -1
  112. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +1 -1
  113. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss.map +1 -1
  114. data/node_modules/govuk-frontend/dist/govuk/components/radios/fixtures.json +36 -31
  115. data/node_modules/govuk-frontend/dist/govuk/components/radios/macro-options.json +3 -3
  116. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-default.html +17 -17
  117. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-inline.html +19 -19
  118. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline.html +23 -23
  119. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-a-divider.html +24 -24
  120. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-conditional-reveal.html +27 -27
  121. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-error.html +26 -26
  122. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-hint.html +25 -25
  123. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-long-text.html +23 -23
  124. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small.html +23 -23
  125. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-divider.html +24 -24
  126. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-item-checked.html +35 -35
  127. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-and-pre-checked-value.html +35 -35
  128. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items.html +35 -35
  129. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-fieldset-and-error-message.html +20 -20
  130. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-hint.html +19 -19
  131. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-hints-on-items.html +23 -23
  132. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-legend-as-page-heading.html +21 -21
  133. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-optional-form-group-classes-showing-group-error.html +36 -36
  134. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-very-long-option-text.html +28 -28
  135. data/node_modules/govuk-frontend/dist/govuk/components/radios/template.njk +1 -1
  136. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +1 -7
  137. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss.map +1 -1
  138. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +5 -5
  139. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss.map +1 -1
  140. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +16 -16
  141. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss.map +1 -1
  142. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +1 -1
  143. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss.map +1 -1
  144. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +1 -1
  145. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss.map +1 -1
  146. data/node_modules/govuk-frontend/dist/govuk/components/task-list/fixtures.json +46 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-forced-hover-state.html +37 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +1 -7
  149. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss.map +1 -1
  150. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +1 -1
  151. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss.map +1 -1
  152. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +1 -1
  153. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss +2 -2
  154. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss.map +1 -1
  155. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +3 -3
  156. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss.map +1 -1
  157. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +2 -2
  158. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -1
  159. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
  160. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -1
  161. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +34 -0
  162. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss.map +1 -1
  163. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss +1 -1
  164. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss.map +1 -1
  165. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +1 -1
  166. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss.map +1 -1
  167. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss +172 -33
  168. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss.map +1 -1
  169. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss +1 -1
  170. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss.map +1 -1
  171. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +4 -4
  172. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss.map +1 -1
  173. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +1 -126
  174. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs.map +1 -1
  175. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss +1 -1
  176. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss.map +1 -1
  177. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss +1 -1
  178. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss.map +1 -1
  179. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +1 -1
  180. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss.map +1 -1
  181. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss +2 -2
  182. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss.map +1 -1
  183. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss +1 -1
  184. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss.map +1 -1
  185. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss +5 -5
  186. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss.map +1 -1
  187. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +7 -0
  188. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss.map +1 -1
  189. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss +4 -2
  190. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss.map +1 -1
  191. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +1 -1
  192. data/node_modules/govuk-frontend/package.json +9 -8
  193. metadata +9 -4
  194. data/app/assets/javascripts/component_guide/filter-components.js +0 -35
  195. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss +0 -349
  196. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss.map +0 -1
@@ -7,39 +7,8 @@
7
7
 
8
8
  $gem-guide-border-width: 1px;
9
9
 
10
- .component-list {
11
- @include govuk-text-colour;
12
- @extend %govuk-list--bullet;
13
-
14
- li {
15
- margin-bottom: govuk-spacing(3);
16
- @include govuk-font($size: 19);
17
- }
18
-
19
- p {
20
- margin: 0;
21
- }
22
- }
23
-
24
- .component-search {
25
- display: none;
26
-
27
- .js-enabled & {
28
- display: block;
29
- margin-top: govuk-spacing(9);
30
- }
31
- }
32
-
33
- .component-guide-hidden {
34
- display: none;
35
- }
36
-
37
10
  .component-doc {
38
11
  @include govuk-font($size: 16);
39
-
40
- .component-doc-h2:first-child {
41
- margin-top: 0;
42
- }
43
12
  }
44
13
 
45
14
  .component-violation {
@@ -61,16 +30,6 @@ $gem-guide-border-width: 1px;
61
30
  }
62
31
  }
63
32
 
64
- .component-doc-h2 {
65
- margin: (govuk-spacing(6) * 1.5) 0 govuk-spacing(6);
66
- @include govuk-text-colour;
67
- @include govuk-font($size: 27, $weight: bold);
68
-
69
- small {
70
- @include govuk-font($size: 16, $weight: bold);
71
- }
72
- }
73
-
74
33
  .component-call {
75
34
  margin-top: -$gem-guide-border-width;
76
35
  margin-bottom: govuk-spacing(3);
@@ -109,7 +68,7 @@ $gem-guide-border-width: 1px;
109
68
  }
110
69
 
111
70
  .component-guide-preview {
112
- padding: govuk-spacing(6);
71
+ padding: govuk-spacing(8) govuk-spacing(6) govuk-spacing(6) govuk-spacing(6);
113
72
  border: $gem-guide-border-width solid $govuk-border-colour;
114
73
  position: relative;
115
74
 
@@ -108,7 +108,11 @@
108
108
  display: inline-block;
109
109
  padding: govuk-spacing(1);
110
110
  border: solid 1px govuk-colour("black");
111
- color: $govuk-text-colour;
111
+ color: $govuk-print-text-colour !important; // stylelint-disable-line declaration-no-important
112
112
  text-decoration: none;
113
+
114
+ &::after {
115
+ display: none;
116
+ }
113
117
  }
114
118
  }
@@ -34,16 +34,11 @@
34
34
  text-decoration: none;
35
35
  }
36
36
 
37
- .gem-c-contextual-sidebar__cta--ukraine {
38
- border-top: 7px solid #fed700;
39
- position: relative;
40
-
41
- &::before {
42
- content: "";
43
- position: absolute;
44
- left: 0;
45
- right: 0;
46
- top: -14px;
47
- border-top: 7px solid #4b7ec1;
37
+ .gem-c-contextual-sidebar__cta-ukraine {
38
+ margin-top: -7px;
39
+ border-top: 7px solid #4b7ec1;
40
+
41
+ .gem-c-contextual-sidebar__cta {
42
+ border-top: 7px solid #fed700;
48
43
  }
49
44
  }
@@ -6,139 +6,39 @@
6
6
  display: flex;
7
7
  display: -ms-flexbox;
8
8
  flex-direction: column-reverse;
9
- -ms-flex-direction: column-reverse;
9
+ -ms-flex-direction: row-reverse;
10
+ gap: govuk-spacing(2);
11
+ justify-content: space-between;
12
+ align-items: stretch;
10
13
  @include govuk-text-colour;
11
- @include govuk-clearfix;
12
-
13
- @include govuk-media-query($from: mobile, $until: tablet) {
14
- display: block;
15
14
 
16
- .gem-c-image-card__text-wrapper {
17
- float: right;
18
- padding-left: 0;
19
- }
15
+ @include govuk-media-query($until: tablet) {
16
+ flex-direction: row-reverse;
17
+ gap: govuk-spacing(3);
20
18
  }
21
19
  }
22
20
 
23
- .gem-c-image-card__header-and-context-wrapper {
24
- display: flex;
25
- flex-direction: column-reverse;
26
- -ms-flex-direction: column-reverse;
21
+ .gem-c-image-card__text-wrapper {
22
+ flex-grow: 1;
23
+ flex-basis: 50%;
27
24
  }
28
25
 
29
26
  .gem-c-image-card__image-wrapper {
27
+ flex-grow: 1;
28
+ flex-basis: 50%;
30
29
  margin: 0;
31
30
 
32
31
  @include govuk-media-query($from: tablet) {
33
- margin-bottom: govuk-spacing(2);
34
32
  height: 100%;
35
33
  }
36
-
37
- + .gem-c-image-card__text-wrapper {
38
- @include govuk-media-query($until: tablet) {
39
- padding-left: 0;
40
- }
41
- }
42
- }
43
-
44
- @include govuk-media-query($from: mobile, $until: tablet) {
45
- .gem-c-image-card {
46
- margin: 0 (- govuk-spacing(3)) govuk-spacing(6) (- govuk-spacing(3));
47
- }
48
-
49
- .gem-c-image-card__image-wrapper {
50
- @include govuk-grid-column($width: one-half, $at: mobile);
51
- }
52
-
53
- .gem-c-image-card__text-wrapper {
54
- @include govuk-grid-column($width: one-half, $at: mobile);
55
- }
56
-
57
- .gem-c-image-card__image-wrapper.gem-c-image-card__image-wrapper--one-third {
58
- @include govuk-grid-column($width: one-third, $float: right, $at: mobile);
59
- }
60
-
61
- .gem-c-image-card__text-wrapper.gem-c-image-card__text-wrapper--two-thirds {
62
- @include govuk-grid-column($width: two-thirds, $float: right, $at: mobile);
63
- }
64
- }
65
-
66
- @include govuk-media-query($from: tablet) {
67
- .gem-c-image-card__image-wrapper.gem-c-image-card__image-wrapper--one-third {
68
- @include govuk-grid-column($width: one-third, $float: right, $at: tablet);
69
- }
70
-
71
- .gem-c-image-card__text-wrapper.gem-c-image-card__text-wrapper--two-thirds {
72
- @include govuk-grid-column($width: two-thirds, $float: right, $at: tablet);
73
- }
74
34
  }
75
35
 
76
36
  .gem-c-image-card__image {
77
37
  display: block;
78
38
  height: auto;
79
39
  width: 100%;
40
+ border: 0;
80
41
  border-top: 1px solid $govuk-border-colour;
81
- border-left: none;
82
- border-right: none;
83
- border-bottom: none;
84
- }
85
-
86
- .gem-c-image-card.gem-c-image-card--two-thirds {
87
- // Change default flex-direction from column-reverse
88
- // so that the image and text appear in the same row,
89
- // with the image to the left
90
- flex-direction: row-reverse;
91
- -ms-flex-direction: row-reverse;
92
- // Wrap flex items onto a new line and ensure
93
- // that items are aligned correctly
94
- flex-wrap: wrap-reverse;
95
- -ms-flex-wrap: wrap-reverse;
96
- justify-content: flex-end;
97
- align-items: flex-end;
98
- }
99
-
100
- .gem-c-image-card--two-thirds {
101
- .gem-c-image-card__image {
102
- border-top: none;
103
- }
104
-
105
- // TODO: Temporary fixes to ensure the layout
106
- // renders correctly on screen sizes less than 320px wide
107
- @include govuk-media-query($until: "mobile") {
108
- padding: 0 govuk-spacing(3);
109
- }
110
-
111
- .gem-c-image-card__image-wrapper {
112
- @include govuk-media-query($until: "mobile") {
113
- margin-bottom: govuk-spacing(2);
114
- }
115
- }
116
-
117
- // Ensures the font-size is 19px on all screen sizes
118
- .gem-c-image-card__title-link--large-font-size-mobile,
119
- .gem-c-image-card__description--large-font-size-mobile {
120
- @include govuk-media-query($until: "tablet") {
121
- font-size: 19px;
122
- font-size: govuk-px-to-rem(19);
123
- }
124
- }
125
- }
126
-
127
- .gem-c-image-card__image-wrapper.gem-c-image-card__image-wrapper--one-third {
128
- // The first two values set flex-grow and flex-basis to 0
129
- // This ensures that the flex item does not grow or shrink
130
- // The the last value, sets flex-basis to 95px
131
- // padding-left is set to 15px and the image used is 80px wide
132
- flex: 0 0 95px;
133
- padding-right: 0;
134
- }
135
-
136
- .gem-c-image-card__text-wrapper.gem-c-image-card__text-wrapper--two-thirds {
137
- // The first two values set flex-grow and flex-basis to 1
138
- // This allows the flex item contain the image card text to grow or shrink
139
- // The last value, sets flex-basis to 70%
140
- // If the width of the flex-item shrinks below 70%, it will wrap onto a new line
141
- flex: 1 1 70%;
142
42
  }
143
43
 
144
44
  .gem-c-image-card__title {
@@ -155,22 +55,13 @@
155
55
  // position relative and a higher z-index to put them above the after element
156
56
  &::after {
157
57
  content: "";
58
+ display: block;
158
59
  position: absolute;
159
60
  z-index: 1;
160
61
  top: 0;
161
62
  left: 0;
162
63
  right: 0;
163
64
  height: 100%;
164
- $ie-background: rgba(255, 255, 255, 0);
165
- background: $ie-background; // because internet explorer
166
- -ms-high-contrast-adjust: none;
167
- }
168
-
169
- @include govuk-media-query($from: mobile, $until: tablet) {
170
- &::after {
171
- left: govuk-spacing(3);
172
- right: govuk-spacing(3);
173
- }
174
65
  }
175
66
  }
176
67
 
@@ -235,47 +126,34 @@
235
126
  }
236
127
  }
237
128
 
238
- .gem-c-image-card--large.gem-c-image-card {
239
- display: flex;
240
- margin: 0 0 govuk-spacing(6) 0;
241
- @include govuk-media-query($from: tablet) {
242
- display: block;
129
+ .gem-c-image-card--two-thirds {
130
+ flex-direction: row-reverse;
131
+ gap: govuk-spacing(3);
132
+
133
+ .gem-c-image-card__text-wrapper {
134
+ flex: 1 1 70%;
243
135
  }
244
- }
245
136
 
246
- .gem-c-image-card--large {
247
137
  .gem-c-image-card__image-wrapper {
248
- margin-bottom: govuk-spacing(2);
249
- float: none;
250
- width: auto;
251
- max-width: 100%;
252
- @include govuk-grid-column($width: one-half, $at: tablet);
253
-
254
- & { // stylelint-disable-line no-duplicate-selectors
255
- // overriding the padding from govuk-grid-column mixin
256
- padding: 0;
257
- }
138
+ flex: 0 0 80px;
139
+ }
258
140
 
259
- @include govuk-media-query($from: tablet) {
260
- padding: 0 govuk-spacing(2) 0 0;
261
- margin-bottom: 0;
262
- }
141
+ .gem-c-image-card__image {
142
+ border-top: none;
263
143
  }
264
144
 
265
- .gem-c-image-card__text-wrapper {
266
- overflow: hidden;
267
- @include govuk-grid-column($width: one-half, $at: tablet);
145
+ @include govuk-media-query($until: "mobile") {
146
+ flex-direction: column-reverse;
147
+ }
148
+ }
268
149
 
269
- & { // stylelint-disable-line no-duplicate-selectors
270
- // overriding the padding from govuk-grid-column mixin
271
- padding: 0;
272
- }
150
+ .gem-c-image-card--large {
151
+ flex-direction: column-reverse;
152
+ gap: govuk-spacing(2);
273
153
 
274
- @include govuk-media-query($from: tablet) {
275
- float: right;
276
- padding: 0 govuk-spacing(3);
277
- margin-bottom: 0;
278
- }
154
+ @include govuk-media-query($from: tablet) {
155
+ flex-direction: row-reverse;
156
+ gap: govuk-spacing(5);
279
157
  }
280
158
 
281
159
  .gem-c-image-card__title {
@@ -339,15 +217,6 @@
339
217
  @include govuk-focused-text;
340
218
  }
341
219
 
342
- .gem-c-image-card--no-image {
343
- .gem-c-image-card__text-wrapper {
344
- @include govuk-media-query($from: mobile, $until: tablet) {
345
- float: left;
346
- padding: 0 govuk-spacing(3);
347
- }
348
- }
349
- }
350
-
351
220
  // stylelint-disable declaration-no-important
352
221
  @include govuk-media-query($media-type: print) {
353
222
  .gem-c-image-card__title[class*="govuk-heading-"] {
@@ -6,6 +6,11 @@
6
6
  margin-bottom: govuk-spacing(6);
7
7
  padding: govuk-spacing(3) govuk-spacing(6) govuk-spacing(6) govuk-spacing(6);
8
8
  box-sizing: border-box;
9
+
10
+ @include govuk-media-query($until: desktop) {
11
+ padding-left: govuk-spacing(3);
12
+ padding-right: govuk-spacing(3);
13
+ }
9
14
  }
10
15
 
11
16
  .gem-c-inverse-header__subtext {
@@ -33,6 +38,10 @@
33
38
  color: govuk-colour("white");
34
39
  }
35
40
 
41
+ .gem-c-inverse-header--hmrc-header {
42
+ background: govuk-organisation-colour("hm-revenue-customs");
43
+ }
44
+
36
45
  @include govuk-media-query($media-type: print) {
37
46
  .gem-c-inverse-header {
38
47
  background: none;
@@ -85,7 +85,7 @@
85
85
 
86
86
  .gem-c-option-select__container {
87
87
  position: relative;
88
- max-height: 200px;
88
+ max-height: 180px;
89
89
  overflow-y: auto;
90
90
  overflow-x: hidden;
91
91
  background-color: govuk-colour("white");
@@ -144,7 +144,7 @@
144
144
  }
145
145
 
146
146
  .gem-c-option-select__container {
147
- height: 200px;
147
+ height: 180px;
148
148
  }
149
149
 
150
150
  .gem-c-option-select__container--large {
@@ -1,44 +1,12 @@
1
- // stylelint-disable scss/at-extend-no-missing-placeholder
1
+ @import "govuk/components/button/button";
2
+
2
3
  .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
3
4
  .gem-c-govspeak {
4
- @import "govuk/components/button/button";
5
-
6
- // Some links in Govspeak should look like buttons[1] when using:
7
- // ```
8
- // {button}[Random page](https://gov.uk/random){/button}
9
- // ```.
10
- //
11
- // To make sure that the link styles don't override the button styles this
12
- // needs more specificity.
13
- //
14
- // Govspeak targets link by using element selectors; so the selector
15
- // `.gem-c-govspeak a:link` will override `.govuk-button`. Extending
16
- // `govuk-button` here gives `gem-c-govspeak .gem-c-button` and prevents the
17
- // link-that-looks-like-a-button from being overriden.
18
-
19
- // [1]: https://github.com/alphagov/govspeak#button
20
- .gem-c-button {
21
- @extend .govuk-button;
22
- }
23
-
24
- .govuk-button--start {
25
- @extend .govuk-button--start;
26
- }
27
-
28
- @include govuk-media-query($media-type: print) {
29
- .gem-c-button {
30
- box-shadow: none;
31
- border: 2pt solid $govuk-print-text-colour;
32
-
33
- &,
34
- & * {
35
- background: none;
36
- color: $govuk-print-text-colour !important; // stylelint-disable-line declaration-no-important
37
- }
5
+ .govuk-button {
6
+ margin-bottom: 32px;
38
7
 
39
- &::after {
40
- display: none;
41
- }
8
+ @include govuk-media-query($until: tablet) {
9
+ margin-bottom: 22px;
42
10
  }
43
11
  }
44
12
  }
@@ -6,12 +6,11 @@
6
6
  // - alphagov/whitehall: ✔︎
7
7
  // - alphagov/govspeak: ✔︎
8
8
 
9
- // stylelint-disable max-nesting-depth
9
+ @import "govuk/components/warning-text/warning-text";
10
10
 
11
+ // stylelint-disable max-nesting-depth
11
12
  .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
12
13
  .gem-c-govspeak {
13
- @import "govuk/components/warning-text/warning-text";
14
-
15
14
  .help-notice {
16
15
  $icon-size: 35px;
17
16
  $icon-spacing: 10px;
@@ -49,7 +49,7 @@
49
49
 
50
50
  // Links
51
51
 
52
- a {
52
+ a:not(.govuk-button) {
53
53
  @include govuk-link-common;
54
54
  @include govuk-link-style-default;
55
55
  @include govuk-text-break-word;
@@ -75,6 +75,11 @@
75
75
  list-style: disc;
76
76
  }
77
77
 
78
+ .list-no-bullets {
79
+ list-style: none;
80
+ margin: 0;
81
+ }
82
+
78
83
  li {
79
84
  margin: 0 0 govuk-spacing(2);
80
85
  padding: 0;
@@ -0,0 +1,50 @@
1
+ module GovukPublishingComponents
2
+ class ApplicationsPageController < GovukPublishingComponents::ApplicationController
3
+ def show
4
+ applications = [
5
+ {
6
+ type: "public-facing",
7
+ apps: %w[collections email-alert-frontend feedback finder-frontend frontend government-frontend smart-answers static].sort,
8
+ },
9
+ {
10
+ type: "publishing",
11
+ apps: %w[content-data-admin collections-publisher travel-advice-publisher whitehall datagovuk_find local-links-manager places-manager support manuals-publisher service-manual-publisher short-url-manager specialist-publisher content-tagger publisher transition search-admin].sort,
12
+ },
13
+ {
14
+ type: "utility",
15
+ apps: %w[account-api signon govspeak govspeak-preview release govuk-developer-docs govuk-chat].sort,
16
+ },
17
+ ]
18
+
19
+ @cache_status = Rails.application.config.cache_store != :null_store
20
+ @performcache_status = Rails.application.config.action_controller.perform_caching
21
+
22
+ @applications_output = Rails.cache.fetch("applications_cache", expires_in: 5.minutes) do
23
+ applications_data(applications)
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def applications_data(applications)
30
+ output = []
31
+ applications.each do |type|
32
+ type[:apps].each do |application|
33
+ app = ApplicationsPage.new(application)
34
+
35
+ output << {
36
+ name: app.readable_name,
37
+ type: type[:type],
38
+ link: "https://github.com/alphagov/#{application}",
39
+ source: app.source,
40
+ gem_version: app.gem_version,
41
+ gem_version_status: app.gem_version == GovukPublishingComponents::VERSION ? "green" : "red",
42
+ slimmer_version: app.slimmer_version,
43
+ sass_version: app.sass_version,
44
+ }
45
+ end
46
+ end
47
+ output
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,64 @@
1
+ module GovukPublishingComponents
2
+ class ApplicationsPage
3
+ attr_reader :source
4
+
5
+ def initialize(application)
6
+ @application = application
7
+ @dir = get_directory
8
+ @gemfilelock = get_gemfile
9
+ end
10
+
11
+ def readable_name
12
+ @application.gsub("-", " ").capitalize
13
+ end
14
+
15
+ def gem_version
16
+ parse_file(@gemfilelock, /govuk_publishing_components \(([^)>=~ ]+)\)/)
17
+ end
18
+
19
+ def slimmer_version
20
+ parse_file(@gemfilelock, /slimmer \(([^)>=~ ]+)\)/)
21
+ end
22
+
23
+ def sass_version
24
+ parse_file(@gemfilelock, /sass-embedded \(([^)>=~ ]+)\)/)
25
+ end
26
+
27
+ private
28
+
29
+ def get_directory
30
+ app_dir = "#{File.expand_path('..')}/#{@application}"
31
+ Dir.exist?(app_dir) ? app_dir : false
32
+ end
33
+
34
+ def get_gemfile
35
+ @dir ? get_gemfile_local : get_gemfile_remote
36
+ end
37
+
38
+ def get_gemfile_local
39
+ lockfile = "#{@dir}/Gemfile.lock"
40
+ return unless File.file?(lockfile)
41
+
42
+ @source = "local"
43
+ File.read(lockfile)
44
+ end
45
+
46
+ def get_gemfile_remote
47
+ uri = URI("https://raw.githubusercontent.com/alphagov/#{@application}/main/Gemfile.lock")
48
+ result = Net::HTTP.get_response(uri)
49
+ if result.is_a?(Net::HTTPSuccess)
50
+ @source = "remote"
51
+ result.body
52
+ end
53
+ rescue StandardError
54
+ @source = nil
55
+ end
56
+
57
+ def parse_file(src, regex)
58
+ return unless src
59
+
60
+ matches = src.match(regex)
61
+ matches[1] if matches
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,39 @@
1
+ <% content.each do |app| %>
2
+ <tr class="govuk-table__row" data-filter-item>
3
+ <td class="govuk-table__cell">
4
+ <a href="<%= app[:link] %>" class="govuk-link"><%= app[:name] %></a>
5
+ </td>
6
+ <td class="govuk-table__cell">
7
+ <%= type %>
8
+ </td>
9
+ <td class="govuk-table__cell">
10
+ <% if app[:source] %>
11
+ <%= app[:source] %>
12
+ <% else %>
13
+ not found
14
+ <% end %>
15
+ </td>
16
+ <td class="govuk-table__cell">
17
+ <% if app[:gem_version] %>
18
+ <%= render "govuk_publishing_components/components/tag", {
19
+ text: app[:gem_version],
20
+ colour: app[:gem_version_status],
21
+ } %>
22
+ <% end %>
23
+ </td>
24
+ <td class="govuk-table__cell">
25
+ <% if app[:slimmer_version] %>
26
+ <%= render "govuk_publishing_components/components/tag", {
27
+ text: app[:slimmer_version],
28
+ } %>
29
+ <% end %>
30
+ </td>
31
+ <td class="govuk-table__cell">
32
+ <% if app[:sass_version] %>
33
+ <%= render "govuk_publishing_components/components/tag", {
34
+ text: app[:sass_version],
35
+ } %>
36
+ <% end %>
37
+ </td>
38
+ </tr>
39
+ <% end %>
@@ -0,0 +1,37 @@
1
+ <% content_for :title, "Applications consistency" %>
2
+ <% add_gem_component_stylesheet("table") %>
3
+
4
+ <%= render "govuk_publishing_components/components/back_link", {
5
+ href: "/component-guide",
6
+ } %>
7
+
8
+ <%= render "govuk_publishing_components/components/heading", {
9
+ text: "Applications",
10
+ heading_level: 1,
11
+ font_size: "xl",
12
+ margin_bottom: 8,
13
+ } %>
14
+
15
+ <% if @cache_status && @performcache_status %>
16
+ <p class="govuk-body">The results below are cached for 5 minutes. If you are expecting a change and cannot see it, try again later.</p>
17
+ <% end %>
18
+
19
+ <div data-module="filter-list">
20
+ <table class="govuk-table">
21
+ <thead class="govuk-table__head">
22
+ <tr class="govuk-table__row">
23
+ <th scope="col" class="govuk-table__header sticky-table-header">Application</th>
24
+ <th scope="col" class="govuk-table__header sticky-table-header">Type</th>
25
+ <th scope="col" class="govuk-table__header sticky-table-header">Source</th>
26
+ <th scope="col" class="govuk-table__header sticky-table-header">Gem version</th>
27
+ <th scope="col" class="govuk-table__header sticky-table-header">Slimmer version</th>
28
+ <th scope="col" class="govuk-table__header sticky-table-header">Sass version</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody class="govuk-table__body">
32
+ <%= render "table-content", content: @applications_output.select { |a| a[:type] == "public-facing" }, type: "Public facing" %>
33
+ <%= render "table-content", content: @applications_output.select { |a| a[:type] == "publishing" }, type: "Publishing" %>
34
+ <%= render "table-content", content: @applications_output.select { |a| a[:type] == "utility" }, type: "Utility" %>
35
+ </tbody>
36
+ </table>
37
+ </div>