govuk_publishing_components 67.1.0 → 68.0.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 (343) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/govuk_publishing_components_manifest.js +1 -1
  3. data/app/assets/stylesheets/component_guide/application.scss +12 -18
  4. data/app/assets/stylesheets/govuk_publishing_components/all-components.scss +2 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +6 -2
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_app-promo-banner.scss +3 -3
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_attachment-link.scss +1 -1
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_attachment.scss +5 -5
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +1 -1
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +2 -2
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_cards.scss +6 -6
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +1 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list-with-body.scss +1 -1
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-guidance.scss +2 -2
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +4 -4
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_cross-service-header.scss +14 -14
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_devolved-nations.scss +3 -3
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +6 -6
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_emergency-banner.scss +3 -6
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_error-alert.scss +3 -3
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss +1 -1
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +7 -7
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_figure.scss +1 -1
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_glance-metric.scss +3 -3
  25. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +3 -3
  26. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +3 -3
  27. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +3 -3
  28. data/app/assets/stylesheets/govuk_publishing_components/components/_intervention.scss +3 -3
  29. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +2 -2
  30. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +1 -1
  31. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-public.scss +1 -1
  32. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +30 -51
  33. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +23 -23
  34. data/app/assets/stylesheets/govuk_publishing_components/components/_lead-paragraph.scss +1 -1
  35. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +2 -2
  36. data/app/assets/stylesheets/govuk_publishing_components/components/_modal-dialogue.scss +3 -3
  37. data/app/assets/stylesheets/govuk_publishing_components/components/_option-select.scss +3 -3
  38. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -2
  39. data/app/assets/stylesheets/govuk_publishing_components/components/_pagination.scss +1 -1
  40. data/app/assets/stylesheets/govuk_publishing_components/components/_phase-banner.scss +3 -3
  41. data/app/assets/stylesheets/govuk_publishing_components/components/_print-link.scss +6 -6
  42. data/app/assets/stylesheets/govuk_publishing_components/components/_published-dates.scss +1 -1
  43. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +1 -1
  44. data/app/assets/stylesheets/govuk_publishing_components/components/_reorderable-list.scss +3 -3
  45. data/app/assets/stylesheets/govuk_publishing_components/components/_search-with-autocomplete.scss +7 -7
  46. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +8 -8
  47. data/app/assets/stylesheets/govuk_publishing_components/components/_secondary-navigation.scss +6 -6
  48. data/app/assets/stylesheets/govuk_publishing_components/components/_select-with-search.scss +15 -15
  49. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +2 -2
  50. data/app/assets/stylesheets/govuk_publishing_components/components/_signup-link.scss +2 -2
  51. data/app/assets/stylesheets/govuk_publishing_components/components/_single-page-notification-button.scss +6 -6
  52. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +2 -2
  53. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +1 -1
  54. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +11 -11
  55. data/app/assets/stylesheets/govuk_publishing_components/components/_sub-navigation-menu.scss +9 -9
  56. data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +5 -5
  57. data/app/assets/stylesheets/govuk_publishing_components/components/_success-alert.scss +3 -3
  58. data/app/assets/stylesheets/govuk_publishing_components/components/_summary-banner.scss +1 -1
  59. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +15 -10
  60. data/app/assets/stylesheets/govuk_publishing_components/components/_tag.scss +1 -1
  61. data/app/assets/stylesheets/govuk_publishing_components/components/_translation-nav.scss +3 -3
  62. data/app/assets/stylesheets/govuk_publishing_components/components/_warning-text.scss +3 -3
  63. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +4 -4
  64. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_call-to-action.scss +2 -2
  65. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +1 -1
  66. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_example.scss +1 -1
  67. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +4 -4
  68. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +1 -1
  69. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_images.scss +1 -1
  70. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_information-callout.scss +1 -1
  71. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_media-player.scss +2 -2
  72. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
  73. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +2 -2
  74. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +2 -2
  75. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -1
  76. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_colours.scss +9 -11
  77. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +3 -3
  78. data/app/assets/stylesheets/govuk_publishing_components/lib/_link.scss +3 -3
  79. data/app/assets/stylesheets/govuk_publishing_components/lib/_print_support.scss +2 -2
  80. data/app/assets/stylesheets/govuk_publishing_components/settings/_custom-properties.scss +9 -0
  81. data/app/assets/stylesheets/govuk_publishing_components/settings/_index.scss +1 -2
  82. data/app/assets/stylesheets/govuk_publishing_components/specific-components.scss +2 -0
  83. data/app/views/govuk_publishing_components/components/_glance_metric.html.erb +1 -1
  84. data/app/views/govuk_publishing_components/components/_layout_for_admin.html.erb +1 -1
  85. data/app/views/govuk_publishing_components/components/_layout_for_public.html.erb +1 -1
  86. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +14 -36
  87. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +1 -1
  88. data/app/views/govuk_publishing_components/components/_tag.html.erb +1 -1
  89. data/app/views/govuk_publishing_components/components/docs/layout_header.yml +0 -15
  90. data/app/views/govuk_publishing_components/components/docs/tag.yml +4 -8
  91. data/app/views/govuk_publishing_components/components/layout_header/_header_logo.html.erb +4 -13
  92. data/app/views/layouts/govuk_publishing_components/application.html.erb +1 -1
  93. data/config/initializers/assets.rb +1 -1
  94. data/lib/govuk_publishing_components/version.rb +1 -1
  95. data/node_modules/govuk-frontend/README.md +1 -1
  96. data/node_modules/govuk-frontend/dist/govuk/_base.scss +1 -0
  97. data/node_modules/govuk-frontend/dist/govuk/_base.scss.map +1 -1
  98. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +21 -95
  99. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -1
  100. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +22 -95
  101. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -1
  102. data/node_modules/govuk-frontend/dist/govuk/all.mjs +0 -1
  103. data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -1
  104. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.ico +0 -0
  105. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -1
  106. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
  107. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  108. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  109. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
  110. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
  111. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +14 -11
  112. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss.map +1 -1
  113. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -1
  114. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -1
  115. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss +2 -2
  116. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss.map +1 -1
  117. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +1 -1
  118. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss.map +1 -1
  119. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +16 -19
  120. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss.map +1 -1
  121. data/node_modules/govuk-frontend/dist/govuk/components/button/fixtures.json +7 -95
  122. data/node_modules/govuk-frontend/dist/govuk/components/button/macro-options.json +12 -19
  123. data/node_modules/govuk-frontend/dist/govuk/components/button/template.njk +8 -20
  124. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +2 -2
  125. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss.map +1 -1
  126. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +19 -9
  127. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -1
  128. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +19 -9
  129. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -1
  130. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +19 -9
  131. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -1
  132. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss +7 -6
  133. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss.map +1 -1
  134. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss +2 -5
  135. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss.map +1 -1
  136. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/fixtures.json +4 -40
  137. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-default.html +2 -2
  138. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-with-html.html +2 -2
  139. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +6 -4
  140. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss.map +1 -1
  141. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss +1 -1
  142. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss.map +1 -1
  143. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss +4 -2
  144. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss.map +1 -1
  145. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -1
  146. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -1
  147. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +28 -37
  148. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss.map +1 -1
  149. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.js.map +1 -1
  150. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.mjs.map +1 -1
  151. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/fixtures.json +1 -1
  152. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/macro-options.json +0 -7
  153. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template.njk +0 -1
  154. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +18 -23
  155. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss.map +1 -1
  156. data/node_modules/govuk-frontend/dist/govuk/components/footer/fixtures.json +25 -38
  157. data/node_modules/govuk-frontend/dist/govuk/components/footer/macro-options.json +0 -6
  158. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-default.html +23 -2
  159. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-full-gds-example.html +23 -2
  160. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-three-equal-columns.html +23 -2
  161. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-html-content-licence-and-copyright-notice.html +23 -2
  162. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-meta.html +23 -2
  163. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-text-content-licence-and-copyright-notice.html +23 -2
  164. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-one-column.html +23 -2
  165. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-two-columns.html +23 -2
  166. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta-links-and-meta-content.html +23 -2
  167. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-navigation.html +23 -2
  168. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-no-content-licence.html +23 -2
  169. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-only-custom-meta.html +23 -2
  170. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-only-meta-links.html +23 -2
  171. data/node_modules/govuk-frontend/dist/govuk/components/footer/template.njk +6 -11
  172. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +85 -457
  173. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss.map +1 -1
  174. data/node_modules/govuk-frontend/dist/govuk/components/header/fixtures.json +7 -536
  175. data/node_modules/govuk-frontend/dist/govuk/components/header/macro-options.json +2 -101
  176. data/node_modules/govuk-frontend/dist/govuk/components/header/template-default.html +7 -6
  177. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width.html +7 -6
  178. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-product-name.html +7 -6
  179. data/node_modules/govuk-frontend/dist/govuk/components/header/template.njk +4 -50
  180. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss +1 -1
  181. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss.map +1 -1
  182. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +7 -5
  183. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss.map +1 -1
  184. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss +2 -1
  185. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss.map +1 -1
  186. data/node_modules/govuk-frontend/dist/govuk/components/label/fixtures.json +2 -2
  187. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +8 -6
  188. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss.map +1 -1
  189. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +9 -10
  190. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss.map +1 -1
  191. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +2 -2
  192. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss.map +1 -1
  193. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -1
  194. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -1
  195. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +12 -6
  196. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss.map +1 -1
  197. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/fixtures.json +7 -7
  198. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template-default.html +1 -1
  199. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template.njk +1 -1
  200. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +7 -6
  201. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss.map +1 -1
  202. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +5 -4
  203. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss.map +1 -1
  204. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +50 -71
  205. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss.map +1 -1
  206. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/fixtures.json +7 -32
  207. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss +3 -2
  208. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss.map +1 -1
  209. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +9 -5
  210. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss.map +1 -1
  211. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +7 -8
  212. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss.map +1 -1
  213. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +8 -5
  214. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss.map +1 -1
  215. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +66 -31
  216. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss.map +1 -1
  217. data/node_modules/govuk-frontend/dist/govuk/components/tag/fixtures.json +6 -18
  218. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-pink.html +2 -2
  219. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-turquoise.html +2 -2
  220. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +7 -5
  221. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss.map +1 -1
  222. data/node_modules/govuk-frontend/dist/govuk/components/task-list/fixtures.json +13 -25
  223. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-with-all-possible-colours.html +12 -24
  224. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-with-hint-text-and-additional-states.html +2 -2
  225. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +4 -3
  226. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss.map +1 -1
  227. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +4 -3
  228. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss.map +1 -1
  229. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss +0 -1
  230. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss.map +1 -1
  231. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss +2 -1
  232. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss.map +1 -1
  233. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +3 -17
  234. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss.map +1 -1
  235. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_breakpoints.scss +17 -0
  236. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_breakpoints.scss.map +1 -0
  237. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_frontend-version.scss +15 -0
  238. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_frontend-version.scss.map +1 -0
  239. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_functional-colours.scss +17 -0
  240. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_functional-colours.scss.map +1 -0
  241. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_index.scss +5 -0
  242. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_index.scss.map +1 -0
  243. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +2 -2
  244. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -1
  245. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
  246. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -1
  247. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +168 -82
  248. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss.map +1 -1
  249. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +8 -7
  250. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss.map +1 -1
  251. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +23 -39
  252. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss.map +1 -1
  253. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +2 -26
  254. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss.map +1 -1
  255. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs.map +1 -1
  256. data/node_modules/govuk-frontend/dist/govuk/init.mjs +1 -2
  257. data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -1
  258. data/node_modules/govuk-frontend/dist/govuk/macros/logo.njk +4 -26
  259. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss +2 -1
  260. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss.map +1 -1
  261. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +2 -6
  262. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss.map +1 -1
  263. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +0 -2
  264. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss.map +1 -1
  265. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss +3 -188
  266. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss.map +1 -1
  267. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-functional.scss +366 -0
  268. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-functional.scss.map +1 -0
  269. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +8 -254
  270. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss.map +1 -1
  271. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +117 -25
  272. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss.map +1 -1
  273. data/node_modules/govuk-frontend/dist/govuk/settings/_custom-properties.scss +18 -0
  274. data/node_modules/govuk-frontend/dist/govuk/settings/_custom-properties.scss.map +1 -0
  275. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss +3 -14
  276. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss.map +1 -1
  277. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +0 -16
  278. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss.map +1 -1
  279. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +12 -189
  280. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -1
  281. data/node_modules/govuk-frontend/dist/govuk/template.njk +61 -23
  282. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss +0 -1
  283. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss.map +1 -1
  284. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss +2 -0
  285. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss.map +1 -1
  286. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +1 -4
  287. data/node_modules/govuk-frontend/package.json +13 -12
  288. metadata +14 -56
  289. data/app/assets/javascripts/govuk_publishing_components/components/layout-header.js +0 -3
  290. data/app/assets/stylesheets/govuk_publishing_components/settings/_colours.scss +0 -5
  291. data/app/assets/stylesheets/govuk_publishing_components/settings/_typography.scss +0 -1
  292. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +0 -34
  293. data/node_modules/govuk-frontend/dist/govuk/all.scss +0 -9
  294. data/node_modules/govuk-frontend/dist/govuk/all.scss.map +0 -1
  295. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/favicon.ico +0 -0
  296. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/favicon.svg +0 -1
  297. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-crest.svg +0 -1
  298. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-180.png +0 -0
  299. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-192.png +0 -0
  300. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-512.png +0 -0
  301. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-mask.svg +0 -1
  302. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-opengraph-image.png +0 -0
  303. data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/manifest.json +0 -39
  304. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +0 -10
  305. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss.map +0 -1
  306. data/node_modules/govuk-frontend/dist/govuk/components/button/template-input.html +0 -1
  307. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +0 -238
  308. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +0 -1
  309. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +0 -230
  310. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +0 -1
  311. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +0 -89
  312. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs.map +0 -1
  313. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width-with-navigation.html +0 -54
  314. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-html.html +0 -54
  315. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-text-without-link.html +0 -48
  316. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-text.html +0 -59
  317. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-full-width-border.html +0 -29
  318. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-large-navigation.html +0 -119
  319. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-navigation.html +0 -59
  320. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-and-navigation.html +0 -62
  321. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-but-no-service-url.html +0 -34
  322. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name.html +0 -34
  323. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-st-edwards-crown.html +0 -19
  324. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-light-blue.html +0 -3
  325. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +0 -10
  326. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss.map +0 -1
  327. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +0 -15
  328. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss.map +0 -1
  329. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +0 -10
  330. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss.map +0 -1
  331. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +0 -10
  332. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss.map +0 -1
  333. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +0 -9
  334. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss.map +0 -1
  335. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +0 -10
  336. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss.map +0 -1
  337. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +0 -10
  338. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss.map +0 -1
  339. data/node_modules/govuk-frontend/dist/govuk/tools/_rebrand.scss +0 -65
  340. data/node_modules/govuk-frontend/dist/govuk/tools/_rebrand.scss.map +0 -1
  341. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +0 -10
  342. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss.map +0 -1
  343. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/functions.js +0 -25
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/govuk/helpers/_links.scss"],"names":[],"mappings":"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","file":"_links.scss","sourcesContent":["////\n/// @group helpers/links\n////\n\n/// Common link styles\n///\n/// Provides the typography and focus state, regardless of link style.\n///\n/// @access public\n\n@mixin govuk-link-common {\n @include govuk-typography-common;\n @include govuk-link-decoration;\n\n &:hover {\n @include govuk-link-hover-decoration;\n }\n\n &:focus {\n @include govuk-focused-text;\n }\n}\n\n/// Link decoration\n///\n/// Provides the text decoration for links, including thickness and underline\n/// offset. Use this mixin only if you cannot use the `govuk-link-common` mixin.\n///\n/// @access public\n@mixin govuk-link-decoration {\n text-decoration: underline;\n\n @if $govuk-link-underline-thickness {\n text-decoration-thickness: $govuk-link-underline-thickness;\n }\n\n @if $govuk-link-underline-offset {\n text-underline-offset: $govuk-link-underline-offset;\n }\n}\n\n/// Link hover decoration\n///\n/// Provides the text decoration for links in their hover state, for you to use\n/// within a `:hover` pseudo-selector. Use this mixin only if you cannot use the\n/// `govuk-link-common` mixin.\n///\n/// @access public\n\n@mixin govuk-link-hover-decoration {\n @if $govuk-link-hover-underline-thickness {\n text-decoration-thickness: $govuk-link-hover-underline-thickness;\n // Disable ink skipping on underlines on hover. Browsers haven't\n // standardised on this part of the spec yet, so set both properties\n text-decoration-skip-ink: none; // Chromium, Firefox\n text-decoration-skip: none; // Safari\n }\n}\n\n/// Default link styles\n///\n/// Makes links use the default unvisited, visited, hover and active colours.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-default {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-visited-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Error link styles\n///\n/// Makes links use the error colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-error;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-error {\n &:link,\n &:visited {\n color: $govuk-error-colour;\n }\n\n &:hover {\n color: scale-color($govuk-error-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-error-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Success link styles\n///\n/// Makes links use the success colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-success;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-success {\n &:link,\n &:visited {\n color: $govuk-success-colour;\n }\n\n &:hover {\n color: scale-color($govuk-success-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-success-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Muted link styles\n///\n/// Makes links use the secondary text colour. The link will darken if it's\n/// active or a user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-muted;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-muted {\n &:link,\n &:visited {\n color: $govuk-secondary-text-colour;\n }\n\n &:hover,\n &:active {\n color: $govuk-text-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Text link styles\n///\n/// Makes links use the primary text colour, in all states. Use this mixin for\n/// navigation components, such as breadcrumbs or the back link.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-text;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-text {\n &:link,\n &:visited {\n @include govuk-text-colour;\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://webkit.org/b/224483\n &:hover {\n @if type-of($govuk-text-colour) == color {\n color: rgba($govuk-text-colour, 0.99);\n }\n }\n\n &:active,\n &:focus {\n @include govuk-text-colour;\n }\n}\n\n/// Inverse link styles\n///\n/// Makes links white, in all states. Use this mixin if you're displaying links\n/// against a dark background.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-inverse;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-inverse {\n &:link,\n &:visited {\n color: govuk-colour(\"white\");\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://webkit.org/b/224483\n &:hover,\n &:active {\n color: rgba(govuk-colour(\"white\"), 0.99);\n }\n\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Default link styles, without a visited state\n///\n/// Makes links use the default unvisited, hover and active colours, with no\n/// distinct visited state.\n///\n/// Use this mixin when it's not helpful to distinguish between visited and\n/// non-visited links. For example, when you link to pages with\n/// frequently-changing content, such as the dashboard for an admin interface.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-no-visited-state;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-visited-state {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Remove underline from links\n///\n/// Remove underlines from links unless the link is active or a user hovers\n/// their cursor over it.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// @include govuk-link-style-no-underline;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-underline {\n &:not(:hover):not(:active) {\n text-decoration: none;\n }\n}\n\n/// Include link destination when printing the page\n///\n/// If the user prints the page, add the destination URL after the link text, if\n/// the URL starts with `/`, `http://` or `https://`.\n///\n/// @access public\n\n@mixin govuk-link-print-friendly {\n @media print {\n &[href^=\"/\"],\n &[href^=\"http://\"],\n &[href^=\"https://\"]\n {\n &::after {\n content: \" (\" attr(href) \")\";\n font-size: 90%;\n\n // Because the URLs may be very long, ensure that they may be broken\n // at arbitrary points if there are no otherwise acceptable break\n // points in the line\n word-wrap: break-word;\n }\n }\n }\n}\n\n/// Image link styles\n///\n/// Prepares and provides the focus state for links that only contain images\n/// with no accompanying text.\n///\n/// @access public\n\n@mixin govuk-link-image {\n // Needed to draw the focus around the entire image\n display: inline-block;\n\n // Remove extra space at the bottom of the image that's added by line-height\n line-height: 0;\n\n // Don't render an underline\n text-decoration: none;\n\n &:focus {\n @include govuk-focused-box;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/govuk/helpers/_links.scss"],"names":[],"mappings":"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","file":"_links.scss","sourcesContent":["////\n/// @group helpers/links\n////\n\n/// Common link styles\n///\n/// Provides the typography and focus state, regardless of link style.\n///\n/// @access public\n\n@mixin govuk-link-common {\n @include govuk-typography-common;\n @include govuk-link-decoration;\n\n &:hover {\n @include govuk-link-hover-decoration;\n }\n\n &:focus {\n @include govuk-focused-text;\n }\n}\n\n/// Link decoration\n///\n/// Provides the text decoration for links, including thickness and underline\n/// offset. Use this mixin only if you cannot use the `govuk-link-common` mixin.\n///\n/// @access public\n@mixin govuk-link-decoration {\n text-decoration: underline;\n\n @if $govuk-link-underline-thickness {\n text-decoration-thickness: $govuk-link-underline-thickness;\n }\n\n @if $govuk-link-underline-offset {\n text-underline-offset: $govuk-link-underline-offset;\n }\n}\n\n/// Link hover decoration\n///\n/// Provides the text decoration for links in their hover state, for you to use\n/// within a `:hover` pseudo-selector. Use this mixin only if you cannot use the\n/// `govuk-link-common` mixin.\n///\n/// @access public\n\n@mixin govuk-link-hover-decoration {\n @if $govuk-link-hover-underline-thickness {\n text-decoration-thickness: $govuk-link-hover-underline-thickness;\n // Disable ink skipping on underlines on hover. Browsers haven't\n // standardised on this part of the spec yet, so set both properties\n text-decoration-skip-ink: none; // Chromium, Firefox\n text-decoration-skip: none; // Safari\n }\n}\n\n/// Default link styles\n///\n/// Makes links use the default unvisited, visited, hover and active colours.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-default {\n &:link {\n color: govuk-functional-colour(link);\n }\n\n &:visited {\n color: govuk-functional-colour(link-visited);\n }\n\n &:hover {\n color: govuk-functional-colour(link-hover);\n }\n\n &:active {\n color: govuk-functional-colour(link-active);\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Error link styles\n///\n/// Makes links use the error colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-error;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-error {\n &:link,\n &:visited {\n color: govuk-functional-colour(error);\n }\n\n &:hover {\n color: govuk-colour(\"red\", $variant: \"shade-50\");\n }\n\n &:active {\n color: govuk-functional-colour(error);\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Success link styles\n///\n/// Makes links use the success colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-success;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-success {\n &:link,\n &:visited {\n color: govuk-functional-colour(success);\n }\n\n &:hover {\n color: govuk-colour(\"green\", $variant: \"shade-50\");\n }\n\n &:active {\n color: govuk-functional-colour(success);\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Muted link styles\n///\n/// Makes links use the secondary text colour. The link will darken if it's\n/// active or a user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-muted;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-muted {\n &:link,\n &:visited {\n color: govuk-functional-colour(secondary-text);\n }\n\n &:hover,\n &:active {\n color: govuk-functional-colour(text);\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Text link styles\n///\n/// Makes links use the primary text colour, in all states. Use this mixin for\n/// navigation components, such as breadcrumbs or the back link.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-text;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-text {\n &:link,\n &:visited {\n @include govuk-text-colour;\n }\n\n &:active,\n &:focus {\n @include govuk-text-colour;\n }\n}\n\n/// Inverse link styles\n///\n/// Makes links white, in all states. Use this mixin if you're displaying links\n/// against a dark background.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-inverse;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-inverse {\n &:link,\n &:visited {\n color: govuk-colour(\"white\");\n }\n\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Default link styles, without a visited state\n///\n/// Makes links use the default unvisited, hover and active colours, with no\n/// distinct visited state.\n///\n/// Use this mixin when it's not helpful to distinguish between visited and\n/// non-visited links. For example, when you link to pages with\n/// frequently-changing content, such as the dashboard for an admin interface.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-no-visited-state;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-visited-state {\n &:link {\n color: govuk-functional-colour(link);\n }\n\n &:visited {\n color: govuk-functional-colour(link);\n }\n\n &:hover {\n color: govuk-functional-colour(link-hover);\n }\n\n &:active {\n color: govuk-functional-colour(link-active);\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: govuk-functional-colour(focus-text);\n }\n}\n\n/// Remove underline from links\n///\n/// Remove underlines from links unless the link is active or a user hovers\n/// their cursor over it.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// @include govuk-link-style-no-underline;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-underline {\n &:not(:hover):not(:active) {\n text-decoration: none;\n }\n}\n\n/// Include link destination when printing the page\n///\n/// If the user prints the page, add the destination URL after the link text, if\n/// the URL starts with `/`, `http://` or `https://`.\n///\n/// @access public\n\n@mixin govuk-link-print-friendly {\n @media print {\n &[href^=\"/\"],\n &[href^=\"http://\"],\n &[href^=\"https://\"] {\n &::after {\n content: \" (\" attr(href) \")\";\n font-size: 90%;\n\n // Because the URLs may be very long, ensure that they may be broken\n // at arbitrary points if there are no otherwise acceptable break\n // points in the line\n word-wrap: break-word;\n }\n }\n }\n}\n\n/// Image link styles\n///\n/// Prepares and provides the focus state for links that only contain images\n/// with no accompanying text.\n///\n/// @access public\n\n@mixin govuk-link-image {\n // Needed to draw the focus around the entire image\n display: inline-block;\n\n // Remove extra space at the bottom of the image that's added by line-height\n line-height: 0;\n\n // Don't render an underline\n text-decoration: none;\n\n &:focus {\n @include govuk-focused-box;\n }\n}\n"]}
@@ -35,10 +35,10 @@
35
35
  /// @access public
