govuk_publishing_components 27.10.5 → 27.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/layout-super-navigation-header.js +1 -1
  3. data/app/assets/javascripts/govuk_publishing_components/components/single-page-notification-button.js +48 -0
  4. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +6 -4
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak.scss +0 -1
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +246 -113
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_single-page-notification-button.scss +30 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_margins.scss +2 -2
  10. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_prefixed-transform.scss +5 -0
  11. data/app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss +9 -0
  12. data/app/models/govuk_publishing_components/shared_accessibility_criteria.rb +17 -0
  13. data/app/views/govuk_publishing_components/components/_input.html.erb +35 -22
  14. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +31 -43
  15. data/app/views/govuk_publishing_components/components/_metadata.html.erb +2 -0
  16. data/app/views/govuk_publishing_components/components/_search.html.erb +2 -1
  17. data/app/views/govuk_publishing_components/components/_single_page_notification_button.html.erb +17 -0
  18. data/app/views/govuk_publishing_components/components/contextual_sidebar/_brexit_cta.html.erb +4 -5
  19. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +0 -6
  20. data/app/views/govuk_publishing_components/components/docs/input.yml +10 -0
  21. data/app/views/govuk_publishing_components/components/docs/metadata.yml +7 -0
  22. data/app/views/govuk_publishing_components/components/docs/single_page_notification_button.yml +50 -0
  23. data/app/views/govuk_publishing_components/components/search/_search_icon.html.erb +5 -5
  24. data/config/locales/ar.yml +0 -3
  25. data/config/locales/az.yml +0 -3
  26. data/config/locales/be.yml +0 -3
  27. data/config/locales/bg.yml +0 -3
  28. data/config/locales/bn.yml +0 -3
  29. data/config/locales/cs.yml +0 -3
  30. data/config/locales/cy.yml +0 -3
  31. data/config/locales/da.yml +0 -3
  32. data/config/locales/de.yml +0 -3
  33. data/config/locales/dr.yml +0 -3
  34. data/config/locales/el.yml +0 -3
  35. data/config/locales/en.yml +8 -9
  36. data/config/locales/es-419.yml +0 -3
  37. data/config/locales/es.yml +0 -3
  38. data/config/locales/et.yml +0 -3
  39. data/config/locales/fa.yml +0 -3
  40. data/config/locales/fi.yml +0 -3
  41. data/config/locales/fr.yml +0 -3
  42. data/config/locales/gd.yml +0 -3
  43. data/config/locales/gu.yml +0 -3
  44. data/config/locales/he.yml +0 -3
  45. data/config/locales/hi.yml +0 -3
  46. data/config/locales/hr.yml +0 -3
  47. data/config/locales/hu.yml +0 -3
  48. data/config/locales/hy.yml +0 -3
  49. data/config/locales/id.yml +0 -3
  50. data/config/locales/is.yml +0 -3
  51. data/config/locales/it.yml +0 -3
  52. data/config/locales/ja.yml +0 -3
  53. data/config/locales/ka.yml +0 -3
  54. data/config/locales/kk.yml +0 -3
  55. data/config/locales/ko.yml +0 -3
  56. data/config/locales/lt.yml +0 -3
  57. data/config/locales/lv.yml +0 -3
  58. data/config/locales/ms.yml +0 -3
  59. data/config/locales/mt.yml +0 -3
  60. data/config/locales/nl.yml +0 -3
  61. data/config/locales/no.yml +0 -3
  62. data/config/locales/pa-pk.yml +0 -3
  63. data/config/locales/pa.yml +0 -3
  64. data/config/locales/pl.yml +0 -3
  65. data/config/locales/ps.yml +0 -3
  66. data/config/locales/pt.yml +0 -3
  67. data/config/locales/ro.yml +0 -3
  68. data/config/locales/ru.yml +0 -3
  69. data/config/locales/si.yml +0 -3
  70. data/config/locales/sk.yml +0 -3
  71. data/config/locales/sl.yml +0 -3
  72. data/config/locales/so.yml +0 -3
  73. data/config/locales/sq.yml +0 -3
  74. data/config/locales/sr.yml +0 -3
  75. data/config/locales/sv.yml +0 -3
  76. data/config/locales/sw.yml +0 -3
  77. data/config/locales/ta.yml +0 -3
  78. data/config/locales/th.yml +0 -3
  79. data/config/locales/tk.yml +0 -3
  80. data/config/locales/tr.yml +0 -3
  81. data/config/locales/uk.yml +0 -3
  82. data/config/locales/ur.yml +0 -3
  83. data/config/locales/uz.yml +0 -3
  84. data/config/locales/vi.yml +0 -3
  85. data/config/locales/zh-hk.yml +0 -3
  86. data/config/locales/zh-tw.yml +0 -3
  87. data/config/locales/zh.yml +0 -3
  88. data/lib/govuk_publishing_components/presenters/button_helper.rb +1 -0
  89. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +15 -4
  90. data/lib/govuk_publishing_components/presenters/single_page_notification_button_helper.rb +40 -0
  91. data/lib/govuk_publishing_components/version.rb +1 -1
  92. data/lib/govuk_publishing_components.rb +1 -1
  93. data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +2 -2
  94. data/node_modules/govuk-frontend/govuk/components/back-link/macro-options.json +3 -3
  95. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +3 -4
  96. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +9 -0
  97. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +6 -6
  98. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +14 -0
  99. data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +8 -8
  100. data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +1 -1
  101. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +5 -5
  102. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +2 -1
  103. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +2 -2
  104. data/node_modules/govuk-frontend/govuk/components/error-message/macro-options.json +3 -3
  105. data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +1 -1
  106. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +1 -0
  107. data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +4 -4
  108. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +3 -0
  109. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +2 -2
  110. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +6 -6
  111. data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +1 -1
  112. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +7 -7
  113. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +1 -1
  114. data/node_modules/govuk-frontend/govuk/components/label/macro-options.json +1 -1
  115. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +13 -1
  116. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +1 -1
  117. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +14 -0
  118. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +8 -8
  119. data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +3 -3
  120. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +2 -2
  121. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +7 -7
  122. data/node_modules/govuk-frontend/govuk/components/tabs/macro-options.json +4 -4
  123. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +5 -5
  124. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +2 -2
  125. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +22 -4
  126. data/node_modules/govuk-frontend/govuk/overrides/_all.scss +1 -0
  127. data/node_modules/govuk-frontend/govuk/overrides/_text-align.scss +20 -0
  128. data/node_modules/govuk-frontend/package.json +1 -1
  129. metadata +9 -18
  130. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_summary.scss +0 -27
  131. data/lib/govuk_publishing_components/presenters/brexit_cta_helper.rb +0 -33
