govuk_publishing_components 32.1.0 → 35.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/app/assets/config/govuk_publishing_components_manifest.js +75 -1
  4. data/app/assets/images/govuk_publishing_components/icon-search.svg +3 -0
  5. data/app/assets/images/govuk_publishing_components/youtube-play-icon.png +0 -0
  6. data/app/assets/images/govuk_publishing_components/youtube-play-icon.svg +4 -0
  7. data/app/assets/javascripts/component_guide/accessibility-test.js +0 -1
  8. data/app/assets/javascripts/govuk_publishing_components/analytics/auto-scroll-tracker.js +2 -1
  9. data/app/assets/javascripts/govuk_publishing_components/analytics/linked-domains.js +135 -0
  10. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-auto-tracker.js +49 -0
  11. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +341 -27
  12. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-ecommerce-tracker.js +17 -92
  13. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +11 -23
  14. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-form-tracker.js +121 -0
  15. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +86 -305
  16. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +13 -6
  17. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-schemas.js +31 -1
  18. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-smart-answer-results-tracker.js +57 -0
  19. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-specialist-link-tracker.js +131 -0
  20. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +9 -4
  21. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/pii-remover.js +4 -2
  22. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +4 -0
  23. data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +12 -1
  24. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +2 -2
  25. data/app/assets/javascripts/govuk_publishing_components/components/image-card.js +19 -0
  26. data/app/assets/javascripts/govuk_publishing_components/components/layout-super-navigation-header.js +2 -81
  27. data/app/assets/javascripts/govuk_publishing_components/components/single-page-notification-button.js +24 -8
  28. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +23 -1
  29. data/app/assets/javascripts/govuk_publishing_components/dependencies.js +13 -0
  30. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +3 -2
  31. data/app/assets/javascripts/govuk_publishing_components/lib/trigger-event.js +1 -0
  32. data/app/assets/javascripts/govuk_publishing_components/load-analytics.js +116 -0
  33. data/app/assets/javascripts/govuk_publishing_components/modules.js +7 -2
  34. data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +140 -191
  35. data/app/assets/stylesheets/govuk_publishing_components/_individual_component_support.scss +10 -0
  36. data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +29 -0
  37. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +2 -0
  38. data/app/assets/stylesheets/govuk_publishing_components/components/_attachment.scss +2 -0
  39. data/app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss +1 -0
  40. data/app/assets/stylesheets/govuk_publishing_components/components/_big-number.scss +4 -5
  41. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +1 -0
  42. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +12 -0
  43. data/app/assets/stylesheets/govuk_publishing_components/components/_cards.scss +20 -0
  44. data/app/assets/stylesheets/govuk_publishing_components/components/_character-count.scss +1 -0
  45. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +1 -0
  46. data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list.scss +21 -0
  47. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-guidance.scss +2 -0
  48. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +2 -0
  49. data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +7 -0
  50. data/app/assets/stylesheets/govuk_publishing_components/components/_date-input.scss +1 -0
  51. data/app/assets/stylesheets/govuk_publishing_components/components/_details.scss +1 -0
  52. data/app/assets/stylesheets/govuk_publishing_components/components/_devolved-nations.scss +2 -0
  53. data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +8 -0
  54. data/app/assets/stylesheets/govuk_publishing_components/components/_emergency-banner.scss +8 -0
  55. data/app/assets/stylesheets/govuk_publishing_components/components/_error-alert.scss +2 -0
  56. data/app/assets/stylesheets/govuk_publishing_components/components/_error-message.scss +1 -0
  57. data/app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss +1 -0
  58. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +17 -19
  59. data/app/assets/stylesheets/govuk_publishing_components/components/_fieldset.scss +1 -0
  60. data/app/assets/stylesheets/govuk_publishing_components/components/_file-upload.scss +1 -0
  61. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +10 -0
  62. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak.scss +85 -0
  63. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +2 -0
  64. data/app/assets/stylesheets/govuk_publishing_components/components/_hint.scss +1 -0
  65. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +85 -6
  66. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +6 -6
  67. data/app/assets/stylesheets/govuk_publishing_components/components/_inset-text.scss +1 -0
  68. data/app/assets/stylesheets/govuk_publishing_components/components/_intervention.scss +2 -0
  69. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +2 -0
  70. data/app/assets/stylesheets/govuk_publishing_components/components/_label.scss +1 -0
  71. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +1 -0
  72. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-public.scss +2 -0
  73. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +253 -483
  74. data/app/assets/stylesheets/govuk_publishing_components/components/_lead-paragraph.scss +2 -0
  75. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +2 -0
  76. data/app/assets/stylesheets/govuk_publishing_components/components/_modal-dialogue.scss +2 -0
  77. data/app/assets/stylesheets/govuk_publishing_components/components/_notice.scss +1 -0
  78. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -0
  79. data/app/assets/stylesheets/govuk_publishing_components/components/_panel.scss +1 -0
  80. data/app/assets/stylesheets/govuk_publishing_components/components/_phase-banner.scss +1 -0
  81. data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +1 -0
  82. data/app/assets/stylesheets/govuk_publishing_components/components/_print-link.scss +2 -0
  83. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +1 -0
  84. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +2 -0
  85. data/app/assets/stylesheets/govuk_publishing_components/components/_reorderable-list.scss +2 -0
  86. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +2 -7
  87. data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +1 -0
  88. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +2 -0
  89. data/app/assets/stylesheets/govuk_publishing_components/components/_show-password.scss +2 -0
  90. data/app/assets/stylesheets/govuk_publishing_components/components/_signup-link.scss +2 -0
  91. data/app/assets/stylesheets/govuk_publishing_components/components/_single-page-notification-button.scss +2 -0
  92. data/app/assets/stylesheets/govuk_publishing_components/components/_skip-link.scss +1 -0
  93. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +17 -0
  94. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +2 -0
  95. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +8 -0
  96. data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +2 -1
  97. data/app/assets/stylesheets/govuk_publishing_components/components/_success-alert.scss +1 -0
  98. data/app/assets/stylesheets/govuk_publishing_components/components/_summary-list.scss +1 -0
  99. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +1 -0
  100. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +1 -0
  101. data/app/assets/stylesheets/govuk_publishing_components/components/_textarea.scss +17 -0
  102. data/app/assets/stylesheets/govuk_publishing_components/components/_title.scss +12 -0
  103. data/app/assets/stylesheets/govuk_publishing_components/components/_translation-nav.scss +2 -0
  104. data/app/assets/stylesheets/govuk_publishing_components/components/_warning-text.scss +1 -0
  105. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_steps.scss +26 -9
  106. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +12 -0
  107. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss +2 -2
  108. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_contents-list-helper.scss +0 -1
  109. data/app/controllers/govuk_publishing_components/application_controller.rb +0 -13
  110. data/app/controllers/govuk_publishing_components/audit_controller.rb +1 -1
  111. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +6 -9
  112. data/app/models/govuk_publishing_components/audit_applications.rb +10 -19
  113. data/app/models/govuk_publishing_components/audit_comparer.rb +29 -24
  114. data/app/models/govuk_publishing_components/audit_components.rb +157 -82
  115. data/app/models/govuk_publishing_components/component_doc.rb +14 -0
  116. data/app/models/govuk_publishing_components/component_wrapper_helper_options.rb +15 -0
  117. data/app/views/govuk_publishing_components/audit/_applications.html.erb +3 -3
  118. data/app/views/govuk_publishing_components/audit/_component_contents.html.erb +47 -39
  119. data/app/views/govuk_publishing_components/audit/_components.html.erb +47 -2
  120. data/app/views/govuk_publishing_components/component_guide/_application_stylesheet.html.erb +0 -3
  121. data/app/views/govuk_publishing_components/component_guide/index.html.erb +0 -7
  122. data/app/views/govuk_publishing_components/component_guide/show.html.erb +21 -6
  123. data/app/views/govuk_publishing_components/components/_accordion.html.erb +30 -36
  124. data/app/views/govuk_publishing_components/components/_action_link.html.erb +7 -2
  125. data/app/views/govuk_publishing_components/components/_attachment.html.erb +2 -0
  126. data/app/views/govuk_publishing_components/components/_attachment_link.html.erb +2 -0
  127. data/app/views/govuk_publishing_components/components/_back_link.html.erb +2 -0
  128. data/app/views/govuk_publishing_components/components/_big_number.html.erb +3 -1
  129. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +8 -2
  130. data/app/views/govuk_publishing_components/components/_button.html.erb +2 -0
  131. data/app/views/govuk_publishing_components/components/_cards.html.erb +6 -4
  132. data/app/views/govuk_publishing_components/components/_character_count.html.erb +2 -0
  133. data/app/views/govuk_publishing_components/components/_checkboxes.html.erb +6 -2
  134. data/app/views/govuk_publishing_components/components/_contents_list.html.erb +11 -15
  135. data/app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb +7 -4
  136. data/app/views/govuk_publishing_components/components/_contextual_footer.html.erb +2 -0
  137. data/app/views/govuk_publishing_components/components/_contextual_guidance.html.erb +2 -0
  138. data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +13 -6
  139. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +12 -6
  140. data/app/views/govuk_publishing_components/components/_date_input.html.erb +2 -0
  141. data/app/views/govuk_publishing_components/components/_details.html.erb +5 -1
  142. data/app/views/govuk_publishing_components/components/_devolved_nations.html.erb +2 -0
  143. data/app/views/govuk_publishing_components/components/_document_list.html.erb +3 -0
  144. data/app/views/govuk_publishing_components/components/_emergency_banner.html.erb +2 -0
  145. data/app/views/govuk_publishing_components/components/_error_alert.html.erb +2 -0
  146. data/app/views/govuk_publishing_components/components/_error_message.html.erb +4 -1
  147. data/app/views/govuk_publishing_components/components/_error_summary.html.erb +29 -26
  148. data/app/views/govuk_publishing_components/components/_feedback.html.erb +2 -0
  149. data/app/views/govuk_publishing_components/components/_fieldset.html.erb +2 -0
  150. data/app/views/govuk_publishing_components/components/_file_upload.html.erb +2 -0
  151. data/app/views/govuk_publishing_components/components/_google_tag_manager_script.html.erb +2 -2
  152. data/app/views/govuk_publishing_components/components/_govspeak.html.erb +1 -0
  153. data/app/views/govuk_publishing_components/components/_govspeak_html_publication.html.erb +2 -0
  154. data/app/views/govuk_publishing_components/components/_heading.html.erb +2 -0
  155. data/app/views/govuk_publishing_components/components/_hint.html.erb +4 -1
  156. data/app/views/govuk_publishing_components/components/_image_card.html.erb +17 -12
  157. data/app/views/govuk_publishing_components/components/_input.html.erb +10 -2
  158. data/app/views/govuk_publishing_components/components/_inset_text.html.erb +2 -0
  159. data/app/views/govuk_publishing_components/components/_intervention.html.erb +2 -0
  160. data/app/views/govuk_publishing_components/components/_inverse_header.html.erb +2 -0
  161. data/app/views/govuk_publishing_components/components/_label.html.erb +7 -3
  162. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +2 -0
  163. data/app/views/govuk_publishing_components/components/_layout_for_admin.html.erb +8 -5
  164. data/app/views/govuk_publishing_components/components/_layout_for_public.html.erb +8 -3
  165. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +2 -0
  166. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +238 -267
  167. data/app/views/govuk_publishing_components/components/_lead_paragraph.html.erb +2 -0
  168. data/app/views/govuk_publishing_components/components/_metadata.html.erb +2 -0
  169. data/app/views/govuk_publishing_components/components/_modal_dialogue.html.erb +2 -0
  170. data/app/views/govuk_publishing_components/components/_notice.html.erb +2 -0
  171. data/app/views/govuk_publishing_components/components/_organisation_logo.html.erb +2 -0
  172. data/app/views/govuk_publishing_components/components/_panel.html.erb +2 -0
  173. data/app/views/govuk_publishing_components/components/_phase_banner.html.erb +3 -1
  174. data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +6 -1
  175. data/app/views/govuk_publishing_components/components/_print_link.html.erb +2 -0
  176. data/app/views/govuk_publishing_components/components/_radio.html.erb +2 -0
  177. data/app/views/govuk_publishing_components/components/_related_navigation.html.erb +16 -6
  178. data/app/views/govuk_publishing_components/components/_reorderable_list.html.erb +2 -0
  179. data/app/views/govuk_publishing_components/components/_search.html.erb +2 -0
  180. data/app/views/govuk_publishing_components/components/_select.html.erb +2 -0
  181. data/app/views/govuk_publishing_components/components/_share_links.html.erb +13 -13
  182. data/app/views/govuk_publishing_components/components/_show_password.html.erb +2 -0
  183. data/app/views/govuk_publishing_components/components/_signup_link.html.erb +2 -0
  184. data/app/views/govuk_publishing_components/components/_single_page_notification_button.html.erb +8 -2
  185. data/app/views/govuk_publishing_components/components/_skip_link.html.erb +2 -0
  186. data/app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb +8 -1
  187. data/app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb +12 -2
  188. data/app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb +21 -8
  189. data/app/views/govuk_publishing_components/components/_subscription_links.html.erb +3 -1
  190. data/app/views/govuk_publishing_components/components/_success_alert.html.erb +2 -0
  191. data/app/views/govuk_publishing_components/components/_summary_list.html.erb +2 -0
  192. data/app/views/govuk_publishing_components/components/_table.html.erb +3 -1
  193. data/app/views/govuk_publishing_components/components/_tabs.html.erb +22 -2
  194. data/app/views/govuk_publishing_components/components/_textarea.html.erb +12 -2
  195. data/app/views/govuk_publishing_components/components/_title.html.erb +2 -0
  196. data/app/views/govuk_publishing_components/components/_translation_nav.html.erb +2 -0
  197. data/app/views/govuk_publishing_components/components/_warning_text.html.erb +2 -0
  198. data/app/views/govuk_publishing_components/components/contextual_sidebar/_ukraine_cta.html.erb +16 -6
  199. data/app/views/govuk_publishing_components/components/docs/accordion.yml +16 -3
  200. data/app/views/govuk_publishing_components/components/docs/action_link.yml +1 -0
  201. data/app/views/govuk_publishing_components/components/docs/breadcrumbs.yml +2 -1
  202. data/app/views/govuk_publishing_components/components/docs/button.yml +10 -0
  203. data/app/views/govuk_publishing_components/components/docs/cards.yml +1 -0
  204. data/app/views/govuk_publishing_components/components/docs/checkboxes.yml +1 -0
  205. data/app/views/govuk_publishing_components/components/docs/contents_list.yml +1 -12
  206. data/app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml +13 -0
  207. data/app/views/govuk_publishing_components/components/docs/contextual_footer.yml +43 -0
  208. data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +65 -0
  209. data/app/views/govuk_publishing_components/components/docs/details.yml +17 -0
  210. data/app/views/govuk_publishing_components/components/docs/document_list.yml +18 -1
  211. data/app/views/govuk_publishing_components/components/docs/emergency_banner.yml +3 -1
  212. data/app/views/govuk_publishing_components/components/docs/error_message.yml +13 -0
  213. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +22 -1
  214. data/app/views/govuk_publishing_components/components/docs/hint.yml +6 -0
  215. data/app/views/govuk_publishing_components/components/docs/image_card.yml +24 -1
  216. data/app/views/govuk_publishing_components/components/docs/input.yml +32 -0
  217. data/app/views/govuk_publishing_components/components/docs/intervention.yml +2 -1
  218. data/app/views/govuk_publishing_components/components/docs/label.yml +17 -0
  219. data/app/views/govuk_publishing_components/components/docs/layout_header.yml +1 -0
  220. data/app/views/govuk_publishing_components/components/docs/previous_and_next_navigation.yml +2 -0
  221. data/app/views/govuk_publishing_components/components/docs/related_navigation.yml +47 -0
  222. data/app/views/govuk_publishing_components/components/docs/share_links.yml +59 -30
  223. data/app/views/govuk_publishing_components/components/docs/single_page_notification_button.yml +16 -1
  224. data/app/views/govuk_publishing_components/components/docs/step_by_step_nav.yml +54 -0
  225. data/app/views/govuk_publishing_components/components/docs/step_by_step_nav_header.yml +6 -0
  226. data/app/views/govuk_publishing_components/components/docs/step_by_step_nav_related.yml +10 -0
  227. data/app/views/govuk_publishing_components/components/docs/tabs.yml +15 -0
  228. data/app/views/govuk_publishing_components/components/docs/textarea.yml +31 -0
  229. data/app/views/govuk_publishing_components/components/docs/translation_nav.yml +2 -0
  230. data/app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb +3 -3
  231. data/app/views/govuk_publishing_components/components/feedback/_survey_signup_form.html.erb +1 -1
  232. data/app/views/govuk_publishing_components/components/feedback/_yes_no_banner.html.erb +4 -5
  233. data/app/views/govuk_publishing_components/components/metadata/_sentence.html.erb +4 -2
  234. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +36 -16
  235. data/app/views/layouts/govuk_publishing_components/application.html.erb +3 -4
  236. data/config/locales/ar.yml +14 -14
  237. data/config/locales/az.yml +15 -14
  238. data/config/locales/be.yml +14 -14
  239. data/config/locales/bg.yml +14 -14
  240. data/config/locales/bn.yml +14 -14
  241. data/config/locales/cs.yml +14 -14
  242. data/config/locales/cy.yml +14 -14
  243. data/config/locales/da.yml +14 -14
  244. data/config/locales/de.yml +14 -14
  245. data/config/locales/dr.yml +14 -14
  246. data/config/locales/el.yml +14 -14
  247. data/config/locales/en.yml +21 -28
  248. data/config/locales/es-419.yml +14 -14
  249. data/config/locales/es.yml +14 -14
  250. data/config/locales/et.yml +14 -14
  251. data/config/locales/fa.yml +15 -14
  252. data/config/locales/fi.yml +14 -14
  253. data/config/locales/fr.yml +14 -14
  254. data/config/locales/gd.yml +14 -14
  255. data/config/locales/gu.yml +14 -14
  256. data/config/locales/he.yml +14 -14
  257. data/config/locales/hi.yml +14 -14
  258. data/config/locales/hr.yml +14 -14
  259. data/config/locales/hu.yml +14 -14
  260. data/config/locales/hy.yml +14 -14
  261. data/config/locales/id.yml +14 -14
  262. data/config/locales/is.yml +14 -14
  263. data/config/locales/it.yml +14 -14
  264. data/config/locales/ja.yml +14 -14
  265. data/config/locales/ka.yml +14 -14
  266. data/config/locales/kk.yml +14 -14
  267. data/config/locales/ko.yml +14 -14
  268. data/config/locales/lt.yml +14 -14
  269. data/config/locales/lv.yml +14 -14
  270. data/config/locales/ms.yml +14 -14
  271. data/config/locales/mt.yml +14 -14
  272. data/config/locales/nl.yml +14 -14
  273. data/config/locales/no.yml +14 -14
  274. data/config/locales/pa-pk.yml +14 -14
  275. data/config/locales/pa.yml +14 -14
  276. data/config/locales/pl.yml +14 -14
  277. data/config/locales/ps.yml +14 -14
  278. data/config/locales/pt.yml +14 -14
  279. data/config/locales/ro.yml +14 -14
  280. data/config/locales/ru.yml +14 -14
  281. data/config/locales/si.yml +14 -14
  282. data/config/locales/sk.yml +14 -14
  283. data/config/locales/sl.yml +14 -14
  284. data/config/locales/so.yml +14 -14
  285. data/config/locales/sq.yml +14 -14
  286. data/config/locales/sr.yml +14 -14
  287. data/config/locales/sv.yml +14 -14
  288. data/config/locales/sw.yml +14 -14
  289. data/config/locales/ta.yml +14 -14
  290. data/config/locales/th.yml +14 -14
  291. data/config/locales/tk.yml +14 -14
  292. data/config/locales/tr.yml +14 -14
  293. data/config/locales/uk.yml +14 -14
  294. data/config/locales/ur.yml +14 -14
  295. data/config/locales/uz.yml +14 -14
  296. data/config/locales/vi.yml +14 -14
  297. data/config/locales/zh-hk.yml +14 -14
  298. data/config/locales/zh-tw.yml +14 -14
  299. data/config/locales/zh.yml +14 -14
  300. data/lib/govuk_publishing_components/app_helpers/asset_helper.rb +86 -0
  301. data/lib/govuk_publishing_components/config.rb +3 -3
  302. data/lib/govuk_publishing_components/presenters/accordion_helper.rb +38 -0
  303. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +3 -2
  304. data/lib/govuk_publishing_components/presenters/{breadcrumbs.rb → breadcrumbs_helper.rb} +8 -0
  305. data/lib/govuk_publishing_components/presenters/button_helper.rb +9 -2
  306. data/lib/govuk_publishing_components/presenters/component_wrapper_helper.rb +95 -0
  307. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +65 -2
  308. data/lib/govuk_publishing_components/presenters/page_with_step_by_step_navigation.rb +3 -2
  309. data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +16 -7
  310. data/lib/govuk_publishing_components/presenters/single_page_notification_button_helper.rb +43 -2
  311. data/lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb +16 -0
  312. data/lib/govuk_publishing_components/railtie.rb +7 -0
  313. data/lib/govuk_publishing_components/version.rb +1 -1
  314. data/lib/govuk_publishing_components.rb +6 -1
  315. data/node_modules/axe-core/README.md +1 -1
  316. data/node_modules/axe-core/axe.d.ts +76 -24
  317. data/node_modules/axe-core/axe.js +9200 -9059
  318. data/node_modules/axe-core/axe.min.js +3 -3
  319. data/node_modules/axe-core/package.json +29 -29
  320. data/node_modules/axe-core/sri-history.json +20 -0
  321. data/node_modules/govuk-frontend/README.md +1 -2
  322. data/node_modules/govuk-frontend/govuk/all.js +4035 -2673
  323. data/node_modules/govuk-frontend/govuk/all.js.map +1 -0
  324. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +71 -0
  325. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js.map +1 -0
  326. data/node_modules/govuk-frontend/govuk/common/index.js +180 -0
  327. data/node_modules/govuk-frontend/govuk/common/index.js.map +1 -0
  328. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +376 -0
  329. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js.map +1 -0
  330. data/node_modules/govuk-frontend/govuk/common.js +173 -30
  331. data/node_modules/govuk-frontend/govuk/common.js.map +1 -0
  332. data/node_modules/govuk-frontend/govuk/components/_all.scss +1 -1
  333. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +23 -4
  334. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +2116 -983
  335. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js.map +1 -0
  336. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +54 -22
  337. data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +36 -0
  338. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +8 -2
  339. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +19 -19
  340. data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +12 -12
  341. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +21 -10
  342. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +22 -22
  343. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +23 -5
  344. data/node_modules/govuk-frontend/govuk/components/button/button.js +958 -690
  345. data/node_modules/govuk-frontend/govuk/components/button/button.js.map +1 -0
  346. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +85 -66
  347. data/node_modules/govuk-frontend/govuk/components/button/template.njk +1 -1
  348. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +9 -0
  349. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +2083 -1161
  350. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js.map +1 -0
  351. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +112 -36
  352. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +42 -0
  353. data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +27 -3
  354. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +1155 -1119
  355. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js.map +1 -0
  356. data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +96 -93
  357. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +46 -46
  358. data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +1 -1
  359. data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +50 -50
  360. data/node_modules/govuk-frontend/govuk/components/details/details.js +797 -766
  361. data/node_modules/govuk-frontend/govuk/components/details/details.js.map +1 -0
  362. data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +20 -20
  363. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +20 -20
  364. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +1089 -814
  365. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js.map +1 -0
  366. data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +44 -35
  367. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +25 -21
  368. data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +51 -39
  369. data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +26 -26
  370. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +1 -1
  371. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +46 -46
  372. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +2 -2
  373. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +6 -0
  374. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +93 -38
  375. data/node_modules/govuk-frontend/govuk/components/header/header.js +646 -992
  376. data/node_modules/govuk-frontend/govuk/components/header/header.js.map +1 -0
  377. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +8 -2
  378. data/node_modules/govuk-frontend/govuk/components/header/template.njk +4 -2
  379. data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +12 -12
  380. data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +80 -80
  381. data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +12 -12
  382. data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +34 -34
  383. data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +56 -46
  384. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +790 -532
  385. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js.map +1 -0
  386. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +1 -1
  387. data/node_modules/govuk-frontend/govuk/components/pagination/_index.scss +10 -7
  388. data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +94 -26
  389. data/node_modules/govuk-frontend/govuk/components/pagination/template.njk +1 -1
  390. data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +18 -18
  391. data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +14 -14
  392. data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +1 -1
  393. data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +94 -91
  394. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +1110 -1079
  395. data/node_modules/govuk-frontend/govuk/components/radios/radios.js.map +1 -0
  396. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +32 -32
  397. data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +22 -20
  398. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +1017 -1008
  399. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js.map +1 -0
  400. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +107 -0
  401. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +345 -50
  402. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +110 -0
  403. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +72 -28
  404. data/node_modules/govuk-frontend/govuk/components/table/_index.scss +1 -1
  405. data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +40 -40
  406. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +29 -29
  407. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +1389 -1233
  408. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js.map +1 -0
  409. data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +28 -28
  410. data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +34 -34
  411. data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +14 -14
  412. data/node_modules/govuk-frontend/govuk/core/_section-break.scss +1 -1
  413. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +2 -2
  414. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +5 -0
  415. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +6 -6
  416. data/node_modules/govuk-frontend/govuk/i18n.js +389 -0
  417. data/node_modules/govuk-frontend/govuk/i18n.js.map +1 -0
  418. data/node_modules/govuk-frontend/govuk/macros/i18n.njk +15 -0
  419. data/node_modules/govuk-frontend/govuk/settings/_all.scss +1 -0
  420. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +12 -0
  421. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +26 -0
  422. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +5 -5
  423. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +23 -0
  424. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +12 -0
  425. data/node_modules/govuk-frontend/govuk/settings/_warnings.scss +53 -0
  426. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +20 -6
  427. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +242 -241
  428. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js.map +1 -0
  429. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +22 -0
  430. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js.map +1 -0
  431. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +17 -16
  432. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js.map +1 -0
  433. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +547 -546
  434. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js.map +1 -0
  435. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +37 -36
  436. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js.map +1 -0
  437. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +301 -0
  438. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js.map +1 -0
  439. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +21 -20
  440. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js.map +1 -0
  441. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +198 -197
  442. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js.map +1 -0
  443. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +198 -197
  444. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js.map +1 -0
  445. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +106 -105
  446. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js.map +1 -0
  447. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +400 -399
  448. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js.map +1 -0
  449. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +239 -238
  450. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js.map +1 -0
  451. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +72 -71
  452. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js.map +1 -0
  453. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +22 -0
  454. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js.map +1 -0
  455. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +17 -16
  456. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js.map +1 -0
  457. data/node_modules/govuk-frontend/govuk-esm/all.mjs +52 -29
  458. data/node_modules/govuk-frontend/govuk-esm/common/closest-attribute-value.mjs +15 -0
  459. data/node_modules/govuk-frontend/govuk-esm/common/index.mjs +166 -0
  460. data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs +60 -0
  461. data/node_modules/govuk-frontend/govuk-esm/common.mjs +6 -28
  462. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +238 -85
  463. data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +73 -34
  464. data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +329 -124
  465. data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +32 -20
  466. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +41 -20
  467. data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +60 -14
  468. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +9 -2
  469. data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +33 -4
  470. data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +18 -11
  471. data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +15 -7
  472. data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +171 -38
  473. data/node_modules/govuk-frontend/govuk-esm/i18n.mjs +378 -0
  474. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Date/now.mjs +13 -0
  475. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/dataset.mjs +68 -0
  476. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/String/prototype/trim.mjs +13 -0
  477. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +7 -0
  478. data/node_modules/govuk-frontend/govuk-prototype-kit/init.scss +12 -0
  479. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +138 -7
  480. data/node_modules/govuk-frontend/package.json +1 -1
  481. metadata +70 -19
  482. data/app/assets/stylesheets/component_guide/print.scss +0 -1
  483. data/app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss +0 -18
  484. data/app/assets/stylesheets/govuk_publishing_components/components/print/_accordion.scss +0 -28
  485. data/app/assets/stylesheets/govuk_publishing_components/components/print/_button.scss +0 -8
  486. data/app/assets/stylesheets/govuk_publishing_components/components/print/_cards.scss +0 -4
  487. data/app/assets/stylesheets/govuk_publishing_components/components/print/_contents-list.scss +0 -19
  488. data/app/assets/stylesheets/govuk_publishing_components/components/print/_emergency-banner.scss +0 -3
  489. data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak-html-publication.scss +0 -5
  490. data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +0 -80
  491. data/app/assets/stylesheets/govuk_publishing_components/components/print/_layout-super-navigation-header.scss +0 -3
  492. data/app/assets/stylesheets/govuk_publishing_components/components/print/_organisation-logo.scss +0 -7
  493. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -7
  494. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav.scss +0 -116
  495. data/app/assets/stylesheets/govuk_publishing_components/components/print/_textarea.scss +0 -13
  496. data/app/assets/stylesheets/govuk_publishing_components/components/print/_title.scss +0 -7
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("print-link")
3
+
2
4
  text ||= t('components.print_link.text')
