govuk_publishing_components 36.0.3 → 37.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/govuk_publishing_components_manifest.js +1 -77
  3. data/app/assets/config/govuk_publishing_components_sassc-rails_manifest.js +91 -0
  4. data/app/assets/javascripts/govuk_publishing_components/components/option-select.js +15 -8
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +12 -12
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +38 -45
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_option-select.scss +1 -1
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +4 -4
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_print-link.scss +2 -2
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +2 -2
  12. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss +1 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_form-download.scss +1 -1
  14. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -1
  15. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_govuk-frontend-settings.scss +15 -2
  16. data/app/models/govuk_publishing_components/audit_applications.rb +1 -1
  17. data/app/views/govuk_publishing_components/components/_file_upload.html.erb +18 -1
  18. data/app/views/govuk_publishing_components/components/_google_tag_manager_script.html.erb +1 -4
  19. data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -0
  20. data/app/views/govuk_publishing_components/components/_option_select.html.erb +1 -0
  21. data/app/views/govuk_publishing_components/components/docs/file_upload.yml +11 -0
  22. data/app/views/govuk_publishing_components/components/docs/image_card.yml +5 -1
  23. data/app/views/govuk_publishing_components/components/docs/option_select.yml +18 -0
  24. data/config/initializers/assets.rb +7 -1
  25. data/lib/govuk_publishing_components/config.rb +12 -0
  26. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +11 -1
  27. data/lib/govuk_publishing_components/version.rb +1 -1
  28. metadata +34 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fca7a5f4a2f77be1b86157531a3f2884b70ebde62cea12c194bad2b29886d121
4
- data.tar.gz: 9e59cd6485f898e8f86f1b2f21022bca130c5d471d2a87afd498be029811a265
3
+ metadata.gz: fe726cba8402c5e0b082b9183eb50b531bc4024e0a8d8420e8aa9bc01bf792ee
4
+ data.tar.gz: a0ca9fdb633e3f78bacd25fe5f6b1d10353d3ec70b49c8881f65c667c8cb5a6f
5
5
  SHA512:
6
- metadata.gz: 00cb71df653b04a54fd700ab26efedde9852421def70e5e4c5e40b8ac3b90828e926aa9311dd526a0c2f2e417ed6dff0d70cd6197beaad702ffd311ac2e05a31
7
- data.tar.gz: e34e2387ad6ef7903892a12090be73aa46c1307749fde8b38338afb7bcda5cd0f987eb675737012dc6f72b715643f14a16d2795a3593ea8671d04a81761eb8a3
6
+ metadata.gz: 983fb3da1f16193554ae6f850a6da73ce0a3a4a92df1e430ab8ccc028e50739188f8225a79cfeefd5aca477632b70105349b853e0bce55b704bba91947700dc4
7
+ data.tar.gz: bdcc215e867f598b8afd6d502ef393656b4bbca8e2059aa21f15bce7838d4a6ff9f02319f13c365c684f780b544272034d6fd0233e4aa7a5f978d3e6529eda50
@@ -11,81 +11,5 @@
11
11
  //= link govuk_publishing_components/vendor/modernizr.js
12
12
  //= link govuk_publishing_components/vendor/lux/lux-reporter.js
13
13
  //= link govuk_publishing_components/vendor/lux/lux-measurer.js
14
- //= link component_guide/application.css
15
14
 
