govuk_publishing_components 30.3.0 → 30.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +25 -11
  4. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +26 -0
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -3
  7. data/app/assets/stylesheets/component_guide/application.scss +4 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +7 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +60 -11
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  11. data/app/views/govuk_publishing_components/component_guide/show.html.erb +31 -6
  12. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +6 -2
  13. data/config/locales/en.yml +4 -0
  14. data/lib/govuk_publishing_components/version.rb +1 -1
  15. data/node_modules/axe-core/README.md +83 -53
  16. data/node_modules/axe-core/axe.d.ts +403 -224
  17. data/node_modules/axe-core/axe.js +23281 -21919
  18. data/node_modules/axe-core/axe.min.js +3 -3
  19. data/node_modules/axe-core/locales/da.json +795 -780
  20. data/node_modules/axe-core/locales/de.json +932 -621
  21. data/node_modules/axe-core/locales/es.json +786 -771
  22. data/node_modules/axe-core/locales/eu.json +787 -0
  23. data/node_modules/axe-core/locales/fr.json +982 -840
  24. data/node_modules/axe-core/locales/ja.json +988 -880
  25. data/node_modules/axe-core/locales/ko.json +999 -775
  26. data/node_modules/axe-core/locales/nl.json +46 -34
  27. data/node_modules/axe-core/locales/pl.json +965 -0
  28. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  29. data/node_modules/axe-core/package.json +189 -145
  30. data/node_modules/axe-core/sri-history.json +312 -192
  31. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  32. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  33. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  34. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  35. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  36. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  37. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  38. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  39. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  40. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  41. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  42. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  43. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  44. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  45. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  46. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  47. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  48. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  49. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  50. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  51. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  52. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  53. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  54. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  55. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  56. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  57. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  58. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  59. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  60. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  61. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  62. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  63. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  64. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  65. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  66. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  67. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  68. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  69. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  70. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  71. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  72. data/node_modules/govuk-frontend/package.json +1 -1
  73. data/node_modules/sortablejs/README.md +828 -815
  74. data/node_modules/sortablejs/Sortable.js +186 -113
  75. data/node_modules/sortablejs/Sortable.min.js +2 -2
  76. data/node_modules/sortablejs/modular/sortable.complete.esm.js +184 -111
  77. data/node_modules/sortablejs/modular/sortable.core.esm.js +184 -111
  78. data/node_modules/sortablejs/modular/sortable.esm.js +184 -111
  79. data/node_modules/sortablejs/package.json +3 -3
  80. metadata +6 -584
  81. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  82. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  83. data/node_modules/axe-core/bower.json +0 -40
  84. data/node_modules/axe-core/doc/API.md +0 -889
  85. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  86. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  87. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  88. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  89. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  90. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  91. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  92. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  93. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  94. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  95. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  96. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  97. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  98. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  99. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  100. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  101. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  102. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  103. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  104. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  105. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  106. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  107. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  108. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  109. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  110. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  111. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  112. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  113. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  114. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  115. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  116. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  117. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  118. data/node_modules/axe-core/doc/plugins.md +0 -123
  119. data/node_modules/axe-core/doc/projects.md +0 -48
  120. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  121. data/node_modules/axe-core/doc/rule-development.md +0 -123
  122. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  123. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  124. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  125. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  126. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  127. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  128. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  129. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  130. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  131. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  132. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  133. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  134. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  135. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  136. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  137. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  138. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  139. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  140. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  141. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  142. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  143. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  144. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  145. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  146. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  147. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  148. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  149. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  150. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  151. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  152. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  153. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  154. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  155. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  156. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  157. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  158. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  159. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  160. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  161. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  162. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  163. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  164. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  165. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  166. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  167. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  168. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  169. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  170. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  171. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  172. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  173. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  174. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  175. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  176. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  177. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  178. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  179. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  181. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  182. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  183. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  184. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  185. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  186. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  187. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  188. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  189. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  190. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  191. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  192. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  193. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  194. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  195. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  196. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  197. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  198. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  199. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  200. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  201. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  202. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  204. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  205. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  206. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  207. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  208. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  209. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  210. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  211. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  212. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  213. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  214. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  215. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  216. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  217. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  218. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  219. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  220. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  221. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  222. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  223. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  224. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  225. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  226. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  227. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  228. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  229. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  230. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  231. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  232. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  233. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  234. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  235. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  236. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  237. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  238. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  239. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  240. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  241. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  242. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  243. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  244. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  245. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  246. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  247. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  248. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  249. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  250. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  251. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  252. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  253. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  254. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  256. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  257. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  258. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  259. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  260. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  261. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  262. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  263. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  264. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  265. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  266. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  267. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  268. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  269. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  270. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  271. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  272. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  273. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  274. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  275. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  276. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  277. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  278. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  279. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  280. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  281. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  282. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  284. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  286. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  287. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  288. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  290. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  291. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  292. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  293. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  294. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  296. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  298. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  300. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  301. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  302. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  303. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  304. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  305. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  306. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  307. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  308. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  309. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  310. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  311. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  312. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  313. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  314. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  315. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  316. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  317. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  318. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  319. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  320. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  321. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  322. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  323. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  324. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  325. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  326. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  327. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  328. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  329. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  330. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  331. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  332. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  333. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  334. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  335. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  336. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  337. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  338. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  339. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  340. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  341. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  342. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  343. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  344. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  345. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  346. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  347. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  348. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  349. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  350. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  351. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  352. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  353. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  354. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  355. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  356. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  357. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  358. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  359. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  360. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  361. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  362. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  363. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  364. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  365. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  366. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  367. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  368. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  369. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  370. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  371. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  372. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  373. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  374. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  375. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  376. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  377. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  378. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  379. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  380. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  381. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  382. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  383. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  384. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  385. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  386. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  387. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  388. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  389. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  390. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  391. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  392. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  393. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  394. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  395. data/node_modules/axe-core/lib/commons/index.js +0 -11
  396. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  397. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  398. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  399. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  400. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  401. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  402. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  403. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  404. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  405. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  406. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  407. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  408. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  409. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  410. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  411. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  412. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  413. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  414. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  415. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  416. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  417. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  418. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  419. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  420. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  421. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  422. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  423. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  424. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  425. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  426. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  427. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  428. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  429. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  430. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  431. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  432. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  433. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  434. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  435. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  436. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  437. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  438. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  439. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  440. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  441. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  442. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  443. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  444. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  445. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  446. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  447. data/node_modules/axe-core/lib/core/constants.js +0 -76
  448. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  449. data/node_modules/axe-core/lib/core/index.js +0 -43
  450. data/node_modules/axe-core/lib/core/log.js +0 -12
  451. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  452. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  453. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  454. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  455. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  456. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  457. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  458. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  459. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  460. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  461. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  462. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  463. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  464. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  465. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  466. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  467. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  468. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  469. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  470. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  471. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  472. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  473. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  474. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  475. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  476. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  477. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  478. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  479. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  480. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  481. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  482. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  483. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  484. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  485. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  486. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  487. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  488. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  489. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  490. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  491. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  492. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  493. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  494. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  495. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  496. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  497. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  498. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  499. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  500. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  501. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  502. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  503. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  504. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  505. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  506. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  507. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  508. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  509. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  510. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  511. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  512. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  513. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  514. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  515. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  516. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  517. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  518. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  519. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  520. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  521. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  522. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  523. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  524. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  525. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  526. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  527. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  528. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  529. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  530. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  531. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  532. data/node_modules/axe-core/lib/intro.stub +0 -15
  533. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  534. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  535. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  536. data/node_modules/axe-core/lib/outro.stub +0 -2
  537. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  538. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  539. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  540. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  541. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  542. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  543. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  544. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  545. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  546. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  547. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  548. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  549. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  550. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  551. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  552. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  553. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  554. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  555. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  556. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  557. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  558. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  559. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  560. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  561. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  562. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  563. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  564. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  565. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  566. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  567. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  568. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  569. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  570. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  571. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  572. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  573. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  574. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  575. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  576. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  577. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  578. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  579. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  580. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  581. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  582. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  583. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  584. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  585. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  586. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  587. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  588. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  589. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  590. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  591. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  592. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  593. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  594. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  595. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  596. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  597. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  598. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  599. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  600. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  601. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  602. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  603. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  604. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  605. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  606. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  607. data/node_modules/axe-core/lib/rules/label.json +0 -26
  608. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  609. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  610. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  611. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  612. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  613. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  614. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  615. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  616. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  617. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  618. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  619. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  620. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  621. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  622. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  623. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  624. data/node_modules/axe-core/lib/rules/list.json +0 -13
  625. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  626. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  627. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  628. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  629. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  630. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  631. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  632. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  633. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  634. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  635. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  636. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  637. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  638. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  639. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  640. data/node_modules/axe-core/lib/rules/region.json +0 -12
  641. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  642. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  643. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  644. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  645. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  646. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  647. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  648. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  649. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  650. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  651. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  652. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  653. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  654. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  655. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  656. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  657. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  658. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  659. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  660. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  661. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e3e967d80364c5bc79a3d6ae1338e28e4713dfbb9d4e07a6b6fda984e177e8db
4
- data.tar.gz: 80a99542db952464b49e1b1468fb320ae5c5a997d62bd2fad49d1dd880591568
3
+ metadata.gz: 6db205fec06f001e8342d61eec7b8e8183e87b0d9bd4949b041d13dcd90a37a7
4
+ data.tar.gz: fff5b686c9bcd316ef8d646ca271dc7fdb6390767cbc68b012b56e2438aa9cf3
5
5
  SHA512:
6
- metadata.gz: 973d005a28142f232b29ed9cb4669e57a39bbfe45403ae69ff56a94bfe8f263571ee1e51143f4dcdf75fb9fd0dc4d978fe5b957853c046ec6c1450cf0d2dd174
7
- data.tar.gz: 1cbdfbba36fa2a140c33fb4aadbd5797d9dd4fff255b8f2d3d77ade1962dae343d322f34ff4b55001d79b914b7d1a954d800f2697e01c02fd6700d74648c0dc2
6
+ metadata.gz: b68cfb8ca8bd60307057dbcc96c4fdfa00fa02dced1720c9b06cd7d7b2834480a6969b08cc75f6ae356c10519fce45e599d53ea0a5616b70fc9238e0987cdab9
7
+ data.tar.gz: 6639054079af181c6b4a781fb6ba69913b5eb574e3026f8f1317e9582f37987f0fcba1964aa81ffb1b0607873b755a888a07aac5d5a233f4c6bc99557b1fb541
@@ -11,68 +11,80 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
11
11
  }
