@ons/design-system 70.0.8 → 70.0.9

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 (201) hide show
  1. package/components/access-code/_macro.njk +31 -25
  2. package/components/access-code/example-access-code-error.njk +49 -37
  3. package/components/access-code/example-access-code.njk +40 -30
  4. package/components/accordion/_macro.njk +7 -6
  5. package/components/accordion/example-accordion-open.njk +0 -1
  6. package/components/address-input/_macro.njk +23 -11
  7. package/components/address-input/autosuggest.address.js +0 -5
  8. package/components/address-input/example-address-input-editable.njk +52 -50
  9. package/components/address-input/example-address-input-manual.njk +23 -21
  10. package/components/address-input/example-address-input.njk +40 -38
  11. package/components/address-output/_macro.njk +6 -6
  12. package/components/autosuggest/_macro.njk +57 -37
  13. package/components/autosuggest/example-autosuggest-country-multiple.njk +26 -26
  14. package/components/autosuggest/example-autosuggest-country.njk +24 -24
  15. package/components/back-to-top/example-back-to-top.njk +183 -6
  16. package/components/back-to-top/example-full-page-back-to-top.njk +135 -123
  17. package/components/breadcrumbs/_macro.njk +12 -4
  18. package/components/browser-banner/_macro.njk +6 -3
  19. package/components/button/_button.scss +36 -1
  20. package/components/button/_macro.njk +63 -62
  21. package/components/button/example-button-ghost.njk +1 -0
  22. package/components/call-to-action/_macro.njk +7 -5
  23. package/components/call-to-action/example-call-to-action-default.njk +3 -2
  24. package/components/card/_macro.njk +26 -10
  25. package/components/card/example-card-set-with-images.njk +31 -29
  26. package/components/card/example-card-set-with-lists.njk +58 -56
  27. package/components/card/example-card-set.njk +28 -26
  28. package/components/card/example-card.njk +9 -7
  29. package/components/char-check-limit/_macro.njk +1 -3
  30. package/components/checkboxes/_checkbox-macro.njk +19 -15
  31. package/components/checkboxes/_macro.njk +81 -72
  32. package/components/checkboxes/example-checkboxes-disabled.njk +30 -30
  33. package/components/checkboxes/example-checkboxes-error.njk +0 -1
  34. package/components/checkboxes/example-checkboxes-with-descriptions.njk +7 -5
  35. package/components/checkboxes/example-checkboxes-with-hidden-label.njk +162 -170
  36. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes-expanded.njk +81 -81
  37. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes.njk +79 -79
  38. package/components/checkboxes/example-checkboxes-with-revealed-select-expanded.njk +7 -5
  39. package/components/checkboxes/example-checkboxes-with-revealed-select.njk +7 -5
  40. package/components/checkboxes/example-checkboxes-with-revealed-text-input-expanded.njk +7 -5
  41. package/components/checkboxes/example-checkboxes-with-revealed-text-input.njk +7 -5
  42. package/components/checkboxes/example-checkboxes-with-select-all-button.njk +7 -5
  43. package/components/checkboxes/example-checkboxes-with-visible-text-input.njk +7 -5
  44. package/components/checkboxes/example-checkboxes.njk +7 -5
  45. package/components/content-pagination/_macro.njk +34 -32
  46. package/components/content-pagination/example-content-pagination.njk +17 -17
  47. package/components/cookies-banner/_macro.njk +19 -6
  48. package/components/cookies-banner/example-cookies-banner-cymraeg.njk +2 -1
  49. package/components/cookies-banner/example-cookies-banner.njk +3 -4
  50. package/components/date-input/_macro.njk +71 -63
  51. package/components/date-input/example-date-input-error-for-single-field.njk +0 -1
  52. package/components/date-input/example-date-input-error.njk +0 -1
  53. package/components/description-list/_macro.njk +20 -11
  54. package/components/details/_macro.njk +18 -11
  55. package/components/details/example-details-with-warning.njk +15 -10
  56. package/components/document-list/_macro.njk +102 -93
  57. package/components/document-list/example-document-list-article-featured.njk +27 -25
  58. package/components/document-list/example-document-list-articles.njk +55 -53
  59. package/components/document-list/example-document-list-downloads.njk +49 -47
  60. package/components/document-list/example-document-list-search-result-featured.njk +19 -17
  61. package/components/document-list/example-document-list-search-results.njk +60 -58
  62. package/components/duration/_macro.njk +61 -55
  63. package/components/duration/example-duration-error-for-single-field.njk +28 -26
  64. package/components/duration/example-duration-single-field.njk +23 -19
  65. package/components/duration/example-duration.njk +33 -29
  66. package/components/error/_macro.njk +8 -6
  67. package/components/external-link/_macro.njk +7 -5
  68. package/components/external-link/example-external-link.njk +9 -6
  69. package/components/feedback/_macro.njk +7 -5
  70. package/components/field/_macro.njk +2 -2
  71. package/components/fieldset/_macro.njk +23 -16
  72. package/components/footer/_macro.njk +28 -21
  73. package/components/footer/_macro.spec.js +1 -1
  74. package/components/footer/example-footer-cymraeg.njk +2 -1
  75. package/components/footer/example-footer-default.njk +3 -4
  76. package/components/footer/example-footer-transactional.njk +2 -1
  77. package/components/footer/example-footer-warning.njk +2 -1
  78. package/components/footer/example-footer-with-alternative-organisation.njk +2 -1
  79. package/components/footer/example-footer-with-coat-of-arms.njk +2 -1
  80. package/components/footer/example-footer-with-copyright.njk +2 -1
  81. package/components/footer/example-footer.njk +2 -1
  82. package/components/header/_header.scss +24 -19
  83. package/components/header/_macro.njk +183 -141
  84. package/components/header/example-header-default.njk +2 -1
  85. package/components/header/example-header-external-for-survey-with-description.njk +2 -1
  86. package/components/header/example-header-external-for-surveys.njk +2 -1
  87. package/components/header/example-header-external-welsh.njk +7 -7
  88. package/components/header/example-header-external-with-navigation-and-search.njk +3 -2
  89. package/components/header/example-header-external-with-navigation.njk +2 -1
  90. package/components/header/example-header-external-with-service-links.njk +2 -1
  91. package/components/header/example-header-external-with-sub-navigation-removed.njk +2 -1
  92. package/components/header/example-header-external-with-sub-navigation.njk +3 -2
  93. package/components/header/example-header-internal.njk +2 -1
  94. package/components/header/example-header-multiple-logos.njk +2 -1
  95. package/components/header/{example-header-neutral-for-multicoloured-logo.njk → example-header-neutral.njk} +2 -1
  96. package/components/helpers/grid.njk +17 -16
  97. package/components/hero/_macro.njk +6 -11
  98. package/components/hero/example-hero-dark.njk +2 -1
  99. package/components/hero/example-hero-default.njk +2 -1
  100. package/components/icon/_macro.njk +601 -168
  101. package/components/image/_macro.njk +7 -5
  102. package/components/input/_macro.njk +114 -95
  103. package/components/input/example-input-search-with-character-check.njk +1 -1
  104. package/components/input/example-input-search-with-placeholder.njk +1 -1
  105. package/components/input/example-input-search.njk +1 -1
  106. package/components/label/_macro.njk +32 -26
  107. package/components/language-selector/_macro.njk +11 -2
  108. package/components/list/_list.scss +13 -0
  109. package/components/list/_macro.njk +93 -73
  110. package/components/message/_macro.njk +20 -7
  111. package/components/message-list/_macro.njk +26 -20
  112. package/components/modal/_macro.njk +11 -12
  113. package/components/multiple-input-fields/_macro.njk +30 -28
  114. package/components/mutually-exclusive/_macro.njk +20 -13
  115. package/components/mutually-exclusive/example-mutually-exclusive-checkboxes.njk +6 -4
  116. package/components/mutually-exclusive/example-mutually-exclusive-date.njk +7 -5
  117. package/components/mutually-exclusive/example-mutually-exclusive-duration.njk +44 -40
  118. package/components/mutually-exclusive/example-mutually-exclusive-email.njk +7 -5
  119. package/components/mutually-exclusive/example-mutually-exclusive-multiple-options.njk +6 -4
  120. package/components/mutually-exclusive/example-mutually-exclusive-number.njk +6 -4
  121. package/components/mutually-exclusive/example-mutually-exclusive-textarea.njk +6 -4
  122. package/components/navigation/_macro.njk +133 -67
  123. package/components/navigation/_navigation.scss +0 -9
  124. package/components/pagination/_macro.njk +42 -20
  125. package/components/panel/_macro.njk +27 -16
  126. package/components/panel/example-panel-bare.njk +6 -4
  127. package/components/panel/example-panel-with-announcement.njk +7 -4
  128. package/components/panel/example-panel-with-error-summary.njk +6 -4
  129. package/components/panel/example-panel-with-warning.njk +5 -3
  130. package/components/password/_macro.njk +7 -5
  131. package/components/phase-banner/_macro.njk +3 -3
  132. package/components/phase-banner/example-phase-banner-alpha.njk +2 -1
  133. package/components/phase-banner/example-phase-banner-beta.njk +4 -3
  134. package/components/question/_macro.njk +62 -47
  135. package/components/question/example-question-ccs.njk +40 -35
  136. package/components/question/example-question-fieldset.njk +84 -80
  137. package/components/question/example-question-interviewer-note.njk +27 -24
  138. package/components/question/example-question-no-fieldset.njk +39 -33
  139. package/components/quote/_macro.njk +3 -1
  140. package/components/radios/_macro.njk +54 -36
  141. package/components/radios/_macro.spec.js +21 -0
  142. package/components/radios/example-radios-with-clear-button-expanded.njk +6 -4
  143. package/components/radios/example-radios-with-clear-button.njk +6 -4
  144. package/components/radios/example-radios-with-descriptions.njk +7 -5
  145. package/components/radios/example-radios-with-revealed-select-expanded.njk +6 -4
  146. package/components/radios/example-radios-with-revealed-select.njk +6 -4
  147. package/components/radios/example-radios-with-revealed-text-area-expanded.njk +7 -5
  148. package/components/radios/example-radios-with-revealed-text-area.njk +7 -5
  149. package/components/radios/example-radios-with-revealed-text-input-expanded.njk +7 -5
  150. package/components/radios/example-radios-with-revealed-text-input.njk +7 -5
  151. package/components/radios/example-radios-with-separator.njk +6 -4
  152. package/components/radios/example-radios-with-visible-text-input.njk +7 -5
  153. package/components/radios/example-radios-without-border.njk +0 -1
  154. package/components/radios/example-radios.njk +7 -5
  155. package/components/related-content/_macro.njk +10 -11
  156. package/components/related-content/_section-macro.njk +7 -7
  157. package/components/related-content/example-related-content-general.njk +5 -3
  158. package/components/related-content/example-related-content-multiple-rows-of-links.njk +51 -49
  159. package/components/related-content/example-related-content-social-media.njk +40 -38
  160. package/components/relationships/_macro.njk +10 -8
  161. package/components/relationships/example-relationships-error.njk +176 -168
  162. package/components/relationships/example-relationships-you.njk +169 -163
  163. package/components/relationships/example-relationships.njk +167 -161
  164. package/components/section-navigation/_macro.njk +34 -12
  165. package/components/select/_macro.njk +21 -18
  166. package/components/share-page/_macro.njk +10 -5
  167. package/components/skip-to-content/_macro.njk +1 -1
  168. package/components/skip-to-content/example-skip-to-content.njk +1 -0
  169. package/components/status/_macro.njk +1 -1
  170. package/components/summary/_macro.njk +53 -23
  171. package/components/summary/example-summary-household-no-rows.njk +18 -16
  172. package/components/summary/example-summary-household.njk +75 -73
  173. package/components/summary/example-summary-hub-minimal.njk +74 -72
  174. package/components/summary/example-summary-hub.njk +169 -167
  175. package/components/table/_macro.njk +72 -45
  176. package/components/table-of-contents/_macro.njk +34 -32
  177. package/components/table-of-contents/example-table-of-contents-grouped.njk +1 -1
  178. package/components/table-of-contents/example-table-of-contents-single.njk +1 -1
  179. package/components/table-of-contents/example-table-of-contents-sticky-full-page.njk +79 -38
  180. package/components/table-of-contents/example-table-of-contents-sticky.njk +50 -13
  181. package/components/tabs/_macro.njk +12 -6
  182. package/components/tabs/example-tabs-details.njk +5 -6
  183. package/components/text-indent/_macro.njk +1 -3
  184. package/components/textarea/_macro.njk +49 -46
  185. package/components/textarea/_macro.spec.js +0 -11
  186. package/components/timeline/_macro.njk +4 -6
  187. package/components/timeout-modal/_macro.njk +21 -19
  188. package/components/timeout-modal/example-timeout-modal.njk +16 -14
  189. package/components/timeout-panel/_macro.njk +19 -17
  190. package/components/timeout-panel/example-panel-with-timeout-warning.njk +13 -11
  191. package/components/upload/_macro.njk +20 -16
  192. package/components/video/_macro.njk +16 -2
  193. package/components/video/example-video.njk +2 -2
  194. package/css/main.css +1 -1
  195. package/layout/_dsTemplate.njk +22 -20
  196. package/layout/_template.njk +63 -49
  197. package/package.json +4 -3
  198. package/scripts/main.es5.js +1 -1
  199. package/scripts/main.js +1 -1
  200. package/scss/overrides/hcm.scss +1 -1
  201. package/scss/vars/_colors.scss +1 -1