@@ -166,9 +166,6 @@ fi:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ fr:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ gd:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ gu:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ he:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ hi:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ hr:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ hu:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ hy:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ id:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ is:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ it:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ja:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ka:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ kk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ko:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ lt:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ lv:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ms:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ mt:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ nl:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ pa-pk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ pa:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ pl:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ps:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ pt:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ro:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ru:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ si:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sl:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ so:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sq:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sr:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sv:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ sw:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ta:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ th:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ tk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ tr:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ uk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ ur:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ uz:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ vi:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ zh-hk:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ zh-tw:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -166,9 +166,6 @@ zh:
166
166
  topical_events:
167
167
  topics:
168
168
  transition:
169
- hub_page_link_path:
170
- hub_page_link_text:
171
- hub_page_title:
172
169
  link_path:
173
170
  link_text:
174
171
  title:
@@ -66,6 +66,7 @@ module GovukPublishingComponents
66
66
  options[:name] = name if name.present? && value.present?
67
67
  options[:value] = value if name.present? && value.present?
68
68
  options[:aria] = { label: aria_label } if aria_label
69
+ options[:draggable] = false if link?
69
70
  options
70
71
  end
71
72
 
@@ -111,10 +111,10 @@ module GovukPublishingComponents
111
111
  def show_brexit_related_links?
112
112
  # If tagged directly to /brexit or /world/brexit
113
113
  # Or if tagged to a taxon which has /brexit as a parent
114
- # And is not the brexit checker start page
115
- brexit_start_page_content_id = "58d093a1-787d-4f36-a568-86da23a7b884"
116
- page_content_id = content_item["content_id"]
117
- tagged_to_brexit? && (page_content_id != brexit_start_page_content_id)
114
+ # And is not the brexit hub pages
115
+ return false if brexit_hub_pages.include?(content_item["content_id"])
116
+
117
+ tagged_to_brexit?
118
118
  end
119
119
 
120
120
  def brexit_cta_document_exceptions
@@ -179,6 +179,17 @@ module GovukPublishingComponents
179
179
  4ca8698b-4a24-45ff-baea-7633cc24b679
180
180
  ed73581f-9bf8-48b5-bb66-935581a255e3
181
181
  15f1c594-af1d-4f16-97cc-ad4d12017509
182
+ ] + brexit_hub_pages
183
+ end
184
+
185
+ # we don't want to show the standard Brexit sidebar nav on
186
+ # https://www.gov.uk/guidance/brexit-guidance-for-individuals-and-families or
187
+ # https://www.gov.uk/guidance/brexit-guidance-for-businesses
188
+ # as it might result in circular journeys
189
+ def brexit_hub_pages
190
+ %w[
191
+ 91cd6143-69d5-4f27-99ff-a52fb0d51c78
192
+ 6555e0bf-c270-4cf9-a0c5-d20b95fab7f1
182
193
  ]