36
36
 
37
37
  @mixin govuk-text-colour {
38
- color: $govuk-text-colour;
38
+ color: govuk-functional-colour(text);
39
39
 
40
40
  @media print {
41
- color: $govuk-print-text-colour;
41
+ color: govuk-functional-colour(print-text);
42
42
  }
43
43
  }
44
44
 
@@ -114,30 +114,6 @@
114
114
  @return $line-height;
115
115
  }
116
116
 
117
- /// Font size and line height helper
118
- ///
119
- /// @param {Number} $size - Point from the type scale (the size as it would
120
- /// appear on tablet and above)
121
- /// @param {Number} $override-line-height [false] - Non responsive custom line
122
- /// height. Omit to use the line height from the font map.
123
- /// @param {Boolean} $important [false] - Whether to mark declarations as
124
- /// `!important`.
125
- ///
126
- /// @throw if `$size` is not a valid point from the type scale
127
- ///
128
- /// @access public
129
- ///
130
- /// @alias govuk-font-size
131
- /// @deprecated Use `govuk-font-size` instead
132
-
133
- @mixin govuk-typography-responsive($size, $override-line-height: false, $important: false) {
134
- @include _warning(
135
- "govuk-typography-responsive",
136
- "govuk-typography-responsive is deprecated. Use govuk-font-size instead."
137
- );
138
- @include govuk-font-size($size, $override-line-height, $important);
139
- }
140
-
141
117
  /// Font size and line height helper
