govuk_tech_docs 3.4.5 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish.yaml +8 -4
  3. data/.github/workflows/test.yaml +11 -4
  4. data/.rubocop.yml +1 -1
  5. data/CHANGELOG.md +22 -1
  6. data/example/.ruby-version +1 -1
  7. data/example/source/javascripts/govuk_frontend.js +1 -0
  8. data/govuk_tech_docs.gemspec +17 -11
  9. data/lib/assets/javascripts/_modules/page-expiry.js +2 -2
  10. data/lib/assets/javascripts/_modules/table-of-contents.js +48 -2
  11. data/lib/assets/javascripts/govuk_frontend_all.js +3 -0
  12. data/lib/assets/javascripts/govuk_tech_docs.js +0 -2
  13. data/lib/assets/stylesheets/_govuk_tech_docs.scss +4 -10
  14. data/lib/assets/stylesheets/modules/_page-review.scss +0 -2
  15. data/lib/assets/stylesheets/modules/_search.scss +0 -4
  16. data/lib/govuk_tech_docs/meta_tags.rb +1 -1
  17. data/lib/govuk_tech_docs/redirects.rb +1 -1
  18. data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +1 -1
  19. data/lib/govuk_tech_docs/table_of_contents/helpers.rb +2 -2
  20. data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +6 -2
  21. data/lib/govuk_tech_docs/version.rb +1 -1
  22. data/lib/govuk_tech_docs.rb +20 -3
  23. data/lib/source/layouts/_header.erb +8 -12
  24. data/lib/source/layouts/_page_review.erb +1 -1
  25. data/lib/source/layouts/_search.erb +2 -2
  26. data/lib/source/layouts/core.erb +8 -2
  27. data/lib/source/stylesheets/manifest.css +1 -1
  28. data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
  29. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2554 -0
  30. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2529 -0
  31. data/node_modules/govuk-frontend/dist/govuk/all.mjs +18 -0
  32. data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
  33. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
  34. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-crest.svg +1 -0
  35. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
  36. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  37. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  38. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
  39. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
  40. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
  41. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
  42. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +159 -0
  43. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
  44. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
  45. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
  46. data/node_modules/govuk-frontend/{govuk/components/_all.scss → dist/govuk/components/_index.scss} +8 -3
  47. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
  48. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/_index.scss +55 -77
  49. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +785 -0
  50. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +777 -0
  51. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +349 -0
  52. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
  53. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/_index.scss +12 -36
  54. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
  55. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/_index.scss +11 -36
  56. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
  57. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/_index.scss +30 -103
  58. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +318 -0
  59. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +310 -0
  60. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +73 -0
  61. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
  62. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/_index.scss +8 -6
  63. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +761 -0
  64. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +753 -0
  65. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +295 -0
  66. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
  67. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/_index.scss +108 -132
  68. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +268 -0
  69. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +260 -0
  70. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +111 -0
  71. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
  72. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/_index.scss +19 -15
  73. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
  74. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/_index.scss +3 -2
  75. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
  76. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +139 -0
  77. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
  78. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/_index.scss +2 -0
  79. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
  80. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/_index.scss +19 -6
  81. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +378 -0
  82. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +370 -0
  83. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +103 -0
  84. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
  85. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/exit-this-page/_index.scss +5 -10
  86. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +662 -0
  87. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +654 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +226 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
  90. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/_index.scss +20 -15
  91. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
  92. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/_index.scss +11 -15
  93. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
  94. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/_index.scss +25 -68
  95. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
  96. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/_index.scss +84 -79
  97. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +252 -0
  98. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +244 -0
  99. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +88 -0
  100. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_hint.scss +2 -0
  101. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_index.scss +3 -0
  102. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_index.scss +24 -49
  103. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_input.scss +2 -0
  104. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/_index.scss +2 -0
  105. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
  106. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_index.scss +12 -7
  107. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_label.scss +2 -0
  108. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/_index.scss +11 -7
  109. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
  110. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +320 -0
  111. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +312 -0
  112. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +51 -0
  113. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/pagination/_index.scss +36 -55
  114. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
  115. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +58 -0
  116. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/_panel.scss +2 -0
  117. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +57 -0
  118. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
  119. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +594 -0
  120. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +586 -0
  121. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +154 -0
  122. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/_index.scss +10 -1
  123. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
  124. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/_index.scss +92 -113
  125. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
  126. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +245 -0
  127. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +237 -0
  128. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +88 -0
  129. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/_index.scss +9 -16
  130. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
  131. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +168 -0
  132. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_service-navigation.scss +4 -0
  133. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +249 -0
  134. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +241 -0
  135. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.mjs +85 -0
  136. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/_index.scss +10 -5
  137. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
  138. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +244 -0
  139. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +236 -0
  140. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +58 -0
  141. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/_index.scss +22 -20
  142. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
  143. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_index.scss +21 -17
  144. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_table.scss +2 -0
  145. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_index.scss +13 -9
  146. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_tabs.scss +2 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +453 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +445 -0
  149. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +283 -0
  150. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +97 -0
  151. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/_tag.scss +2 -0
  152. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +79 -0
  153. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
  154. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/_index.scss +6 -10
  155. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
  156. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/_index.scss +13 -13
  157. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
  158. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
  159. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_global-styles.scss +2 -1
  160. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
  161. data/node_modules/govuk-frontend/{govuk/core/_all.scss → dist/govuk/core/_index.scss} +3 -1
  162. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_links.scss +8 -1
  163. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_lists.scss +2 -1
  164. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_section-break.scss +2 -7
  165. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_typography.scss +8 -5
  166. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +57 -0
  167. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +60 -0
  168. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
  169. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
  170. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_clearfix.scss +3 -1
  171. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +127 -0
  172. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_device-pixels.scss +4 -3
  173. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_focused.scss +22 -6
  174. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
  175. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_grid.scss +3 -1
  176. data/node_modules/govuk-frontend/{govuk/helpers/_all.scss → dist/govuk/helpers/_index.scss} +2 -0
  177. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_links.scss +38 -76
  178. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_media-queries.scss +3 -12
  179. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_shape-arrow.scss +3 -1
  180. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_spacing.scss +12 -10
  181. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +288 -0
  182. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_visually-hidden.scss +39 -50
  183. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
  184. data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
  185. data/node_modules/govuk-frontend/dist/govuk/init.mjs +162 -0
  186. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
  187. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_button-group.scss +7 -12
  188. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_form-group.scss +2 -0
  189. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_grid.scss +4 -2
  190. data/node_modules/govuk-frontend/{govuk/objects/_all.scss → dist/govuk/objects/_index.scss} +2 -0
  191. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_main-wrapper.scss +2 -0
  192. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_template.scss +2 -1
  193. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_width-container.scss +2 -9
  194. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
  195. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_display.scss +2 -0
  196. data/node_modules/govuk-frontend/{govuk/overrides/_all.scss → dist/govuk/overrides/_index.scss} +2 -0
  197. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_spacing.scss +3 -19
  198. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_text-align.scss +2 -0
  199. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +42 -0
  200. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_width.scss +2 -0
  201. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
  202. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_assets.scss +2 -0
  203. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_colours-applied.scss +9 -7
  204. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +378 -0
  205. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
  206. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_global-styles.scss +2 -0
  207. data/node_modules/govuk-frontend/{govuk/settings/_all.scss → dist/govuk/settings/_index.scss} +2 -3
  208. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_links.scss +3 -20
  209. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_measurements.scss +18 -6
  210. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_media-queries.scss +5 -3
  211. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_spacing.scss +2 -0
  212. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
  213. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
  214. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_warnings.scss +33 -8
  215. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
  216. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_exports.scss +2 -0
  217. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_font-url.scss +3 -0
  218. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_image-url.scss +3 -0
  219. data/node_modules/govuk-frontend/{govuk/tools/_all.scss → dist/govuk/tools/_index.scss} +2 -2
  220. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-em.scss +2 -0
  221. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-rem.scss +2 -0
  222. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
  223. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_clearfix.scss +2 -0
  224. data/node_modules/govuk-frontend/{govuk/utilities/_all.scss → dist/govuk/utilities/_index.scss} +2 -0
  225. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_visually-hidden.scss +2 -0
  226. data/node_modules/govuk-frontend/{govuk → dist/govuk}/vendor/_sass-mq.scss +3 -1
  227. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
  228. data/node_modules/govuk-frontend/{govuk-prototype-kit → dist/govuk-prototype-kit}/init.scss +3 -2
  229. data/package-lock.json +37 -37
  230. data/package.json +6 -1
  231. metadata +316 -206
  232. data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
  233. data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -14
  234. data/node_modules/govuk-frontend/govuk/all.js +0 -5172
  235. data/node_modules/govuk-frontend/govuk/all.scss +0 -9
  236. data/node_modules/govuk-frontend/govuk/assets/images/favicon.ico +0 -0
  237. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  238. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  239. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
  240. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
  241. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest-2x.png +0 -0
  242. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest.png +0 -0
  243. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
  244. data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -7
  245. data/node_modules/govuk-frontend/govuk/assets/images/govuk-opengraph-image.png +0 -0
  246. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +0 -75
  247. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +0 -17
  248. data/node_modules/govuk-frontend/govuk/common/index.js +0 -192
  249. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +0 -386
  250. data/node_modules/govuk-frontend/govuk/common.js +0 -194
  251. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
  252. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -2386
  253. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
  254. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
  255. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
  256. data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -1027
  257. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
  258. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -2281
  259. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
  260. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1277
  261. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
  262. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
  263. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
  264. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
  265. data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -873
  266. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
  267. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
  268. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -1189
  269. data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +0 -2
  270. data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +0 -2120
  271. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
  272. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
  273. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
  274. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
  275. data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -794
  276. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
  277. data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
  278. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -843
  279. data/node_modules/govuk-frontend/govuk/components/pagination/_pagination.scss +0 -2
  280. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
  281. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
  282. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
  283. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1222
  284. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
  285. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
  286. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +0 -1145
  287. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
  288. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1621
  289. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -81
  290. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
  291. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
  292. data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +0 -5
  293. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -98
  294. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
  295. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -214
  296. data/node_modules/govuk-frontend/govuk/i18n.js +0 -397
  297. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -21
  298. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -146
  299. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -120
  300. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -100
  301. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -34
  302. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
  303. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -112
  304. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -195
  305. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -50
  306. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -87
  307. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -274
  308. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +0 -23
  309. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -36
  310. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -597
  311. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -58
  312. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +0 -307
  313. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -33
  314. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -261
  315. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -261
  316. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -151
  317. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -512
  318. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -256
  319. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -96
  320. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +0 -23
  321. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -30
  322. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +0 -8
  323. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
  324. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  325. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  326. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  327. /data/{lib/source → node_modules/govuk-frontend/dist/govuk/assets/images}/favicon.ico +0 -0