@@ -2,16 +2,19 @@
2
2
  {% if params.lang == "cy" %}
3
3
  {% set bannerLeadingText = 'Nid yw’r wefan hon yn cefnogi eich porwr mwyach.' %}
4
4
  {% set bannerLinkUrl = 'https://cy.ons.gov.uk/help/browsers' %}
5
- {% set bannerCTA = 'Gallwch <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">ddiweddaru eich porwr i’r fersiwn ddiweddaraf</a>.' %}
5
+ {% set bannerCta = 'Gallwch <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">ddiweddaru eich porwr i’r fersiwn ddiweddaraf</a>.' %}
6
6
  {% else %}
7
7
  {% set bannerLeadingText = 'This website no longer supports your browser.' %}
8
8
  {% set bannerLinkUrl = 'https://www.ons.gov.uk/help/browsers' %}
9
- {% set bannerCTA = 'You can <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">upgrade your browser to the latest version</a>.' %}
9
+ {% set bannerCta = 'You can <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">upgrade your browser to the latest version</a>.' %}
10
10
  {% endif %}
11
11
 
12
12
  <div class="ons-browser-banner">
13
13
  <div class="ons-container{{ ' ons-container--full-width' if params.fullWidth }}{{ ' ons-container--wide' if params.wide }}">