183
194
  end
184
195
 
@@ -0,0 +1,40 @@
1
+ module GovukPublishingComponents
2
+ module Presenters
3
+ class SinglePageNotificationButtonHelper
4
+ attr_reader :already_subscribed, :data_attributes, :base_path, :js_enhancement, :button_type, :button_location
5
+
6
+ def initialize(local_assigns)
7
+ @local_assigns = local_assigns
8
+ @data_attributes = @local_assigns[:data_attributes] || {}
9
+ @js_enhancement = @local_assigns[:js_enhancement] || false
10
+ @already_subscribed = @local_assigns[:already_subscribed] || false
11
+ @base_path = @local_assigns[:base_path] || nil
12
+ @button_location = button_location_is_valid? ? @local_assigns[:button_location] : nil
13
+ @button_type = @local_assigns[:already_subscribed] ? "Unsubscribe" : "Subscribe"
14
+ end
15
+
16
+ def data
17
+ module_names = %w[gem-track-click]
18
+ module_names << "single-page-notification-button" if js_enhancement
19
+
20
+ @data_attributes[:label] = base_path
21
+ # data-action for tracking should have the format of e.g. "Unsubscribe-button-top", or "Subscribe-button-bottom"
22
+ # when button_location is not present data-action will fall back to "Unsubscribe-button"/"Subscribe-button"
23
+ @data_attributes[:action] = [button_type, "button", button_location].compact.join("-")
24
+ @data_attributes[:module] = module_names.join(" ")
25
+ @data_attributes[:category] = "Single-page-notification-button"
26
+ # This attribute is passed through to the personalisation API to ensure when a new button is returned from the API, it has the same button_location
27
+ @data_attributes[:button_location] = button_location
28
+ @data_attributes
29
+ end
30
+
31
+ def button_location_is_valid?
32
+ %w[bottom top].include? @local_assigns[:button_location]
33
+ end
34
+
35
+ def button_text
36
+ @already_subscribed ? I18n.t("components.single_page_notification_button.unsubscribe_text") : I18n.t("components.single_page_notification_button.subscribe_text")
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "27.10.5".freeze
2
+ VERSION = "27.14.0".freeze
3
3
  end
@@ -8,7 +8,6 @@ require "govuk_publishing_components/presenters/shared_helper"
8
8
  require "govuk_publishing_components/presenters/attachment"
9
9
  require "govuk_publishing_components/presenters/breadcrumbs"
10
10
  require "govuk_publishing_components/presenters/breadcrumb_selector"
11
- require "govuk_publishing_components/presenters/brexit_cta_helper"
12
11
  require "govuk_publishing_components/presenters/button_helper"
13
12
  require "govuk_publishing_components/presenters/contextual_navigation"
14
13
  require "govuk_publishing_components/presenters/devolved_nations_helper"
@@ -34,6 +33,7 @@ require "govuk_publishing_components/presenters/intervention_helper"
34
33
  require "govuk_publishing_components/presenters/organisation_logo_helper"
35
34
  require "govuk_publishing_components/presenters/highlight_boxes_helper"
36
35
  require "govuk_publishing_components/presenters/taxonomy_list_helper"
36
+ require "govuk_publishing_components/presenters/single_page_notification_button_helper"
37
37
 
38
38
  require "govuk_publishing_components/app_helpers/taxon_breadcrumbs"
39
39
  require "govuk_publishing_components/app_helpers/table_helper"
@@ -3,13 +3,13 @@
3
3
  "name": "id",
4
4
  "type": "string",
5
5
  "required": true,
6
- "description": "Must be **unique** across the domain of your service (as the expanded state of individual instances of the component persists across page loads using [`sessionStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)). Used as an `id` in the HTML for the accordion as a whole, and also as a prefix for the `id`s of the section contents and the buttons that open them, so that those `id`s can be the target of `aria-labelledby` and `aria-control` attributes."
6
+ "description": "Must be unique across the domain of your service (as the expanded state of individual instances of the component persists across page loads using [`sessionStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)). Used as an `id` in the HTML for the accordion as a whole, and also as a prefix for the `id`s of the section contents and the buttons that open them, so that those `id`s can be the target of `aria-labelledby` and `aria-control` attributes."
7
7
  },
8
8
  {
9
9
  "name": "headingLevel",
10
10
  "type": "integer",
11
11
  "required": false,
12
- "description": "Heading level, from 1 to 6. Default is `2`."
12
+ "description": "Heading level, from `1` to `6`. Default is `2`."
13
13
  },
14
14
  {
15
15
  "name": "classes",