142
118
  ///
143
119
  /// Takes a point from the responsive 'font map' as an argument (the size as it
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/govuk/helpers/_typography.scss"],"names":[],"mappings":"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","file":"_typography.scss","sourcesContent":["////\n/// @group helpers/typography\n////\n\n@import \"../tools/px-to-rem\";\n\n/// 'Common typography' helper\n///\n/// Sets the font family and associated properties, such as font smoothing. Also\n/// overrides the font for print.\n///\n/// @param {List} $font-family [$govuk-font-family] Font family to use\n/// @access public\n\n@mixin govuk-typography-common($font-family: $govuk-font-family) {\n font-family: $font-family;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n // If the user is using the default GDS Transport font we need to include\n // the font-face declarations.\n @if $govuk-include-default-font-face {\n @include _govuk-font-face-gds-transport;\n }\n\n @media print {\n font-family: $govuk-font-family-print;\n }\n}\n\n/// Text colour helper\n///\n/// Sets the text colour, including a suitable override for print.\n///\n/// @access public\n\n@mixin govuk-text-colour {\n color: $govuk-text-colour;\n\n @media print {\n color: $govuk-print-text-colour;\n }\n}\n\n/// Regular font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-regular($important: false) {\n font-weight: $govuk-font-weight-regular if($important, !important, null);\n}\n\n/// Bold font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-bold($important: false) {\n font-weight: $govuk-font-weight-bold if($important, !important, null);\n}\n\n/// Tabular number helper\n///\n/// Switches numerical glyphs (0–9) to use alternative forms with a\n/// monospaced bounding box. This ensures that columns of numbers, such\n/// as those in tables, remain horizontally aligned with one another.\n/// This also has the useful side effect of making numbers more legible\n/// in some situations, such as reference codes, as the numbers are more\n/// distinct and visually separated from one another.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-font-tabular-numbers($important: false) {\n font-variant-numeric: tabular-nums if($important, !important, null);\n}\n\n/// Word break helper\n///\n/// Forcibly breaks long words that lack spaces, such as email addresses,\n/// across multiple lines when they wouldn't otherwise fit.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally used to create override classes.\n/// @access public\n\n@mixin govuk-text-break-word($important: false) {\n // IE 11 and Edge 16–17 only support the non-standard `word-wrap` property\n word-wrap: break-word if($important, !important, null);\n\n // All other browsers support `overflow-wrap`\n overflow-wrap: break-word if($important, !important, null);\n}\n\n/// Convert line-heights specified in pixels into a relative value, unless\n/// they are already unit-less (and thus already treated as relative values)\n/// or the units do not match the units used for the font size.\n///\n/// @param {Number} $line-height Line height\n/// @param {Number} $font-size Font size\n/// @return {Number} The line height as either a relative value or unmodified\n///\n/// @access private\n\n@function _govuk-line-height($line-height, $font-size) {\n @if not unitless($line-height) and unit($line-height) == unit($font-size) {\n $line-height: $line-height / $font-size;\n }\n\n @return $line-height;\n}\n\n/// Font size and line height helper\n///\n/// @param {Number} $size - Point from the type scale (the size as it would\n/// appear on tablet and above)\n/// @param {Number} $override-line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the type scale\n///\n/// @access public\n///\n/// @alias govuk-font-size\n/// @deprecated Use `govuk-font-size` instead\n\n@mixin govuk-typography-responsive($size, $override-line-height: false, $important: false) {\n @include _warning(\n \"govuk-typography-responsive\",\n \"govuk-typography-responsive is deprecated. Use govuk-font-size instead.\"\n );\n @include govuk-font-size($size, $override-line-height, $important);\n}\n\n/// Font size and line height helper\n///\n/// Takes a point from the responsive 'font map' as an argument (the size as it\n/// would appear on tablet and above), and uses it to create font-size and\n/// line-height declarations for different breakpoints, and print.\n///\n/// Example font map:\n///\n/// ```scss\n/// 19: (\n/// null: (\n/// font-size: 16px,\n/// line-height: 20px\n/// ),\n/// tablet: (\n/// font-size: 19px,\n/// line-height: 25px\n/// ),\n/// print: (\n/// font-size: 14pt,\n/// line-height: 1.15\n/// )\n/// );\n/// ```\n///\n/// @param {Number | String} $size - Point from the type scale (the size as\n/// it would appear on tablet and above)\n/// @param {Number} $line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the type scale\n///\n/// @access public\n\n@mixin govuk-font-size($size, $line-height: false, $important: false) {\n // Flag font sizes that start with underscores so we can suppress warnings on\n // deprecated sizes used internally, for example `govuk-font($size: \"_14\")`\n $size-internal-use-only: str-slice(#{$size}, 1, 1) == \"_\";\n\n // Remove underscore from font sizes flagged for internal use\n @if $size-internal-use-only {\n $size: str-slice(#{$size}, 2);\n }\n\n // Check for a font map exactly matching the given size\n $font-map: map-get($govuk-typography-scale, $size);\n\n // No match? Try with string type (e.g. $size: \"16\" not 16)\n @if not $font-map {\n @each $font-size in map-keys($govuk-typography-scale) {\n @if not $font-map and \"#{$font-size}\" == \"#{$size}\" {\n $font-map: map-get($govuk-typography-scale, $font-size);\n }\n }\n }\n\n // Still no match? Throw error\n @if not $font-map {\n @error \"Unknown font size `#{$size}` - expected a point from the type scale.\";\n }\n\n // Check for a deprecation within the type scale\n $deprecation: map-get($font-map, \"deprecation\");\n\n @if $deprecation {\n // Warn on deprecated font sizes unless flagged for internal use\n @if not $size-internal-use-only {\n @include _warning(map-get($deprecation, \"key\"), map-get($deprecation, \"message\"));\n }\n\n // remove the deprecation map keys so they do not break the breakpoint loop\n $font-map: map-remove($font-map, \"deprecation\");\n }\n\n @each $breakpoint, $breakpoint-map in $font-map {\n $font-size: map-get($breakpoint-map, \"font-size\");\n $font-size-rem: govuk-px-to-rem($font-size);\n\n // $calculated-line-height is a separate variable from $line-height,\n // as otherwise the value would get redefined with each loop and\n // eventually break _govuk-line-height.\n //\n // We continue to call the param $line-height to stay consistent with the\n // naming with govuk-font.\n $calculated-line-height: _govuk-line-height(\n $line-height: if($line-height, $line-height, map-get($breakpoint-map, \"line-height\")),\n $font-size: $font-size\n );\n\n // Mark rules as !important if $important is true - this will result in\n // these variables becoming strings, so this needs to happen *after* they\n // are used in calculations\n $font-size: $font-size if($important, !important, null);\n $font-size-rem: $font-size-rem if($important, !important, null);\n $calculated-line-height: $calculated-line-height if($important, !important, null);\n\n @if not $breakpoint {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n } @else if $breakpoint == \"print\" {\n @media print {\n font-size: $font-size;\n line-height: $calculated-line-height;\n }\n } @else {\n @media #{govuk-from-breakpoint($breakpoint)} {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n }\n }\n }\n}\n\n/// Font helper\n///\n/// @param {Number | Boolean | String} $size Point from the type scale (the\n/// size as it would appear on tablet and above). Use `false` to avoid setting\n/// a size.\n/// @param {String} $weight [regular] - Weight: `bold` or `regular`\n/// @param {Boolean} $tabular [false] - Whether to use tabular numbers or not\n/// @param {Number} $line-height [false] - Line-height, if overriding the\n/// default\n///\n/// @throw if `$size` is not a valid point from the type scale (or false)\n///\n/// @access public\n\n@mixin govuk-font($size, $weight: regular, $tabular: false, $line-height: false) {\n @include govuk-typography-common;\n\n @if $tabular {\n @include govuk-font-tabular-numbers;\n }\n\n @if $weight == regular {\n @include govuk-typography-weight-regular;\n } @else if $weight == bold {\n @include govuk-typography-weight-bold;\n }\n\n @if $size {\n @include govuk-font-size($size, $line-height);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/govuk/helpers/_typography.scss"],"names":[],"mappings":"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","file":"_typography.scss","sourcesContent":["////\n/// @group helpers/typography\n////\n\n@import \"../tools/px-to-rem\";\n\n/// 'Common typography' helper\n///\n/// Sets the font family and associated properties, such as font smoothing. Also\n/// overrides the font for print.\n///\n/// @param {List} $font-family [$govuk-font-family] Font family to use\n/// @access public\n\n@mixin govuk-typography-common($font-family: $govuk-font-family) {\n font-family: $font-family;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n // If the user is using the default GDS Transport font we need to include\n // the font-face declarations.\n @if $govuk-include-default-font-face {\n @include _govuk-font-face-gds-transport;\n }\n\n @media print {\n font-family: $govuk-font-family-print;\n }\n}\n\n/// Text colour helper\n///\n/// Sets the text colour, including a suitable override for print.\n///\n/// @access public\n\n@mixin govuk-text-colour {\n color: govuk-functional-colour(text);\n\n @media print {\n color: govuk-functional-colour(print-text);\n }\n}\n\n/// Regular font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-regular($important: false) {\n font-weight: $govuk-font-weight-regular if($important, !important, null);\n}\n\n/// Bold font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-bold($important: false) {\n font-weight: $govuk-font-weight-bold if($important, !important, null);\n}\n\n/// Tabular number helper\n///\n/// Switches numerical glyphs (0–9) to use alternative forms with a\n/// monospaced bounding box. This ensures that columns of numbers, such\n/// as those in tables, remain horizontally aligned with one another.\n/// This also has the useful side effect of making numbers more legible\n/// in some situations, such as reference codes, as the numbers are more\n/// distinct and visually separated from one another.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-font-tabular-numbers($important: false) {\n font-variant-numeric: tabular-nums if($important, !important, null);\n}\n\n/// Word break helper\n///\n/// Forcibly breaks long words that lack spaces, such as email addresses,\n/// across multiple lines when they wouldn't otherwise fit.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally used to create override classes.\n/// @access public\n\n@mixin govuk-text-break-word($important: false) {\n // IE 11 and Edge 16–17 only support the non-standard `word-wrap` property\n word-wrap: break-word if($important, !important, null);\n\n // All other browsers support `overflow-wrap`\n overflow-wrap: break-word if($important, !important, null);\n}\n\n/// Convert line-heights specified in pixels into a relative value, unless\n/// they are already unit-less (and thus already treated as relative values)\n/// or the units do not match the units used for the font size.\n///\n/// @param {Number} $line-height Line height\n/// @param {Number} $font-size Font size\n/// @return {Number} The line height as either a relative value or unmodified\n///\n/// @access private\n\n@function _govuk-line-height($line-height, $font-size) {\n @if not unitless($line-height) and unit($line-height) == unit($font-size) {\n $line-height: $line-height / $font-size;\n }\n\n @return $line-height;\n}\n\n/// Font size and line height helper\n///\n/// Takes a point from the responsive 'font map' as an argument (the size as it\n/// would appear on tablet and above), and uses it to create font-size and\n/// line-height declarations for different breakpoints, and print.\n///\n/// Example font map:\n///\n/// ```scss\n/// 19: (\n/// null: (\n/// font-size: 16px,\n/// line-height: 20px\n/// ),\n/// tablet: (\n/// font-size: 19px,\n/// line-height: 25px\n/// ),\n/// print: (\n/// font-size: 14pt,\n/// line-height: 1.15\n/// )\n/// );\n/// ```\n///\n/// @param {Number | String} $size - Point from the type scale (the size as\n/// it would appear on tablet and above)\n/// @param {Number} $line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the type scale\n///\n/// @access public\n\n@mixin govuk-font-size($size, $line-height: false, $important: false) {\n // Flag font sizes that start with underscores so we can suppress warnings on\n // deprecated sizes used internally, for example `govuk-font($size: \"_14\")`\n $size-internal-use-only: str-slice(#{$size}, 1, 1) == \"_\";\n\n // Remove underscore from font sizes flagged for internal use\n @if $size-internal-use-only {\n $size: str-slice(#{$size}, 2);\n }\n\n // Check for a font map exactly matching the given size\n $font-map: map-get($govuk-typography-scale, $size);\n\n // No match? Try with string type (e.g. $size: \"16\" not 16)\n @if not $font-map {\n @each $font-size in map-keys($govuk-typography-scale) {\n @if not $font-map and \"#{$font-size}\" == \"#{$size}\" {\n $font-map: map-get($govuk-typography-scale, $font-size);\n }\n }\n }\n\n // Still no match? Throw error\n @if not $font-map {\n @error \"Unknown font size `#{$size}` - expected a point from the type scale.\";\n }\n\n // Check for a deprecation within the type scale\n $deprecation: map-get($font-map, \"deprecation\");\n\n @if $deprecation {\n // Warn on deprecated font sizes unless flagged for internal use\n @if not $size-internal-use-only {\n @include _warning(map-get($deprecation, \"key\"), map-get($deprecation, \"message\"));\n }\n\n // remove the deprecation map keys so they do not break the breakpoint loop\n $font-map: map-remove($font-map, \"deprecation\");\n }\n\n @each $breakpoint, $breakpoint-map in $font-map {\n $font-size: map-get($breakpoint-map, \"font-size\");\n $font-size-rem: govuk-px-to-rem($font-size);\n\n // $calculated-line-height is a separate variable from $line-height,\n // as otherwise the value would get redefined with each loop and\n // eventually break _govuk-line-height.\n //\n // We continue to call the param $line-height to stay consistent with the\n // naming with govuk-font.\n $calculated-line-height: _govuk-line-height(\n $line-height: if($line-height, $line-height, map-get($breakpoint-map, \"line-height\")),\n $font-size: $font-size\n );\n\n // Mark rules as !important if $important is true - this will result in\n // these variables becoming strings, so this needs to happen *after* they\n // are used in calculations\n $font-size: $font-size if($important, !important, null);\n $font-size-rem: $font-size-rem if($important, !important, null);\n $calculated-line-height: $calculated-line-height if($important, !important, null);\n\n @if not $breakpoint {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n } @else if $breakpoint == \"print\" {\n @media print {\n font-size: $font-size;\n line-height: $calculated-line-height;\n }\n } @else {\n @media #{govuk-from-breakpoint($breakpoint)} {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n }\n }\n }\n}\n\n/// Font helper\n///\n/// @param {Number | Boolean | String} $size Point from the type scale (the\n/// size as it would appear on tablet and above). Use `false` to avoid setting\n/// a size.\n/// @param {String} $weight [regular] - Weight: `bold` or `regular`\n/// @param {Boolean} $tabular [false] - Whether to use tabular numbers or not\n/// @param {Number} $line-height [false] - Line-height, if overriding the\n/// default\n///\n/// @throw if `$size` is not a valid point from the type scale (or false)\n///\n/// @access public\n\n@mixin govuk-font($size, $weight: regular, $tabular: false, $line-height: false) {\n @include govuk-typography-common;\n\n @if $tabular {\n @include govuk-font-tabular-numbers;\n }\n\n @if $weight == regular {\n @include govuk-typography-weight-regular;\n } @else if $weight == bold {\n @include govuk-typography-weight-bold;\n }\n\n @if $size {\n @include govuk-font-size($size, $line-height);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.mjs","sources":["../../src/govuk/i18n.mjs"],"sourcesContent":["import { isObject } from './common/index.mjs'\n\n/**\n * Internal support for selecting messages to render, with placeholder\n * interpolation and locale-aware number formatting and pluralisation\n *\n * @internal\n */\nexport class I18n {\n translations\n locale\n\n /**\n * @internal\n * @param {{ [key: string]: string | TranslationPluralForms }} translations - Key-value pairs of the translation strings to use.\n * @param {object} [config] - Configuration options for the function.\n * @param {string | null} [config.locale] - An overriding locale for the PluralRules functionality.\n */\n constructor(translations = {}, config = {}) {\n // Make list of translations available throughout function\n this.translations = translations\n\n // The locale to use for PluralRules and NumberFormat\n this.locale = config.locale ?? (document.documentElement.lang || 'en')\n }\n\n /**\n * The most used function - takes the key for a given piece of UI text and\n * returns the appropriate string.\n *\n * @internal\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {{ [key: string]: unknown }} [options] - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The appropriate translation string.\n * @throws {Error} Lookup key required\n * @throws {Error} Options required for `${}` placeholders\n */\n t(lookupKey, options) {\n if (!lookupKey) {\n // Print a console error if no lookup key has been provided\n throw new Error('i18n: lookup key missing')\n }\n\n // Fetch the translation for that lookup key\n let translation = this.translations[lookupKey]\n\n // If the `count` option is set, determine which plural suffix is needed and\n // change the lookupKey to match. We check to see if it's numeric instead of\n // falsy, as this could legitimately be 0.\n if (typeof options?.count === 'number' && isObject(translation)) {\n const translationPluralForm =\n translation[this.getPluralSuffix(lookupKey, options.count)]\n\n // Update translation with plural suffix\n if (translationPluralForm) {\n translation = translationPluralForm\n }\n }\n\n if (typeof translation === 'string') {\n // Check for ${} placeholders in the translation string\n // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec\n if (translation.match(/%{(.\\S+)}/)) {\n if (!options) {\n throw new Error(\n 'i18n: cannot replace placeholders in string if no option data provided'\n )\n }\n\n return this.replacePlaceholders(translation, options)\n }\n\n return translation\n }\n\n // If the key wasn't found in our translations object,\n // return the lookup key itself as the fallback\n return lookupKey\n }\n\n /**\n * Takes a translation string with placeholders, and replaces the placeholders\n * with the provided data\n *\n * @internal\n * @param {string} translationString - The translation string\n * @param {{ [key: string]: unknown }} options - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The translation string to output, with $\\{\\} placeholders replaced\n */\n replacePlaceholders(translationString, options) {\n const formatter = Intl.NumberFormat.supportedLocalesOf(this.locale).length\n ? new Intl.NumberFormat(this.locale)\n : undefined\n\n return translationString.replace(\n /%{(.\\S+)}/g,\n\n /**\n * Replace translation string placeholders\n *\n * @internal\n * @param {string} placeholderWithBraces - Placeholder with braces\n * @param {string} placeholderKey - Placeholder key\n * @returns {string} Placeholder value\n */\n function (placeholderWithBraces, placeholderKey) {\n if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {\n const placeholderValue = options[placeholderKey]\n\n // If a user has passed `false` as the value for the placeholder\n // treat it as though the value should not be displayed\n if (\n placeholderValue === false ||\n (typeof placeholderValue !== 'number' &&\n typeof placeholderValue !== 'string')\n ) {\n return ''\n }\n\n // If the placeholder's value is a number, localise the number formatting\n if (typeof placeholderValue === 'number') {\n return formatter\n ? formatter.format(placeholderValue)\n : `${placeholderValue}`\n }\n\n return placeholderValue\n }\n\n throw new Error(\n `i18n: no data found to replace ${placeholderWithBraces} placeholder in string`\n )\n }\n )\n }\n\n /**\n * Check to see if the browser supports Intl.PluralRules\n *\n * It requires all conditions to be met in order to be supported:\n * - The implementation of Intl supports PluralRules (NOT true in Safari 10–12)\n * - The browser/OS has plural rules for the current locale (browser dependent)\n *\n * {@link https://browsersl.ist/#q=supports+es6-module+and+not+supports+intl-pluralrules}\n *\n * @internal\n * @returns {boolean} Returns true if all conditions are met. Returns false otherwise.\n */\n hasIntlPluralRulesSupport() {\n return Boolean(\n 'PluralRules' in window.Intl &&\n Intl.PluralRules.supportedLocalesOf(this.locale).length\n )\n }\n\n /**\n * Get the appropriate suffix for the plural form.\n *\n * Uses Intl.PluralRules (or our own fallback implementation) to get the\n * 'preferred' form to use for the given count.\n *\n * Checks that a translation has been provided for that plural form – if it\n * hasn't, it'll fall back to the 'other' plural form (unless that doesn't exist\n * either, in which case an error will be thrown)\n *\n * @internal\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {number} count - Number used to determine which pluralisation to use.\n * @returns {PluralRule} The suffix associated with the correct pluralisation for this locale.\n * @throws {Error} Plural form `.other` required when preferred plural form is missing\n */\n getPluralSuffix(lookupKey, count) {\n // Validate that the number is actually a number.\n //\n // Number(count) will turn anything that can't be converted to a Number type\n // into 'NaN'. isFinite filters out NaN, as it isn't a finite number.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n count = Number(count)\n if (!isFinite(count)) {\n return 'other'\n }\n\n // Fetch the translation for that lookup key\n const translation = this.translations[lookupKey]\n\n // Check to verify that all the requirements for Intl.PluralRules are met.\n // If so, we can use that instead of our custom implementation. Otherwise,\n // use the hardcoded fallback.\n const preferredForm = this.hasIntlPluralRulesSupport()\n ? new Intl.PluralRules(this.locale).select(count)\n : 'other'\n\n // Use the correct plural form if provided\n if (isObject(translation)) {\n if (preferredForm in translation) {\n return preferredForm\n // Fall back to `other` if the plural form is missing, but log a warning\n // to the console\n } else if ('other' in translation) {\n console.warn(\n `i18n: Missing plural form \".${preferredForm}\" for \"${this.locale}\" locale. Falling back to \".other\".`\n )\n\n return 'other'\n }\n }\n\n // If the required `other` plural form is missing, all we can do is error\n throw new Error(\n `i18n: Plural form \".other\" is required for \"${this.locale}\" locale`\n )\n }\n}\n\n/**\n * Plural rule category mnemonic tags\n *\n * @internal\n * @typedef {'zero' | 'one' | 'two' | 'few' | 'many' | 'other'} PluralRule\n */\n\n/**\n * Translated message by plural rule they correspond to.\n *\n * Allows to group pluralised messages under a single key when passing\n * translations to a component's constructor\n *\n * @internal\n * @typedef {object} TranslationPluralForms\n * @property {string} [other] - General plural form\n * @property {string} [zero] - Plural form used with 0\n * @property {string} [one] - Plural form used with 1\n * @property {string} [two] - Plural form used with 2\n * @property {string} [few] - Plural form used for a few\n * @property {string} [many] - Plural form used for many\n */\n"],"names":["I18n","constructor","translations","config","_config$locale","locale","document","documentElement","lang","t","lookupKey","options","Error","translation","count","isObject","translationPluralForm","getPluralSuffix","match","replacePlaceholders","translationString","formatter","Intl","NumberFormat","supportedLocalesOf","length","undefined","replace","placeholderWithBraces","placeholderKey","Object","prototype","hasOwnProperty","call","placeholderValue","format","hasIntlPluralRulesSupport","Boolean","window","PluralRules","Number","isFinite","preferredForm","select","console","warn"],"mappings":"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"}
1
+ {"version":3,"file":"i18n.mjs","sources":["../../src/govuk/i18n.mjs"],"sourcesContent":["import { isObject } from './common/index.mjs'\n\n/**\n * Internal support for selecting messages to render, with placeholder\n * interpolation and locale-aware number formatting and pluralisation\n *\n * @internal\n */\nexport class I18n {\n translations\n locale\n\n /**\n * @internal\n * @param {{ [key: string]: string | TranslationPluralForms }} translations - Key-value pairs of the translation strings to use.\n * @param {object} [config] - Configuration options for the function.\n * @param {string | null} [config.locale] - An overriding locale for the PluralRules functionality.\n */\n constructor(translations = {}, config = {}) {\n // Make list of translations available throughout function\n this.translations = translations\n\n // The locale to use for PluralRules and NumberFormat\n this.locale = config.locale ?? (document.documentElement.lang || 'en')\n }\n\n /**\n * The most used function - takes the key for a given piece of UI text and\n * returns the appropriate string.\n *\n * @internal\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {{ [key: string]: unknown }} [options] - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The appropriate translation string.\n * @throws {Error} Lookup key required\n * @throws {Error} Options required for `${}` placeholders\n */\n t(lookupKey, options) {\n if (!lookupKey) {\n // Print a console error if no lookup key has been provided\n throw new Error('i18n: lookup key missing')\n }\n\n // Fetch the translation for that lookup key\n let translation = this.translations[lookupKey]\n\n // If the `count` option is set, determine which plural suffix is needed and\n // change the lookupKey to match. We check to see if it's numeric instead of\n // falsy, as this could legitimately be 0.\n if (typeof options?.count === 'number' && isObject(translation)) {\n const translationPluralForm =\n translation[this.getPluralSuffix(lookupKey, options.count)]\n\n // Update translation with plural suffix\n if (translationPluralForm) {\n translation = translationPluralForm\n }\n }\n\n if (typeof translation === 'string') {\n // Check for ${} placeholders in the translation string\n // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec\n if (translation.match(/%{(.\\S+)}/)) {\n if (!options) {\n throw new Error(\n 'i18n: cannot replace placeholders in string if no option data provided'\n )\n }\n\n return this.replacePlaceholders(translation, options)\n }\n\n return translation\n }\n\n // If the key wasn't found in our translations object,\n // return the lookup key itself as the fallback\n return lookupKey\n }\n\n /**\n * Takes a translation string with placeholders, and replaces the placeholders\n * with the provided data\n *\n * @internal\n * @param {string} translationString - The translation string\n * @param {{ [key: string]: unknown }} options - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The translation string to output, with $\\{\\} placeholders replaced\n */\n replacePlaceholders(translationString, options) {\n const formatter = Intl.NumberFormat.supportedLocalesOf(this.locale).length\n ? new Intl.NumberFormat(this.locale)\n : undefined\n\n return translationString.replace(\n /%{(.\\S+)}/g,\n\n /**\n * Replace translation string placeholders\n *\n * @internal\n * @param {string} placeholderWithBraces - Placeholder with braces\n * @param {string} placeholderKey - Placeholder key\n * @returns {string} Placeholder value\n */\n function (placeholderWithBraces, placeholderKey) {\n if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {\n const placeholderValue = options[placeholderKey]\n\n // If a user has passed `false` as the value for the placeholder\n // treat it as though the value should not be displayed\n if (\n placeholderValue === false ||\n (typeof placeholderValue !== 'number' &&\n typeof placeholderValue !== 'string')\n ) {\n return ''\n }\n\n // If the placeholder's value is a number, localise the number formatting\n if (typeof placeholderValue === 'number') {\n return formatter\n ? formatter.format(placeholderValue)\n : `${placeholderValue}`\n }\n\n return placeholderValue\n }\n\n throw new Error(\n `i18n: no data found to replace ${placeholderWithBraces} placeholder in string`\n )\n }\n )\n }\n\n /**\n * Check to see if the browser supports Intl.PluralRules\n *\n * It requires all conditions to be met in order to be supported:\n * - The implementation of Intl supports PluralRules (NOT true in Safari 10–12)\n * - The browser/OS has plural rules for the current locale (browser dependent)\n *\n * {@link https://browsersl.ist/#q=supports+es6-module+and+not+supports+intl-pluralrules}\n *\n * @internal\n * @returns {boolean} Returns true if all conditions are met. Returns false otherwise.\n */\n hasIntlPluralRulesSupport() {\n return Boolean(\n 'PluralRules' in window.Intl &&\n Intl.PluralRules.supportedLocalesOf(this.locale).length\n )\n }\n\n /**\n * Get the appropriate suffix for the plural form.\n *\n * Uses Intl.PluralRules (or our own fallback implementation) to get the\n * 'preferred' form to use for the given count.\n *\n * Checks that a translation has been provided for that plural form – if it\n * hasn't, it'll fall back to the 'other' plural form (unless that doesn't exist\n * either, in which case an error will be thrown)\n *\n * @internal\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {number} count - Number used to determine which pluralisation to use.\n * @returns {PluralRule} The suffix associated with the correct pluralisation for this locale.\n * @throws {Error} Plural form `.other` required when preferred plural form is missing\n */\n getPluralSuffix(lookupKey, count) {\n // Validate that the number is actually a number.\n //\n // Number(count) will turn anything that can't be converted to a Number type\n // into 'NaN'. isFinite filters out NaN, as it isn't a finite number.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n count = Number(count)\n if (!isFinite(count)) {\n return 'other'\n }\n\n // Fetch the translation for that lookup key\n const translation = this.translations[lookupKey]\n\n // Check to verify that all the requirements for Intl.PluralRules are met.\n // If so, we can use that instead of our custom implementation. Otherwise,\n // use the hardcoded fallback.\n const preferredForm = this.hasIntlPluralRulesSupport()\n ? new Intl.PluralRules(this.locale).select(count)\n : 'other'\n\n // Use the correct plural form if provided\n if (isObject(translation)) {\n if (preferredForm in translation) {\n return preferredForm\n // Fall back to `other` if the plural form is missing, but log a warning\n // to the console\n } else if ('other' in translation) {\n console.warn(\n `i18n: Missing plural form \".${preferredForm}\" for \"${this.locale}\" locale. Falling back to \".other\".`\n )\n\n return 'other'\n }\n }\n\n // If the required `other` plural form is missing, all we can do is error\n throw new Error(\n `i18n: Plural form \".other\" is required for \"${this.locale}\" locale`\n )\n }\n}\n\n/**\n * Plural rule category mnemonic tags\n *\n * @internal\n * @typedef {'zero' | 'one' | 'two' | 'few' | 'many' | 'other'} PluralRule\n */\n\n/**\n * Translated message by plural rule they correspond to.\n *\n * Allows to group pluralised messages under a single key when passing\n * translations to a component's constructor\n *\n * @internal\n * @typedef {object} TranslationPluralForms\n * @property {string} [other] - General plural form\n * @property {string} [zero] - Plural form used with 0\n * @property {string} [one] - Plural form used with 1\n * @property {string} [two] - Plural form used with 2\n * @property {string} [few] - Plural form used for a few\n * @property {string} [many] - Plural form used for many\n */\n"],"names":["I18n","constructor","translations","config","_config$locale","locale","document","documentElement","lang","t","lookupKey","options","Error","translation","count","isObject","translationPluralForm","getPluralSuffix","match","replacePlaceholders","translationString","formatter","Intl","NumberFormat","supportedLocalesOf","length","undefined","replace","placeholderWithBraces","placeholderKey","Object","prototype","hasOwnProperty","call","placeholderValue","format","hasIntlPluralRulesSupport","Boolean","window","PluralRules","Number","isFinite","preferredForm","select","console","warn"],"mappings":"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"}
@@ -7,7 +7,6 @@ import { Checkboxes } from './components/checkboxes/checkboxes.mjs';
7
7
  import { ErrorSummary } from './components/error-summary/error-summary.mjs';
8
8
  import { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs';
9
9
  import { FileUpload } from './components/file-upload/file-upload.mjs';
10
- import { Header } from './components/header/header.mjs';
11
10
  import { NotificationBanner } from './components/notification-banner/notification-banner.mjs';
12
11
  import { PasswordInput } from './components/password-input/password-input.mjs';
13
12
  import { Radios } from './components/radios/radios.mjs';
@@ -47,7 +46,7 @@ function initAll(scopeOrConfig = {}) {
47
46
  }
48
47
  return;
49
48
  }
50
- const components = [[Accordion, config.accordion], [Button, config.button], [CharacterCount, config.characterCount], [Checkboxes], [ErrorSummary, config.errorSummary], [ExitThisPage, config.exitThisPage], [FileUpload, config.fileUpload], [Header], [NotificationBanner, config.notificationBanner], [PasswordInput, config.passwordInput], [Radios], [ServiceNavigation], [SkipLink], [Tabs]];
49
+ const components = [[Accordion, config.accordion], [Button, config.button], [CharacterCount, config.characterCount], [Checkboxes], [ErrorSummary, config.errorSummary], [ExitThisPage, config.exitThisPage], [FileUpload, config.fileUpload], [NotificationBanner, config.notificationBanner], [PasswordInput, config.passwordInput], [Radios], [ServiceNavigation], [SkipLink], [Tabs]];
51
50
  components.forEach(([Component, componentConfig]) => {
52
51
  createAll(Component, componentConfig, options);
53
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"init.mjs","sources":["../../src/govuk/init.mjs"],"sourcesContent":["import { normaliseOptions } from './common/configuration.mjs'\nimport { isObject, isSupported } from './common/index.mjs'\nimport { Accordion } from './components/accordion/accordion.mjs'\nimport { Button } from './components/button/button.mjs'\nimport { CharacterCount } from './components/character-count/character-count.mjs'\nimport { Checkboxes } from './components/checkboxes/checkboxes.mjs'\nimport { ErrorSummary } from './components/error-summary/error-summary.mjs'\nimport { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs'\nimport { FileUpload } from './components/file-upload/file-upload.mjs'\nimport { Header } from './components/header/header.mjs'\nimport { NotificationBanner } from './components/notification-banner/notification-banner.mjs'\nimport { PasswordInput } from './components/password-input/password-input.mjs'\nimport { Radios } from './components/radios/radios.mjs'\nimport { ServiceNavigation } from './components/service-navigation/service-navigation.mjs'\nimport { SkipLink } from './components/skip-link/skip-link.mjs'\nimport { Tabs } from './components/tabs/tabs.mjs'\nimport { ElementError, SupportError } from './errors/index.mjs'\n\n/**\n * Initialise all components\n *\n * Use the `data-module` attributes to find, instantiate and init all of the\n * components provided as part of GOV.UK Frontend.\n *\n * @param {Config | Element | Document | null} [scopeOrConfig] - Scope of the document to search within or config for all components (with optional scope)\n */\nfunction initAll(scopeOrConfig = {}) {\n const config = isObject(scopeOrConfig) ? scopeOrConfig : {}\n\n // Extract initialisation options\n const options = normaliseOptions(scopeOrConfig)\n\n try {\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n throw new SupportError()\n }\n\n // Users can initialise GOV.UK Frontend in certain sections of the page\n // unless the scope is null (for example, query selector not found)\n if (options.scope === null) {\n throw new ElementError({\n element: options.scope,\n identifier: 'GOV.UK Frontend scope element (`$scope`)'\n })\n }\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n config\n })\n } else {\n console.log(error)\n }\n\n return\n }\n\n const components = /** @type {const} */ ([\n [Accordion, config.accordion],\n [Button, config.button],\n [CharacterCount, config.characterCount],\n [Checkboxes],\n [ErrorSummary, config.errorSummary],\n [ExitThisPage, config.exitThisPage],\n [FileUpload, config.fileUpload],\n [Header],\n [NotificationBanner, config.notificationBanner],\n [PasswordInput, config.passwordInput],\n [Radios],\n [ServiceNavigation],\n [SkipLink],\n [Tabs]\n ])\n\n components.forEach(([Component, componentConfig]) => {\n createAll(Component, componentConfig, options)\n })\n}\n\n/**\n * Create all instances of a specific component on the page\n *\n * Uses the `data-module` attribute to find all elements matching the specified\n * component on the page, creating instances of the component object for each\n * of them.\n *\n * Any component errors will be caught and logged to the console.\n *\n * @template {CompatibleClass} ComponentClass\n * @param {ComponentClass} Component - class of the component to create\n * @param {ComponentConfig<ComponentClass>} [config] - Config supplied to component\n * @param {OnErrorCallback<ComponentClass> | Element | Document | null | CreateAllOptions<ComponentClass>} [scopeOrOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init\n * @returns {Array<InstanceType<ComponentClass>>} - array of instantiated components\n */\nfunction createAll(Component, config, scopeOrOptions) {\n let /** @type {NodeListOf<Element> | undefined} */ $elements\n\n // Extract initialisation options\n const options = normaliseOptions(scopeOrOptions)\n\n try {\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n throw new SupportError()\n }\n\n // Users can initialise GOV.UK Frontend in certain sections of the page\n // unless the scope is null (for example, query selector not found)\n if (options.scope === null) {\n throw new ElementError({\n element: options.scope,\n component: Component,\n identifier: 'Scope element (`$scope`)'\n })\n }\n\n $elements = options.scope?.querySelectorAll(\n `[data-module=\"${Component.moduleName}\"]`\n )\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return []\n }\n\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-return --\n * We can't define CompatibleClass as `{new(): CompatibleClass, moduleName: string}`,\n * as when doing `typeof Accordion` (or any component), TypeScript doesn't seem\n * to acknowledge the static `moduleName` that's set in our component classes.\n * This means we have to set the constructor of `CompatibleClass` as `{new(): any}`,\n * leading to ESLint frowning that we're returning `any[]`.\n */\n return Array.from($elements ?? [])\n .map(($element) => {\n try {\n // Only pass config to components that accept it\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof config !== 'undefined'\n ? new Component($element, config)\n : new Component($element)\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n element: $element,\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return null\n }\n })\n .filter(Boolean) // Exclude components that errored\n}\n\nexport { initAll, createAll }\n\n/* eslint-disable jsdoc/valid-types --\n * `{new(...args: any[] ): object}` is not recognised as valid\n * https://github.com/gajus/eslint-plugin-jsdoc/issues/145#issuecomment-1308722878\n * https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131\n **/\n\n/**\n * @typedef {{new (...args: any[]): any, moduleName: string}} CompatibleClass\n */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Config for all components via `initAll()`\n *\n * @typedef {object} Config\n * @property {Element | Document | null} [scope] - Scope of the document to search within\n * @property {OnErrorCallback<CompatibleClass>} [onError] - Initialisation error callback\n * @property {AccordionConfig} [accordion] - Accordion config\n * @property {ButtonConfig} [button] - Button config\n * @property {CharacterCountConfig} [characterCount] - Character Count config\n * @property {ErrorSummaryConfig} [errorSummary] - Error Summary config\n * @property {ExitThisPageConfig} [exitThisPage] - Exit This Page config\n * @property {FileUploadConfig} [fileUpload] - File Upload config\n * @property {NotificationBannerConfig} [notificationBanner] - Notification Banner config\n * @property {PasswordInputConfig} [passwordInput] - Password input config\n */\n\n/**\n * Config for individual components\n *\n * @import { AccordionConfig } from './components/accordion/accordion.mjs'\n * @import { ButtonConfig } from './components/button/button.mjs'\n * @import { CharacterCountConfig } from './components/character-count/character-count.mjs'\n * @import { ErrorSummaryConfig } from './components/error-summary/error-summary.mjs'\n * @import { ExitThisPageConfig } from './components/exit-this-page/exit-this-page.mjs'\n * @import { NotificationBannerConfig } from './components/notification-banner/notification-banner.mjs'\n * @import { PasswordInputConfig } from './components/password-input/password-input.mjs'\n * @import { FileUploadConfig } from './components/file-upload/file-upload.mjs'\n */\n\n/**\n * Component config keys, e.g. `accordion` and `characterCount`\n *\n * @typedef {keyof Omit<Config, 'scope' | 'onError'>} ConfigKey\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {ConstructorParameters<ComponentClass>[1]} ComponentConfig\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} ErrorContext\n * @property {Element} [element] - Element used for component module initialisation\n * @property {ComponentClass} [component] - Class of component\n * @property {Config | ComponentConfig<ComponentClass>} [config] - Config supplied to components\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @callback OnErrorCallback\n * @param {unknown} error - Thrown error\n * @param {ErrorContext<ComponentClass>} context - Object containing the element, component class and configuration\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} CreateAllOptions\n * @property {Element | Document | null} [scope] - scope of the document to search within\n * @property {OnErrorCallback<ComponentClass>} [onError] - callback function if error throw by component on init\n */\n"],"names":["initAll","scopeOrConfig","config","isObject","options","normaliseOptions","isSupported","SupportError","scope","ElementError","element","identifier","error","onError","console","log","components","Accordion","accordion","Button","button","CharacterCount","characterCount","Checkboxes","ErrorSummary","errorSummary","ExitThisPage","exitThisPage","FileUpload","fileUpload","Header","NotificationBanner","notificationBanner","PasswordInput","passwordInput","Radios","ServiceNavigation","SkipLink","Tabs","forEach","Component","componentConfig","createAll","scopeOrOptions","$elements","_options$scope","component","querySelectorAll","moduleName","Array","from","map","$element","filter","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"init.mjs","sources":["../../src/govuk/init.mjs"],"sourcesContent":["import { normaliseOptions } from './common/configuration.mjs'\nimport { isObject, isSupported } from './common/index.mjs'\nimport { Accordion } from './components/accordion/accordion.mjs'\nimport { Button } from './components/button/button.mjs'\nimport { CharacterCount } from './components/character-count/character-count.mjs'\nimport { Checkboxes } from './components/checkboxes/checkboxes.mjs'\nimport { ErrorSummary } from './components/error-summary/error-summary.mjs'\nimport { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs'\nimport { FileUpload } from './components/file-upload/file-upload.mjs'\nimport { NotificationBanner } from './components/notification-banner/notification-banner.mjs'\nimport { PasswordInput } from './components/password-input/password-input.mjs'\nimport { Radios } from './components/radios/radios.mjs'\nimport { ServiceNavigation } from './components/service-navigation/service-navigation.mjs'\nimport { SkipLink } from './components/skip-link/skip-link.mjs'\nimport { Tabs } from './components/tabs/tabs.mjs'\nimport { ElementError, SupportError } from './errors/index.mjs'\n\n/**\n * Initialise all components\n *\n * Use the `data-module` attributes to find, instantiate and init all of the\n * components provided as part of GOV.UK Frontend.\n *\n * @param {Config | Element | Document | null} [scopeOrConfig] - Scope of the document to search within or config for all components (with optional scope)\n */\nfunction initAll(scopeOrConfig = {}) {\n const config = isObject(scopeOrConfig) ? scopeOrConfig : {}\n\n // Extract initialisation options\n const options = normaliseOptions(scopeOrConfig)\n\n try {\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n throw new SupportError()\n }\n\n // Users can initialise GOV.UK Frontend in certain sections of the page\n // unless the scope is null (for example, query selector not found)\n if (options.scope === null) {\n throw new ElementError({\n element: options.scope,\n identifier: 'GOV.UK Frontend scope element (`$scope`)'\n })\n }\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n config\n })\n } else {\n console.log(error)\n }\n\n return\n }\n\n const components = /** @type {const} */ ([\n [Accordion, config.accordion],\n [Button, config.button],\n [CharacterCount, config.characterCount],\n [Checkboxes],\n [ErrorSummary, config.errorSummary],\n [ExitThisPage, config.exitThisPage],\n [FileUpload, config.fileUpload],\n [NotificationBanner, config.notificationBanner],\n [PasswordInput, config.passwordInput],\n [Radios],\n [ServiceNavigation],\n [SkipLink],\n [Tabs]\n ])\n\n components.forEach(([Component, componentConfig]) => {\n createAll(Component, componentConfig, options)\n })\n}\n\n/**\n * Create all instances of a specific component on the page\n *\n * Uses the `data-module` attribute to find all elements matching the specified\n * component on the page, creating instances of the component object for each\n * of them.\n *\n * Any component errors will be caught and logged to the console.\n *\n * @template {CompatibleClass} ComponentClass\n * @param {ComponentClass} Component - class of the component to create\n * @param {ComponentConfig<ComponentClass>} [config] - Config supplied to component\n * @param {OnErrorCallback<ComponentClass> | Element | Document | null | CreateAllOptions<ComponentClass>} [scopeOrOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init\n * @returns {Array<InstanceType<ComponentClass>>} - array of instantiated components\n */\nfunction createAll(Component, config, scopeOrOptions) {\n let /** @type {NodeListOf<Element> | undefined} */ $elements\n\n // Extract initialisation options\n const options = normaliseOptions(scopeOrOptions)\n\n try {\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n throw new SupportError()\n }\n\n // Users can initialise GOV.UK Frontend in certain sections of the page\n // unless the scope is null (for example, query selector not found)\n if (options.scope === null) {\n throw new ElementError({\n element: options.scope,\n component: Component,\n identifier: 'Scope element (`$scope`)'\n })\n }\n\n $elements = options.scope?.querySelectorAll(\n `[data-module=\"${Component.moduleName}\"]`\n )\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return []\n }\n\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-return --\n * We can't define CompatibleClass as `{new(): CompatibleClass, moduleName: string}`,\n * as when doing `typeof Accordion` (or any component), TypeScript doesn't seem\n * to acknowledge the static `moduleName` that's set in our component classes.\n * This means we have to set the constructor of `CompatibleClass` as `{new(): any}`,\n * leading to ESLint frowning that we're returning `any[]`.\n */\n return Array.from($elements ?? [])\n .map(($element) => {\n try {\n // Only pass config to components that accept it\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof config !== 'undefined'\n ? new Component($element, config)\n : new Component($element)\n } catch (error) {\n if (options.onError) {\n options.onError(error, {\n element: $element,\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return null\n }\n })\n .filter(Boolean) // Exclude components that errored\n}\n\nexport { initAll, createAll }\n\n/* eslint-disable jsdoc/valid-types --\n * `{new(...args: any[] ): object}` is not recognised as valid\n * https://github.com/gajus/eslint-plugin-jsdoc/issues/145#issuecomment-1308722878\n * https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131\n **/\n\n/**\n * @typedef {{new (...args: any[]): any, moduleName: string}} CompatibleClass\n */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Config for all components via `initAll()`\n *\n * @typedef {object} Config\n * @property {Element | Document | null} [scope] - Scope of the document to search within\n * @property {OnErrorCallback<CompatibleClass>} [onError] - Initialisation error callback\n * @property {AccordionConfig} [accordion] - Accordion config\n * @property {ButtonConfig} [button] - Button config\n * @property {CharacterCountConfig} [characterCount] - Character Count config\n * @property {ErrorSummaryConfig} [errorSummary] - Error Summary config\n * @property {ExitThisPageConfig} [exitThisPage] - Exit This Page config\n * @property {FileUploadConfig} [fileUpload] - File Upload config\n * @property {NotificationBannerConfig} [notificationBanner] - Notification Banner config\n * @property {PasswordInputConfig} [passwordInput] - Password input config\n */\n\n/**\n * Config for individual components\n *\n * @import { AccordionConfig } from './components/accordion/accordion.mjs'\n * @import { ButtonConfig } from './components/button/button.mjs'\n * @import { CharacterCountConfig } from './components/character-count/character-count.mjs'\n * @import { ErrorSummaryConfig } from './components/error-summary/error-summary.mjs'\n * @import { ExitThisPageConfig } from './components/exit-this-page/exit-this-page.mjs'\n * @import { NotificationBannerConfig } from './components/notification-banner/notification-banner.mjs'\n * @import { PasswordInputConfig } from './components/password-input/password-input.mjs'\n * @import { FileUploadConfig } from './components/file-upload/file-upload.mjs'\n */\n\n/**\n * Component config keys, e.g. `accordion` and `characterCount`\n *\n * @typedef {keyof Omit<Config, 'scope' | 'onError'>} ConfigKey\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {ConstructorParameters<ComponentClass>[1]} ComponentConfig\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} ErrorContext\n * @property {Element} [element] - Element used for component module initialisation\n * @property {ComponentClass} [component] - Class of component\n * @property {Config | ComponentConfig<ComponentClass>} [config] - Config supplied to components\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @callback OnErrorCallback\n * @param {unknown} error - Thrown error\n * @param {ErrorContext<ComponentClass>} context - Object containing the element, component class and configuration\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} CreateAllOptions\n * @property {Element | Document | null} [scope] - scope of the document to search within\n * @property {OnErrorCallback<ComponentClass>} [onError] - callback function if error throw by component on init\n */\n"],"names":["initAll","scopeOrConfig","config","isObject","options","normaliseOptions","isSupported","SupportError","scope","ElementError","element","identifier","error","onError","console","log","components","Accordion","accordion","Button","button","CharacterCount","characterCount","Checkboxes","ErrorSummary","errorSummary","ExitThisPage","exitThisPage","FileUpload","fileUpload","NotificationBanner","notificationBanner","PasswordInput","passwordInput","Radios","ServiceNavigation","SkipLink","Tabs","forEach","Component","componentConfig","createAll","scopeOrOptions","$elements","_options$scope","component","querySelectorAll","moduleName","Array","from","map","$element","filter","Boolean"],"mappings":"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"}
@@ -6,19 +6,12 @@ releases of Frontend. #}
6
6
 
7
7
  {% macro govukLogo(params) %}
8
8
  {#- Default options #}
9
- {%- set rebrand = params.rebrand | default(false) %}
10
9
  {%- set useLogotype = params.useLogotype | default(true) %}
11
- {%- set useTudorCrown = params.useTudorCrown | default(true) %}
12
-
13
- {# Force use of Tudor Crown if rebrand flag is on. #}
14
- {%- set useTudorCrown = true if rebrand else useTudorCrown %}
15
10
 
16
11
  {#- Calculate how wide the logo needs to be for the given parameters. #}
17
- {%- set svgWidth = 32 if useTudorCrown else 36 %}
18
- {%- set svgWidth = svgWidth + 116 if (useLogotype and not rebrand) else svgWidth %}
19
- {%- set svgWidth = svgWidth + 130 if (useLogotype and rebrand) else svgWidth %}
12
+ {%- set svgWidth = 32 %}
13
+ {%- set svgWidth = svgWidth + 130 if useLogotype else svgWidth %}
20
14
 
21
- {#- Charles III's Tudor Crown icon has been the default since February 2024. #}
22
15
  {%- set _tudorCrown %}
23
16
  <g>
24
17
  <circle cx="20" cy="17.6" r="3.7"/>
@@ -33,22 +26,7 @@ releases of Frontend. #}
33
26
  </g>
34
27
  {%- endset %}
35
28
 
36
- {#- St. Edward's Crown was the logo under Elizabeth II. It's included to avoid
37
- a breaking change in services. It can be removed in Frontend v6. #}
38
- {%- set _stEdwardsCrown %}
39
- <path d="M13.4,22.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2-.8,2,0,4.2,2,5M4.8,27.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2-1,2,0,4.2,2,5M2.2,36.9c2,.8,4.2-.2,5-2,.8-2-.2-4.2-2-5-2-.8-4.2.2-5,2-.8,2,0,4.2,2,5M23,25.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2s0,4.2,2,5M57.8,22.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2,1,2,0,4.2-2,5M66.4,27.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2,1,2,0,4.2-2,5M69,36.9c-2,.8-4.2-.2-5-2-.8-2,.2-4.2,2-5,2-.8,4.2.2,5,2,.8,2,0,4.2-2,5M48.2,25.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2s0,4.2-2,5M37.6,15.5l4.8,2.6v-7.2l-4.8,1.6c-.2-.2-.2-.4-.4-.4s2-6,2-6h-6.8l2,6c-.2.2-.4.2-.4.4-.2.2-4.8-1.4-4.8-1.4v7l4.8-2.6c-.2.2,0,.4.2.6l-2.8,8.4c-.2.4-.2.8-.2,1.4,0,2.2,1.6,4.2,3.8,4.4h1.2c2.2-.4,3.8-2.2,3.8-4.4s0-.8-.2-1.4l-2.8-8.4c.4-.2.6-.4.6-.6M35.6,56.1c9.2,0,17.8.6,25.6,1.8,2.2-9.2,4.8-14.4,7.6-18.2l-5.2-1.8c.6,2.6.6,3.8,0,5.6-.8-.8-1.6-2.4-2.2-4.8l-2.4,8.4c1.6-1,2.8-1.8,4-1.8-2.4,5.2-5.4,6.4-7.2,6-2.4-.4-3.4-2.6-3-4.4.6-2.6,3.2-3.2,4.4-.2,2.4-4.8-1.6-6.2-4.2-4.8,3.8-3.8,4.4-7.2,1.2-11.4-4.4,3.4-4.4,6.6-2.4,11.2-2.6-3-6.6-1.4-5,3.4,1.8-2.8,4.2-1,4,1.6-.4,2.4-3.4,4.2-7.4,4-5.6-.4-6-4.4-6-7.4,1.4-.2,3.8,1,6,4l.8-8.8c-2.2,2.4-4.4,2.8-6.6,2.8.8-2.4,4.2-6.2,4.2-6.2h-11s3.6,4,4.2,6.2c-2.2,0-4.4-.6-6.6-2.8l.8,8.8c2.2-3,4.6-4.2,6-4-.2,3.2-.4,7-6,7.4-3.8.4-7-1.6-7.4-4-.4-2.6,2-4.4,3.8-1.6,1.4-4.8-2.6-6.2-5.2-3.4,2-4.6,2-8-2.4-11.2-3.2,4.2-2.6,7.6,1.2,11.4-2.6-1.4-6.4,0-4.2,4.8,1.2-3,3.8-2.2,4.4.2.4,1.8-.8,3.8-3,4.4-2,.4-5-1-7.4-6,1.4,0,2.6.8,4,1.8l-3-8.4c-.6,2.4-1.4,3.8-2.4,4.8-.6-1.6-.4-3,0-5.6l-5.2,1.8c3,3.8,5.6,9,7.8,18.2,7.6-1,16.4-1.8,25.4-1.8"/>
40
- {%- endset %}
41
-
42
- {#- The GOV.UK logotype with standard dot. This needs to be slightly offset if
43
- using the St. Edward's Crown, as that crown is wider. #}
44
29
  {%- set _logotype %}
45
- <path {%- if not useTudorCrown %} transform="translate(8 0)"{% endif %} d="M88.6,33.2c0,1.8.2,3.4.6,5s1.2,3,2,4.4c1,1.2,2,2.2,3.4,3s3,1.2,5,1.2,3.4-.2,4.6-.8,2.2-1.4,3-2.2,1.2-1.8,1.6-3c.2-1,.4-2,.4-3v-.4h-10.6v-6.4h18.8v23h-7.4v-5c-.6.8-1.2,1.6-2,2.2-.8.6-1.6,1.2-2.6,1.8-1,.4-2,.8-3.2,1.2s-2.4.4-3.6.4c-3,0-5.8-.6-8-1.6-2.4-1.2-4.4-2.6-6-4.6s-2.8-4.2-3.6-6.8c-.6-2.8-1-5.6-1-8.6s.4-5.8,1.4-8.4,2.2-4.8,4-6.8,3.8-3.4,6.2-4.6c2.4-1.2,5.2-1.6,8.2-1.6s3.8.2,5.6.6c1.8.4,3.4,1.2,4.8,2s2.8,1.8,3.8,3c1.2,1.2,2,2.6,2.8,4l-7.4,4.2c-.4-.8-1-1.8-1.6-2.4-.6-.8-1.2-1.4-2-2s-1.6-1-2.6-1.4-2.2-.4-3.4-.4c-2,0-3.6.4-5,1.2-1.4.8-2.6,1.8-3.4,3-1,1.2-1.6,2.8-2,4.4-.6,1.6-.8,3.8-.8,5.4ZM161.4,24.6c-.8-2.6-2.2-4.8-4-6.8s-3.8-3.4-6.2-4.6c-2.4-1.2-5.2-1.6-8.4-1.6s-5.8.6-8.4,1.6c-2.2,1.2-4.4,2.8-6,4.6-1.8,2-3,4.2-4,6.8-.8,2.6-1.4,5.4-1.4,8.4s.4,5.8,1.4,8.4c.8,2.6,2.2,4.8,4,6.8s3.8,3.4,6.2,4.6c2.4,1.2,5.2,1.6,8.4,1.6s5.8-.6,8.4-1.6c2.4-1.2,4.6-2.6,6.2-4.6,1.8-2,3-4.2,4-6.8.8-2.6,1.4-5.4,1.4-8.4-.2-3-.6-5.8-1.6-8.4h0ZM154,33.2c0,2-.2,3.8-.8,5.4-.4,1.6-1.2,3.2-2.2,4.4s-2.2,2.2-3.4,2.8c-1.4.6-3,1-4.8,1s-3.4-.4-4.8-1-2.6-1.6-3.4-2.8c-1-1.2-1.6-2.6-2.2-4.4-.4-1.6-.8-3.4-.8-5.4v-.2c0-2,.2-3.8.8-5.4.4-1.6,1.2-3.2,2.2-4.4,1-1.2,2.2-2.2,3.4-2.8,1.4-.6,3-1,4.8-1s3.4.4,4.8,1,2.6,1.6,3.4,2.8c1,1.2,1.6,2.6,2.2,4.4.4,1.6.8,3.4.8,5.4v.2ZM177.8,54l-11.8-42h9.4l8,31.4h.2l8-31.4h9.4l-11.8,42h-11.4,0ZM235.4,46.7c1.2,0,2.4-.2,3.4-.6,1-.4,2-.8,2.8-1.6s1.4-1.6,1.8-2.8c.4-1.2.6-2.4.6-4V11.8h8.2v27.2c0,2.4-.4,4.4-1.2,6.2s-2,3.4-3.6,4.8c-1.4,1.4-3.2,2.4-5.4,3-2,.8-4.4,1-6.8,1s-4.8-.4-6.8-1c-2-.8-3.8-1.8-5.4-3-1.6-1.4-2.6-3-3.6-4.8-.8-1.8-1.2-4-1.2-6.2V11.7h8.4v26c0,1.6.2,2.8.6,4,.4,1.2,1,2,1.8,2.8s1.6,1.2,2.8,1.6c1.2.4,2.2.6,3.6.6h0ZM261.4,11.9h8.4v18.2l14.8-18.2h10.4l-14.4,16.8,15.4,25.2h-9.8l-11-18.8-5.4,6v12.8h-8.4V11.9h0ZM206.2,44.2c-3,0-5.4,2.4-5.4,5.4s2.4,5.4,5.4,5.4,5.4-2.4,5.4-5.4-2.4-5.4-5.4-5.4Z"/>
46
- {%- endset %}
47
-
48
- {#- The GOV.UK logotype with raised and coloured dot. This is only intended for
49
- use alongide the Tudor Crown, so don't bother with offsetting for the
50
- St. Edward's Crown. #}
51
- {%- set _dotLogotype %}
52
30
  <circle class="govuk-logo-dot" cx="226" cy="36" r="7.3"/>
53
31
  <path d="M93.94 41.25c.4 1.81 1.2 3.21 2.21 4.62 1 1.4 2.21 2.41 3.61 3.21s3.21 1.2 5.22 1.2 3.61-.4 4.82-1c1.4-.6 2.41-1.4 3.21-2.41.8-1 1.4-2.01 1.61-3.01s.4-2.01.4-3.01v.14h-10.86v-7.02h20.07v24.08h-8.03v-5.56c-.6.8-1.38 1.61-2.19 2.41-.8.8-1.81 1.2-2.81 1.81-1 .4-2.21.8-3.41 1.2s-2.41.4-3.81.4a18.56 18.56 0 0 1-14.65-6.63c-1.6-2.01-3.01-4.41-3.81-7.02s-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83a20.45 20.45 0 0 1 19.46-13.65c3.21 0 4.01.2 5.82.8 1.81.4 3.61 1.2 5.02 2.01 1.61.8 2.81 2.01 4.01 3.21s2.21 2.61 2.81 4.21l-7.63 4.41c-.4-1-1-1.81-1.61-2.61-.6-.8-1.4-1.4-2.21-2.01-.8-.6-1.81-1-2.81-1.4-1-.4-2.21-.4-3.61-.4-2.01 0-3.81.4-5.22 1.2-1.4.8-2.61 1.81-3.61 3.21s-1.61 2.81-2.21 4.62c-.4 1.81-.6 3.71-.6 5.42s.8 5.22.8 5.22Zm57.8-27.9c3.21 0 6.22.6 8.63 1.81 2.41 1.2 4.82 2.81 6.62 4.82S170.2 24.39 171 27s1.4 5.62 1.4 8.83-.4 6.02-1.4 8.83-2.41 5.02-4.01 7.02-4.01 3.61-6.62 4.82-5.42 1.81-8.63 1.81-6.22-.6-8.63-1.81-4.82-2.81-6.42-4.82-3.21-4.41-4.01-7.02-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83 2.41-5.02 4.01-7.02 4.01-3.61 6.42-4.82 5.42-1.81 8.63-1.81Zm0 36.73c1.81 0 3.61-.4 5.02-1s2.61-1.81 3.61-3.01 1.81-2.81 2.21-4.41c.4-1.81.8-3.61.8-5.62 0-2.21-.2-4.21-.8-6.02s-1.2-3.21-2.21-4.62c-1-1.2-2.21-2.21-3.61-3.01s-3.21-1-5.02-1-3.61.4-5.02 1c-1.4.8-2.61 1.81-3.61 3.01s-1.81 2.81-2.21 4.62c-.4 1.81-.8 3.61-.8 5.62 0 2.41.2 4.21.8 6.02.4 1.81 1.2 3.21 2.21 4.41s2.21 2.21 3.61 3.01c1.4.8 3.21 1 5.02 1Zm36.32 7.96-12.24-44.15h9.83l8.43 32.77h.4l8.23-32.77h9.83L200.3 58.04h-12.24Zm74.14-7.96c2.18 0 3.51-.6 3.51-.6 1.2-.6 2.01-1 2.81-1.81s1.4-1.81 1.81-2.81a13 13 0 0 0 .8-4.01V13.9h8.63v28.15c0 2.41-.4 4.62-1.4 6.62-.8 2.01-2.21 3.61-3.61 5.02s-3.41 2.41-5.62 3.21-4.62 1.2-7.02 1.2-5.02-.4-7.02-1.2c-2.21-.8-4.01-1.81-5.62-3.21s-2.81-3.01-3.61-5.02-1.4-4.21-1.4-6.62V13.9h8.63v26.95c0 1.61.2 3.01.8 4.01.4 1.2 1.2 2.21 2.01 2.81.8.8 1.81 1.4 2.81 1.81 0 0 1.34.6 3.51.6Zm34.22-36.18v18.92l15.65-18.92h10.82l-15.03 17.32 16.03 26.83h-10.21l-11.44-20.21-5.62 6.22v13.99h-8.83V13.9"/>
54
32
  {%- endset %}
@@ -70,9 +48,9 @@ releases of Frontend. #}
70
48
  {{- govukAttributes(params.attributes) }}
71
49
  >
72
50
  {%- if params.ariaLabelText %}<title>{{ params.ariaLabelText }}</title>{% endif %}
73
- {{ (_stEdwardsCrown if not useTudorCrown else _tudorCrown) | safe | trim | indent(2) }}
51
+ {{ _tudorCrown | safe | trim | indent(2) }}
74
52
  {% if useLogotype %}
75
- {{ (_dotLogotype if rebrand else _logotype) | safe | trim | indent(2) }}
53
+ {{ _logotype | safe | trim | indent(2) }}
76
54
  {% endif %}
77
55
  </svg>
78
56
  {% endmacro %}
@@ -12,7 +12,8 @@
12
12
 
13
13
  .govuk-form-group--error {
14
14
  padding-left: govuk-spacing(3);
15
- border-left: $govuk-border-width-form-group-error solid $govuk-error-colour;
15
+ border-left: $govuk-border-width-form-group-error solid;
16
+ border-left-color: govuk-functional-colour(error);
16
17
 
17
18
  .govuk-form-group {
18
19
  // Reset error styles in nested form groups that might have error class
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/govuk/objects/_form-group.scss"],"names":[],"mappings":"AAAA,iBAAiB;;AAEjB;EACE;IACE,uBAAuB;IACvB,6CAA6C;;IAE7C;MACE,gBAAgB,EAAE,+CAA+C;IACnE;EACF;;EAEA;IACE,8BAA8B;IAC9B,2EAA2E;;IAE3E;MACE,sEAAsE;MACtE,UAAU;MACV,SAAS;IACX;EACF;AACF","file":"_form-group.scss","sourcesContent":["@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/form-group\") {\n .govuk-form-group {\n @include govuk-clearfix;\n @include govuk-responsive-margin(6, \"bottom\");\n\n .govuk-form-group:last-of-type {\n margin-bottom: 0; // Remove margin from last item in nested groups\n }\n }\n\n .govuk-form-group--error {\n padding-left: govuk-spacing(3);\n border-left: $govuk-border-width-form-group-error solid $govuk-error-colour;\n\n .govuk-form-group {\n // Reset error styles in nested form groups that might have error class\n padding: 0;\n border: 0;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/govuk/objects/_form-group.scss"],"names":[],"mappings":"AAAA,iBAAiB;;AAEjB;EACE;IACE,uBAAuB;IACvB,6CAA6C;;IAE7C;MACE,gBAAgB,EAAE,+CAA+C;IACnE;EACF;;EAEA;IACE,8BAA8B;IAC9B,uDAAuD;IACvD,iDAAiD;;IAEjD;MACE,sEAAsE;MACtE,UAAU;MACV,SAAS;IACX;EACF;AACF","file":"_form-group.scss","sourcesContent":["@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/form-group\") {\n .govuk-form-group {\n @include govuk-clearfix;\n @include govuk-responsive-margin(6, \"bottom\");\n\n .govuk-form-group:last-of-type {\n margin-bottom: 0; // Remove margin from last item in nested groups\n }\n }\n\n .govuk-form-group--error {\n padding-left: govuk-spacing(3);\n border-left: $govuk-border-width-form-group-error solid;\n border-left-color: govuk-functional-colour(error);\n\n .govuk-form-group {\n // Reset error styles in nested form groups that might have error class\n padding: 0;\n border: 0;\n }\n }\n}\n"]}
@@ -5,11 +5,7 @@
5
5
  .govuk-template {
6
6
  // Set the overall page background colour to the same colour as used by the
7
7
  // footer to give the illusion of a long footer.
8
- @include _govuk-rebrand(
9
- background-color,
10
- $from: $govuk-template-background-colour,
11
- $to: $_govuk-rebrand-template-background-colour
12
- );
8
+ background-color: govuk-functional-colour(template-background);
13
9
 
14
10
  // Prevent automatic text sizing, as we already cater for small devices and
15
11
  // would like the browser to stay on 100% text zoom by default.
@@ -50,7 +46,7 @@
50
46
  // own containers.
51
47
  margin: 0;
52
48
  // Set the overall body of the page back to the typical background colour.
53
- background-color: $govuk-body-background-colour;
49
+ background-color: govuk-functional-colour(body-background);
54
50
  }
55
51
  }
56
52
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/govuk/objects/_template.scss"],"names":[],"mappings":"AAAA,iBAAiB;;AAEjB;EACE,+BAA+B;EAC/B;IACE,0EAA0E;IAC1E,+CAA+C;IAC/C;;;;KAIC;;IAED,0EAA0E;IAC1E,8DAA8D;IAC9D,8BAAsB;OAAtB,2BAAsB;YAAtB,sBAAsB;;IAEtB,sEAAsE;IACtE,sCAAsC;IACtC,CAAC;IACD,0EAA0E;IAC1E,kGAAkG;IAClG,iCAAiC;IACjC,CAAC;IACD,4EAA4E;IAC5E,yEAAyE;IACzE,oEAAoE;IACpE,+EAA+E;IAC/E,+CAA+C;IAC/C;MACE,oCAAoC;;MAEpC;QACE,qBAAqB;MACvB;IACF;;IAEA,yEAAyE;IACzE,mEAAmE;IACnE;MACE,kBAAkB;IACpB;EACF;;EAEA,+BAA+B;EAC/B;IACE,2EAA2E;IAC3E,iBAAiB;IACjB,SAAS;IACT,yEAAyE;IACzE,+CAA+C;EACjD;AACF","file":"_template.scss","sourcesContent":["@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/template\") {\n // Applied to the <html> element\n .govuk-template {\n // Set the overall page background colour to the same colour as used by the\n // footer to give the illusion of a long footer.\n @include _govuk-rebrand(\n background-color,\n $from: $govuk-template-background-colour,\n $to: $_govuk-rebrand-template-background-colour\n );\n\n // Prevent automatic text sizing, as we already cater for small devices and\n // would like the browser to stay on 100% text zoom by default.\n text-size-adjust: 100%;\n\n // Add scroll padding to the top of govuk-template but remove it if the\n // exit this page component is present.\n //\n // This is a solution to exit this page potentially failing WCAG SC 2.4.12:\n // Focus Not Obscured (https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html)\n // due to it's sticky positioning.\n //\n // This will apply scroll-padding-top in any browsers that don't support :has\n // (https://caniuse.com/css-has). This is part of the reason we do this in\n // a \"wrong way round\" way as we hypothesise that the risks of having\n // scroll-padding unnecessarily is better than risking not having scroll-padding\n // and needing it to account for exit this page.\n @supports (position: sticky) {\n scroll-padding-top: govuk-spacing(9);\n\n &:not(:has(.govuk-exit-this-page)) {\n scroll-padding-top: 0;\n }\n }\n\n // Force the scrollbar to always display in IE, to prevent horizontal page\n // jumps as content height changes (e.g. autocomplete results open).\n @media screen {\n overflow-y: scroll;\n }\n }\n\n // Applied to the <body> element\n .govuk-template__body {\n // The default margins set by user-agents are not required since we have our\n // own containers.\n margin: 0;\n // Set the overall body of the page back to the typical background colour.\n background-color: $govuk-body-background-colour;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/govuk/objects/_template.scss"],"names":[],"mappings":"AAAA,iBAAiB;;AAEjB;EACE,+BAA+B;EAC/B;IACE,0EAA0E;IAC1E,+CAA+C;IAC/C,8DAA8D;;IAE9D,0EAA0E;IAC1E,8DAA8D;IAC9D,8BAAsB;OAAtB,2BAAsB;YAAtB,sBAAsB;;IAEtB,sEAAsE;IACtE,sCAAsC;IACtC,CAAC;IACD,0EAA0E;IAC1E,kGAAkG;IAClG,iCAAiC;IACjC,CAAC;IACD,4EAA4E;IAC5E,yEAAyE;IACzE,oEAAoE;IACpE,+EAA+E;IAC/E,+CAA+C;IAC/C;MACE,oCAAoC;;MAEpC;QACE,qBAAqB;MACvB;IACF;;IAEA,yEAAyE;IACzE,mEAAmE;IACnE;MACE,kBAAkB;IACpB;EACF;;EAEA,+BAA+B;EAC/B;IACE,2EAA2E;IAC3E,iBAAiB;IACjB,SAAS;IACT,yEAAyE;IACzE,0DAA0D;EAC5D;AACF","file":"_template.scss","sourcesContent":["@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/template\") {\n // Applied to the <html> element\n .govuk-template {\n // Set the overall page background colour to the same colour as used by the\n // footer to give the illusion of a long footer.\n background-color: govuk-functional-colour(template-background);\n\n // Prevent automatic text sizing, as we already cater for small devices and\n // would like the browser to stay on 100% text zoom by default.\n text-size-adjust: 100%;\n\n // Add scroll padding to the top of govuk-template but remove it if the\n // exit this page component is present.\n //\n // This is a solution to exit this page potentially failing WCAG SC 2.4.12:\n // Focus Not Obscured (https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html)\n // due to it's sticky positioning.\n //\n // This will apply scroll-padding-top in any browsers that don't support :has\n // (https://caniuse.com/css-has). This is part of the reason we do this in\n // a \"wrong way round\" way as we hypothesise that the risks of having\n // scroll-padding unnecessarily is better than risking not having scroll-padding\n // and needing it to account for exit this page.\n @supports (position: sticky) {\n scroll-padding-top: govuk-spacing(9);\n\n &:not(:has(.govuk-exit-this-page)) {\n scroll-padding-top: 0;\n }\n }\n\n // Force the scrollbar to always display in IE, to prevent horizontal page\n // jumps as content height changes (e.g. autocomplete results open).\n @media screen {\n overflow-y: scroll;\n }\n }\n\n // Applied to the <body> element\n .govuk-template__body {\n // The default margins set by user-agents are not required since we have our\n // own containers.\n margin: 0;\n // Set the overall body of the page back to the typical background colour.\n background-color: govuk-functional-colour(body-background);\n }\n}\n"]}
@@ -3,8 +3,6 @@
3
3
 
4
4
  // Generate typography override classes for each responsive font map in the
5
5
  // typography scale eg .govuk-\!-font-size-80
6
- //
7
- // govuk-!-font-size-14 is deprecated
8
6
  @each $size, $font-map in $govuk-typography-scale {
9
7
  .govuk-\!-font-size-#{$size} {
10
8
  $font-map: map-get($govuk-typography-scale, $size);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/govuk/overrides/_typography.scss"],"names":[],"mappings":"AAAA;EACE,2BAA2B;;EAE3B,0EAA0E;EAC1E,4CAA4C;EAC5C,CAAC;EACD,oCAAoC;EACpC;IACE;MACE,kDAAkD;;MAElD,oDAAoD;MACpD;QACE,gBAAgB;MAClB;;MAEA,iDAAiD;IACnD;EACF;;EAEA,SAAS;;EAET;IACE,0DAA0D;EAC5D;;EAEA;IACE,uDAAuD;EACzD;;EAEA,oBAAoB;;EAEpB;IACE,qDAAqD;EACvD;;EAEA;IACE,gDAAgD;EAClD;AACF","file":"_typography.scss","sourcesContent":["@include govuk-exports(\"govuk/overrides/typography\") {\n // Font size and line height\n\n // Generate typography override classes for each responsive font map in the\n // typography scale eg .govuk-\\!-font-size-80\n //\n // govuk-!-font-size-14 is deprecated\n @each $size, $font-map in $govuk-typography-scale {\n .govuk-\\!-font-size-#{$size} {\n $font-map: map-get($govuk-typography-scale, $size);\n\n // Add underscore to deprecated typography scale keys\n @if map-has-key($font-map, \"deprecation\") {\n $size: _#{$size};\n }\n\n @include govuk-font-size($size, $important: true);\n }\n }\n\n // Weights\n\n .govuk-\\!-font-weight-regular {\n @include govuk-typography-weight-regular($important: true);\n }\n\n .govuk-\\!-font-weight-bold {\n @include govuk-typography-weight-bold($important: true);\n }\n\n // Typography helpers\n\n .govuk-\\!-font-tabular-numbers {\n @include govuk-font-tabular-numbers($important: true);\n }\n\n .govuk-\\!-text-break-word {\n @include govuk-text-break-word($important: true);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/govuk/overrides/_typography.scss"],"names":[],"mappings":"AAAA;EACE,2BAA2B;;EAE3B,0EAA0E;EAC1E,4CAA4C;EAC5C;IACE;MACE,kDAAkD;;MAElD,oDAAoD;MACpD;QACE,gBAAgB;MAClB;;MAEA,iDAAiD;IACnD;EACF;;EAEA,SAAS;;EAET;IACE,0DAA0D;EAC5D;;EAEA;IACE,uDAAuD;EACzD;;EAEA,oBAAoB;;EAEpB;IACE,qDAAqD;EACvD;;EAEA;IACE,gDAAgD;EAClD;AACF","file":"_typography.scss","sourcesContent":["@include govuk-exports(\"govuk/overrides/typography\") {\n // Font size and line height\n\n // Generate typography override classes for each responsive font map in the\n // typography scale eg .govuk-\\!-font-size-80\n @each $size, $font-map in $govuk-typography-scale {\n .govuk-\\!-font-size-#{$size} {\n $font-map: map-get($govuk-typography-scale, $size);\n\n // Add underscore to deprecated typography scale keys\n @if map-has-key($font-map, \"deprecation\") {\n $size: _#{$size};\n }\n\n @include govuk-font-size($size, $important: true);\n }\n }\n\n // Weights\n\n .govuk-\\!-font-weight-regular {\n @include govuk-typography-weight-regular($important: true);\n }\n\n .govuk-\\!-font-weight-bold {\n @include govuk-typography-weight-bold($important: true);\n }\n\n // Typography helpers\n\n .govuk-\\!-font-tabular-numbers {\n @include govuk-font-tabular-numbers($important: true);\n }\n\n .govuk-\\!-text-break-word {\n @include govuk-text-break-word($important: true);\n }\n}\n"]}