3
5
  href ||= nil
4
6
  data_attributes ||= {}
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("radio")
3
+
2
4
  local_assigns[:margin_bottom] ||= 6
3
5
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
4
6
  id ||= nil
@@ -1,10 +1,19 @@
1
- <% related_nav_helper = GovukPublishingComponents::Presenters::RelatedNavigationHelper.new(local_assigns) %>
2
- <% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
1
+ <%
2
+ related_nav_helper = GovukPublishingComponents::Presenters::RelatedNavigationHelper.new(local_assigns)
3
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
4
+ ga4_tracking ||= false
5
+ data = {}
6
+ data[:module] = "gem-track-click"
7
+ data[:module] << " ga4-link-tracker" if ga4_tracking
8
+ %>
9
+
10
+ <%
11
+ add_gem_component_stylesheet("related-navigation")
12
+ %>
3
13
 
4
14
  <% if related_nav_helper.related_navigation? %>
5
15
  <% random = SecureRandom.hex(4) %>
6
- <div class="gem-c-related-navigation">
7
-
16
+ <%= tag.div(class: "gem-c-related-navigation", data: data) do %>
8
17
  <% if local_assigns[:context] != :footer %>
9
18
  <h2 id="related-nav-related_items-<%= random %>"
10
19
  class="gem-c-related-navigation__main-heading"