14
- <p class="ons-browser-banner__content"><span class="ons-browser-banner__lead">{{ bannerLeadingText }}</span><span class="ons-browser-banner__cta"> {{ bannerCTA | safe }}</span></p>
14
+ <p class="ons-browser-banner__content">
15
+ <span class="ons-browser-banner__lead">{{ bannerLeadingText }}</span
16
+ ><span class="ons-browser-banner__cta"> {{ bannerCta | safe }}</span>
17
+ </p>
15
18
  </div>
16
19
  </div>
17
20
  {% endmacro %}
@@ -285,6 +285,7 @@ $button-shadow-size: 3px;
285
285
  &--ghost-dark,
286
286
  &--dropdown,
287
287
  &--text-link,
288
+ &--neutral,
288
289
  &--disabled,
289
290
  &--loader.ons-is-loading {
290
291
  &:active,
@@ -302,7 +303,8 @@ $button-shadow-size: 3px;
302
303
  &--ghost:focus:hover,
303
304
  &--ghost-dark:focus:hover,
304
305
  &--dropdown:focus:hover,
305
- &--text-link:focus:hover {
306
+ &--text-link:focus:hover,
307
+ &--neutral:focus:hover {
306
308
  outline: none;
307
309
  }
308
310
 
@@ -515,6 +517,39 @@ $button-shadow-size: 3px;
515
517
  }
516
518
  }