@@ -0,0 +1,154 @@
1
+ import { closestAttributeValue } from '../../common/closest-attribute-value.mjs';
2
+ import { mergeConfigs } from '../../common/index.mjs';
3
+ import { normaliseDataset } from '../../common/normalise-dataset.mjs';
4
+ import { ElementError } from '../../errors/index.mjs';
5
+ import { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs';
6
+ import { I18n } from '../../i18n.mjs';
7
+
8
+ /**
9
+ * Password input component
10
+ *
11
+ * @preserve
12
+ */
13
+ class PasswordInput extends GOVUKFrontendComponent {
14
+ /**
15
+ * @param {Element | null} $root - HTML element to use for password input
16
+ * @param {PasswordInputConfig} [config] - Password input config
17
+ */
18
+ constructor($root, config = {}) {
19
+ super($root);
20
+ this.config = void 0;
21
+ this.i18n = void 0;
22
+ this.$input = void 0;
23
+ this.$showHideButton = void 0;
24
+ this.$screenReaderStatusMessage = void 0;
25
+ const $input = this.$root.querySelector('.govuk-js-password-input-input');
26
+ if (!($input instanceof HTMLInputElement)) {
27
+ throw new ElementError({
28
+ component: PasswordInput,
29
+ element: $input,
30
+ expectedType: 'HTMLInputElement',
31
+ identifier: 'Form field (`.govuk-js-password-input-input`)'
32
+ });
33
+ }
34
+ if ($input.type !== 'password') {
35
+ throw new ElementError('Password input: Form field (`.govuk-js-password-input-input`) must be of type `password`.');
36
+ }
37
+ const $showHideButton = this.$root.querySelector('.govuk-js-password-input-toggle');
38
+ if (!($showHideButton instanceof HTMLButtonElement)) {
39
+ throw new ElementError({
40
+ component: PasswordInput,
41
+ element: $showHideButton,
42
+ expectedType: 'HTMLButtonElement',
43
+ identifier: 'Button (`.govuk-js-password-input-toggle`)'
44
+ });
45
+ }
46
+ if ($showHideButton.type !== 'button') {
47
+ throw new ElementError('Password input: Button (`.govuk-js-password-input-toggle`) must be of type `button`.');
48
+ }
49
+ this.$input = $input;
50
+ this.$showHideButton = $showHideButton;
51
+ this.config = mergeConfigs(PasswordInput.defaults, config, normaliseDataset(PasswordInput, this.$root.dataset));
52
+ this.i18n = new I18n(this.config.i18n, {
53
+ locale: closestAttributeValue(this.$root, 'lang')
54
+ });
55
+ this.$showHideButton.removeAttribute('hidden');
56
+ const $screenReaderStatusMessage = document.createElement('div');
57
+ $screenReaderStatusMessage.className = 'govuk-password-input__sr-status govuk-visually-hidden';
58
+ $screenReaderStatusMessage.setAttribute('aria-live', 'polite');
59
+ this.$screenReaderStatusMessage = $screenReaderStatusMessage;
60
+ this.$input.insertAdjacentElement('afterend', $screenReaderStatusMessage);
61
+ this.$showHideButton.addEventListener('click', this.toggle.bind(this));
62
+ if (this.$input.form) {
63
+ this.$input.form.addEventListener('submit', () => this.hide());
64
+ }
65
+ window.addEventListener('pageshow', event => {
66
+ if (event.persisted && this.$input.type !== 'password') {
67
+ this.hide();
68
+ }
69
+ });
70
+ this.hide();
71
+ }
72
+ toggle(event) {
73
+ event.preventDefault();
74
+ if (this.$input.type === 'password') {
75
+ this.show();
76
+ return;
77
+ }
78
+ this.hide();
79
+ }
80
+ show() {
81
+ this.setType('text');
82
+ }
83
+ hide() {
84
+ this.setType('password');
85
+ }
86
+ setType(type) {
87
+ if (type === this.$input.type) {
88
+ return;
89
+ }
90
+ this.$input.setAttribute('type', type);
91
+ const isHidden = type === 'password';
92
+ const prefixButton = isHidden ? 'show' : 'hide';
93
+ const prefixStatus = isHidden ? 'passwordHidden' : 'passwordShown';
94
+ this.$showHideButton.innerText = this.i18n.t(`${prefixButton}Password`);
95
+ this.$showHideButton.setAttribute('aria-label', this.i18n.t(`${prefixButton}PasswordAriaLabel`));
96
+ this.$screenReaderStatusMessage.innerText = this.i18n.t(`${prefixStatus}Announcement`);
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Password input config
102
+ *
103
+ * @typedef {object} PasswordInputConfig
104
+ * @property {PasswordInputTranslations} [i18n=PasswordInput.defaults.i18n] - Password input translations
105
+ */
106
+
107
+ /**
108
+ * Password input translations
109
+ *
110
+ * @see {@link PasswordInput.defaults.i18n}
111
+ * @typedef {object} PasswordInputTranslations
112
+ *
113
+ * Messages displayed to the user indicating the state of the show/hide toggle.
114
+ * @property {string} [showPassword] - Visible text of the button when the
115
+ * password is currently hidden. Plain text only.
116
+ * @property {string} [hidePassword] - Visible text of the button when the
117
+ * password is currently visible. Plain text only.
118
+ * @property {string} [showPasswordAriaLabel] - aria-label of the button when
119
+ * the password is currently hidden. Plain text only.
120
+ * @property {string} [hidePasswordAriaLabel] - aria-label of the button when
121
+ * the password is currently visible. Plain text only.
122
+ * @property {string} [passwordShownAnnouncement] - Screen reader
123
+ * announcement to make when the password has just become visible.
124
+ * Plain text only.
125
+ * @property {string} [passwordHiddenAnnouncement] - Screen reader
126
+ * announcement to make when the password has just been hidden.
127
+ * Plain text only.
128
+ */
129
+
130
+ /**
131
+ * @typedef {import('../../common/index.mjs').Schema} Schema
132
+ * @typedef {import('../../i18n.mjs').TranslationPluralForms} TranslationPluralForms
133
+ */
134
+ PasswordInput.moduleName = 'govuk-password-input';
135
+ PasswordInput.defaults = Object.freeze({
136
+ i18n: {
137
+ showPassword: 'Show',
138
+ hidePassword: 'Hide',
139
+ showPasswordAriaLabel: 'Show password',
140
+ hidePasswordAriaLabel: 'Hide password',
141
+ passwordShownAnnouncement: 'Your password is visible',
142
+ passwordHiddenAnnouncement: 'Your password is hidden'
143
+ }
144
+ });
145
+ PasswordInput.schema = Object.freeze({
146
+ properties: {
147
+ i18n: {
148
+ type: 'object'
149
+ }
150
+ }
151
+ });
152
+
153
+ export { PasswordInput };
154
+ //# sourceMappingURL=password-input.mjs.map
@@ -17,7 +17,14 @@
17
17
  }
18
18
 
19
19
  .govuk-phase-banner__content__tag {
20
- margin-right: govuk-spacing(2);
20
+ @include govuk-font-size($size: 16);
21
+ margin-right: govuk-spacing(if($govuk-new-typography-scale, 3, 2));
22
+
23
+ @if $govuk-new-typography-scale {
24
+ @include govuk-media-query($from: tablet) {
25
+ margin-right: govuk-spacing(2);
26
+ }
27
+ }
21
28
  }
22
29
 
23
30
  .govuk-phase-banner__text {
@@ -25,3 +32,5 @@
25
32
  vertical-align: middle;
26
33
  }
27
34
  }
35
+
36
+ /*# sourceMappingURL=_index.scss.map */
@@ -0,0 +1,4 @@
1
+ @import "../../base";
2
+ @import "./index";
3
+
4
+ /*# sourceMappingURL=_phase-banner.scss.map */
@@ -4,27 +4,21 @@
4
4
  @import "../label/index";
5
5
 
6
6
  @include govuk-exports("govuk/component/radios") {
7
-
8
- $govuk-touch-target-size: 44px;
7
+ $govuk-touch-target-gutter: 4px;
9
8
  $govuk-radios-size: 40px;
9
+ $govuk-touch-target-size: ($govuk-radios-size + $govuk-touch-target-gutter);
10
10
  $govuk-small-radios-size: 24px;
11
11
  $govuk-radios-label-padding-left-right: govuk-spacing(3);
12
- // When the default focus width is used on a curved edge it looks visually smaller.
13
- // So for the circular radios we bump the default to make it look visually consistent.
12
+ // When the default focus width is used on a curved edge it looks visually
13
+ // smaller. So for the circular radios we bump the default to make it look
14
+ // visually consistent.
14
15
  $govuk-radios-focus-width: $govuk-focus-width + 1px;
15
16
 
16
17
  .govuk-radios__item {
17
- @include govuk-font($size: 19);
18
-
19
- display: block;
18
+ display: flex;
19
+ flex-wrap: wrap;
20
20
  position: relative;
21
-
22
- min-height: $govuk-radios-size;
23
-
24
21
  margin-bottom: govuk-spacing(2);
25
- padding-left: $govuk-radios-size;
26
-
27
- clear: left;
28
22
  }
29
23
 
30
24
  .govuk-radios__item:last-child,
@@ -33,60 +27,40 @@
33
27
  }
34
28
 
35
29
  .govuk-radios__input {
36
- $input-offset: ($govuk-touch-target-size - $govuk-radios-size) / 2;
37
-
30
+ // Allow the input to sit above the label, enabling its proper detection
31
+ // when exploring by touch or using automation tools like Selenium
32
+ z-index: 1;
33
+ width: $govuk-touch-target-size;
34
+ height: $govuk-touch-target-size;
35
+ margin: 0;
36
+ opacity: 0;
38
37
  cursor: pointer;
39
-
40
- // IE8 doesn’t support pseudo-elements, so we don’t want to hide native
41
- // elements there.
42
- @include _govuk-not-ie8 {
43
- position: absolute;
44
-
45
- z-index: 1;
46
- top: $input-offset * -1;
47
- left: $input-offset * -1;
48
-
49
- width: $govuk-touch-target-size;
50
- height: $govuk-touch-target-size;
51
- margin: 0;
52
-
53
- opacity: 0;
54
- }
55
-
56
- @include _govuk-if-ie8 {
57
- margin-top: 10px;
58
- margin-right: $govuk-radios-size / -2;
59
- margin-left: $govuk-radios-size / -2;
60
- float: left;
61
-
62
- // add focus outline to input
63
- &:focus {
64
- outline: $govuk-focus-width solid $govuk-focus-colour;
65
- }
66
- }
67
38
  }
68
39
 
69
40
  .govuk-radios__label {
70
- display: inline-block;
41
+ align-self: center;
42
+
43
+ // Ensure that the width of the label is never more than the width of the
44
+ // container minus the input width minus the padding on either side of
45
+ // the label. This prevents the label from going onto the next line due to
46
+ // __item using flex-wrap because we want hints on a separate line
47
+ max-width: calc(100% - #{($govuk-radios-label-padding-left-right + $govuk-touch-target-size + govuk-spacing(3))});
71
48
  margin-bottom: 0;
72
- padding: 8px $govuk-radios-label-padding-left-right govuk-spacing(1);
49
+ padding: (govuk-spacing(1) + $govuk-border-width-form-element) govuk-spacing(3);
73
50
  cursor: pointer;
74
51
  // remove 300ms pause on mobile
75
- -ms-touch-action: manipulation;
76
- touch-action: manipulation;
52
+ touch-action: manipulation;
77
53
  }
78
54
 
79
55
  // ( ) Radio ring
80
- .govuk-radios__label:before {
56
+ .govuk-radios__label::before {
81
57
  content: "";
82
58
  box-sizing: border-box;
83
59
  position: absolute;
84
- top: 0;
85
- left: 0;
86
-
60
+ top: ($govuk-touch-target-gutter / 2);
61
+ left: ($govuk-touch-target-gutter / 2);
87
62
  width: $govuk-radios-size;
88
63
  height: $govuk-radios-size;
89
-
90
64
  border: $govuk-border-width-form-element solid currentcolor;
91
65
  border-radius: 50%;
92
66
  background: transparent;
@@ -96,17 +70,20 @@
96
70
  //
97
71
  // We create the 'button' entirely out of 'border' so that they remain
98
72
  // 'filled' even when colours are overridden in the browser.
99
- .govuk-radios__label:after {
100
- content: "";
73
+ .govuk-radios__label::after {
74
+ $radio-button-size: govuk-spacing(2);
101
75
 
76
+ content: "";
102
77
  position: absolute;
103
- top: govuk-spacing(2);
104
- left: govuk-spacing(2);
105
78
 
79
+ // Positioned by getting half the touch target, so we have the centre of the
80
+ // input, and then moving back by the button's border width, thus positioning
81
+ // the centre of the button in the centre of the input.
82
+ top: (($govuk-touch-target-size / 2) - $radio-button-size);
83
+ left: (($govuk-touch-target-size / 2) - $radio-button-size);
106
84
  width: 0;
107
85
  height: 0;
108
-
109
- border: govuk-spacing(2) solid currentcolor;
86
+ border: $radio-button-size solid currentcolor;
110
87
  border-radius: 50%;
111
88
  opacity: 0;
112
89
  background: currentcolor;
@@ -114,12 +91,21 @@
114
91
 
115
92
  .govuk-radios__hint {
116
93
  display: block;
94
+ width: 100%;
95
+ margin-top: govuk-spacing(-1);
117
96
  padding-right: $govuk-radios-label-padding-left-right;
118
- padding-left: $govuk-radios-label-padding-left-right;
97
+ padding-left: ($govuk-radios-label-padding-left-right + $govuk-touch-target-size);
98
+ }
99
+
100
+ // This is to bypass govuk-hint's specificity on hints following labels having
101
+ // a margin bottom of 10px (govuk-spacing(2)). Because radios are flexbox,
102
+ // the margin doesn't collapse so we have to do this manually.
103
+ .govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-radios__hint {
104
+ margin-bottom: 0;
119
105
  }
120
106
 
121
107
  // Focused state
122
- .govuk-radios__input:focus + .govuk-radios__label:before {
108
+ .govuk-radios__input:focus + .govuk-radios__label::before {
123
109
  border-width: 4px;
124
110
 
125
111
  // When colours are overridden, the yellow box-shadow becomes invisible
@@ -139,7 +125,7 @@
139
125
  }
140
126
 
141
127
  // Selected state
142
- .govuk-radios__input:checked + .govuk-radios__label:after {
128
+ .govuk-radios__input:checked + .govuk-radios__label::after {
143
129
  opacity: 1;
144
130
  }
145
131
 
@@ -151,7 +137,7 @@
151
137
 
152
138
  .govuk-radios__input:disabled + .govuk-radios__label,
153
139
  .govuk-radios__input:disabled ~ .govuk-hint {
154
- opacity: .5;
140
+ opacity: 0.5;
155
141
  }
156
142
 
157
143
  // =========================================================
@@ -159,13 +145,13 @@
159
145
  // =========================================================
160
146
 
161
147
  .govuk-radios--inline {
162
- @include govuk-media-query ($from: tablet) {
163
- @include govuk-clearfix;
148
+ @include govuk-media-query($from: tablet) {
149
+ display: flex;
150
+ flex-wrap: wrap;
151
+ align-items: flex-start;
164
152
 
165
153
  .govuk-radios__item {
166
154
  margin-right: govuk-spacing(4);
167
- float: left;
168
- clear: none;
169
155
  }
170
156
  }
171
157
  }
@@ -175,9 +161,9 @@
175
161
  // =========================================================
176
162
 
177
163
  .govuk-radios__divider {
178
- $govuk-divider-size: $govuk-radios-size !default;
179
164
  @include govuk-font($size: 19);
180
165
  @include govuk-text-colour;
166
+ $govuk-divider-size: $govuk-radios-size !default;
181
167
  width: $govuk-divider-size;
182
168
  margin-bottom: govuk-spacing(2);
183
169
  text-align: center;
@@ -188,10 +174,11 @@
188
174
  // =========================================================
189
175
 
190
176
  // The narrow border is used in the conditional reveals because the border has
191
- // to be an even number in order to be centred under the 40px checkbox or radio.
177
+ // to be an even number in order to be centred under the 40px checkbox radio.
192
178
  $conditional-border-width: $govuk-border-width-narrow;
193
- // Calculate the amount of padding needed to keep the border centered against the radios.
194
- $conditional-border-padding: ($govuk-radios-size / 2) - ($conditional-border-width / 2);
179
+ // Calculate the amount of padding needed to keep the border centered against
180
+ // the radios.
181
+ $conditional-border-padding: ($govuk-touch-target-size / 2) - ($conditional-border-width / 2);
195
182
  // Move the border centered with the radios
196
183
  $conditional-margin-left: $conditional-border-padding;
197
184
  // Move the contents of the conditional inline with the label
@@ -203,7 +190,7 @@
203
190
  padding-left: $conditional-padding-left;
204
191
  border-left: $conditional-border-width solid $govuk-border-colour;
205
192
 
206
- .js-enabled &--hidden {
193
+ .govuk-frontend-supported &--hidden {
207
194
  display: none;
208
195
  }
209
196
 
@@ -217,16 +204,10 @@
217
204
  // =========================================================
218
205
 
219
206
  .govuk-radios--small {
220
-
221
207
  $input-offset: ($govuk-touch-target-size - $govuk-small-radios-size) / 2;
222
- $label-offset: $govuk-touch-target-size - $input-offset;
223
208
 
224
209
  .govuk-radios__item {
225
- @include govuk-clearfix;
226
- min-height: 0;
227
210
  margin-bottom: 0;
228
- padding-left: $label-offset;
229
- float: left;
230
211
  }
231
212
 
232
213
  // Shift the touch target into the left margin so that the visible edge of
@@ -239,36 +220,23 @@
239
220
  // ▲┆└─ Radio pseudo element, aligned with margin
240
221
  // └─── Touch target (invisible input), shifted into the margin
241
222
  .govuk-radios__input {
242
- @include _govuk-not-ie8 {
243
- left: $input-offset * -1;
244
- }
245
-
246
- @include _govuk-if-ie8 {
247
- margin-left: $govuk-small-radios-size * -1;
248
- }
223
+ margin-left: $input-offset * -1;
249
224
  }
250
225
 
251
- // Adjust the size and position of the label.
252
- //
253
- // Unlike larger radios, we also have to float the label in order to
254
- // 'shrink' it, preventing the hover state from kicking in across the full
255
- // width of the parent element.
256
226
  .govuk-radios__label {
257
- margin-top: -2px;
258
- padding: 13px govuk-spacing(3) 13px 1px;
259
- float: left;
260
-
261
- @include govuk-media-query($from: tablet) {
262
- padding: 11px govuk-spacing(3) 10px 1px;
263
- }
227
+ // Create a tiny space between the small radio hover state so that it
228
+ // doesn't clash with the label
229
+ padding-left: 1px;
264
230
  }
265
231
 
266
232
  // ( ) Radio ring
267
233
  //
268
234
  // Reduce the size of the control [1], vertically centering it within the
269
235
  // touch target [2]
270
- .govuk-radios__label:before {
271
- top: $input-offset - $govuk-border-width-form-element; // 2
236
+ // Left here is 0 because we've shifted the input into the left margin
237
+ .govuk-radios__label::before {
238
+ top: $input-offset; // 2
239
+ left: 0;
272
240
  width: $govuk-small-radios-size; // 1
273
241
  height: $govuk-small-radios-size; // 1
274
242
  }
@@ -276,10 +244,13 @@
276
244
  // • Radio button
277
245
  //
278
246
  // Reduce the size of the 'button' and center it within the ring
279
- .govuk-radios__label:after {
280
- top: 15px;
281
- left: 7px;
282
- border-width: 5px;
247
+ .govuk-radios__label::after {
248
+ $radio-button-size: govuk-spacing(1);
249
+
250
+ // The same calculation as normal radio buttons but reduce the border width
251
+ top: (($govuk-touch-target-size / 2) - $radio-button-size);
252
+ left: ((($govuk-touch-target-size / 2) - $radio-button-size) - $input-offset);
253
+ border-width: $radio-button-size;
283
254
  }
284
255
 
285
256
  // Fix position of hint with small radios
@@ -291,17 +262,14 @@
291
262
  // (If you do use them, they won't look completely broken... but seriously,
292
263
  // don't use them)
293
264
  .govuk-radios__hint {
294
- padding: 0;
295
- clear: both;
296
- pointer-events: none;
265
+ padding-left: ($govuk-small-radios-size + $input-offset);
297
266
  }
298
267
 
299
268
  // Align conditional reveals with small radios
300
269
  .govuk-radios__conditional {
301
270
  $margin-left: ($govuk-small-radios-size / 2) - ($conditional-border-width / 2);
302
271
  margin-left: $margin-left;
303
- padding-left: $label-offset - ($margin-left + $conditional-border-width);
304
- clear: both;
272
+ padding-left: ($govuk-touch-target-size - $input-offset) - ($margin-left + $conditional-border-width);
305
273
  }
306
274
 
307
275
  .govuk-radios__divider {
@@ -315,7 +283,11 @@
315
283
  // is so much larger than their visible size, and so we need to provide
316
284
  // feedback to the user as to which radio they will select when their
317
285
  // cursor is outside of the visible area.
318
- .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
286
+ .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label::before {
287
+ // Forced colours modes tend to ignore box-shadow.
288
+ // Apply an outline for those modes to use instead.
289
+ outline: $govuk-radios-focus-width dashed transparent;
290
+ outline-offset: 1px;
319
291
  box-shadow: 0 0 0 $govuk-hover-width $govuk-hover-colour;
320
292
  }
321
293
 
@@ -324,10 +296,15 @@
324
296
  //
325
297
  // We use two box shadows, one that restores the original focus state [1]
326
298
  // and another that then applies the hover state [2].
327
- .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
299
+ .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {
300
+ // Set different HCM colour when we have both hover/focus applied at once
301
+ @media screen and (forced-colors: active), (-ms-high-contrast: active) {
302
+ outline-color: Highlight;
303
+ }
304
+ // prettier-ignore
328
305
  box-shadow:
329
- 0 0 0 $govuk-radios-focus-width $govuk-focus-colour, // 1
330
- 0 0 0 $govuk-hover-width $govuk-hover-colour; // 2
306
+ 0 0 0 $govuk-radios-focus-width $govuk-focus-colour // 1,
307
+ 0 0 0 $govuk-hover-width $govuk-hover-colour; // 2
331
308
  }
332
309
 
333
310
  // For devices that explicitly don't support hover, don't provide a hover
@@ -337,13 +314,15 @@
337
314
  // state in browsers that don't support `@media (hover)` (like Internet
338
315
  // Explorer) – so we have to 'undo' the hover state instead.
339
316
  @media (hover: none), (pointer: coarse) {
340
- .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
317
+ .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label::before {
341
318
  box-shadow: initial;
342
319
  }
343
320
 
344
- .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
321
+ .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {
345
322
  box-shadow: 0 0 0 $govuk-radios-focus-width $govuk-focus-colour;
346
323
  }
347
324
  }
348
325
  }
349
326
  }
327
+
328
+ /*# sourceMappingURL=_index.scss.map */
@@ -0,0 +1,4 @@
1
+ @import "../../base";
2
+ @import "./index";
3
+
4
+ /*# sourceMappingURL=_radios.scss.map */