@@ -33,7 +42,8 @@
33
42
  section_title: section_title,
34
43
  links: links,
35
44
  section_index: section_index,
36
- random: random %>
45
+ random: random,
46
+ ga4_tracking: ga4_tracking %>
37
47
  <% end %>
38
- </div>
48
+ <% end %>
39
49
  <% end %>
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("reorderable-list")
3
+
2
4
  items ||= []
3
5
  input_name ||= "ordering"
4
6
  data_attributes ||= {}
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("search")
3
+
2
4
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
3
5
  heading_helper = GovukPublishingComponents::Presenters::HeadingHelper.new(local_assigns)
4
6
 
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("select")
3
+
2
4
  # select_helper.css_classes generates "gem-c-select"
3
5
  id ||= false
4
6
  label ||= false
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("share-links")
3
+
2
4
  links ||= []
3
5
  title ||= false
4
6
  track_as_sharing ||= false
@@ -15,7 +17,8 @@
15
17
  classes << brand_helper.brand_class
16
18
 
17
19
  data_attributes ||= {}
18
- data_attributes[:module] = 'gem-track-click'
20
+ ((data_attributes[:module] ||= "") << " " << "gem-track-click").strip!
21
+ data_attributes[:module] << " ga4-link-tracker" if track_as_sharing || track_as_follow
19
22
  %>