517
519
  }
520
+
521
+ &--neutral &,
522
+ &--neutral:hover &,
523
+ &--neutral:active &,
524
+ &--neutral.active & {
525
+ &__inner {
526
+ background: transparent;
527
+ border: 0;
528
+ border-radius: 0;
529
+ box-shadow: none;
530
+ color: var(--ons-color-black);
531
+ font-weight: $font-weight-regular;
532
+ padding: 2px;
533
+ .ons-icon {
534
+ fill: var(--ons-color-black);
535
+ }
536
+ }
537
+ }
538
+
539
+ &--neutral:focus &,
540
+ &--neutral:active:focus &,
541
+ &--neutral.active:focus & {
542
+ &__inner {
543
+ background-color: var(--ons-color-focus);
544
+ box-shadow:
545
+ 0 -2px var(--ons-color-focus),
546
+ 0 4px var(--ons-color-text-link-focus) !important;
547
+ color: var(--ons-color-text-link-focus);
548
+ .ons-icon {
549
+ fill: var(--ons-color-text-link-focus);
550
+ }
551
+ }
552
+ }
518
553
  }
519
554
 
520
555
  .ons-btn-group {
@@ -13,11 +13,11 @@
13
13
  {% endif %}
14
14
  {% elif params.iconType is not defined and params.noIcon is not defined %}
15
15
  {% if params.url and params.newWindow %}
16
- {# CTA link opening in new tab #}
16
+ {# CTA link opening in new tab #}
17
17
  {% set iconType = "external-link" %}
18
18
  {% set iconPosition = "after" %}
19
19
  {% elif params.url %}
20
- {# CTA link #}
20
+ {# CTA link #}
21
21
  {% set iconType = "arrow-next" %}
22
22
  {% set iconPosition = "after" %}
23
23
  {% endif %}
@@ -39,7 +39,7 @@
39
39
  {% endif %}
40
40
  {% set iconType = "print" %}
41
41
  {% set iconPosition = "before" %}
42
- {% set variantClasses = "ons-u-d-no ons-js-print-btn" %}
42
+ {% set variantClasses = " ons-u-d-no ons-js-print-btn" %}
43
43
  {% elif 'download' in params.variants %}
44
44
  {# Download #}
45
45
  {% set iconType = "download" %}
@@ -55,74 +55,75 @@
55
55
  {% set variantAttributes = "disabled" %}
56
56
  {% elif 'timer' in params.variants %}
57
57
  {# Timer #}
58
- {% set variantClasses = "ons-js-timer ons-js-submit-btn" %}
58
+ {% set variantClasses = " ons-js-timer ons-js-submit-btn" %}
59
59
  {% elif 'loader' in params.variants %}
60
60
  {# Loader #}
61
61
  {% set iconType = "loader" %}
62
62
  {% set iconPosition = "after" %}
63
- {% set variantClasses = "ons-btn--loader ons-js-loader ons-js-submit-btn" %}
63
+ {% set variantClasses = " ons-btn--loader ons-js-loader ons-js-submit-btn" %}
64
64
  {% endif %}
65
65
  {% endif %}
66
-
67
66
  {% set tag = "a" if params.url else "button" %}
68
-
69
- <{{ tag }}
70
- {% if params.url %}
71
- href="{{ params.url }}"
72
- role="button"
73
- {% else %}
74
- type="{{ buttonType }}"
75
- {% endif %}
76
- class="ons-btn{% if params.classes %} {{ params.classes }}{% endif %}{% if params.variants %}{% if params.variants is not string %}{% for variant in params.variants %} ons-btn--{{ variant }}{% endfor %}{% else %} ons-btn--{{ params.variants }}{% endif %}{% endif %}{% if params.url %} ons-btn--link ons-js-submit-btn{% endif %}{% if variantClasses %} {{ variantClasses }}{% endif %}"
77
- {% if params.id %}id="{{ params.id }}"{% endif %}
78
- {% if params.value and tag != "a" %}value="{{ params.value }}"{% endif %}
79
- {% if params.name and tag != "a" %}name="{{ params.name }}"{% endif %}
80
- {% if params.url and params.newWindow %}target="_blank" rel="noopener"{% endif %}
81
- {{ variantAttributes }}
82
- {% if params.attributes %}{% for attribute, value in (params.attributes.items() if params.attributes is mapping and params.attributes.items else params.attributes) %} {{attribute}}="{{value}}"{% endfor %}{% endif %}
83
- >
84
- <span class="ons-btn__inner{% if params.innerClasses %} {{ params.innerClasses }}{% endif %}">
85
- {%- if iconPosition == "before" or iconPosition == "after" %}
86
- {%- if iconPosition == "before" %}
87
- {{-
88
- onsIcon({
89
- "iconType": iconType,
90
- "classes": 'ons-u-mr-xs'
91
- })
92
- -}}
93
- {% endif -%}
94
- <span class="ons-btn__text">{{- params.html | safe if params.html else params.text -}}</span>
95
- {%- if iconPosition == "after" %}
96
- {{-
97
- onsIcon({
98
- "iconType": iconType,
99
- "classes": 'ons-u-ml-xs'
100
- })
101
- -}}
102
- {% endif -%}
103
- {% elif iconPosition == "only" -%}
67
+ {% set openingTag = "<" + tag %}
68
+ {% set closingTag = "</" + tag + ">" %}
69
+ {{ openingTag | safe }}
70
+ {% if params.url %}
71
+ href="{{ params.url }}" role="button"
72
+ {% else %}
73
+ type="{{ buttonType }}"
74
+ {% endif %}
75
+ class="ons-btn{{ ' ' + params.classes if params.classes else '' }}{% if params.variants and params.variants is not string %}{% for variant in params.variants %}{{ ' ' }}ons-btn--{{ variant }}{% endfor %}{% else %}{{ ' ' }}ons-btn--{{ params.variants }}{% endif %}{{ ' ons-btn--link ons-js-submit-btn' if params.url }}{{ variantClasses }}"
76
+ {% if params.id %}id="{{ params.id }}"{% endif %}
77
+ {% if params.value and tag != "a" %}value="{{ params.value }}"{% endif %}
78
+ {% if params.name and tag != "a" %}name="{{ params.name }}"{% endif %}
79
+ {% if params.url and params.newWindow %}target="_blank" rel="noopener"{% endif %}
80
+ {{ variantAttributes }}
81
+ {% if params.attributes %}{% for attribute, value in (params.attributes.items() if params.attributes is mapping and params.attributes.items else params.attributes) %}{{ ' ' }}{{ attribute }}="{{ value }}"{% endfor %}{% endif %}
82
+ >
83
+ <span class="ons-btn__inner{{ ' ' + params.innerClasses if params.innerClasses else '' }}">
84
+ {%- if iconPosition == "before" or iconPosition == "after" -%}
85
+ {%- if iconPosition == "before" -%}
104
86
  {{-
105
87
  onsIcon({
106
- "iconType": iconType
88
+ "iconType": iconType,
89
+ "classes": 'ons-u-mr-xs'
107
90
  })
108
91
  -}}
109
- <span class="ons-btn__text ons-u-vh@xxs@s">{{- params.html | safe if params.html else params.text -}}</span>
110
- {% else -%}
111
- <span class="ons-btn__text">{{- params.html | safe if params.html else params.text -}}</span>
112
- {% endif -%}
113
- </span>
114
- {% if params.url and params.newWindow %}
115
- <span class="ons-btn__new-window-description ons-u-vh"> ({{ params.newWindowDescription | default("opens in a new tab") }})</span>
116
- {% endif %}
117
- {% if params.buttonContext %}
118
- <span class="ons-btn__context ons-u-vh">{{ params.buttonContext }}</span>
119
- {% endif %}
120
- {% if params.listeners %}
121
- <script{% if csp_nonce %} nonce="{{ csp_nonce() }}"{% endif %}>
122
- {% for listener, value in (params.listeners.items() if params.listeners is mapping and params.listeners.items else params.listeners) %}
123
- document.getElementById("{{ params.id }}").addEventListener('{{ listener }}', function(){ {{ value }} });
124
- {% endfor %}
125
- </script>
126
- {% endif %}
127
- </{{ tag }}>
92
+ {%- endif -%}
93
+ <span class="ons-btn__text">{{- params.html | safe if params.html else params.text -}}</span>
94
+ {%- if iconPosition == "after" -%}
95
+ {{-
96
+ onsIcon({
97
+ "iconType": iconType,
98
+ "classes": 'ons-u-ml-xs'
99
+ })
100
+ -}}
101
+ {%- endif -%}
102
+ {%- elif iconPosition == "only" -%}
103
+ {{-
104
+ onsIcon({
105
+ "iconType": iconType
106
+ })
107
+ -}}
108
+ <span class="ons-btn__text ons-u-vh@xxs@s">{{- params.html | safe if params.html else params.text -}}</span>
109
+ {%- else -%}
110
+ <span class="ons-btn__text">{{- params.html | safe if params.html else params.text -}}</span>
111
+ {%- endif -%}
112
+ </span>
113
+ {% if params.url and params.newWindow %}
114
+ <span class="ons-btn__new-window-description ons-u-vh"> ({{ params.newWindowDescription | default("opens in a new tab") }})</span>
115
+ {% endif %}
116
+ {% if params.buttonContext %}
117
+ <span class="ons-btn__context ons-u-vh">{{ params.buttonContext }}</span>
118
+ {% endif %}
119
+ {% if params.listeners %}
120
+ <!-- prettier-ignore-start -->
121
+ <script{% if csp_nonce %} nonce="{{ csp_nonce() }}"{% endif %}>
122
+ {% for listener, value in (params.listeners.items() if params.listeners is mapping and params.listeners.items else params.listeners) %}
123
+ document.getElementById("{{ params.id }}").addEventListener('{{ listener }}', function(){ {{ value }} });
124
+ {% endfor %}
125
+ </script>
126
+ <!-- prettier-ignore-end -->
127
+ {% endif %}
128
+ {{ closingTag | safe }}
128
129
  {% endmacro %}
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  fullWidth: true
3
3
  ---
4
+
4
5
  {% from "components/button/_macro.njk" import onsButton %}
5
6
  <div style="padding: 1.5rem; background: #206095">
6
7
  {{
@@ -10,11 +10,13 @@
10
10
  {% endif %}
11
11
  </div>
12
12
  <div class="ons-grid__col ons-col-auto ons-u-flex-no-grow ons-u-mt-xs@xxs@s">
13
- {{ onsButton({
14
- "text": params.button.text,
15
- "url": params.button.url,
16
- "variants": "small"
17
- }) }}
13
+ {{
14
+ onsButton({
15
+ "text": params.button.text,
16
+ "url": params.button.url,
17
+ "variants": "small"
18
+ })
19
+ }}
18
20
  </div>
19
21
  </div>
20
22
  </div>
@@ -1,6 +1,7 @@
1
1
  ---
2
- "fullWidth": true
2
+ 'fullWidth': true
3
3
  ---
4
+
4
5
  {% from "components/call-to-action/_macro.njk" import onsCallToAction %}
5
6
  {{-
6
7
  onsCallToAction({
@@ -11,4 +12,4 @@
11
12
  "url": '#0'
12
13
  }
13
14
  })
14
- }}
15
+ -}}
@@ -1,24 +1,42 @@
1
1
  {%- macro onsCard(params) -%}
2
-
3
- {% set headingLevel = params.headingLevel | default(2) %}
2
+ {% set headingLevel = params.headingLevel | default(2) | string %}
3
+ {% set openingHeadingTag = "<h" + headingLevel %}
4
+ {% set closingHeadingTag = "</h" + headingLevel + ">" %}
5
+ {% set placeholderSrcset = (params.image.placeholderURL if params.image.placeholderURL) + "/img/small/placeholder-card.png 1x, " + (params.image.placeholderURL if params.image.placeholderURL else "") + "/img/large/placeholder-card.png 2x" %}
4
6
 
5
7
  <div class="ons-card">
6
8
  <a href="{{ params.url }}" class="ons-card__link">
7
9
  {%- if params.image -%}
8
10
  {% if params.image.smallSrc %}
9
- <img class="ons-card__image ons-u-mb-s" height="200" width="303"{% if params.image.largeSrc %} srcset="{{ params.image.smallSrc }} 1x, {{ params.image.largeSrc }} 2x"{% endif %} src="{{ params.image.smallSrc }}" alt="{{ params.image.alt }}" loading="lazy">
11
+ <img
12
+ class="ons-card__image ons-u-mb-s"
13
+ height="200"
14
+ width="303"
15
+ {% if params.image.largeSrc %}srcset="{{ params.image.smallSrc }} 1x, {{ params.image.largeSrc }} 2x"{% endif %}
16
+ src="{{ params.image.smallSrc }}"
17
+ alt="{{ params.image.alt }}"
18
+ loading="lazy"
19
+ />
10
20
  {% elif params.image == true or params.image.placeholderURL %}
11
- <img class="ons-card__image ons-u-mb-s " height="100" width="303" srcset="{{ params.image.placeholderURL if params.image.placeholderURL }}/img/small/placeholder-card.png 1x, {{ params.image.placeholderURL if params.image.placeholderURL }}/img/large/placeholder-card.png 2x" src="{{ params.image.placeholderURL if params.image.placeholderURL }}/img/small/placeholder-card.png" alt="" loading="lazy">
21
+ <img
22
+ class="ons-card__image ons-u-mb-s "
23
+ height="100"
24
+ width="303"
25
+ srcset="{{ placeholderSrcset }}"
26
+ src="{{- params.image.placeholderURL if params.image.placeholderURL -}}/img/small/placeholder-card.png"
27
+ alt=""
28
+ loading="lazy"
29
+ />
12
30
  {% endif %}
13
31
  {%- endif -%}
14
- <h{{ headingLevel }} class="ons-card__title {{ params.titleClasses | default('ons-u-fs-m')}}" id="{{ params.id }}">
15
- {{ params.title }}
16
- </h{{ headingLevel }}>
32
+ {{ openingHeadingTag | safe }}
33
+ class="ons-card__title {{ params.titleClasses | default('ons-u-fs-m') }}" id="{{ params.id }}"> {{ params.title }}
34
+ {{ closingHeadingTag | safe }}
17
35
  </a>
18
36
 
19
37
  <p id="{{ params.textId }}">{{ params.text }}</p>
20
38
 
21
- {% if params.itemsList -%}
39
+ {%- if params.itemsList -%}
22
40
  {% from "components/list/_macro.njk" import onsList %}
23
41
  {{
24
42
  onsList({
@@ -27,7 +45,5 @@
27
45
  })
28
46
  }}
29
47
  {% endif %}
30
-
31
48
  </div>
32
-
33
49
  {%- endmacro -%}
@@ -1,41 +1,43 @@
1
1
  {% from "components/card/_macro.njk" import onsCard %}
2
2
  <div class="ons-container">
3
-
4
- <div class="ons-grid ons-grid--column@xxs@s">
5
-
3
+ <div class="ons-grid">
6
4
  <div class="ons-grid__col ons-col-4@m">
7
- {{ onsCard({
8
- "id": 'card-with-image-1',
9
- "textId": 'text1',
10
- "title": 'About the census',
11
- "url": '#0',
12
- "text": 'The census is a survey that gives us information about all the households in England and Wales.',
13
- "image": true
14
- }) }}
5
+ {{
6
+ onsCard({
7
+ "id": 'card-with-image-1',
8
+ "textId": 'text1',
9
+ "title": 'About the census',
10
+ "url": '#0',
11
+ "text": 'The census is a survey that gives us information about all the households in England and Wales.',
12
+ "image": true
13
+ })
14
+ }}
15
15
  </div>
16
16
 
17
17
  <div class="ons-grid__col ons-col-4@m">
18
- {{ onsCard({
19
- "id": 'card-with-image-2',
20
- "textId": 'text2',
21
- "title": 'Working on the census',
22
- "url": '#0',
23
- "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.',
24
- "image": true
25
- }) }}
18
+ {{
19
+ onsCard({
20
+ "id": 'card-with-image-2',
21
+ "textId": 'text2',
22
+ "title": 'Working on the census',
23
+ "url": '#0',
24
+ "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.',
25
+ "image": true
26
+ })
27
+ }}
26
28
  </div>
27
29
 
28
30
  <div class="ons-grid__col ons-col-4@m">
29
- {{ onsCard({
30
- "id": 'card-with-image-3',
31
- "textId": 'text3',
32
- "title": 'Your data and security',
33
- "url": '#0',
34
- "text": 'How we keep your data safe and what happens to your personal information.',
35
- "image": true
36
- }) }}
31
+ {{
32
+ onsCard({
33
+ "id": 'card-with-image-3',
34
+ "textId": 'text3',
35
+ "title": 'Your data and security',
36
+ "url": '#0',
37
+ "text": 'How we keep your data safe and what happens to your personal information.',
38
+ "image": true
39
+ })
40
+ }}
37
41
  </div>
38
-
39
42
  </div>
40
-
41
43
  </div>
@@ -1,68 +1,70 @@
1
1
  {% from "components/card/_macro.njk" import onsCard %}
2
2
  <div class="ons-container">
3
-
4
- <div class="ons-grid ons-grid--column@xxs@s">
5
-
3
+ <div class="ons-grid">
6
4
  <div class="ons-grid__col ons-col-4@m">
7
- {{ onsCard({
8
- "id": 'card-with-list-1',
9
- "textId": 'text1',
10
- "title": 'About the census',
11
- "url": '#0',
12
- "text": 'The census is a survey that gives us information about all the households in England and Wales.',
13
- "itemsList": [
14
- {
15
- "url": '#0',
16
- "text": 'List item 1 about the census'
17
- },
18
- {
19
- "url": '#0',
20
- "text": 'List item 2 about the census'
21
- }
22
- ]
23
- }) }}
5
+ {{
6
+ onsCard({
7
+ "id": 'card-with-list-1',
8
+ "textId": 'text1',
9
+ "title": 'About the census',
10
+ "url": '#0',
11
+ "text": 'The census is a survey that gives us information about all the households in England and Wales.',
12
+ "itemsList": [
13
+ {
14
+ "url": '#0',
15
+ "text": 'List item 1 about the census'
16
+ },
17
+ {
18
+ "url": '#0',
19
+ "text": 'List item 2 about the census'
20
+ }
21
+ ]
22
+ })
23
+ }}
24
24
  </div>
25
25
 
26
26
  <div class="ons-grid__col ons-col-4@m">
27
- {{ onsCard({
28
- "id": 'card-with-list-2',
29
- "textId": 'text2',
30
- "title": 'Working on the census',
31
- "url": '#0',
32
- "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.',
33
- "itemsList": [
34
- {
35
- "url": '#0',
36
- "text": 'List item 1 about working on the census'
37
- },
38
- {
39
- "url": '#0',
40
- "text": 'List item 2 about working on the census'
41
- }
42
- ]
43
- }) }}
27
+ {{
28
+ onsCard({
29
+ "id": 'card-with-list-2',
30
+ "textId": 'text2',
31
+ "title": 'Working on the census',
32
+ "url": '#0',
33
+ "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.',
34
+ "itemsList": [
35
+ {
36
+ "url": '#0',
37
+ "text": 'List item 1 about working on the census'
38
+ },
39
+ {
40
+ "url": '#0',
41
+ "text": 'List item 2 about working on the census'
42
+ }
43
+ ]
44
+ })
45
+ }}
44
46
  </div>
45
47
 
46
48
  <div class="ons-grid__col ons-col-4@m">
47
- {{ onsCard({
48
- "id": 'card-with-list-3',
49
- "textId": 'text3',
50
- "title": 'Your data and security',
51
- "url": '#0',
52
- "text": 'How we keep your data safe and what happens to your personal information.',
53
- "itemsList": [
54
- {
55
- "url": '#0',
56
- "text": 'List item 1 about your data and security'
57
- },
58
- {
59
- "url": '#0',
60
- "text": 'List item 2 about your data and security'
61
- }
62
- ]
63
- }) }}
49
+ {{
50
+ onsCard({
51
+ "id": 'card-with-list-3',
52
+ "textId": 'text3',
53
+ "title": 'Your data and security',
54
+ "url": '#0',
55
+ "text": 'How we keep your data safe and what happens to your personal information.',
56
+ "itemsList": [
57
+ {
58
+ "url": '#0',
59
+ "text": 'List item 1 about your data and security'
60
+ },
61
+ {
62
+ "url": '#0',
63
+ "text": 'List item 2 about your data and security'
64
+ }
65
+ ]
66
+ })
67
+ }}
64
68
  </div>
65
-
66
69
  </div>
67
-
68
70
  </div>
@@ -1,38 +1,40 @@
1
1
  {% from "components/card/_macro.njk" import onsCard %}
2
2
  <div class="ons-container">
3
-
4
- <div class="ons-grid ons-grid--column@xxs@s">
5
-
3
+ <div class="ons-grid">
6
4
  <div class="ons-grid__col ons-col-4@m">
7
- {{ onsCard({
8
- "id": 'card-set-1',
9
- "textId": 'text1',
10
- "title": 'About the census',
11
- "url": '#0',
12
- "text": 'The census is a survey that gives us information about all the households in England and Wales.'
13
- }) }}
5
+ {{
6
+ onsCard({
7
+ "id": 'card-set-1',
8
+ "textId": 'text1',
9
+ "title": 'About the census',
10
+ "url": '#0',
11
+ "text": 'The census is a survey that gives us information about all the households in England and Wales.'
12
+ })
13
+ }}
14
14
  </div>
15
15
 
16
16
  <div class="ons-grid__col ons-col-4@m">
17
- {{ onsCard({
18
- "id": 'card-set-2',
19
- "textId": 'text2',
20
- "title": 'Working on the census',
21
- "url": '#0',
22
- "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.'
23
- }) }}
17
+ {{
18
+ onsCard({
19
+ "id": 'card-set-2',
20
+ "textId": 'text2',
21
+ "title": 'Working on the census',
22
+ "url": '#0',
23
+ "text": 'For Census 2021, we’ll be hiring at least 30,000 field staff across England and Wales.'
24
+ })
25
+ }}
24
26
  </div>
25
27
 
26
28
  <div class="ons-grid__col ons-col-4@m">
27
- {{ onsCard({
28
- "id": 'card-set-3',
29
- "textId": 'text3',
30
- "title": 'Your data and security',
31
- "url": '#0',
32
- "text": 'How we keep your data safe and what happens to your personal information.'
33
- }) }}
29
+ {{
30
+ onsCard({
31
+ "id": 'card-set-3',
32
+ "textId": 'text3',
33
+ "title": 'Your data and security',
34
+ "url": '#0',
35
+ "text": 'How we keep your data safe and what happens to your personal information.'
36
+ })
37
+ }}
34
38
  </div>
35
-
36
39
  </div>
37
-
38
40
  </div>
@@ -1,9 +1,11 @@
1
1
  {% from "components/card/_macro.njk" import onsCard %}
2
2
 
3
- {{ onsCard({
4
- "id": 'card-example',
5
- "textId": 'text',
6
- "title": 'Your data and security',
7
- "url": '#0',
8
- "text": 'How we keep your data safe and what happens to your personal information.'
9
- }) }}
3
+ {{
4
+ onsCard({
5
+ "id": 'card-example',
6
+ "textId": 'text',
7
+ "title": 'Your data and security',
8
+ "url": '#0',
9
+ "text": 'How we keep your data safe and what happens to your personal information.'
10
+ })
11
+ }}