12
12
 
13
13
  Ga4EventTracker.prototype.init = function () {
14
- this.module.addEventListener('click', this.trackClick.bind(this), true) // useCapture must be true
14
+ var consentCookie = window.GOVUK.getConsentCookie()
15
+
16
+ if (consentCookie && consentCookie.settings) {
17
+ this.startModule()
18
+ } else {
19
+ this.startModule = this.startModule.bind(this)
20
+ window.addEventListener('cookie-consent', this.startModule)
21
+ }
15
22
  }
16
23
 
17
- Ga4EventTracker.prototype.trackClick = function (event) {
24
+ // triggered by cookie-consent event, which happens when users consent to cookies
25
+ Ga4EventTracker.prototype.startModule = function () {
18
26
  if (window.dataLayer) {
19
- var target = this.findTrackingAttributes(event.target)
20
- if (target) {
21
- var schema = new window.GOVUK.analyticsGA4.Schemas().eventSchema()
22
-
23
- try {
24
- var data = target.getAttribute(this.trackingTrigger)
25
- data = JSON.parse(data)
26
- } catch (e) {
27
- // if there's a problem with the config, don't start the tracker
28
- console.error('GA4 configuration error: ' + e.message, window.location)
29
- return
30
- }
27
+ this.module.addEventListener('click', this.trackClick.bind(this), true) // useCapture must be true
28
+ }
29
+ }
31
30
 
32
- schema.event = 'event_data'
33
- // get attributes from the data attribute to send to GA
34
- // only allow it if it already exists in the schema
35
- for (var property in data) {
36
- if (property in schema.event_data) {
37
- schema.event_data[property] = data[property]
38
- }
39
- }
31
+ Ga4EventTracker.prototype.trackClick = function (event) {
32
+ var target = this.findTrackingAttributes(event.target)
33
+ if (target) {
34
+ var schema = new window.GOVUK.analyticsGA4.Schemas().eventSchema()
40
35
 
41
- // Ensure it only tracks aria-expanded in an accordion element, instead of in any child of the clicked element
42
- if (target.closest('.gem-c-accordion')) {
43
- var ariaExpanded = this.getClosestAttribute(target, 'aria-expanded')
44
- }
36
+ try {
37
+ var data = target.getAttribute(this.trackingTrigger)
38
+ data = JSON.parse(data)
39
+ } catch (e) {
40
+ // if there's a problem with the config, don't start the tracker
41
+ console.error('GA4 configuration error: ' + e.message, window.location)
42
+ return
43
+ }
45
44
 
46
- /*
47
- the details component uses an 'open' attribute instead of aria-expanded, so we need to check if we're on a details component.
48
- since details deletes the 'open' attribute when closed, we need this boolean, otherwise every element which
49
- doesn't contain an 'open' attr would be pushed to gtm as a closed element.
50
- */
51
- var detailsElement = target.closest('details')
52
-
53
- if (ariaExpanded) {
54
- schema.event_data.text = data.text || target.innerText
55
- schema.event_data.action = (ariaExpanded === 'false') ? 'opened' : 'closed'
56
- } else if (detailsElement) {
57
- schema.event_data.text = data.text || detailsElement.textContent
58
- var openAttribute = detailsElement.getAttribute('open')
59
- schema.event_data.action = (openAttribute == null) ? 'opened' : 'closed'
45
+ schema.event = 'event_data'
46
+ // get attributes from the data attribute to send to GA
47
+ // only allow it if it already exists in the schema
48
+ for (var property in data) {
49
+ if (property in schema.event_data) {
50
+ schema.event_data[property] = data[property]
60
51
  }
52
+ }
53
+
54
+ // Ensure it only tracks aria-expanded in an accordion element, instead of in any child of the clicked element
55
+ if (target.closest('.gem-c-accordion')) {
56
+ var ariaExpanded = this.getClosestAttribute(target, 'aria-expanded')
57
+ }
61
58
 
62
- /* If a tab was clicked, grab the href of the clicked tab (usually an anchor # link) */
63
- var tabElement = event.target.closest('.gem-c-tabs')
64
- if (tabElement) {
65
- var aTag = event.target.closest('a')
66
- if (aTag) {
67
- var href = aTag.getAttribute('href')
68
- if (href) {
69
- schema.event_data.url = href
70
- }
59
+ /*
60
+ the details component uses an 'open' attribute instead of aria-expanded, so we need to check if we're on a details component.
61
+ since details deletes the 'open' attribute when closed, we need this boolean, otherwise every element which
62
+ doesn't contain an 'open' attr would be pushed to gtm as a closed element.
63
+ */
64
+ var detailsElement = target.closest('details')
65
+
66
+ if (ariaExpanded) {
67
+ schema.event_data.text = data.text || target.innerText
68
+ schema.event_data.action = (ariaExpanded === 'false') ? 'opened' : 'closed'
69
+ } else if (detailsElement) {
70
+ schema.event_data.text = data.text || detailsElement.textContent
71
+ var openAttribute = detailsElement.getAttribute('open')
72
+ schema.event_data.action = (openAttribute == null) ? 'opened' : 'closed'
73
+ }
74
+
75
+ /* If a tab was clicked, grab the href of the clicked tab (usually an anchor # link) */
76
+ var tabElement = event.target.closest('.gem-c-tabs')
77
+ if (tabElement) {
78
+ var aTag = event.target.closest('a')
79
+ if (aTag) {
80
+ var href = aTag.getAttribute('href')
81
+ if (href) {
82
+ schema.event_data.url = href
71
83
  }
72
84
  }
73
-
74
- window.dataLayer.push(schema)
75
85
  }
86
+
87
+ window.dataLayer.push(schema)
76
88
  }
77
89
  }
78
90
 
@@ -1,13 +1,13 @@
1
1
  // = require govuk/vendor/polyfills/Element/prototype/closest.js
2
+ window.GOVUK = window.GOVUK || {}
3
+ window.GOVUK.analyticsGA4 = window.GOVUK.analyticsGA4 || {}
4
+ window.GOVUK.analyticsGA4.analyticsModules = window.GOVUK.analyticsGA4.analyticsModules || {};
2
5
 
3
- ;(function (global) {
6
+ (function (analyticsModules) {
4
7
  'use strict'
5
8
 
6
- var GOVUK = global.GOVUK || {}
7
- GOVUK.analyticsGA4 = GOVUK.analyticsGA4 || {}
8
-
9
- GOVUK.analyticsGA4.linkTracker = {
10
- trackLinkClicks: function () {
9
+ var Ga4LinkTracker = {
10
+ init: function () {
11
11
  if (window.dataLayer) {
12
12
  this.internalLinksDomain = 'www.gov.uk/'
13
13
  this.internalLinksDomainWithoutWww = 'gov.uk/'
@@ -44,18 +44,20 @@
44
44
  }
45
45
 
46
46
  if (this.isMailToLink(href)) {
47
+ clickData.event_name = 'navigation'
47
48
  clickData.type = 'email'
48
49
  clickData.external = 'true'
49
50
  } else if (this.isDownloadLink(href)) {
50
- clickData.type = 'download'
51
- clickData.external = 'false'
51
+ clickData.event_name = 'file_download'
52
+ clickData.type = this.isPreviewLink(href) ? 'preview' : 'generic download'
53
+ clickData.external = 'true'
52
54
  } else if (this.isExternalLink(href)) {
55
+ clickData.event_name = 'navigation'
53
56
  clickData.type = 'generic link'
54
57
  clickData.external = 'true'
55
58
  }
56
59
 
57
60
  if (Object.keys(clickData).length > 0) {
58
- clickData.event_name = 'navigation'
59
61
  clickData.text = element.textContent.trim()
60
62
  clickData.url = href
61
63
  clickData.link_method = this.getClickType(event)
@@ -129,6 +131,18 @@
129
131
  }
130
132
  },
131
133
 
134
+ isPreviewLink: function (href) {
135
+ /* Regex looks for:
136
+ 1. The file extension period (the character '.')
137
+ 2. any alphanumeric characters (so we can match any file type such as jpg, pdf, mp4.)
138
+ 3. the presence of '/preview'.
139
+ For example, .csv/preview or .mp4/preview will be matched.
140
+ Regex is used over JS string methods as this should work with anchor links, query string parameters and files that may have 'preview' in their name.
141
+ */
142
+ var previewRegex = /\.\w+\/preview/i
143
+ return previewRegex.test(href)
144
+ },
145
+
132
146
  hrefPointsToDomain: function (href, domain) {
133
147
  var httpDomain = 'http://' + domain
134
148
  var httpsDomain = 'https://' + domain
@@ -153,5 +167,5 @@
153
167
  }
154
168
  }
155
169
 
156
- global.GOVUK = GOVUK
157
- })(window)
170
+ analyticsModules.Ga4LinkTracker = Ga4LinkTracker
171
+ })(window.GOVUK.analyticsGA4.analyticsModules)
@@ -1,14 +1,15 @@
1
- ;(function (global) {
2
- 'use strict'
1
+ window.GOVUK = window.GOVUK || {}
2
+ window.GOVUK.analyticsGA4 = window.GOVUK.analyticsGA4 || {}
3
+ window.GOVUK.analyticsGA4.analyticsModules = window.GOVUK.analyticsGA4.analyticsModules || {};
3
4
 
4
- var GOVUK = global.GOVUK || {}
5
- GOVUK.analyticsGA4 = GOVUK.analyticsGA4 || {}
5
+ (function (analyticsModules) {
6
+ 'use strict'
6
7
 
7
- GOVUK.analyticsGA4.pageViewTracker = {
8
- PIIRemover: new GOVUK.analyticsGA4.PIIRemover(), // imported in analytics-ga4.js
8
+ var PageViewTracker = {
9
+ PIIRemover: new window.GOVUK.analyticsGA4.PIIRemover(), // imported in analytics-ga4.js
9
10
  nullValue: null,
10
11
 
11
- sendPageView: function () {
12
+ init: function () {
12
13
  if (window.dataLayer) {
13
14
  var data = {
14
15
  event: 'page_view',
@@ -61,7 +62,7 @@
61
62
  },
62
63
 
63
64
  // window.httpStatusCode is set in the source of the error page in static
64
- // https://github.com/alphagov/static/blob/main/app/views/root/_error_page.html.erb#L32
65
+ // https://github.com/alphagov/static/blob/1c734451f2dd6fc0c7e80beccbdcbfa5aaffd0e4/app/views/root/_error_page.html.erb#L41-L43
65
66
  getStatusCode: function () {
66
67
  if (window.httpStatusCode) {
67
68
  return window.httpStatusCode.toString()
@@ -109,5 +110,5 @@
109
110
  }
110
111
  }
111
112
 
112
- global.GOVUK = GOVUK
113
- })(window)
113
+ analyticsModules.PageViewTracker = PageViewTracker
114
+ })(window.GOVUK.analyticsGA4.analyticsModules)
@@ -0,0 +1,26 @@
1
+ window.GOVUK = window.GOVUK || {}
2
+ window.GOVUK.analyticsGA4 = window.GOVUK.analyticsGA4 || {}
3
+
4
+ var initFunction = function () {
5
+ // to be added: digital identity consent mechanism
6
+
7
+ var consentCookie = window.GOVUK.getConsentCookie()
8
+
9
+ if (consentCookie && consentCookie.usage) {
10
+ var analyticsModules = window.GOVUK.analyticsGA4.analyticsModules
11
+ for (var property in analyticsModules) {
12
+ var module = analyticsModules[property]
13
+ if (typeof module.init === 'function') {
14
+ module.init()
15
+ }
16
+ }
17
+ // to be added: attach JS from Google to the DOM and execute
18
+ // to be added: cross domain tracking code
19
+ } else {
20
+ window.addEventListener('cookie-consent', function () {
21
+ window.GOVUK.analyticsGA4.init()
22
+ })
23
+ }
24
+ }
25
+
26
+ window.GOVUK.analyticsGA4.init = initFunction
@@ -4,6 +4,4 @@
4
4
  //= require ./analytics-ga4/ga4-page-views
5
5
  //= require ./analytics-ga4/ga4-link-tracker
6
6
  //= require ./analytics-ga4/ga4-event-tracker
7
-
8
- window.GOVUK.analyticsGA4.pageViewTracker.sendPageView() // this will need integrating with cookie consent before production
9
- window.GOVUK.analyticsGA4.linkTracker.trackLinkClicks()
7
+ //= require ./analytics-ga4/init-ga4
@@ -499,3 +499,7 @@ $code-delete-bg: #fadddd;
499
499
  top: 0;
500
500
  background: govuk-colour("white");
501
501
  }
502
+
503
+ .component-doc__content-list {
504
+ margin-top: govuk-spacing(5);
505
+ }
@@ -12,3 +12,10 @@
12
12
  .gem-c-layout-footer .govuk-footer__list {
13
13
  padding-bottom: govuk-spacing(7);
14
14
  }
15
+
16
+ .gem-c-layout-footer .govuk-footer__list-item:nth-child(odd):last-child {
17
+ // If there are an uneven number of links in the
18
+ // footer this ensures the left column has more links than the
19
+ // the right column.
20
+ margin-bottom: 20px;
21
+ }
@@ -8,6 +8,10 @@ $search-width-or-height: $black-bar-height;
8
8
  $pseudo-underline-height: 3px;
9
9
  $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
10
10
 
11
+ $after-link-padding: govuk-spacing(6);
12
+ $after-button-padding-right: govuk-spacing(6);
13
+ $after-button-padding-left: govuk-spacing(5);
14
+
11
15
  @mixin chevron($colour, $update: false) {
12
16
  @if $update == true {
13
17
  border-bottom-color: $colour;
@@ -35,15 +39,17 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
35
39
  top: 0;
36
40
  }
37
41
 
38
- @mixin pseudo-underline($left: govuk-spacing(4), $right: govuk-spacing(4)) {
42
+ @mixin pseudo-underline($left: govuk-spacing(4), $right: govuk-spacing(4), $width: false) {
39
43
  background: none;
40
- bottom: 0;
41
44
  content: "";
42
45
  height: $pseudo-underline-height;
43
46
  left: $left;
44
47
  position: absolute;
45
48
  right: $right;
46
49
  top: auto;
50
+ @if $width {
51
+ width: $width;
52
+ }
47
53
  }
48
54
 
49
55
  @mixin focus-and-focus-visible {
@@ -177,7 +183,8 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
177
183
  &:first-of-type {
178
184
  margin-right: -1px;
179
185
 
180
- .gem-c-layout-super-navigation-header__navigation-second-toggle-button-inner {
186
+ .gem-c-layout-super-navigation-header__navigation-second-toggle-button-inner,
187
+ .gem-c-layout-super-navigation-header__navigation-item-link-inner {
181
188
  border-left: 1px solid $button-pipe-colour;
182
189
  border-right: 1px solid $button-pipe-colour;
183
190
  }
@@ -242,10 +249,8 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
242
249
  @if $govuk-typography-use-rem {
243
250
  font-size: govuk-px-to-rem(16px);
244
251
  }
245
- // stylelint-enable max-nesting-depth
246
252
 
247
253
  height: govuk-spacing(4);
248
- padding: govuk-spacing(3);
249
254
  position: relative;
250
255
 
251
256
  &:before {
@@ -260,8 +265,17 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
260
265
  }
261
266
  }
262
267
 
263
- // stylelint-disable max-nesting-depth
268
+ &:focus:not(:focus-visible) {
269
+ .gem-c-layout-super-navigation-header__navigation-item-link-inner {
270
+ border-color: $button-pipe-colour;
271
+ }
272
+ }
273
+
264
274
  @include focus-and-focus-visible {
275
+ .gem-c-layout-super-navigation-header__navigation-item-link-inner {
276
+ border-color: $govuk-focus-colour;
277
+ }
278
+
265
279
  &,
266
280
  &:hover {
267
281
  box-shadow: none;
@@ -295,11 +309,27 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
295
309
  background: none;
296
310
  }
297
311
  }
298
- // stylelint-enable max-nesting-depth
299
312
 
300
313
  &:after {
301
- @include pseudo-underline($left: govuk-spacing(5), $right: govuk-spacing(6));
314
+ @include pseudo-underline($left: $after-link-padding, $right: $after-link-padding, $width: calc(100% - $after-link-padding));
302
315
  }
316
+
317
+ .js-module-initialised & {
318
+ // If js is initialised, we are hiding the links and
319
+ // making the buttons visible instead. This means we have
320
+ // to remove the padding added to make the links vertically
321
+ // aligned, as the buttons are styled vertically aligned by
322
+ // default.
323
+
324
+ padding: 0;
325
+ margin: 0;
326
+
327
+ &:after {
328
+ @include pseudo-underline($left: $after-button-padding-left, $right: $after-button-padding-right, $width: calc(100% - $after-button-padding-left));
329
+ }
330
+ }
331
+
332
+ // stylelint-enable max-nesting-depth
303
333
  }
304
334
  }
305
335
 
@@ -308,6 +338,13 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
308
338
  }
309
339
  }
310
340
 
341
+ .gem-c-layout-super-navigation-header__navigation-item-link,
342
+ .gem-c-layout-super-navigation-header__navigation-second-toggle-button {
343
+ @include govuk-media-query($from: "desktop") {
344
+ padding: govuk-spacing(3) 0;
345
+ }
346
+ }
347
+
311
348
  .gem-c-layout-super-navigation-header__navigation-item-link {
312
349
  .js-module-initialised & {
313
350
  margin-left: govuk-spacing(4);
@@ -459,20 +496,31 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
459
496
  }
460
497
  }
461
498
 
499
+ .gem-c-layout-super-navigation-header__navigation-item-link-inner {
500
+ @include govuk-media-query($from: "desktop") {
501
+ // links have different left padding to the button as
502
+ // they do not have the 5px wide caret pseudo element
503
+ padding: govuk-spacing(1) $after-link-padding;
504
+ }
505
+ }
506
+
462
507
  .gem-c-layout-super-navigation-header__navigation-second-toggle-button-inner {
463
508
  @include govuk-media-query($from: "desktop") {
464
509
  display: inline-block;
465
- padding: govuk-spacing(1) govuk-spacing(6) govuk-spacing(1) govuk-spacing(5);
510
+ padding: govuk-spacing(1) $after-button-padding-right govuk-spacing(1) $after-button-padding-left;
466
511
  }
467
512
  }
468
513
 
469
514
  // Search link and dropdown.
470
515
  .gem-c-layout-super-navigation-header__search-item-link {
516
+ @include govuk-media-query($from: "desktop") {
517
+ padding: govuk-spacing(3);
518
+ }
519
+
471
520
  &:link,
472
521
  &:visited {
473
522
  @include govuk-media-query($from: "desktop") {
474
523
  background: $govuk-brand-colour;
475
- border-bottom: 1px solid govuk-colour("dark-blue");
476
524
 
477
525
  &:hover {
478
526
  background: govuk-colour("black");
@@ -494,6 +542,7 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
494
542
  &:after {
495
543
  left: 0;
496
544
  right: 0;
545
+ width: 100%;
497
546
  }
498
547
 
499
548
  @include focus-not-focus-visible {
@@ -811,7 +860,7 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
811
860
 
812
861
  .gem-c-layout-super-navigation-header__navigation-second-items--topics {
813
862
  @include govuk-media-query($from: "desktop") {
814
- @include columns($items: 16, $columns: 2, $selector: "li", $flow: column);
863
+ @include columns($items: 17, $columns: 2, $selector: "li", $flow: column);
815
864
  }
816
865
  }
817
866
 
@@ -37,11 +37,11 @@
37
37
  .gem-c-organisation-logo__crest {
38
38
  // Default brand colour
39
39
  border-left: 2px solid govuk-colour("black");
40
- padding-top: 20px;
40
+ padding-top: 23px;
41
41
  padding-left: 6px;
42
42
 
43
43
  @include govuk-media-query($from: tablet) {
44
- padding-top: 25px;
44
+ padding-top: 28px;
45
45
  padding-left: 7px;
46
46
  }
47
47
 
@@ -53,8 +53,6 @@
53
53
  }
54
54
 
55
55
  .gem-c-organisation-logo__name {
56
- position: relative;
57
- top: 3px;
58
56
  font-family: HelveticaNeue, "Helvetica Neue", Arial, Helvetica, sans-serif;
59
57
  }
60
58
 
@@ -28,18 +28,42 @@
28
28
  </div>
29
29
  </div>
30
30
 
31
- <h2 class="component-doc-h2">
31
+ <div class="component-doc__content-list">
32
+ <%
33
+ content_items = [
34
+ { href: "#how-it-looks", text: "How it looks" },
35
+ { href: "#how-to-call-this-component", text: "How to call this component" },
36
+ ({ href: "#govuk-design-system", text: "GOV.UK Design System" } if @component_doc.govuk_frontend_components.any?),
37
+ ({ href: "#accessibility-acceptance-criteria", text: "Accessibility acceptance criteria" } if @component_doc.accessibility_criteria.present?),
38
+ ({
39
+ href: "#other-examples",
40
+ text: "Other examples",
41
+ items: @component_doc.other_examples.map do | example |
42
+ {
43
+ href: "##{example.id}",
44
+ text: example.name
45
+ }
46
+ end
47
+ } if @component_doc.other_examples.any?),
48
+ ].compact
49
+ %>
50
+ <%= render "govuk_publishing_components/components/contents_list", {
51
+ contents: content_items
52
+ } %>
53
+ </div>
54
+
55
+ <h2 class="component-doc-h2" id="how-it-looks">
32
56
  <a href="<%= component_example_path(@component_doc.id, "default") %>" class="govuk-link">How it looks</a>
33
57
  <small>(<a href="<%= component_preview_path(@component_doc.id, "default") %>" class="govuk-link">preview</a>)</small>
34
58
  <small>(<a href="<%= component_preview_all_path(@component_doc.id) %>" class="govuk-link">preview all</a>)</small>
35
59
  </h2>
36
60
  <%= render "govuk_publishing_components/component_guide/component_doc/preview", component_doc: @component_doc, example: @component_doc.example %>
37
61
 
38
- <h2 class="component-doc-h2">How to call this component</h2>
62
+ <h2 class="component-doc-h2" id="how-to-call-this-component">How to call this component</h2>
39
63
  <%= render "govuk_publishing_components/component_guide/component_doc/call", component_doc: @component_doc, example: @component_doc.example %>
40
64
 
41
65
  <% if @component_doc.govuk_frontend_components.any? %>
42
- <h2 class="component-doc-h2">GOV.UK Design System</h2>
66
+ <h2 class="component-doc-h2" id="govuk-design-system">GOV.UK Design System</h2>
43
67
  <div class="component-markdown">
44
68
  <p>This component incorporates components from the <%= link_to "GOV.UK Design System", "https://design-system.service.gov.uk" %>:</p>
45
69
 
@@ -52,7 +76,7 @@
52
76
  <% end %>
53
77
 
54
78
  <% if @component_doc.accessibility_criteria.present? %>
55
- <div class="govuk-grid-row component-accessibility-criteria">
79
+ <div class="govuk-grid-row component-accessibility-criteria" id="accessibility-acceptance-criteria">
56
80
  <div class="govuk-grid-column-two-thirds">
57
81
  <h2 class="component-doc-h2">Accessibility acceptance criteria</h2>
58
82
  <div class="component-markdown">
@@ -64,9 +88,10 @@
64
88
 
65
89
  <% if @component_doc.other_examples.any? %>
66
90
  <div class="examples">
67
- <h2 class="component-doc-h2">Other examples</h2>
91
+ <h2 class="component-doc-h2" id="other-examples">Other examples</h2>
92
+
68
93
  <% @component_doc.other_examples.each do |example| %>
69
- <div class="component-example">
94
+ <div class="component-example" id="<%= example.id %>">
70
95
  <h3 class="example-title">
71
96
  <a href="<%= component_example_path(@component_doc.id, example.id) %>" class="govuk-link"><%= example.name %></a>
72
97
  <small>(<a href="<%= component_preview_path(@component_doc.id, example.id) %>" class="govuk-link">preview</a>)</small>
@@ -96,7 +96,7 @@
96
96
  %>
97
97
  <%= tag.li class: li_classes do %>
98
98
  <div class="gem-c-layout-super-navigation-header__navigation-toggle-wrapper govuk-clearfix">
99
- <%= link_to link[:label], link[:href], {
99
+ <%= link_to link[:href], {
100
100
  class: "gem-c-layout-super-navigation-header__navigation-item-link",
101
101
  data: {
102
102
  track_action: "#{tracking_label}Link",
@@ -105,7 +105,11 @@
105
105
  track_dimension: link[:label],
106
106
  track_dimension_index: "29",
107
107
  }
108
- } %>
108
+ } do %>
109
+ <span class="gem-c-layout-super-navigation-header__navigation-item-link-inner">
110
+ <%= link[:label] %>
111
+ </span>
112
+ <% end %>
109
113
  <% if has_children %>
110
114
  <%= content_tag(:button, {
111
115
  aria: {
@@ -96,6 +96,8 @@ en:
96
96
  href: "/browse/childcare-parenting"
97
97
  - text: Citizenship and living in the UK
98
98
  href: "/browse/citizenship"
99
+ - text: Cost of living support
100
+ href: "/cost-of-living"
99
101
  - text: Crime, justice and the law
100
102
  href: "/browse/justice"
101
103
  - text: Disabled people
@@ -175,6 +177,8 @@ en:
175
177
  href: "/browse/childcare-parenting"
176
178
  - label: Citizenship and living in the UK
177
179
  href: "/browse/citizenship"
180
+ - label: Cost of living support
181
+ href: "/cost-of-living"
178
182
  - label: Crime, justice and the law
179
183
  href: "/browse/justice"
180
184
  - label: Disabled people
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "30.3.0".freeze
2
+ VERSION = "30.5.0".freeze
3
3
  end