20
23
  <% if links.any? %>
21
24
  <%= tag.div(class: classes, data: data_attributes) do %>
@@ -54,7 +57,6 @@
54
57
  'index': index + 1,
55
58
  'index_total': links.length,
56
59
  'text': link[:icon],
57
- 'method': 'populated-via-js'
58
60
  }
59
61
  end
60
62
  if track_as_follow
@@ -62,23 +64,21 @@
62
64
  'event_name': 'navigation',
63
65
  'type': 'follow us',
64
66
  'index': index + 1,
65
- 'index_total': links.length,
66
- 'text': link[:text],
67
- 'external': 'populated-via-js',
68
- 'url': link[:href],
69
- 'method': 'populated-via-js'
67
+ 'index_total': links.length
70
68
  }
71
69
  end
72
70
  %>
71
+ <%
72
+ data_attributes = link[:data_attributes] ||= {}
73
+ data_attributes[:track_category] = 'social media'
74
+ data_attributes[:track_action] = link[:icon]
75
+ data_attributes[:track_options] = track_options
76
+ data_attributes[:ga4_link] = ga4_link_data
77
+ %>
73
78
  <%= link_to link[:href],
74
79
  target: "_blank",
75
80
  rel: "noopener noreferrer external",
76
- data: {
77
- 'track-category': 'social media',
78
- 'track-action': link[:icon],
79
- 'track-options': track_options,
80
- 'ga4-link': ga4_link_data
81
- },
81
+ data: data_attributes,
82
82
  class: "govuk-link govuk-link--no-underline gem-c-share-links__link #{brand_helper.color_class}" do %>