16
- // components
17
- //= link govuk_publishing_components/components/_accordion.css
18
- //= link govuk_publishing_components/components/_action-link.css
19
- //= link govuk_publishing_components/components/_attachment.css
20
- //= link govuk_publishing_components/components/_attachment-link.css
21
- //= link govuk_publishing_components/components/_back-link.css
22
- //= link govuk_publishing_components/components/_big-number.css
23
- //= link govuk_publishing_components/components/_breadcrumbs.css
24
- //= link govuk_publishing_components/components/_button.css
25
- //= link govuk_publishing_components/components/_cards.css
26
- //= link govuk_publishing_components/components/_character-count.css
27
- //= link govuk_publishing_components/components/_checkboxes.css
28
- //= link govuk_publishing_components/components/_contents-list.css
29
- //= link govuk_publishing_components/components/_contextual-guidance.css
30
- //= link govuk_publishing_components/components/_contextual-sidebar.css
31
- //= link govuk_publishing_components/components/_cookie-banner.css
32
- //= link govuk_publishing_components/components/_copy-to-clipboard.css
33
- //= link govuk_publishing_components/components/_cross-service-header.css
34
- //= link govuk_publishing_components/components/_date-input.css
35
- //= link govuk_publishing_components/components/_details.css
36
- //= link govuk_publishing_components/components/_devolved-nations.css
37
- //= link govuk_publishing_components/components/_document-list.css
38
- //= link govuk_publishing_components/components/_emergency-banner.css
39
- //= link govuk_publishing_components/components/_error-alert.css
40
- //= link govuk_publishing_components/components/_error-message.css
41
- //= link govuk_publishing_components/components/_error-summary.css
42
- //= link govuk_publishing_components/components/_feedback.css
43
- //= link govuk_publishing_components/components/_fieldset.css
44
- //= link govuk_publishing_components/components/_file-upload.css
45
- //= link govuk_publishing_components/components/_govspeak-html-publication.css
46
- //= link govuk_publishing_components/components/_govspeak.css
47
- //= link govuk_publishing_components/components/_heading.css
48
- //= link govuk_publishing_components/components/_hint.css
49
- //= link govuk_publishing_components/components/_image-card.css
50
- //= link govuk_publishing_components/components/_input.css
51
- //= link govuk_publishing_components/components/_inset-text.css
52
- //= link govuk_publishing_components/components/_intervention.css
53
- //= link govuk_publishing_components/components/_inverse-header.css
54
- //= link govuk_publishing_components/components/_label.css
55
- //= link govuk_publishing_components/components/_layout-footer.css
56
- //= link govuk_publishing_components/components/_layout-for-admin.css
57
- //= link govuk_publishing_components/components/_layout-for-public.css
58
- //= link govuk_publishing_components/components/_layout-header.css
59
- //= link govuk_publishing_components/components/_layout-super-navigation-header.css
60
- //= link govuk_publishing_components/components/_lead-paragraph.css
61
- //= link govuk_publishing_components/components/_metadata.css
62
- //= link govuk_publishing_components/components/_modal-dialogue.css
63
- //= link govuk_publishing_components/components/_notice.css
64
- //= link govuk_publishing_components/components/_option-select.css
65
- //= link govuk_publishing_components/components/_organisation-logo.css
66
- //= link govuk_publishing_components/components/_panel.css
67
- //= link govuk_publishing_components/components/_phase-banner.css
68
- //= link govuk_publishing_components/components/_previous-and-next-navigation.css
69
- //= link govuk_publishing_components/components/_print-link.css
70
- //= link govuk_publishing_components/components/_radio.css
71
- //= link govuk_publishing_components/components/_related-navigation.css
72
- //= link govuk_publishing_components/components/_reorderable-list.css
73
- //= link govuk_publishing_components/components/_search.css
74
- //= link govuk_publishing_components/components/_select.css
75
- //= link govuk_publishing_components/components/_share-links.css
76
- //= link govuk_publishing_components/components/_show-password.css
77
- //= link govuk_publishing_components/components/_signup-link.css
78
- //= link govuk_publishing_components/components/_single-page-notification-button.css
79
- //= link govuk_publishing_components/components/_skip-link.css
80
- //= link govuk_publishing_components/components/_step-by-step-nav-header.css
81
- //= link govuk_publishing_components/components/_step-by-step-nav-related.css
82
- //= link govuk_publishing_components/components/_step-by-step-nav.css
83
- //= link govuk_publishing_components/components/_subscription-links.css
84
- //= link govuk_publishing_components/components/_success-alert.css
85
- //= link govuk_publishing_components/components/_summary-list.css
86
- //= link govuk_publishing_components/components/_tabs.css
87
- //= link govuk_publishing_components/components/_table.css
88
- //= link govuk_publishing_components/components/_textarea.css
89
- //= link govuk_publishing_components/components/_title.css
90
- //= link govuk_publishing_components/components/_translation-nav.css
91
- //= link govuk_publishing_components/components/_warning-text.css
15
+ //= link_tree ../builds
@@ -0,0 +1,91 @@
1
+ // Pre-compile image and font assets from here and govuk-frontend
2
+ //= link_tree ../images
3
+ //= link_tree ../../../node_modules/govuk-frontend/govuk/assets/images
4
+ //= link_tree ../../../node_modules/govuk-frontend/govuk/assets/fonts
5
+
6
+ // Create asset files of each of the files in these directory
7
+ //= link_directory ../javascripts/component_guide
8
+ //= link_directory ../javascripts/govuk_publishing_components
9
+
10
+ // Pre-compile these specific files
11
+ //= link govuk_publishing_components/vendor/modernizr.js
12
+ //= link govuk_publishing_components/vendor/lux/lux-reporter.js
13
+ //= link govuk_publishing_components/vendor/lux/lux-measurer.js
14
+ //= link component_guide/application.css
15
+
16
+ // components
17
+ //= link govuk_publishing_components/components/_accordion.css
18
+ //= link govuk_publishing_components/components/_action-link.css
19
+ //= link govuk_publishing_components/components/_attachment.css
20
+ //= link govuk_publishing_components/components/_attachment-link.css
21
+ //= link govuk_publishing_components/components/_back-link.css
22
+ //= link govuk_publishing_components/components/_big-number.css
23
+ //= link govuk_publishing_components/components/_breadcrumbs.css
24
+ //= link govuk_publishing_components/components/_button.css
25
+ //= link govuk_publishing_components/components/_cards.css
26
+ //= link govuk_publishing_components/components/_character-count.css
27
+ //= link govuk_publishing_components/components/_checkboxes.css
28
+ //= link govuk_publishing_components/components/_contents-list.css
29
+ //= link govuk_publishing_components/components/_contextual-guidance.css
30
+ //= link govuk_publishing_components/components/_contextual-sidebar.css
31
+ //= link govuk_publishing_components/components/_cookie-banner.css
32
+ //= link govuk_publishing_components/components/_copy-to-clipboard.css
33
+ //= link govuk_publishing_components/components/_cross-service-header.css
34
+ //= link govuk_publishing_components/components/_date-input.css
35
+ //= link govuk_publishing_components/components/_details.css
36
+ //= link govuk_publishing_components/components/_devolved-nations.css
37
+ //= link govuk_publishing_components/components/_document-list.css
38
+ //= link govuk_publishing_components/components/_emergency-banner.css
39
+ //= link govuk_publishing_components/components/_error-alert.css
40
+ //= link govuk_publishing_components/components/_error-message.css
41
+ //= link govuk_publishing_components/components/_error-summary.css
42
+ //= link govuk_publishing_components/components/_feedback.css
43
+ //= link govuk_publishing_components/components/_fieldset.css
44
+ //= link govuk_publishing_components/components/_file-upload.css
45
+ //= link govuk_publishing_components/components/_govspeak-html-publication.css
46
+ //= link govuk_publishing_components/components/_govspeak.css
47
+ //= link govuk_publishing_components/components/_heading.css
48
+ //= link govuk_publishing_components/components/_hint.css
49
+ //= link govuk_publishing_components/components/_image-card.css
50
+ //= link govuk_publishing_components/components/_input.css
51
+ //= link govuk_publishing_components/components/_inset-text.css
52
+ //= link govuk_publishing_components/components/_intervention.css
53
+ //= link govuk_publishing_components/components/_inverse-header.css
54
+ //= link govuk_publishing_components/components/_label.css
55
+ //= link govuk_publishing_components/components/_layout-footer.css
56
+ //= link govuk_publishing_components/components/_layout-for-admin.css
57
+ //= link govuk_publishing_components/components/_layout-for-public.css
58
+ //= link govuk_publishing_components/components/_layout-header.css
59
+ //= link govuk_publishing_components/components/_layout-super-navigation-header.css
60
+ //= link govuk_publishing_components/components/_lead-paragraph.css
61
+ //= link govuk_publishing_components/components/_metadata.css
62
+ //= link govuk_publishing_components/components/_modal-dialogue.css
63
+ //= link govuk_publishing_components/components/_notice.css
64
+ //= link govuk_publishing_components/components/_option-select.css
65
+ //= link govuk_publishing_components/components/_organisation-logo.css
66
+ //= link govuk_publishing_components/components/_panel.css
67
+ //= link govuk_publishing_components/components/_phase-banner.css
68
+ //= link govuk_publishing_components/components/_previous-and-next-navigation.css
69
+ //= link govuk_publishing_components/components/_print-link.css
70
+ //= link govuk_publishing_components/components/_radio.css
71
+ //= link govuk_publishing_components/components/_related-navigation.css
72
+ //= link govuk_publishing_components/components/_reorderable-list.css
73
+ //= link govuk_publishing_components/components/_search.css
74
+ //= link govuk_publishing_components/components/_select.css
75
+ //= link govuk_publishing_components/components/_share-links.css
76
+ //= link govuk_publishing_components/components/_show-password.css
77
+ //= link govuk_publishing_components/components/_signup-link.css
78
+ //= link govuk_publishing_components/components/_single-page-notification-button.css
79
+ //= link govuk_publishing_components/components/_skip-link.css
80
+ //= link govuk_publishing_components/components/_step-by-step-nav-header.css
81
+ //= link govuk_publishing_components/components/_step-by-step-nav-related.css
82
+ //= link govuk_publishing_components/components/_step-by-step-nav.css
83
+ //= link govuk_publishing_components/components/_subscription-links.css
84
+ //= link govuk_publishing_components/components/_success-alert.css
85
+ //= link govuk_publishing_components/components/_summary-list.css
86
+ //= link govuk_publishing_components/components/_tabs.css
87
+ //= link govuk_publishing_components/components/_table.css
88
+ //= link govuk_publishing_components/components/_textarea.css
89
+ //= link govuk_publishing_components/components/_title.css
90
+ //= link govuk_publishing_components/components/_translation-nav.css
91
+ //= link govuk_publishing_components/components/_warning-text.css
@@ -166,17 +166,24 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
166
166
  button.setAttribute('aria-expanded', true)
167
167
  button.setAttribute('id', containerHead.getAttribute('id'))
168
168
  button.setAttribute('aria-controls', this.$optionsContainer.getAttribute('id'))
169
- button.innerHTML = jsContainerHeadHTML
170
- containerHead.parentNode.replaceChild(button, containerHead)
171
169
 
172
- // GA4 Accordion tracking. Relies on the ga4-finder-tracker setting the index first, so we wrap this in a custom event.
173
- window.addEventListener('ga4-filter-indexes-added', function () {
174
- if (window.GOVUK.analyticsGa4) {
175
- if (window.GOVUK.analyticsGa4.Ga4FinderTracker) {
176
- window.GOVUK.analyticsGa4.Ga4FinderTracker.addFilterButtonTracking(button, button.innerHTML)
170
+ var buttonAttributes = this.$optionSelect.getAttribute('data-button-data-attributes')
171
+ if (buttonAttributes) {
172
+ try {
173
+ buttonAttributes = JSON.parse(buttonAttributes)
174
+ for (var rawKey in buttonAttributes) {
175
+ var key = rawKey.replace(/_/i, '-').toLowerCase()
176
+ var rawValue = buttonAttributes[rawKey]
177
+ var value = typeof rawValue === 'object' ? JSON.stringify(rawValue) : rawValue
178
+ button.setAttribute('data-' + key, value)
177
179
  }
180
+ } catch (e) {
181
+ console.error('Error with option select button data attributes, invalid JSON passed' + e.message, window.location)
178
182
  }
179
- })
183
+ }
184
+
185
+ button.innerHTML = jsContainerHeadHTML
186
+ containerHead.parentNode.replaceChild(button, containerHead)
180
187
  }
181
188
 
182
189
  OptionSelect.prototype.attachCheckedCounter = function attachCheckedCounter (checkedString) {
@@ -8,8 +8,8 @@
8
8
  display: table-cell;
9
9
  width: 60px;
10
10
  height: 45px;
11
- background: image-url("govuk_publishing_components/action-link-arrow.png");
12
- background: image-url("govuk_publishing_components/action-link-arrow.svg"), linear-gradient(transparent, transparent);
11
+ background: url("govuk_publishing_components/action-link-arrow.png");
12
+ background: url("govuk_publishing_components/action-link-arrow.svg"), linear-gradient(transparent, transparent);
13
13
  background-repeat: no-repeat;
14
14
  background-position: 0 50%;
15
15
  background-size: 45px auto;
@@ -98,8 +98,8 @@
98
98
  &::before {
99
99
  width: 30px;
100
100
  height: 30px;
101
- background: image-url("govuk_publishing_components/action-link-arrow--simple.png");
102
- background: image-url("govuk_publishing_components/action-link-arrow--simple.svg"), linear-gradient(transparent, transparent);
101
+ background: url("govuk_publishing_components/action-link-arrow--simple.png");
102
+ background: url("govuk_publishing_components/action-link-arrow--simple.svg"), linear-gradient(transparent, transparent);
103
103
  background-repeat: no-repeat;
104
104
  background-size: 25px auto;
105
105
  background-position: 0 2px;
@@ -110,8 +110,8 @@
110
110
  &::before {
111
111
  width: 30px;
112
112
  height: 30px;
113
- background: image-url("govuk_publishing_components/action-link-arrow--simple-light.png");
114
- background: image-url("govuk_publishing_components/action-link-arrow--simple-light.svg"), linear-gradient(transparent, transparent);
113
+ background: url("govuk_publishing_components/action-link-arrow--simple-light.png");
114
+ background: url("govuk_publishing_components/action-link-arrow--simple-light.svg"), linear-gradient(transparent, transparent);
115
115
  background-repeat: no-repeat;
116
116
  background-size: 25px auto;
117
117
  background-position: 0 2px;
@@ -120,8 +120,8 @@
120
120
 
121
121
  .gem-c-action-link--dark-large-icon {
122
122
  &::before {
123
- background: image-url("govuk_publishing_components/action-link-arrow--dark.png");
124
- background: image-url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
123
+ background: url("govuk_publishing_components/action-link-arrow--dark.png");
124
+ background: url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
125
125
  height: 34px;
126
126
  width: 40px;
127
127
  background-repeat: no-repeat;
@@ -138,8 +138,8 @@
138
138
  &::before {
139
139
  width: 36px;
140
140
  height: 28px;
141
- background: image-url("govuk_publishing_components/action-link-arrow--light.png");
142
- background: image-url("govuk_publishing_components/action-link-arrow--light.svg"), linear-gradient(transparent, transparent);
141
+ background: url("govuk_publishing_components/action-link-arrow--light.png");
142
+ background: url("govuk_publishing_components/action-link-arrow--light.svg"), linear-gradient(transparent, transparent);
143
143
  background-repeat: no-repeat;
144
144
  background-size: 28px auto;
145
145
  background-position: 0 0;
@@ -162,8 +162,8 @@
162
162
  &::before {
163
163
  height: 30px;
164
164
  width: 35px;
165
- background: image-url("govuk_publishing_components/action-link-arrow--dark.png");
166
- background: image-url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
165
+ background: url("govuk_publishing_components/action-link-arrow--dark.png");
166
+ background: url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
167
167
  background-repeat: no-repeat;
168
168
  background-size: 25px auto;
169
169
  background-position: 0 2px;
@@ -97,6 +97,33 @@
97
97
  align-items: flex-end;
98
98
  }
99
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
+
100
127
  .gem-c-image-card__image-wrapper.gem-c-image-card__image-wrapper--one-third {
101
128
  // The first two values set flex-grow and flex-basis to 0
102
129
  // This ensures that the flex item does not grow or shrink
@@ -259,54 +286,20 @@
259
286
  }
260
287
  }
261
288
 
262
- // The following two rules are used to 'trick' the
263
- // Youtube embed into using the desktop styles. Without
264
- // this, the Youtube embed will use mobile styles in
265
- // desktop viewports. The Youtube mobile styles are more
266
- // challenging to use with a keyboard as they are designed
267
- // for a touch screen interface. There is seemingly no way
268
- // to make an iframe request the desktop version of a site
269
- // and there is no parameter in the Youtube embed that would
270
- // force the desktop styles. Hence this workaround.
271
-
272
- // In the first rule, we are adding an arbitrarly large
273
- // enough px to the width of the Youtube iframe so that
274
- // it will use the desktop styling. Unfortunately, this width
275
- // would result in the Youtube embed overlapping into the
276
- // text content. To stop this happening, we scale the size of
277
- // the embed down.
278
-
279
- .gem-c-image-card__youtube-video-embed iframe {
280
- @include govuk-media-query($from: tablet) {
281
- transform: scale(.7);
282
- width: calc(100% + 45px);
283
- }
284
- z-index: 1;
285
- }
286
-
287
- // In the second rule, we scale the container of the embed
288
- // up by the amount that we scaled the Youtube embed down.
289
- // This results in the embed being the correct size and the
290
- // desktop styles being used.
291
-
289
+ // Ensure the YouTube video has a fluid width
290
+ // https://alistapart.com/article/creating-intrinsic-ratios-for-video/
292
291
  .gem-c-image-card__youtube-video-embed {
293
- @include govuk-media-query($from: tablet) {
294
- transform: scale(1.3);
295
- }
296
- margin: 0;
297
- padding-bottom: 68%;
292
+ position: relative;
293
+ padding-bottom: 56.25%; /* 16:9 */
294
+ height: 0;
298
295
  }
299
296
 
300
- // This rule is to reposition the embed to the correct
301
- // place in the image card. As the embed has been scaled
302
- // down and then scaled up again, it is misaligned and
303
- // here we correct that misalignment.
304
-
305
- .gem-c-image-card__youtube-video-embed.gem-c-govspeak__youtube-video iframe {
306
- @include govuk-media-query($from: tablet) {
307
- left: -22px;
308
- top: -10px;
309
- }
297
+ .gem-c-image-card__youtube-video-embed iframe {
298
+ position: absolute;
299
+ top: 0;
300
+ left: 0;
301
+ width: 100%;
302
+ height: 100%;
310
303
  }
311
304
 
312
305
  .gem-c-image-card__youtube-thumbnail-image-container {
@@ -12,7 +12,7 @@ $search-icon-size: 40px;
12
12
  width: $search-icon-size;
13
13
  height: $search-icon-size;
14
14
  height: govuk-px-to-rem($search-icon-size);
15
- background: image-url("govuk_publishing_components/icon-search.svg") no-repeat -3px center;
15
+ background: url("govuk_publishing_components/icon-search.svg") no-repeat -3px center;
16
16
  }
17
17
 
18
18
  // this overrides styles from static that break the look of the component
@@ -112,7 +112,7 @@
112
112
 
113
113
  .gem-c-option-select__filter-input {
114
114
  @include govuk-font(19);
115
- background: image-url("option-select/input-icon.svg") govuk-colour("white") no-repeat -5px -3px;
115
+ background: url("option-select/input-icon.svg") govuk-colour("white") no-repeat -5px -3px;
116
116
 
117
117
  @include govuk-media-query($from: tablet) {
118
118
  @include govuk-font(16);
@@ -82,19 +82,19 @@
82
82
  }
83
83
 
84
84
  @mixin crest($crest) {
85
- background: image-url("govuk_publishing_components/crests/#{$crest}_13px.png") no-repeat 5px 0;
85
+ background: url("govuk_publishing_components/crests/#{$crest}_13px.png") no-repeat 5px 0;
86
86
  background-size: auto 20px;
87
87
 
88
88
  @include govuk-device-pixel-ratio {
89
- background-image: image-url("govuk_publishing_components/crests/#{$crest}_13px_x2.png");
89
+ background-image: url("govuk_publishing_components/crests/#{$crest}_13px_x2.png");
90
90
  }
91
91
 
92
92
  @include govuk-media-query($from: tablet) {
93
- background: image-url("govuk_publishing_components/crests/#{$crest}_18px.png") no-repeat 6px 0;
93
+ background: url("govuk_publishing_components/crests/#{$crest}_18px.png") no-repeat 6px 0;
94
94
  background-size: auto 26px;
95
95
 
96
96
  @include govuk-device-pixel-ratio {
97
- background-image: image-url("govuk_publishing_components/crests/#{$crest}_18px_x2.png");
97
+ background-image: url("govuk_publishing_components/crests/#{$crest}_18px_x2.png");
98
98
  }
99
99
  }
100
100
  }
@@ -19,13 +19,13 @@ $gem-c-print-link-background-height: 18px;
19
19
 
20
20
  .gem-c-print-link__link,
21
21
  .gem-c-print-link__button {
22
- background: image-url("govuk_publishing_components/icon-print.png") no-repeat govuk-spacing(2) 50%;
22
+ background: url("govuk_publishing_components/icon-print.png") no-repeat govuk-spacing(2) 50%;
23
23
  background-size: $gem-c-print-link-background-width $gem-c-print-link-background-height;
24
24
  padding: govuk-spacing(2) govuk-spacing(2) govuk-spacing(2) (govuk-spacing(4) + $gem-c-print-link-background-width);
25
25
  text-decoration: none;
26
26
 
27
27
  @include govuk-device-pixel-ratio($ratio: 2) {
28
- background-image: image-url("govuk_publishing_components/icon-print-2x.png");
28
+ background-image: url("govuk_publishing_components/icon-print-2x.png");
29
29
  }
30
30
 
31
31
  &:hover {
@@ -95,7 +95,7 @@ $large-input-size: 50px;
95
95
  // Note: this is a non-standard CSS feature and will not do anything in Firefox. https://bugzilla.mozilla.org/show_bug.cgi?id=1417753
96
96
  &::-webkit-search-cancel-button {
97
97
  -webkit-appearance: none;
98
- background-image: image-url("govuk_publishing_components/icon-close.svg");
98
+ background-image: url("govuk_publishing_components/icon-close.svg");
99
99
  background-position: center;
100
100
  background-repeat: no-repeat;
101
101
  cursor: pointer;
@@ -281,7 +281,7 @@ $large-input-size: 50px;
281
281
  .search-toggle {
282
282
  display: none;
283
283
  background-color: govuk-colour("blue");
284
- background-image: image-url("govuk_publishing_components/search-button.png");
284
+ background-image: url("govuk_publishing_components/search-button.png");
285
285
  background-position: 0 50%;
286
286
  background-repeat: no-repeat;
287
287
  float: right;
@@ -4,7 +4,7 @@ $high-alert-border: #cc0000;
4
4
  .govspeak, // Legacy class name that's still used in some content items - needs to be kept until `.govspeak` is removed from the content items.
5
5
  .gem-c-govspeak {
6
6
  .advisory {
7
- background-image: image-url("govuk_publishing_components/icon-important.svg");
7
+ background-image: url("govuk_publishing_components/icon-important.svg");
8
8
  background-repeat: no-repeat;
9
9
  background-size: 30px 30px;
10
10
  background-position: 98% center;
@@ -14,7 +14,7 @@
14
14
  a {
15
15
  display: block;
16
16
  font-weight: 600;
17
- background-image: image-url("govuk_publishing_components/icon-file-download.svg");
17
+ background-image: url("govuk_publishing_components/icon-file-download.svg");
18
18
  background-repeat: no-repeat;
19
19
  background-size: 40px 40px;
20
20
  min-height: 2.5em;
@@ -16,7 +16,7 @@
16
16
  margin: 2em 0;
17
17
 
18
18
  // Add '!' icon
19
- background-image: image-url("govuk_publishing_components/icon-important.svg");
19
+ background-image: url("govuk_publishing_components/icon-important.svg");
20
20
  background-size: $icon-size $icon-size;
21
21
  background-repeat: no-repeat;
22
22
  min-height: $icon-size;
@@ -1,2 +1,15 @@
1
- $govuk-image-url-function: "image-url";
2
- $govuk-font-url-function: "font-url";
1
+ // Custom image URL function
2
+ // https://github.com/alphagov/govuk-frontend/blob/9f05cea739d14d4cbf18e79b17228045ca84b3ba/packages/govuk-frontend/src/govuk/settings/_assets.scss#L30-L55
3
+
4
+ @function app-image-url($filename) {
5
+ @return url("#{$filename}");
6
+ }
7
+ // Custom font URL function
8
+ // https://github.com/alphagov/govuk-frontend/blob/9f05cea739d14d4cbf18e79b17228045ca84b3ba/packages/govuk-frontend/src/govuk/settings/_assets.scss#L57-L82
9
+
10
+ @function app-font-url($filename) {
11
+ @return url("#{$filename}");
12
+ }
13
+
14
+ $govuk-image-url-function: "app-image-url";
15
+ $govuk-font-url-function: "app-font-url";
@@ -161,7 +161,7 @@ module GovukPublishingComponents
161
161
  end
162
162
 
163
163
  def clean_file_path(file)
164
- file[/(?<=#{Regexp.escape(@path.to_s)}\/)[\/a-zA-Z_-]+.[a-zA-Z+.]+/]
164
+ file[/(?<=#{Regexp.escape(@path.to_s)}\/)[\/0-9a-zA-Z_-]+.[0-9a-zA-Z+.]+/]
165
165
  end
166
166
 
167
167
  def clean_file_name(name)
@@ -1,6 +1,8 @@
1
1
  <%
2
2
  add_gem_component_stylesheet("file-upload")
3
3
 
4
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
5
+
4
6
  id ||= "file-upload-#{SecureRandom.hex(4)}"
5
7
  value ||= nil
6
8
  accept ||= nil
@@ -13,6 +15,8 @@
13
15
  has_error = error_message || error_items.any?
14
16
  hint_id = "hint-#{SecureRandom.hex(4)}"
15
17
  error_id = "error-#{SecureRandom.hex(4)}"
18
+ heading_size = false unless shared_helper.valid_heading_size?(heading_size)
19
+ heading_level ||= nil
16
20
 
17
21
  css_classes = %w(gem-c-file-upload govuk-file-upload)
18
22
  css_classes << "govuk-file-upload--error" if has_error
@@ -30,7 +34,20 @@
30
34
 
31
35
  <%= content_tag :div, class: form_group_css_classes do %>
32
36
  <% if label %>
33
- <%= render "govuk_publishing_components/components/label", { html_for: id, text: label[:text] }.merge(label.symbolize_keys) %>
37
+ <% label_markup = capture do %>
38
+ <%= render "govuk_publishing_components/components/label", {
39
+ html_for: id,
40
+ heading_size: heading_size
41
+ }.merge(label.symbolize_keys) %>
42
+ <% end %>
43
+
44
+ <% if heading_level %>
45
+ <%= content_tag(shared_helper.get_heading_level, class: "govuk-label-wrapper") do %>
46
+ <%= label_markup %>
47
+ <% end %>
48
+ <% else %>
49
+ <%= label_markup %>
50
+ <% end %>
34
51
  <% end %>
35
52
 
36
53
  <% if hint %>
@@ -8,12 +8,9 @@
8
8
  gtm_attributes = gtm_attributes.join('&')
9
9
  %>
10
10
  <%= javascript_tag nonce: true do -%>
11
- var doNotTrack = ( navigator.doNotTrack === '1' || navigator.doNotTrack === 'yes' || navigator.msDoNotTrack === '1' || window.doNotTrack === '1' )
12
- if (!doNotTrack) {
13
- (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
11
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
14
12
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
15
13
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
16
14
  'https://www.googletagmanager.com/gtm.js?id='+i+dl+'&<%= raw gtm_attributes %>';f.parentNode.insertBefore(j,f);
17
15
  })(window,document,'script','dataLayer','<%= gtm_id %>');
18
- }
19
16
  <% end -%>
@@ -27,6 +27,7 @@
27
27
  govuk-link
28
28
  ]
29
29
  heading_link_classes << brand_helper.color_class
30
+ heading_link_classes << "gem-c-image-card__title-link--large-font-size-mobile" if card_helper.large_mobile_font_size?
30
31
  extra_link_classes = %w[
31
32
  gem-c-image-card__list-item-link
32
33
  govuk-link
@@ -37,6 +37,7 @@
37
37
  helper.add_data_attribute({ "closed-on-load-mobile": "true" }) if local_assigns.include?(:closed_on_load_mobile) && closed_on_load_mobile
38
38
  helper.add_data_attribute({ "input-aria-controls": aria_controls_id }) if local_assigns.include?(:aria_controls_id)
39
39
  helper.add_data_attribute({ "filter-element": filter_element }) if show_filter
40
+ helper.add_data_attribute({ "button-data-attributes": button_data_attributes }) if local_assigns.include?(:button_data_attributes)
40
41
 
41
42
  options_container_classes = %w[gem-c-option-select__container js-options-container]
42
43
  options_container_classes << "gem-c-option-select__container--large" if large
@@ -48,3 +48,14 @@ examples:
48
48
  text: "Upload an image"
49
49
  name: "file-upload-specific"
50
50
  accept: "image/*"
51
+ with_label_as_heading:
52
+ description: |
53
+ Wraps the label in a heading tag. Valid options are `1` to `6`. To adjust the size of the label/heading, use the `heading_size` option. Valid options are `s`, `m`, `l` and `xl`.
54
+
55
+ Based on the [heading/label pattern](https://design-system.service.gov.uk/patterns/question-pages/) in the GOV.UK Design System.
56
+ data:
57
+ label:
58
+ text: "This is a heading 1 and a label"
59
+ name: "name"
60
+ heading_level: 1
61
+ heading_size: "l"
@@ -206,7 +206,10 @@ examples:
206
206
  <%= component %>
207
207
  </div>
208
208
  two_thirds:
209
- description: This variant is used for the featured section on the homepage. The aspect ratio used is 1:1 and the width of the image is constrained to 80px wide.
209
+ description: |
210
+ This variant is used for the featured section on the homepage. The aspect ratio used is 1:1 and the width of the image is constrained to 80px wide.
211
+
212
+ Setting `large_font_size_mobile` to `true` will ensure that the font size for the title and description will be 19px on all screen sizes.
210
213
  data:
211
214
  two_thirds: true
212
215
  href: "/still-not-a-page"
@@ -214,6 +217,7 @@ examples:
214
217
  image_alt: "some meaningful alt text please"
215
218
  heading_text: "Something has happened nearby possibly"
216
219
  description: "Following a news report that something has happened, further details are emerging of the thing that has happened and what that means for you."
220
+ large_font_size_mobile: true
217
221
  embed: |
218
222
  <div class="govuk-!-width-full">
219
223
  <%= component %>
@@ -156,6 +156,24 @@ examples:
156
156
  track_label: "high_heels"
157
157
  track_options:
158
158
  dimension28: 1
159
+ with_button_data_attributes:
160
+ description: Allows data attributes to be passed to the component to be added to the expand/collapse button. The attributes are written to the parent element then read by the JavaScript and applied to the button. This is used for tracking purposes.
161
+ data:
162
+ key: market_sector
163
+ title: Market sector
164
+ options_container_id: list_of_sectors
165
+ button_data_attributes:
166
+ ga4_expandable: ""
167
+ ga4_event:
168
+ event_name: "select_content"
169
+ type: "finder"
170
+ options:
171
+ - value: aerospace
172
+ label: Aerospace
173
+ id: aerospace
174
+ - value: agriculture-environment-and-natural-resources
175
+ label: Agriculture, environment and natural resources
176
+ id: agriculture-environment-and-natural-resources
159
177
  with_filter:
160
178
  description: Adds a filter to allow users to narrow the checkboxes down. Checkboxes will only show if they match what the user has typed, or if they are already checked. The filter is case insensitive and strips out punctuation characters and duplicate whitespace, and sees '&' and 'and' as the same, to make filtering easier.
161
179
  data:
@@ -7,7 +7,13 @@ return unless Rails.application.config.respond_to?(:assets)
7
7
  # In future we may want applications to link directly to this from their
8
8
  # manifest file as the use of `config.assets.precompile` is discouraged
9
9
  # from version 4: https://github.com/rails/sprockets/blob/58cca17aa447fcee17703e4ab4dbfaab630e7ed4/UPGRADING.md
10
- Rails.application.config.assets.precompile += %w[govuk_publishing_components_manifest.js]
10
+ # Rails.application.config.assets.precompile += %w[govuk_publishing_components_manifest.js]
11
+
12
+ if Gem.loaded_specs.key?("dartsass-rails")
13
+ Rails.application.config.assets.precompile += %w[govuk_publishing_components_manifest.js]
14
+ elsif Gem.loaded_specs.key?("sassc-rails")
15
+ Rails.application.config.assets.precompile += %w[govuk_publishing_components_sassc-rails_manifest.js]
16
+ end
11
17
 
12
18
  Rails.application.config.assets.paths += %W[
13
19
  #{__dir__}/../../node_modules/govuk-frontend/govuk/assets/images
@@ -28,5 +28,17 @@ module GovukPublishingComponents
28
28
  def self.gem_directory
29
29
  Gem::Specification.find_by_name("govuk_publishing_components").gem_dir
30
30
  end
31
+
32
+ def self.all_stylesheets
33
+ stylesheets = Dir.glob("#{gem_directory}/app/assets/stylesheets/govuk_publishing_components/components/*.scss")
34
+ # _copy-to-clipboard.css is removed due to being an empty stylesheet
35
+ included_files = stylesheets.reject { |path| path.include?("copy-to-clipboard") }
36
+
37
+ application_stylesheet_hash = { "#{gem_directory}/app/assets/stylesheets/component_guide/application.scss" => "component_guide/application.css" }
38
+
39
+ included_files.each_with_object(application_stylesheet_hash) do |path, hsh|
40
+ hsh[path] = "govuk_publishing_components/components/#{File.basename(path, '.*')}.css"
41
+ end
42
+ end
31
43
  end
32
44
  end
@@ -4,7 +4,7 @@ module GovukPublishingComponents
4
4
  include ActionView::Helpers
5
5
  include ActionView::Context
6
6
 
7
- attr_reader :href_data_attributes, :extra_details, :extra_details_no_indent, :heading_text, :metadata, :lang, :image_loading, :youtube_video_id, :image_src, :two_thirds
7
+ attr_reader :href_data_attributes, :extra_details, :extra_details_no_indent, :heading_text, :metadata, :lang, :image_loading, :youtube_video_id, :image_src, :two_thirds, :large_font_size_mobile
8
8
 
9
9
  def initialize(local_assigns, brand_helper)
10
10
  @href = local_assigns[:href]
@@ -21,6 +21,7 @@ module GovukPublishingComponents
21
21
  @description = local_assigns[:description]
22
22
  @large = local_assigns[:large]
23
23
  @two_thirds = local_assigns[:two_thirds] || false
24
+ @large_font_size_mobile = local_assigns[:large_font_size_mobile] || false
24
25
  @heading_text = local_assigns[:heading_text]
25
26
  @extra_details_no_indent = local_assigns[:extra_details_no_indent]
26
27
  @metadata = local_assigns[:metadata]
@@ -43,6 +44,13 @@ module GovukPublishingComponents
43
44
  @youtube_video_id || @large
44
45
  end
45
46
 
47
+ def large_mobile_font_size?
48
+ # allow the font-size to be 19px on mobile
49
+ # for the two-thirds varation of the
50
+ # image card component
51
+ @two_thirds && @large_font_size_mobile
52
+ end
53
+
46
54
  def is_tracking?
47
55
  return true if @href_data_attributes
48
56
 
@@ -104,6 +112,8 @@ module GovukPublishingComponents
104
112
  end
105
113
 
106
114
  def description
115
+ return content_tag(:div, @description, class: "gem-c-image-card__description gem-c-image-card__description--large-font-size-mobile") if @description && large_mobile_font_size?
116
+
107
117
  content_tag(:div, @description, class: "gem-c-image-card__description") if @description
108
118
  end
109
119
 
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "36.0.3".freeze
2
+ VERSION = "37.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 36.0.3
4
+ version: 37.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-07 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '3'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sprockets-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: capybara
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +137,7 @@ dependencies:
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: faker
140
+ name: dartsass-rails
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - ">="
@@ -137,7 +151,7 @@ dependencies:
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
- name: gds-api-adapters
154
+ name: faker
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
@@ -151,7 +165,7 @@ dependencies:
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
- name: govuk_schemas
168
+ name: gds-api-adapters
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
@@ -165,7 +179,7 @@ dependencies:
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: govuk_test
182
+ name: govuk_schemas
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - ">="
@@ -179,7 +193,7 @@ dependencies:
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
- name: i18n-coverage
196
+ name: govuk_test
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - ">="
@@ -193,7 +207,7 @@ dependencies:
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
195
209
  - !ruby/object:Gem::Dependency
196
- name: percy-capybara
210
+ name: i18n-coverage
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
@@ -207,7 +221,7 @@ dependencies:
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
- name: pry-byebug
224
+ name: percy-capybara
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - ">="
@@ -221,7 +235,7 @@ dependencies:
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
- name: rails_translation_manager
238
+ name: pry-byebug
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - ">="
@@ -235,7 +249,7 @@ dependencies:
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0'
237
251
  - !ruby/object:Gem::Dependency
238
- name: rake
252
+ name: rails_translation_manager
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - ">="
@@ -249,7 +263,7 @@ dependencies:
249
263
  - !ruby/object:Gem::Version
250
264
  version: '0'
251
265
  - !ruby/object:Gem::Dependency
252
- name: rspec-rails
266
+ name: rake
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - ">="
@@ -263,7 +277,7 @@ dependencies:
263
277
  - !ruby/object:Gem::Version
264
278
  version: '0'
265
279
  - !ruby/object:Gem::Dependency
266
- name: rubocop-govuk
280
+ name: rspec-rails
267
281
  requirement: !ruby/object:Gem::Requirement
268
282
  requirements:
269
283
  - - ">="
@@ -277,7 +291,7 @@ dependencies:
277
291
  - !ruby/object:Gem::Version
278
292
  version: '0'
279
293
  - !ruby/object:Gem::Dependency
280
- name: sassc-rails
294
+ name: rubocop-govuk
281
295
  requirement: !ruby/object:Gem::Requirement
282
296
  requirements:
283
297
  - - ">="
@@ -342,6 +356,7 @@ files:
342
356
  - LICENCE.md
343
357
  - README.md
344
358
  - app/assets/config/govuk_publishing_components_manifest.js
359
+ - app/assets/config/govuk_publishing_components_sassc-rails_manifest.js
345
360
  - app/assets/images/govuk_publishing_components/action-link-arrow--dark.png
346
361
  - app/assets/images/govuk_publishing_components/action-link-arrow--dark.svg
347
362
  - app/assets/images/govuk_publishing_components/action-link-arrow--light.png
@@ -1461,7 +1476,11 @@ homepage: https://github.com/alphagov/govuk_publishing_components
1461
1476
  licenses:
1462
1477
  - MIT
1463
1478
  metadata: {}
1464
- post_install_message:
1479
+ post_install_message: govuk_publishing_components has now migrated to dartsass-rails
1480
+ from sassc-rails for stylesheet compilation since LibSass is deprecated. While both
1481
+ implementations are supported, it is recommended to update your application to use
1482
+ the latest implementation of Sass (dartsass-rails). You can find further details
1483
+ in the docs - https://docs.publishing.service.gov.uk/manual/migrate-to-dart-sass-from-libsass.html.
1465
1484
  rdoc_options: []
1466
1485
  require_paths:
1467
1486
  - lib