83
83
  <span class="gem-c-share-links__link-icon">
84
84
  <% if link[:icon] == 'facebook' %>
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("show-password")
3
+
2
4
  disable_form_submit_check ||= false
3
5
  label ||= nil
4
6
  value ||= nil
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("signup-link")
3
+
2
4
  local_assigns[:heading_level] ||= 3
3
5
  local_assigns[:margin_bottom] ||= 0
4
6
  link_text ||= false
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("single-page-notification-button")
3
+
2
4
  component_helper = GovukPublishingComponents::Presenters::SinglePageNotificationButtonHelper.new(local_assigns)
3
5
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
4
6
 
@@ -6,11 +8,15 @@
6
8
  wrapper_classes << shared_helper.get_margin_bottom
7
9
  %>
8
10
  <% button_text = capture do %>
9
- <svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><%= component_helper.button_text %>
11
+ <svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><span class="gem-c-single-page-notication-button__text"><%= component_helper.button_text %></span>
10
12
  <% end %>
11
13
  <%= tag.div class: wrapper_classes, data: { module: "gem-track-click"} do %>
12
- <%= tag.form class: component_helper.classes, action: "/email/subscriptions/single-page/new", method: "POST", data: component_helper.data do %>
14
+ <%= tag.form class: component_helper.classes, action: component_helper.form_action, method: "POST", data: component_helper.data do %>
13
15
  <input type="hidden" name="base_path" value="<%= component_helper.base_path %>">
16
+ <% if component_helper.skip_account %>
17
+ <input type="hidden" name="<%= component_helper.skip_account_param %>" value="true">
18
+ <input type="hidden" name="link" value="<%= component_helper.base_path %>">
19
+ <% end %>
14
20
  <%= content_tag(:button, button_text, {
15
21
  class: "govuk-body-s gem-c-single-page-notification-button__submit",
16
22
  type: "submit",
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("skip-link")
3
+
2
4
  href ||= '#main-content'
3
5
  text ||= t('components.skip_link.text')
4
6
  %>
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("step-by-step-nav")
3
+
2
4
  options = {}
3
5
  options[:heading_level] = heading_level ||= 2
4
6
 
@@ -15,10 +17,13 @@
15
17
  step_number = 0
16
18
 
17
19
  step_nav_helper = GovukPublishingComponents::Presenters::StepByStepNavHelper.new
20
+
21
+ ga4_tracking ||= false
18
22
  %>
19
23
  <% if steps %>
20
24
  <div
21
- data-module="gemstepnav"
25
+ data-module="gemstepnav<% if ga4_tracking %> ga4-event-tracker ga4-link-tracker<% end %>"
26
+ <%= "data-ga4-expandable" if ga4_tracking %>
22
27
  class="gem-c-step-nav js-hidden <% if small %>govuk-!-display-none-print<% end %> <% unless small %>gem-c-step-nav--large<% end %>"
23
28
  <%= "data-remember" if remember_last_step %>
24
29
  <%= "data-id=#{tracking_id}" if tracking_id %>
@@ -72,8 +77,10 @@
72
77
  <%
73
78
  in_substep = false
74
79
  options[:step_nav_content_id] = step_nav_content_id
80
+ options[:step_title] = step[:title]
75
81
  options[:step_index] = step_index
76
82
  options[:link_index] = 0
83
+ options[:ga4_tracking] = ga4_tracking
77
84
  %>
78
85
  <% step[:contents].each do |element| %>
79
86
  <%= step_nav_helper.render_step_nav_element(element, options) %>
@@ -1,12 +1,19 @@
1
1
  <%
2
+ add_gem_component_stylesheet("step-by-step-nav-header")
3
+
2
4
  title ||= false
3
5
  path ||= false
6
+ ga4_tracking ||= false
4
7
  breadcrumbs = [
5
8
  { title: "Home", url: "/" },
6
9
  { title: title, url: path }
7
10
  ]
8
11
  breadcrumb_presenter = GovukPublishingComponents::Presenters::Breadcrumbs.new(breadcrumbs)
9
12
 
13
+ data = {}
14
+ data[:module] = "gem-track-click"
15
+ data[:module] << " ga4-link-tracker" if ga4_tracking
16
+
10
17
  tracking_id ||= false
11
18
  tracking_category ||= "stepNavHeaderClicked"
12
19
  tracking_action ||= "top"
@@ -20,7 +27,7 @@
20
27
  end
21
28
 
22
29
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
23
- classes = %w(gem-c-step-nav-header)
30
+ classes = %w[gem-c-step-nav-header]
24
31
  classes << shared_helper.get_margin_bottom if local_assigns[:margin_bottom]
25
32
  %>
26
33
  <% if title %>
@@ -28,7 +35,7 @@
28
35
  <%= raw JSON.pretty_generate(breadcrumb_presenter.structured_data) %>
29
36
  </script>
30
37
 
31
- <%= tag.div class: classes, data: { module: "gem-track-click" } do %>
38
+ <%= tag.div(class: classes, data: data) do %>
32
39
  <strong class="gem-c-step-nav-header__part-of">Part of</strong>
33
40
  <% if path %>
34
41
  <a href="<%= path %>"
@@ -36,6 +43,9 @@
36
43
  data-track-category="<%= tracking_category %>"
37
44
  data-track-action="<%= tracking_action %>"
38
45
  data-track-label="<%= tracking_label %>"
46
+ <% if ga4_tracking %>
47
+ data-ga4-link='{"event_name":"navigation", "type":"super breadcrumb", "index":{"index_link": "1"}, "index_total":"1"}'
48
+ <% end %>
39
49
  <% if tracking_dimension_enabled %>
40
50
  data-track-dimension="<%= tracking_dimension %>"
41
51
  data-track-dimension-index="<%= tracking_dimension_index %>"
@@ -1,12 +1,17 @@
1
1
  <%
2
+ add_gem_component_stylesheet("step-by-step-nav-related")
3
+ ga4_tracking ||= false
2
4
  links ||= []
3
5
  pretitle ||= t("components.step_by_step_nav_related.part_of")
4
6
  always_display_as_list ||= false
7
+ classes = %w(gem-c-step-nav-related)
8
+ classes << "gem-c-step-nav-related--singular" if links.length == 1
9
+ data = {}
10
+ data[:module] = "gem-track-click"
11
+ data[:module] << " ga4-link-tracker" if ga4_tracking
5
12
  %>
6
13
  <% if links.any? %>
7
- <div
8
- class="gem-c-step-nav-related <%= "gem-c-step-nav-related--singular" if links.length == 1 %>"
9
- data-module="gem-track-click">
14
+ <%= tag.div(class: classes, data: data) do %>
10
15
  <h2 class="gem-c-step-nav-related__heading">
11
16
  <span class="gem-c-step-nav-related__pretitle"><%= pretitle %></span>
12
17
  <% if links.length == 1 && !always_display_as_list %>
@@ -17,14 +22,18 @@
17
22
  data-track-label="<%= links[0][:href] %>"
18
23
  data-track-dimension="<%= links[0][:text] %>"
19
24
  data-track-dimension-index="29"
20
- data-track-options='{"dimension96" : "<%= links[0][:tracking_id] %>" }'>
25
+ data-track-options='{"dimension96" : "<%= links[0][:tracking_id] %>" }'
26
+ <% if ga4_tracking %>
27
+ data-ga4-link='{"event_name":"navigation", "type":"related content", "index":{"index_link": "1"}, "index_total":"1"}'
28
+ <% end %>
29
+ >
21
30
  <%= links[0][:text] %>
22
31
  </a>
23
32
  </h2>
24
33
  <% else %>
25
34
  </h2>
26
35
  <ul class="gem-c-step-nav-related__links">
27
- <% links.each do |link| %>
36
+ <% links.each_with_index do |link, index| %>
28
37
  <li class="gem-c-step-nav-related__link-item">
29
38
  <a href="<%= link[:href] %>"
30
39
  class="govuk-link"
@@ -33,12 +42,16 @@
33
42
  data-track-label="<%= link[:href] %>"
34
43
  data-track-dimension="<%= link[:text] %>"
35
44
  data-track-dimension-index="29"
36
- data-track-options='{"dimension96" : "<%= link[:tracking_id] %>" }'>
45
+ data-track-options='{"dimension96" : "<%= link[:tracking_id] %>" }'
46
+ <% if ga4_tracking %>
47
+ data-ga4-link='{"event_name":"navigation", "type":"related content", "index":{"index_link": "<%= index + 1 %>"}, "index_total": "<%= links.length %>"}'
48
+ <% end %>
49
+ >
37
50
  <%= link[:text] %>
38
51
  </a>
39
52
  </li>
40
53
  <% end %>
41
54
  </ul>
42
55
  <% end %>
43
- </div>
44
- <% end %>
56
+ <% end %>
57
+ <% end %>
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("subscription-links")
3
+
2
4
  brand ||= false
3
5
  brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
6
 
@@ -36,7 +38,7 @@
36
38
  </svg><%= sl_helper.email_signup_link_text %>
37
39
  <% end %>
38
40
  <%= link_to email_link_text, sl_helper.email_signup_link, {
39
- class: "govuk-link govuk-link--no-underline gem-c-subscription-links__item #{brand_helper.color_class} gem-c-subscription-links__item--link",
41
+ class: "govuk-link gem-c-subscription-links__item #{brand_helper.color_class} gem-c-subscription-links__item--link",
40
42
  data: sl_helper.email_signup_link_data_attributes,
41
43
  lang: email_signup_link_text_locale
42
44
  } %>
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("success-alert")
3
+
2
4
  description ||= nil
3
5
  title_id ||= "govuk-notification-banner-title-#{SecureRandom.hex(4)}"
4
6
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("summary-list")
3
+
2
4
  local_assigns[:heading_level] ||= 3
3
5
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
4
6
  heading_size = "m" unless shared_helper.valid_heading_size?(heading_size)
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("table")
3
+
2
4
  caption ||= nil
3
5
  head ||= []
4
6
  rows ||= []
@@ -16,7 +18,7 @@
16
18
  <%= GovukPublishingComponents::AppHelpers::TableHelper.helper(self, caption, {
17
19
  sortable: sortable,
18
20
  filterable: filterable,
19
- caption_classes: caption_classes,
21
+ caption_classes: caption_classes,
20
22
  table_id: table_id
21
23
  }) do |t| %>
22
24
 
@@ -1,18 +1,38 @@
1
1
  <%
2
+ add_gem_component_stylesheet("tabs")
3
+
2
4
  tabs ||= []
3
5
  panel_border ||= true unless panel_border == false
4
6
  panel_css_classes = %w(govuk-tabs__panel)
5
7
  panel_css_classes << "gem-c-tabs__panel--no-border" if panel_border == false
6
8
  panel_css_classes = panel_css_classes.join(" ")
9
+
10
+ ga4_tracking ||= false
11
+ data_module = "govuk-tabs"
12
+ data_module << " ga4-event-tracker" if ga4_tracking
7
13
  %>
8
14
  <% if tabs.count > 1 %>
9
- <div class="govuk-tabs gem-c-tabs" data-module="govuk-tabs">
15
+ <div class="govuk-tabs gem-c-tabs" data-module="<%= data_module %>">
10
16
  <h2 class="govuk-tabs__title">
11
17
  <%= t("components.tabs.contents") %>
12
18
  </h2>
13
19
  <ul class="govuk-tabs__list">
14
- <% tabs.each do |tab| %>
20
+ <% tabs.each_with_index do |tab, index| %>
15
21
  <li class="govuk-tabs__list-item">
22
+ <%
23
+ tab[:tab_data_attributes] ||= {}
24
+ if ga4_tracking
25
+ tab[:tab_data_attributes][:ga4_event] = {
26
+ event_name: "select_content",
27
+ type: "tabs",
28
+ text: tab[:label],
29
+ index: {
30
+ index_section: index + 1,
31
+ index_section_count: tabs.length,
32
+ },
33
+ }
34
+ end
35
+ %>
16
36
  <%= link_to(tab[:label],
17
37
  "##{tab[:id]}",
18
38
  class: "govuk-tabs__tab",
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("textarea")
3
+
2
4
  id ||= "textarea-#{SecureRandom.hex(4)}"
3
5
  value ||= nil
4
6
  rows ||= 5
@@ -17,6 +19,8 @@
17
19
  hint_id = "hint-#{SecureRandom.hex(4)}"
18
20
  has_error ||= error_message || error_items.any?
19
21
  error_id = "error-#{SecureRandom.hex(4)}"
22
+ right_to_left ||= false
23
+ right_to_left_help = right_to_left_help.nil? ? right_to_left : right_to_left_help
20
24
 
21
25
  shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
22
26
 
@@ -39,13 +43,17 @@
39
43
 
40
44
  <%= content_tag :div, class: form_group_css_classes do %>
41
45
  <% if label %>
42
- <%= render "govuk_publishing_components/components/label", { html_for: id }.merge(label.symbolize_keys) %>
46
+ <%= render "govuk_publishing_components/components/label", {
47
+ html_for: id,
48
+ right_to_left: right_to_left_help
49
+ }.merge(label.symbolize_keys) %>
43
50
  <% end %>
44
51
 
45
52
  <% if hint %>
46
53
  <%= render "govuk_publishing_components/components/hint", {
47
54
  id: hint_id,
48
- text: hint
55
+ text: hint,
56
+ right_to_left: right_to_left_help
49
57
  } %>
50
58
  <% end %>
51
59
 
@@ -54,11 +62,13 @@
54
62
  id: error_id,
55
63
  text: error_message,
56
64
  items: error_items,
65
+ right_to_left: right_to_left_help
57
66
  } %>
58
67
  <% end %>
59
68
 
60
69
  <%= tag.textarea name: name,
61
70
  class: css_classes,
71
+ dir: right_to_left ? "rtl" : nil,
62
72
  id: id,
63
73
  rows: rows,
64
74
  maxlength: maxlength,
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("title")
3
+
2
4
  average_title_length ||= false
3
5
 
4
6
  context ||= false
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("translation-nav")
3
+
2
4
  brand ||= false
3
5
  brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
4
6
  translation_helper = GovukPublishingComponents::Presenters::TranslationNavHelper.new(local_assigns)
@@ -1,4 +1,6 @@
1
1
  <%
2
+ add_gem_component_stylesheet("warning-text")
3
+
2
4
  id ||= "warning-text-#{SecureRandom.hex(4)}"
3
5
  text_assistive ||= 'Warning'
4
6
  text_icon ||= '!'
@@ -1,14 +1,23 @@
1
- <% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
2
- <%
1
+ <%
2
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
3
3
  title = t("components.related_navigation.ukraine.title")
4
4
  lang = shared_helper.t_locale("components.related_navigation.ukraine.title")
5
+ data_module = "gem-track-click"
6
+ data_module << " ga4-link-tracker" if ga4_tracking
5
7
  %>
6
-
7
- <%= tag.div class: "gem-c-contextual-sidebar__cta gem-c-contextual-sidebar__cta--ukraine", data: { module: "gem-track-click" } do %>
8
+ <%= tag.div class: "gem-c-contextual-sidebar__cta gem-c-contextual-sidebar__cta--ukraine", data: { module: data_module } do %>
8
9
  <%= tag.h2 title, class: "gem-c-contextual-sidebar__heading govuk-heading-s" %>
9
10
  <%= tag.ul class: "gem-c-contextual-sidebar__list" do %>
10
- <% t("components.related_navigation.ukraine.links").each do |link| %>
11
+ <% t("components.related_navigation.ukraine.links").each_with_index do |link, index| %>
11
12
  <%= tag.li class: "gem-c-contextual-sidebar__text govuk-body" do %>
13
+ <%
14
+ ga4_attributes = {
15
+ event_name: "navigation",
16
+ type: "related content",
17
+ index: "1.#{index + 1}",
18
+ section: title,
19
+ } if ga4_tracking
20
+ %>
12
21
  <%= link_to link[:label],
13
22
  link[:href],
14
23
  class: "govuk-link",
@@ -18,9 +27,10 @@
18
27
  "track-label": link[:href],
19
28
  "track-dimension": link[:label],
20
29
  "track-dimension-index": "29",
30
+ ga4_link: ga4_attributes,
21
31
  },
22
32
  lang: lang %>
23
33
  <% end %>
24
34
  <% end %>
25
- <% end %>
35
+ <% end %>
26
36
  <% end %>
@@ -34,6 +34,7 @@ accessibility_criteria: |
34
34
 
35
35
  * be fully expanded
36
36
  * not be marked as expandable
37
+ uses_component_wrapper_helper: true
37
38
  shared_accessibility_criteria:
38
39
  - link
39
40
  examples:
@@ -181,21 +182,33 @@ examples:
181
182
  <a class="govuk-link" href="#">Retiring your service</a>
182
183
  </li>
183
184
  </ul>'
185
+ with_ga4_tracking:
186
+ description: |
187
+ Allows you to add GA4 tracking to an accordion. This will add a data module and data-attributes with JSONs to the accordion. See the [ga4-event-tracker documentation](https://github.com/alphagov/govuk_publishing_components/blob/main/docs/analytics-ga4/ga4-event-tracker.md) for more information.
188
+ data:
189
+ ga4_tracking: true
190
+ items:
191
+ - heading:
192
+ text: Writing well for the web
193
+ content:
194
+ html: <p class="govuk-body">This is the content for Writing well for the web.</p>
195
+ - heading:
196
+ text: Writing well for specialists
197
+ content:
198
+ html: <p class="govuk-body">This is the content for Writing well for specialists.</p>
184
199
  with_data_attributes:
185
200
  description: |
186
201
  Adds custom data attributes to each section of the accordion. Accepts a hash, so multiple attributes can be added.
187
202
 
188
203
  The `data_attributes` option applies attributes to the outermost element in the accordion. Each item can also have a `data_attributes` hash, which are placed on the `button` that triggers the opening and closing - useful for differentiating between each section of the accordion.
189
204
 
190
- Data attributes can be added to the 'Show/hide all' link using the `data_attributes_show_all` option, primarily where custom tracking is required. These attributes are read from the accordion markup and then added to the link by JavaScript (which is how the link is created). More details on how this can be used with the GA4 event tracking can be found in the 'Advanced' section of the [event tracking documentation](https://github.com/alphagov/govuk_publishing_components/blob/main/docs/analytics-ga4/ga4-event-tracker.md).
205
+ Data attributes can be added to the 'Show/hide all' link using the `data_attributes_show_all` option, primarily where custom tracking is required. These attributes are read from the accordion markup and then added to the link by JavaScript (which is how the link is created). Currently, this is only used for tracking with Universal Analytics.
191
206
 
192
207
  If `track_options` within `data_attributes_show_all` is set, then it is possible to pass a custom dimension when 'Show/Hide all' is clicked.
193
208
  data:
194
209
  data_attributes:
195
210
  custom_data_attr: custom-data-attr-accordion
196
211
  data_attributes_show_all:
197
- custom_data_attr-event-name: example
198
- custom_data_attr-attributes: "{ 'ui': { 'type': 'type value', 'section': 'section value' } }"
199
212
  tracking-options: "{ 'dimension114': 1 }"
200
213
  items:
201
214
  - heading:
@@ -2,6 +2,7 @@ name: Action link
2
2
  description: Use action links to help users get to the next stage of a journey quickly.
3
3
  shared_accessibility_criteria:
4
4
  - link
5
+ uses_component_wrapper_helper: true
5
6
  examples:
6
7
  default:
7
8
  data:
@@ -2,7 +2,7 @@ name: "Breadcrumbs"
2
2
  description: "Navigational breadcrumbs, showing page hierarchy"
3
3
  body: |
4
4
  Accepts an array of breadcrumb objects. Each crumb must have a title and a URL.
5
- Links have tracking data but links to the homepage (any link with a url of `/`) will be tracked separately as `homeLinkClicked`.
5
+ Links are tracked, but in Universal Analytics, links to the homepage (any link with a url of `/`) will be tracked separately as `homeLinkClicked`.
6
6
 
7
7
  We recommend that if using the breadcrumbs for navigation purposes, you set `collapse_on_mobile` to `true` to make things more readable for mobile users. However, you can specify `collapse_on_mobile:``false` or remove the flag completely to stop this behaviour.
8
8
  shared_accessibility_criteria:
@@ -13,6 +13,7 @@ accessibility_criteria:
13
13
  accessibility_excluded_rules:
14
14
  - skip-link # This component is creating a reference to #content which is part of the layout
15
15
  display_html: true
16
+ uses_component_wrapper_helper: true
16
17
  examples:
17
18
  default:
18
19
  data:
@@ -129,3 +129,13 @@ examples:
129
129
  data:
130
130
  text: Button
131
131
  aria_label: Button with custom label
132
+ with_aria_controls:
133
+ description: Used to identify what element(s) the button controls, this can be useful for users with visual impairment. In the example shown, the button controls the page wrapper with ID `wrapper` but it could be another identifying attribute.
134
+ data:
135
+ text: Button
136
+ aria_controls: wrapper
137
+ with_aria_describedby:
138
+ description: Can be used to give context to a button, this will be read after aria-label by a screenreader
139
+ data:
140
+ text: Button
141
+ aria_describedby: with_aria_describedby
@@ -16,6 +16,7 @@ accessibility_criteria: |
16
16
  It is also good practise to include a heading above the list to tell users what the list contains
17
17
  shared_accessibility_criteria:
18
18
  - link
19
+ uses_component_wrapper_helper: true
19
20
  examples:
20
21
  default:
21
22
  data:
@@ -15,6 +15,7 @@ accessibility_criteria: |
15
15
  - have correctly associated labels
16
16
 
17
17
  Labels use the [label component](/component-guide/label).
18
+ uses_component_wrapper_helper: true
18
19
  examples:
19
20
  default:
20
21
  data: