defra_ruby_template 3.15.1 → 5.4.1

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 (1303) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +4 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +16 -1
  6. data/Rakefile +44 -24
  7. data/app/views/layouts/defra_ruby_template.html.erb +12 -17
  8. data/lib/defra_ruby_template/version.rb +1 -1
  9. data/lib/defra_ruby_template.rb +3 -8
  10. data/node_modules/.package-lock.json +3 -3
  11. data/node_modules/govuk-frontend/README.md +14 -13
  12. data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
  13. data/node_modules/govuk-frontend/dist/govuk/_base.scss.map +1 -0
  14. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2457 -0
  15. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -0
  16. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2435 -0
  17. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -0
  18. data/node_modules/govuk-frontend/dist/govuk/all.mjs +15 -0
  19. data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -0
  20. data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
  21. data/node_modules/govuk-frontend/dist/govuk/all.scss.map +1 -0
  22. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
  23. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  24. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  25. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
  26. data/node_modules/govuk-frontend/dist/govuk/assets/manifest.json +39 -0
  27. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
  28. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs.map +1 -0
  29. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
  30. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs.map +1 -0
  31. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +139 -0
  32. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs.map +1 -0
  33. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
  34. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map +1 -0
  35. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
  36. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map +1 -0
  37. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
  38. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss.map +1 -0
  39. data/node_modules/govuk-frontend/dist/govuk/components/_index.scss +39 -0
  40. data/node_modules/govuk-frontend/dist/govuk/components/_index.scss.map +1 -0
  41. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
  42. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss.map +1 -0
  43. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +366 -0
  44. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss.map +1 -0
  45. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +729 -0
  46. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -0
  47. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +721 -0
  48. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -0
  49. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +368 -0
  50. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs.map +1 -0
  51. data/node_modules/govuk-frontend/dist/govuk/components/accordion/fixtures.json +359 -0
  52. data/node_modules/govuk-frontend/dist/govuk/components/accordion/macro-options.json +142 -0
  53. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-default.html +30 -0
  54. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-additional-descriptions.html +39 -0
  55. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-all-sections-already-open.html +30 -0
  56. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-focusable-elements-inside.html +26 -0
  57. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-long-content-and-description.html +36 -0
  58. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-one-section-open.html +30 -0
  59. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-translations.html +30 -0
  60. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template.njk +67 -0
  61. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
  62. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss.map +1 -0
  63. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss +83 -0
  64. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss.map +1 -0
  65. data/node_modules/govuk-frontend/dist/govuk/components/back-link/fixtures.json +87 -0
  66. data/node_modules/govuk-frontend/dist/govuk/components/back-link/macro-options.json +32 -0
  67. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-default.html +1 -0
  68. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-inverse.html +1 -0
  69. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-with-custom-text.html +1 -0
  70. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template.njk +6 -0
  71. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
  72. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss.map +1 -0
  73. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +134 -0
  74. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss.map +1 -0
  75. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/fixtures.json +240 -0
  76. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/macro-options.json +52 -0
  77. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-default.html +10 -0
  78. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-inverse.html +11 -0
  79. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-collapse-on-mobile.html +13 -0
  80. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-last-breadcrumb-as-current-page.html +11 -0
  81. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-multiple-levels.html +16 -0
  82. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-one-level.html +7 -0
  83. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-without-the-home-section.html +10 -0
  84. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template.njk +30 -0
  85. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
  86. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss.map +1 -0
  87. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +262 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss.map +1 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +252 -0
  90. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js.map +1 -0
  91. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +244 -0
  92. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs.map +1 -0
  93. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +83 -0
  94. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs.map +1 -0
  95. data/node_modules/govuk-frontend/dist/govuk/components/button/fixtures.json +474 -0
  96. data/node_modules/govuk-frontend/dist/govuk/components/button/macro-options.json +80 -0
  97. data/node_modules/govuk-frontend/dist/govuk/components/button/template-default.html +3 -0
  98. data/node_modules/govuk-frontend/dist/govuk/components/button/template-disabled.html +3 -0
  99. data/node_modules/govuk-frontend/dist/govuk/components/button/template-input-disabled.html +1 -0
  100. data/node_modules/govuk-frontend/dist/govuk/components/button/template-input.html +1 -0
  101. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-disabled.html +3 -0
  102. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-link.html +3 -0
  103. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-start.html +6 -0
  104. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse.html +3 -0
  105. data/node_modules/govuk-frontend/dist/govuk/components/button/template-link.html +3 -0
  106. data/node_modules/govuk-frontend/dist/govuk/components/button/template-prevent-double-click.html +3 -0
  107. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-disabled.html +3 -0
  108. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-link.html +3 -0
  109. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary.html +3 -0
  110. data/node_modules/govuk-frontend/dist/govuk/components/button/template-start-link.html +6 -0
  111. data/node_modules/govuk-frontend/dist/govuk/components/button/template-start.html +6 -0
  112. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-disabled.html +3 -0
  113. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-link.html +3 -0
  114. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning.html +3 -0
  115. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-active-state.html +3 -0
  116. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-focus-state.html +3 -0
  117. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-hover-state.html +3 -0
  118. data/node_modules/govuk-frontend/dist/govuk/components/button/template.njk +58 -0
  119. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
  120. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss.map +1 -0
  121. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +36 -0
  122. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss.map +1 -0
  123. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +695 -0
  124. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -0
  125. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +687 -0
  126. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -0
  127. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +304 -0
  128. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -0
  129. data/node_modules/govuk-frontend/dist/govuk/components/character-count/fixtures.json +398 -0
  130. data/node_modules/govuk-frontend/dist/govuk/components/character-count/macro-options.json +199 -0
  131. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-default.html +9 -0
  132. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-rows.html +9 -0
  133. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-textarea-description.html +9 -0
  134. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value-exceeding-limit.html +15 -0
  135. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value.html +12 -0
  136. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-hint.html +12 -0
  137. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-label-as-page-heading.html +11 -0
  138. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-threshold.html +9 -0
  139. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-translations.html +9 -0
  140. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-word-count.html +9 -0
  141. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template.njk +120 -0
  142. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
  143. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss.map +1 -0
  144. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss +306 -0
  145. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss.map +1 -0
  146. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +202 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js.map +1 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +194 -0
  149. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs.map +1 -0
  150. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +120 -0
  151. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs.map +1 -0
  152. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/fixtures.json +1411 -0
  153. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/macro-options.json +229 -0
  154. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-default.html +22 -0
  155. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-conditional-reveal.html +25 -0
  156. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-disabled.html +27 -0
  157. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-error.html +30 -0
  158. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-hint.html +30 -0
  159. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-long-text.html +27 -0
  160. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small.html +27 -0
  161. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-a-medium-legend.html +33 -0
  162. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-item-checked.html +39 -0
  163. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items-with-special-characters.html +39 -0
  164. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items.html +39 -0
  165. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-disabled-item.html +29 -0
  166. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-and-none.html +36 -0
  167. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-none-and-conditional-items.html +46 -0
  168. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message-and-hints-on-items.html +39 -0
  169. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message.html +30 -0
  170. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-fieldset-and-error-message.html +30 -0
  171. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-hints-on-items.html +29 -0
  172. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-id-and-name.html +30 -0
  173. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-legend-as-a-page-heading.html +32 -0
  174. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-optional-form-group-classes-showing-group-error.html +40 -0
  175. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-pre-checked-values.html +30 -0
  176. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-and-hint-set-aria-describedby-on-input.html +16 -0
  177. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-set-aria-describedby-on-input.html +13 -0
  178. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-very-long-option-text.html +33 -0
  179. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-without-fieldset.html +22 -0
  180. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template.njk +122 -0
  181. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
  182. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss.map +1 -0
  183. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss +50 -0
  184. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss.map +1 -0
  185. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/fixtures.json +520 -0
  186. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/macro-options.json +132 -0
  187. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-accepted-confirmation-banner.html +19 -0
  188. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-client-side-implementation.html +60 -0
  189. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-default.html +26 -0
  190. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-rejected-confirmation-banner.html +19 -0
  191. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-with-html.html +27 -0
  192. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template.njk +57 -0
  193. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
  194. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss.map +1 -0
  195. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss +28 -0
  196. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss.map +1 -0
  197. data/node_modules/govuk-frontend/dist/govuk/components/date-input/fixtures.json +657 -0
  198. data/node_modules/govuk-frontend/dist/govuk/components/date-input/macro-options.json +163 -0
  199. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-complete-question.html +36 -0
  200. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-day-and-month.html +28 -0
  201. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-default.html +28 -0
  202. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-month-and-year.html +28 -0
  203. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-autocomplete-values.html +36 -0
  204. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-default-items.html +36 -0
  205. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-day-input.html +39 -0
  206. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-month-input.html +39 -0
  207. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-year-input.html +39 -0
  208. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-and-hint.html +39 -0
  209. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-only.html +36 -0
  210. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-input-attributes.html +36 -0
  211. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-optional-form-group-classes.html +36 -0
  212. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template.njk +106 -0
  213. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
  214. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss.map +1 -0
  215. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +134 -0
  216. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss.map +1 -0
  217. data/node_modules/govuk-frontend/dist/govuk/components/details/fixtures.json +123 -0
  218. data/node_modules/govuk-frontend/dist/govuk/components/details/implementation.md +87 -0
  219. data/node_modules/govuk-frontend/dist/govuk/components/details/macro-options.json +56 -0
  220. data/node_modules/govuk-frontend/dist/govuk/components/details/template-default.html +10 -0
  221. data/node_modules/govuk-frontend/dist/govuk/components/details/template-expanded.html +10 -0
  222. data/node_modules/govuk-frontend/dist/govuk/components/details/template-with-html.html +18 -0
  223. data/node_modules/govuk-frontend/dist/govuk/components/details/template.njk +14 -0
  224. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
  225. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss.map +1 -0
  226. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss +14 -0
  227. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss.map +1 -0
  228. data/node_modules/govuk-frontend/dist/govuk/components/error-message/fixtures.json +104 -0
  229. data/node_modules/govuk-frontend/dist/govuk/components/error-message/macro-options.json +38 -0
  230. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-default.html +3 -0
  231. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-translated.html +3 -0
  232. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template.njk +13 -0
  233. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
  234. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss.map +1 -0
  235. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss +52 -0
  236. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss.map +1 -0
  237. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +312 -0
  238. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js.map +1 -0
  239. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +304 -0
  240. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs.map +1 -0
  241. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +113 -0
  242. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs.map +1 -0
  243. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/fixtures.json +307 -0
  244. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/macro-options.json +82 -0
  245. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-default.html +17 -0
  246. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-mixed-with-and-without-links.html +17 -0
  247. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-description-only.html +12 -0
  248. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-everything.html +20 -0
  249. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-without-links.html +14 -0
  250. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template.njk +37 -0
  251. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/README.md +15 -0
  252. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
  253. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss.map +1 -0
  254. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss +92 -0
  255. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss.map +1 -0
  256. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +596 -0
  257. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -0
  258. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +588 -0
  259. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -0
  260. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +235 -0
  261. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs.map +1 -0
  262. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/fixtures.json +58 -0
  263. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro-options.json +62 -0
  264. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro.njk +3 -0
  265. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-default.html +5 -0
  266. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-translated.html +5 -0
  267. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template.njk +25 -0
  268. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
  269. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss.map +1 -0
  270. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss +71 -0
  271. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss.map +1 -0
  272. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/fixtures.json +242 -0
  273. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/macro-options.json +70 -0
  274. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-l.html +7 -0
  275. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-m.html +7 -0
  276. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-s.html +7 -0
  277. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-without-class.html +7 -0
  278. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-xl.html +7 -0
  279. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-default.html +5 -0
  280. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-large-text.html +5 -0
  281. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-medium-text.html +5 -0
  282. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-small-text.html +5 -0
  283. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-xl-text.html +5 -0
  284. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template.njk +24 -0
  285. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
  286. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss.map +1 -0
  287. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +52 -0
  288. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss.map +1 -0
  289. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/fixtures.json +225 -0
  290. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/macro-options.json +125 -0
  291. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-default.html +6 -0
  292. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-error-message-and-hint.html +12 -0
  293. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-hint-text.html +9 -0
  294. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-label-as-page-heading.html +8 -0
  295. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-optional-form-group-classes.html +6 -0
  296. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-value.html +6 -0
  297. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template.njk +53 -0
  298. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
  299. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss.map +1 -0
  300. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +152 -0
  301. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss.map +1 -0
  302. data/node_modules/govuk-frontend/dist/govuk/components/footer/fixtures.json +691 -0
  303. data/node_modules/govuk-frontend/dist/govuk/components/footer/macro-options.json +164 -0
  304. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-default.html +38 -0
  305. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-full-gds-example.html +212 -0
  306. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-three-equal-columns.html +146 -0
  307. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-html-content-licence-and-copyright-notice.html +33 -0
  308. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-meta.html +42 -0
  309. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-text-content-licence-and-copyright-notice.html +33 -0
  310. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-one-column.html +76 -0
  311. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-two-columns.html +76 -0
  312. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta-links-and-meta-content.html +84 -0
  313. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta.html +56 -0
  314. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-navigation.html +96 -0
  315. data/node_modules/govuk-frontend/dist/govuk/components/footer/template.njk +97 -0
  316. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
  317. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss.map +1 -0
  318. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +346 -0
  319. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss.map +1 -0
  320. data/node_modules/govuk-frontend/dist/govuk/components/header/fixtures.json +504 -0
  321. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +186 -0
  322. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +1 -0
  323. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +178 -0
  324. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +1 -0
  325. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +97 -0
  326. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs.map +1 -0
  327. data/node_modules/govuk-frontend/dist/govuk/components/header/macro-options.json +112 -0
  328. data/node_modules/govuk-frontend/dist/govuk/components/header/template-default.html +21 -0
  329. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width-with-navigation.html +49 -0
  330. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width.html +24 -0
  331. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-html.html +49 -0
  332. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-text-without-link.html +43 -0
  333. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-label.html +51 -0
  334. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-text.html +51 -0
  335. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-navigation-label.html +51 -0
  336. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-large-navigation.html +111 -0
  337. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-navigation.html +51 -0
  338. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-product-name.html +24 -0
  339. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-and-navigation.html +54 -0
  340. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-but-no-service-url.html +26 -0
  341. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name.html +26 -0
  342. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-st-edwards-crown.html +21 -0
  343. data/node_modules/govuk-frontend/dist/govuk/components/header/template.njk +96 -0
  344. data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss +4 -0
  345. data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss.map +1 -0
  346. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss +45 -0
  347. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss.map +1 -0
  348. data/node_modules/govuk-frontend/dist/govuk/components/hint/fixtures.json +71 -0
  349. data/node_modules/govuk-frontend/dist/govuk/components/hint/macro-options.json +32 -0
  350. data/node_modules/govuk-frontend/dist/govuk/components/hint/template-default.html +5 -0
  351. data/node_modules/govuk-frontend/dist/govuk/components/hint/template-with-html.html +4 -0
  352. data/node_modules/govuk-frontend/dist/govuk/components/hint/template.njk +6 -0
  353. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +165 -0
  354. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss.map +1 -0
  355. data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss +4 -0
  356. data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss.map +1 -0
  357. data/node_modules/govuk-frontend/dist/govuk/components/input/fixtures.json +781 -0
  358. data/node_modules/govuk-frontend/dist/govuk/components/input/macro-options.json +245 -0
  359. data/node_modules/govuk-frontend/dist/govuk/components/input/template-default.html +6 -0
  360. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocapitalize-turned-off.html +6 -0
  361. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocomplete-attribute.html +6 -0
  362. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-error-message.html +12 -0
  363. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-extra-letter-spacing.html +6 -0
  364. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-hint-text.html +9 -0
  365. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-label-as-page-heading.html +8 -0
  366. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-optional-form-group-classes.html +6 -0
  367. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-pattern-attribute.html +6 -0
  368. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-long-suffix.html +10 -0
  369. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-error.html +13 -0
  370. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-width-modifier.html +10 -0
  371. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix.html +10 -0
  372. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix.html +9 -0
  373. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-disabled.html +6 -0
  374. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-enabled.html +6 -0
  375. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-suffix.html +9 -0
  376. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-10-class.html +9 -0
  377. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-2-class.html +9 -0
  378. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-20-class.html +9 -0
  379. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-3-class.html +9 -0
  380. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-30-class.html +9 -0
  381. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-4-class.html +9 -0
  382. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-5-class.html +9 -0
  383. data/node_modules/govuk-frontend/dist/govuk/components/input/template.njk +132 -0
  384. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss +26 -0
  385. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss.map +1 -0
  386. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
  387. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss.map +1 -0
  388. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/fixtures.json +70 -0
  389. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/macro-options.json +38 -0
  390. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-default.html +3 -0
  391. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-with-html.html +11 -0
  392. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template.njk +6 -0
  393. data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss +46 -0
  394. data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss.map +1 -0
  395. data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss +4 -0
  396. data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss.map +1 -0
  397. data/node_modules/govuk-frontend/dist/govuk/components/label/fixtures.json +193 -0
  398. data/node_modules/govuk-frontend/dist/govuk/components/label/macro-options.json +38 -0
  399. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-l.html +5 -0
  400. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-m.html +5 -0
  401. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-s.html +5 -0
  402. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-without-class.html +5 -0
  403. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-xl.html +5 -0
  404. data/node_modules/govuk-frontend/dist/govuk/components/label/template-default.html +3 -0
  405. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-large-text.html +3 -0
  406. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-medium-text.html +3 -0
  407. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-small-text.html +3 -0
  408. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-xl-text.html +3 -0
  409. data/node_modules/govuk-frontend/dist/govuk/components/label/template-with-bold-text.html +3 -0
  410. data/node_modules/govuk-frontend/dist/govuk/components/label/template.njk +19 -0
  411. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +92 -0
  412. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss.map +1 -0
  413. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
  414. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss.map +1 -0
  415. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/fixtures.json +270 -0
  416. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/macro-options.json +74 -0
  417. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +254 -0
  418. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js.map +1 -0
  419. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +246 -0
  420. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs.map +1 -0
  421. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +61 -0
  422. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs.map +1 -0
  423. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-disabled-with-type-as-success.html +12 -0
  424. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-explicitly-enabled-with-type-as-success.html +12 -0
  425. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-custom-tabindex.html +12 -0
  426. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-default.html +12 -0
  427. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-paragraph-as-html-heading.html +10 -0
  428. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-rolealert-overridden-to-roleregion-with-type-as-success.html +12 -0
  429. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-success-with-custom-html.html +16 -0
  430. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-a-list.html +16 -0
  431. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-long-heading.html +12 -0
  432. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-lots-of-content.html +19 -0
  433. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-text-as-html.html +15 -0
  434. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-type-as-success.html +12 -0
  435. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template.njk +49 -0
  436. data/node_modules/govuk-frontend/dist/govuk/components/pagination/README.md +15 -0
  437. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +241 -0
  438. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss.map +1 -0
  439. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
  440. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss.map +1 -0
  441. data/node_modules/govuk-frontend/dist/govuk/components/pagination/fixtures.json +396 -0
  442. data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro-options.json +140 -0
  443. data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro.njk +3 -0
  444. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-default.html +39 -0
  445. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-first-page.html +29 -0
  446. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-last-page.html +29 -0
  447. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-accessible-labels-on-item-links.html +39 -0
  448. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-link-and-item-text.html +39 -0
  449. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-navigation-landmark.html +39 -0
  450. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-many-pages.html +65 -0
  451. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-next-only.html +12 -0
  452. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-labels.html +26 -0
  453. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-very-long-labels.html +26 -0
  454. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-in-a-different-language.html +22 -0
  455. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only.html +22 -0
  456. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-previous-only.html +12 -0
  457. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template.njk +85 -0
  458. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +54 -0
  459. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss.map +1 -0
  460. data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss +4 -0
  461. data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss.map +1 -0
  462. data/node_modules/govuk-frontend/dist/govuk/components/panel/fixtures.json +109 -0
  463. data/node_modules/govuk-frontend/dist/govuk/components/panel/macro-options.json +50 -0
  464. data/node_modules/govuk-frontend/dist/govuk/components/panel/template-custom-heading-level.html +8 -0
  465. data/node_modules/govuk-frontend/dist/govuk/components/panel/template-default.html +8 -0
  466. data/node_modules/govuk-frontend/dist/govuk/components/panel/template.njk +16 -0
  467. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +54 -0
  468. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss.map +1 -0
  469. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
  470. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss.map +1 -0
  471. data/node_modules/govuk-frontend/dist/govuk/components/password-input/fixtures.json +185 -0
  472. data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro-options.json +181 -0
  473. data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro.njk +3 -0
  474. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +528 -0
  475. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -0
  476. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +520 -0
  477. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -0
  478. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +163 -0
  479. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs.map +1 -0
  480. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-default.html +11 -0
  481. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-error-message.html +17 -0
  482. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-hint-text.html +14 -0
  483. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-input-width-class.html +11 -0
  484. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-label-as-page-heading.html +13 -0
  485. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-new-password-autocomplete.html +11 -0
  486. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-translations.html +11 -0
  487. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template.njk +91 -0
  488. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +44 -0
  489. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss.map +1 -0
  490. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
  491. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss.map +1 -0
  492. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/fixtures.json +90 -0
  493. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/macro-options.json +33 -0
  494. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template-default.html +10 -0
  495. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template.njk +17 -0
  496. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +326 -0
  497. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss.map +1 -0
  498. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
  499. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss.map +1 -0
  500. data/node_modules/govuk-frontend/dist/govuk/components/radios/fixtures.json +1403 -0
  501. data/node_modules/govuk-frontend/dist/govuk/components/radios/macro-options.json +211 -0
  502. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +179 -0
  503. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js.map +1 -0
  504. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +171 -0
  505. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs.map +1 -0
  506. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +97 -0
  507. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs.map +1 -0
  508. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-default.html +19 -0
  509. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-inline.html +24 -0
  510. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked-using-value.html +16 -0
  511. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked.html +19 -0
  512. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline-extreme.html +69 -0
  513. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline.html +27 -0
  514. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-a-divider.html +28 -0
  515. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-conditional-reveal.html +31 -0
  516. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-disabled.html +27 -0
  517. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-error.html +30 -0
  518. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-hint.html +30 -0
  519. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-long-text.html +27 -0
  520. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small.html +27 -0
  521. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-divider.html +28 -0
  522. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-medium-legend.html +24 -0
  523. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-item-checked.html +39 -0
  524. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-and-pre-checked-value.html +39 -0
  525. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-with-special-characters.html +39 -0
  526. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items.html +39 -0
  527. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-disabled.html +29 -0
  528. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-fieldset-and-error-message.html +24 -0
  529. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-hints-on-items.html +29 -0
  530. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-idprefix.html +16 -0
  531. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-legend-as-page-heading.html +26 -0
  532. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-optional-form-group-classes-showing-group-error.html +40 -0
  533. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-very-long-option-text.html +33 -0
  534. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-without-fieldset.html +22 -0
  535. data/node_modules/govuk-frontend/dist/govuk/components/radios/template.njk +115 -0
  536. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +59 -0
  537. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss.map +1 -0
  538. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
  539. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss.map +1 -0
  540. data/node_modules/govuk-frontend/dist/govuk/components/select/fixtures.json +532 -0
  541. data/node_modules/govuk-frontend/dist/govuk/components/select/macro-options.json +163 -0
  542. data/node_modules/govuk-frontend/dist/govuk/components/select/template-default.html +10 -0
  543. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-full-width-override.html +10 -0
  544. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-hint-text-and-error-message.html +16 -0
  545. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-label-as-page-heading.html +12 -0
  546. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-no-items.html +7 -0
  547. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-optional-form-group-classes.html +10 -0
  548. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-selected-value.html +10 -0
  549. data/node_modules/govuk-frontend/dist/govuk/components/select/template.njk +66 -0
  550. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss +50 -0
  551. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss.map +1 -0
  552. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
  553. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss.map +1 -0
  554. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/fixtures.json +104 -0
  555. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/macro-options.json +32 -0
  556. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +177 -0
  557. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js.map +1 -0
  558. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +169 -0
  559. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs.map +1 -0
  560. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +66 -0
  561. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs.map +1 -0
  562. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-default.html +1 -0
  563. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-with-focus.html +1 -0
  564. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template.njk +6 -0
  565. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +277 -0
  566. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss.map +1 -0
  567. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
  568. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss.map +1 -0
  569. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/fixtures.json +1591 -0
  570. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/macro-options.json +248 -0
  571. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-custom-header-level.html +28 -0
  572. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-html-header.html +28 -0
  573. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-text-header.html +28 -0
  574. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions-plus-summary-list-actions.html +49 -0
  575. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions.html +36 -0
  576. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-check-your-answers.html +98 -0
  577. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-default.html +35 -0
  578. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-extreme.html +261 -0
  579. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border-on-last-row.html +35 -0
  580. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border.html +35 -0
  581. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-overridden-widths.html +58 -0
  582. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-translated.html +51 -0
  583. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-actions.html +58 -0
  584. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-no-first-action.html +58 -0
  585. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-some-actions.html +45 -0
  586. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template.njk +94 -0
  587. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +75 -0
  588. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss.map +1 -0
  589. data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss +4 -0
  590. data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss.map +1 -0
  591. data/node_modules/govuk-frontend/dist/govuk/components/table/fixtures.json +630 -0
  592. data/node_modules/govuk-frontend/dist/govuk/components/table/macro-options.json +132 -0
  593. data/node_modules/govuk-frontend/dist/govuk/components/table/template-default.html +19 -0
  594. data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head-and-caption.html +27 -0
  595. data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head.html +26 -0
  596. data/node_modules/govuk-frontend/dist/govuk/components/table/template-with-small-text-modifier-for-tables-with-a-lot-of-data.html +19 -0
  597. data/node_modules/govuk-frontend/dist/govuk/components/table/template.njk +57 -0
  598. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +134 -0
  599. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss.map +1 -0
  600. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss +4 -0
  601. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss.map +1 -0
  602. data/node_modules/govuk-frontend/dist/govuk/components/tabs/fixtures.json +314 -0
  603. data/node_modules/govuk-frontend/dist/govuk/components/tabs/macro-options.json +84 -0
  604. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +391 -0
  605. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js.map +1 -0
  606. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +383 -0
  607. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs.map +1 -0
  608. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +296 -0
  609. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs.map +1 -0
  610. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-default.html +117 -0
  611. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-tabs-with-anchor-in-panel.html +26 -0
  612. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template.njk +48 -0
  613. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +94 -0
  614. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss.map +1 -0
  615. data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss +4 -0
  616. data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss.map +1 -0
  617. data/node_modules/govuk-frontend/dist/govuk/components/tag/fixtures.json +159 -0
  618. data/node_modules/govuk-frontend/dist/govuk/components/tag/macro-options.json +26 -0
  619. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-blue.html +3 -0
  620. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-default.html +3 -0
  621. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-green.html +3 -0
  622. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-grey.html +3 -0
  623. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-light-blue.html +3 -0
  624. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-orange.html +3 -0
  625. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-pink.html +3 -0
  626. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-purple.html +3 -0
  627. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-red.html +3 -0
  628. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-turquoise.html +3 -0
  629. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-yellow.html +3 -0
  630. data/node_modules/govuk-frontend/dist/govuk/components/tag/template.njk +6 -0
  631. data/node_modules/govuk-frontend/dist/govuk/components/task-list/README.md +15 -0
  632. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +77 -0
  633. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss.map +1 -0
  634. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
  635. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss.map +1 -0
  636. data/node_modules/govuk-frontend/dist/govuk/components/task-list/fixtures.json +542 -0
  637. data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro-options.json +119 -0
  638. data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro.njk +3 -0
  639. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-default.html +37 -0
  640. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-3-states.html +49 -0
  641. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-all-possible-colours.html +143 -0
  642. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-hint-text-and-additional-states.html +77 -0
  643. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-very-long-single-word-tags.html +37 -0
  644. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template.njk +41 -0
  645. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +50 -0
  646. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss.map +1 -0
  647. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
  648. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss.map +1 -0
  649. data/node_modules/govuk-frontend/dist/govuk/components/textarea/fixtures.json +285 -0
  650. data/node_modules/govuk-frontend/dist/govuk/components/textarea/macro-options.json +143 -0
  651. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-default.html +6 -0
  652. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-autocomplete-attribute.html +6 -0
  653. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-custom-rows.html +6 -0
  654. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-default-value.html +9 -0
  655. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-error-message.html +9 -0
  656. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-hint.html +9 -0
  657. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-label-as-page-heading.html +8 -0
  658. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-optional-form-group-classes.html +6 -0
  659. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-disabled.html +6 -0
  660. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-enabled.html +6 -0
  661. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template.njk +54 -0
  662. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +65 -0
  663. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss.map +1 -0
  664. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
  665. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss.map +1 -0
  666. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/fixtures.json +93 -0
  667. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/macro-options.json +32 -0
  668. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-default.html +7 -0
  669. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-multiple-lines.html +7 -0
  670. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template.njk +10 -0
  671. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
  672. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss.map +1 -0
  673. data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss +20 -0
  674. data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss.map +1 -0
  675. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
  676. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss.map +1 -0
  677. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss +8 -0
  678. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss.map +1 -0
  679. data/node_modules/govuk-frontend/dist/govuk/core/_links.scss +42 -0
  680. data/node_modules/govuk-frontend/dist/govuk/core/_links.scss.map +1 -0
  681. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss +67 -0
  682. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss.map +1 -0
  683. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss +51 -0
  684. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss.map +1 -0
  685. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +189 -0
  686. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss.map +1 -0
  687. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +44 -0
  688. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs.map +1 -0
  689. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +16 -0
  690. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs.map +1 -0
  691. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +3 -0
  692. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -0
  693. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
  694. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -0
  695. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
  696. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss.map +1 -0
  697. data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss +17 -0
  698. data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss.map +1 -0
  699. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +91 -0
  700. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss.map +1 -0
  701. data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss +38 -0
  702. data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss.map +1 -0
  703. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +49 -0
  704. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss.map +1 -0
  705. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
  706. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss.map +1 -0
  707. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss +63 -0
  708. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss.map +1 -0
  709. data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss +14 -0
  710. data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss.map +1 -0
  711. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +391 -0
  712. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss.map +1 -0
  713. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss +82 -0
  714. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss.map +1 -0
  715. data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss +82 -0
  716. data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss.map +1 -0
  717. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss +173 -0
  718. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss.map +1 -0
  719. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +271 -0
  720. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss.map +1 -0
  721. data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss +117 -0
  722. data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss.map +1 -0
  723. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
  724. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs.map +1 -0
  725. data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
  726. data/node_modules/govuk-frontend/dist/govuk/index.scss.map +1 -0
  727. data/node_modules/govuk-frontend/dist/govuk/init.mjs +100 -0
  728. data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -0
  729. data/node_modules/govuk-frontend/dist/govuk/macros/attributes.njk +94 -0
  730. data/node_modules/govuk-frontend/dist/govuk/macros/i18n.njk +21 -0
  731. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
  732. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss.map +1 -0
  733. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss +80 -0
  734. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss.map +1 -0
  735. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss +25 -0
  736. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss.map +1 -0
  737. data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss +26 -0
  738. data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss.map +1 -0
  739. data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss +8 -0
  740. data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss.map +1 -0
  741. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss +55 -0
  742. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss.map +1 -0
  743. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +53 -0
  744. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss.map +1 -0
  745. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss +77 -0
  746. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss.map +1 -0
  747. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
  748. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss.map +1 -0
  749. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss +26 -0
  750. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss.map +1 -0
  751. data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss +7 -0
  752. data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss.map +1 -0
  753. data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss +86 -0
  754. data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss.map +1 -0
  755. data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss +16 -0
  756. data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss.map +1 -0
  757. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +38 -0
  758. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss.map +1 -0
  759. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss +48 -0
  760. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss.map +1 -0
  761. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
  762. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss.map +1 -0
  763. data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss +84 -0
  764. data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss.map +1 -0
  765. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss +157 -0
  766. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss.map +1 -0
  767. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +148 -0
  768. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss.map +1 -0
  769. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
  770. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss.map +1 -0
  771. data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss +15 -0
  772. data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss.map +1 -0
  773. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss +23 -0
  774. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss.map +1 -0
  775. data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss +49 -0
  776. data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss.map +1 -0
  777. data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss +107 -0
  778. data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss.map +1 -0
  779. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +25 -0
  780. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss.map +1 -0
  781. data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss +78 -0
  782. data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss.map +1 -0
  783. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
  784. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss.map +1 -0
  785. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
  786. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -0
  787. data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss +78 -0
  788. data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss.map +1 -0
  789. data/node_modules/govuk-frontend/dist/govuk/template.njk +58 -0
  790. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
  791. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss.map +1 -0
  792. data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss +35 -0
  793. data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss.map +1 -0
  794. data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss +28 -0
  795. data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss.map +1 -0
  796. data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss +28 -0
  797. data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss.map +1 -0
  798. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss +7 -0
  799. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss.map +1 -0
  800. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss +22 -0
  801. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss.map +1 -0
  802. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss +22 -0
  803. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss.map +1 -0
  804. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
  805. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss.map +1 -0
  806. data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss +7 -0
  807. data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss.map +1 -0
  808. data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss +4 -0
  809. data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss.map +1 -0
  810. data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss +11 -0
  811. data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss.map +1 -0
  812. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss +349 -0
  813. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss.map +1 -0
  814. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
  815. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss +13 -0
  816. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss.map +1 -0
  817. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +165 -7
  818. data/node_modules/govuk-frontend/package.json +67 -4
  819. data/package-lock.json +4 -4
  820. data/package.json +1 -1
  821. data/vendor/assets/images/favicon.svg +1 -0
  822. data/vendor/assets/images/govuk-icon-192.png +0 -0
  823. data/vendor/assets/images/govuk-icon-512.png +0 -0
  824. data/vendor/assets/images/govuk-icon-mask.svg +1 -0
  825. data/vendor/assets/javascripts/defra_ruby_template.js +2374 -2533
  826. data/vendor/assets/stylesheets/_base.scss +5 -3
  827. data/vendor/assets/stylesheets/all.scss +2 -8
  828. data/vendor/assets/stylesheets/components/_all.scss +9 -32
  829. data/vendor/assets/stylesheets/components/_index.scss +39 -0
  830. data/vendor/assets/stylesheets/components/accordion/_accordion.scss +2 -0
  831. data/vendor/assets/stylesheets/components/accordion/_index.scss +270 -101
  832. data/vendor/assets/stylesheets/components/back-link/_back-link.scss +2 -0
  833. data/vendor/assets/stylesheets/components/back-link/_index.scss +27 -43
  834. data/vendor/assets/stylesheets/components/breadcrumbs/_breadcrumbs.scss +2 -0
  835. data/vendor/assets/stylesheets/components/breadcrumbs/_index.scss +37 -41
  836. data/vendor/assets/stylesheets/components/button/_button.scss +2 -0
  837. data/vendor/assets/stylesheets/components/button/_index.scss +79 -105
  838. data/vendor/assets/stylesheets/components/character-count/_character-count.scss +2 -0
  839. data/vendor/assets/stylesheets/components/character-count/_index.scss +12 -1
  840. data/vendor/assets/stylesheets/components/checkboxes/_checkboxes.scss +2 -0
  841. data/vendor/assets/stylesheets/components/checkboxes/_index.scss +119 -133
  842. data/vendor/assets/stylesheets/components/cookie-banner/_cookie-banner.scss +2 -0
  843. data/vendor/assets/stylesheets/components/cookie-banner/_index.scss +3 -4
  844. data/vendor/assets/stylesheets/components/date-input/_date-input.scss +2 -0
  845. data/vendor/assets/stylesheets/components/date-input/_index.scss +2 -0
  846. data/vendor/assets/stylesheets/components/details/_details.scss +2 -0
  847. data/vendor/assets/stylesheets/components/details/_index.scss +97 -50
  848. data/vendor/assets/stylesheets/components/error-message/_error-message.scss +2 -0
  849. data/vendor/assets/stylesheets/components/error-message/_index.scss +3 -0
  850. data/vendor/assets/stylesheets/components/error-summary/_error-summary.scss +2 -0
  851. data/vendor/assets/stylesheets/components/error-summary/_index.scss +15 -6
  852. data/vendor/assets/stylesheets/components/exit-this-page/_exit-this-page.scss +4 -0
  853. data/vendor/assets/stylesheets/components/exit-this-page/_index.scss +92 -0
  854. data/vendor/assets/stylesheets/components/fieldset/_fieldset.scss +2 -0
  855. data/vendor/assets/stylesheets/components/fieldset/_index.scss +18 -11
  856. data/vendor/assets/stylesheets/components/file-upload/_file-upload.scss +2 -0
  857. data/vendor/assets/stylesheets/components/file-upload/_index.scss +8 -5
  858. data/vendor/assets/stylesheets/components/footer/_footer.scss +2 -0
  859. data/vendor/assets/stylesheets/components/footer/_index.scss +23 -112
  860. data/vendor/assets/stylesheets/components/header/_header.scss +2 -0
  861. data/vendor/assets/stylesheets/components/header/_index.scss +109 -94
  862. data/vendor/assets/stylesheets/components/hint/_hint.scss +2 -0
  863. data/vendor/assets/stylesheets/components/hint/_index.scss +4 -3
  864. data/vendor/assets/stylesheets/components/input/_index.scss +35 -61
  865. data/vendor/assets/stylesheets/components/input/_input.scss +2 -0
  866. data/vendor/assets/stylesheets/components/inset-text/_index.scss +2 -0
  867. data/vendor/assets/stylesheets/components/inset-text/_inset-text.scss +2 -0
  868. data/vendor/assets/stylesheets/components/label/_index.scss +12 -7
  869. data/vendor/assets/stylesheets/components/label/_label.scss +2 -0
  870. data/vendor/assets/stylesheets/components/notification-banner/_index.scss +8 -5
  871. data/vendor/assets/stylesheets/components/notification-banner/_notification-banner.scss +2 -0
  872. data/vendor/assets/stylesheets/components/pagination/_index.scss +241 -0
  873. data/vendor/assets/stylesheets/components/pagination/_pagination.scss +4 -0
  874. data/vendor/assets/stylesheets/components/panel/_index.scss +20 -10
  875. data/vendor/assets/stylesheets/components/panel/_panel.scss +2 -0
  876. data/vendor/assets/stylesheets/components/password-input/_index.scss +54 -0
  877. data/vendor/assets/stylesheets/components/password-input/_password-input.scss +4 -0
  878. data/vendor/assets/stylesheets/components/phase-banner/_index.scss +18 -1
  879. data/vendor/assets/stylesheets/components/phase-banner/_phase-banner.scss +2 -0
  880. data/vendor/assets/stylesheets/components/radios/_index.scss +104 -120
  881. data/vendor/assets/stylesheets/components/radios/_radios.scss +2 -0
  882. data/vendor/assets/stylesheets/components/select/_index.scss +20 -10
  883. data/vendor/assets/stylesheets/components/select/_select.scss +2 -0
  884. data/vendor/assets/stylesheets/components/skip-link/_index.scss +18 -4
  885. data/vendor/assets/stylesheets/components/skip-link/_skip-link.scss +2 -0
  886. data/vendor/assets/stylesheets/components/summary-list/_index.scss +167 -35
  887. data/vendor/assets/stylesheets/components/summary-list/_summary-list.scss +2 -0
  888. data/vendor/assets/stylesheets/components/table/_index.scss +21 -17
  889. data/vendor/assets/stylesheets/components/table/_table.scss +2 -0
  890. data/vendor/assets/stylesheets/components/tabs/_index.scss +15 -11
  891. data/vendor/assets/stylesheets/components/tabs/_tabs.scss +2 -0
  892. data/vendor/assets/stylesheets/components/tag/_index.scss +56 -48
  893. data/vendor/assets/stylesheets/components/tag/_tag.scss +2 -0
  894. data/vendor/assets/stylesheets/components/task-list/_index.scss +77 -0
  895. data/vendor/assets/stylesheets/components/task-list/_task-list.scss +4 -0
  896. data/vendor/assets/stylesheets/components/textarea/_index.scss +9 -6
  897. data/vendor/assets/stylesheets/components/textarea/_textarea.scss +2 -0
  898. data/vendor/assets/stylesheets/components/warning-text/_index.scss +10 -11
  899. data/vendor/assets/stylesheets/components/warning-text/_warning-text.scss +2 -0
  900. data/vendor/assets/stylesheets/core/_all.scss +10 -6
  901. data/vendor/assets/stylesheets/core/_global-styles.scss +2 -7
  902. data/vendor/assets/stylesheets/core/_govuk-frontend-properties.scss +12 -0
  903. data/vendor/assets/stylesheets/core/_index.scss +8 -0
  904. data/vendor/assets/stylesheets/core/_links.scss +8 -7
  905. data/vendor/assets/stylesheets/core/_lists.scss +2 -7
  906. data/vendor/assets/stylesheets/core/_section-break.scss +2 -13
  907. data/vendor/assets/stylesheets/core/_typography.scss +8 -11
  908. data/vendor/assets/stylesheets/defra_ruby_template.scss +2 -11
  909. data/vendor/assets/stylesheets/govuk-frontend.min.css +3 -0
  910. data/vendor/assets/stylesheets/helpers/_all.scss +10 -12
  911. data/vendor/assets/stylesheets/helpers/_clearfix.scss +3 -1
  912. data/vendor/assets/stylesheets/helpers/_colour.scss +20 -24
  913. data/vendor/assets/stylesheets/helpers/_device-pixels.scss +4 -3
  914. data/vendor/assets/stylesheets/helpers/_focused.scss +27 -6
  915. data/vendor/assets/stylesheets/helpers/_font-faces.scss +22 -22
  916. data/vendor/assets/stylesheets/helpers/_grid.scss +2 -0
  917. data/vendor/assets/stylesheets/helpers/_index.scss +14 -0
  918. data/vendor/assets/stylesheets/helpers/_links.scss +38 -74
  919. data/vendor/assets/stylesheets/helpers/_media-queries.scss +4 -13
  920. data/vendor/assets/stylesheets/helpers/_shape-arrow.scss +3 -1
  921. data/vendor/assets/stylesheets/helpers/_spacing.scss +36 -16
  922. data/vendor/assets/stylesheets/helpers/_typography.scss +117 -53
  923. data/vendor/assets/stylesheets/helpers/_visually-hidden.scss +33 -0
  924. data/vendor/assets/stylesheets/index.scss +11 -0
  925. data/vendor/assets/stylesheets/objects/_all.scss +10 -5
  926. data/vendor/assets/stylesheets/objects/_button-group.scss +7 -28
  927. data/vendor/assets/stylesheets/objects/_form-group.scss +2 -0
  928. data/vendor/assets/stylesheets/objects/_grid.scss +4 -2
  929. data/vendor/assets/stylesheets/objects/_index.scss +8 -0
  930. data/vendor/assets/stylesheets/objects/_main-wrapper.scss +17 -30
  931. data/vendor/assets/stylesheets/objects/_template.scss +53 -0
  932. data/vendor/assets/stylesheets/objects/_width-container.scss +2 -13
  933. data/vendor/assets/stylesheets/overrides/_all.scss +9 -4
  934. data/vendor/assets/stylesheets/overrides/_display.scss +2 -6
  935. data/vendor/assets/stylesheets/overrides/_index.scss +7 -0
  936. data/vendor/assets/stylesheets/overrides/_spacing.scss +49 -27
  937. data/vendor/assets/stylesheets/overrides/_text-align.scss +16 -0
  938. data/vendor/assets/stylesheets/overrides/_typography.scss +19 -8
  939. data/vendor/assets/stylesheets/overrides/_width.scss +2 -6
  940. data/vendor/assets/stylesheets/settings/_all.scss +8 -21
  941. data/vendor/assets/stylesheets/settings/_assets.scss +2 -0
  942. data/vendor/assets/stylesheets/settings/_colours-applied.scss +9 -7
  943. data/vendor/assets/stylesheets/settings/_colours-organisations.scss +10 -1
  944. data/vendor/assets/stylesheets/settings/_colours-palette.scss +8 -79
  945. data/vendor/assets/stylesheets/settings/_global-styles.scss +2 -0
  946. data/vendor/assets/stylesheets/settings/_index.scss +23 -0
  947. data/vendor/assets/stylesheets/settings/_links.scss +7 -20
  948. data/vendor/assets/stylesheets/settings/_measurements.scss +18 -16
  949. data/vendor/assets/stylesheets/settings/_media-queries.scss +5 -3
  950. data/vendor/assets/stylesheets/settings/_spacing.scss +6 -8
  951. data/vendor/assets/stylesheets/settings/_typography-font.scss +6 -43
  952. data/vendor/assets/stylesheets/settings/_typography-responsive.scss +179 -40
  953. data/vendor/assets/stylesheets/settings/_warnings.scss +78 -0
  954. data/vendor/assets/stylesheets/tools/_all.scss +10 -8
  955. data/vendor/assets/stylesheets/tools/_exports.scss +3 -1
  956. data/vendor/assets/stylesheets/tools/_font-url.scss +4 -1
  957. data/vendor/assets/stylesheets/tools/_image-url.scss +4 -1
  958. data/vendor/assets/stylesheets/tools/_index.scss +7 -0
  959. data/vendor/assets/stylesheets/tools/_px-to-em.scss +4 -2
  960. data/vendor/assets/stylesheets/tools/_px-to-rem.scss +3 -1
  961. data/vendor/assets/stylesheets/utilities/_all.scss +10 -2
  962. data/vendor/assets/stylesheets/utilities/_clearfix.scss +2 -0
  963. data/vendor/assets/stylesheets/utilities/_index.scss +4 -0
  964. data/vendor/assets/stylesheets/utilities/_visually-hidden.scss +2 -0
  965. data/vendor/assets/stylesheets/vendor/_sass-mq.scss +3 -1
  966. metadata +906 -339
  967. data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
  968. data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -6
  969. data/node_modules/govuk-frontend/govuk/all.js +0 -2616
  970. data/node_modules/govuk-frontend/govuk/all.scss +0 -9
  971. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  972. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  973. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
  974. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
  975. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-tudor-crown.png +0 -0
  976. data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -1
  977. data/node_modules/govuk-frontend/govuk/common.js +0 -39
  978. data/node_modules/govuk-frontend/govuk/components/_all.scss +0 -33
  979. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
  980. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +0 -197
  981. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -1011
  982. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +0 -250
  983. data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +0 -76
  984. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +0 -27
  985. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
  986. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +0 -99
  987. data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +0 -62
  988. data/node_modules/govuk-frontend/govuk/components/back-link/macro-options.json +0 -32
  989. data/node_modules/govuk-frontend/govuk/components/back-link/template.njk +0 -2
  990. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
  991. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +0 -138
  992. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +0 -193
  993. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +0 -52
  994. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/template.njk +0 -24
  995. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
  996. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +0 -287
  997. data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -724
  998. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +0 -327
  999. data/node_modules/govuk-frontend/govuk/components/button/macro-options.json +0 -74
  1000. data/node_modules/govuk-frontend/govuk/components/button/template.njk +0 -60
  1001. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
  1002. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -25
  1003. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -1194
  1004. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +0 -240
  1005. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +0 -111
  1006. data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +0 -37
  1007. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
  1008. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +0 -334
  1009. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1192
  1010. data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +0 -1189
  1011. data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +0 -161
  1012. data/node_modules/govuk-frontend/govuk/components/checkboxes/template.njk +0 -119
  1013. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
  1014. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_index.scss +0 -51
  1015. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +0 -443
  1016. data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +0 -132
  1017. data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +0 -73
  1018. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
  1019. data/node_modules/govuk-frontend/govuk/components/date-input/_index.scss +0 -26
  1020. data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +0 -549
  1021. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +0 -117
  1022. data/node_modules/govuk-frontend/govuk/components/date-input/template.njk +0 -97
  1023. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
  1024. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
  1025. data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -828
  1026. data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +0 -103
  1027. data/node_modules/govuk-frontend/govuk/components/details/implementation.md +0 -43
  1028. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +0 -50
  1029. data/node_modules/govuk-frontend/govuk/components/details/template.njk +0 -10
  1030. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
  1031. data/node_modules/govuk-frontend/govuk/components/error-message/_index.scss +0 -11
  1032. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +0 -77
  1033. data/node_modules/govuk-frontend/govuk/components/error-message/macro-options.json +0 -38
  1034. data/node_modules/govuk-frontend/govuk/components/error-message/template.njk +0 -6
  1035. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
  1036. data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +0 -43
  1037. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -853
  1038. data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +0 -242
  1039. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +0 -70
  1040. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +0 -25
  1041. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
  1042. data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +0 -64
  1043. data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +0 -103
  1044. data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +0 -70
  1045. data/node_modules/govuk-frontend/govuk/components/fieldset/template.njk +0 -22
  1046. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
  1047. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -50
  1048. data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +0 -198
  1049. data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +0 -73
  1050. data/node_modules/govuk-frontend/govuk/components/file-upload/template.njk +0 -44
  1051. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
  1052. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -244
  1053. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +0 -501
  1054. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +0 -118
  1055. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +0 -87
  1056. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
  1057. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +0 -347
  1058. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +0 -386
  1059. data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -1066
  1060. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +0 -112
  1061. data/node_modules/govuk-frontend/govuk/components/header/template.njk +0 -104
  1062. data/node_modules/govuk-frontend/govuk/components/hint/_hint.scss +0 -2
  1063. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +0 -44
  1064. data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +0 -59
  1065. data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +0 -32
  1066. data/node_modules/govuk-frontend/govuk/components/hint/template.njk +0 -4
  1067. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -191
  1068. data/node_modules/govuk-frontend/govuk/components/input/_input.scss +0 -2
  1069. data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +0 -628
  1070. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +0 -167
  1071. data/node_modules/govuk-frontend/govuk/components/input/template.njk +0 -65
  1072. data/node_modules/govuk-frontend/govuk/components/inset-text/_index.scss +0 -24
  1073. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
  1074. data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +0 -58
  1075. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +0 -32
  1076. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +0 -4
  1077. data/node_modules/govuk-frontend/govuk/components/label/_index.scss +0 -41
  1078. data/node_modules/govuk-frontend/govuk/components/label/_label.scss +0 -2
  1079. data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +0 -84
  1080. data/node_modules/govuk-frontend/govuk/components/label/macro-options.json +0 -38
  1081. data/node_modules/govuk-frontend/govuk/components/label/template.njk +0 -15
  1082. data/node_modules/govuk-frontend/govuk/components/notification-banner/_index.scss +0 -89
  1083. data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
  1084. data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +0 -212
  1085. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +0 -68
  1086. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -61
  1087. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +0 -47
  1088. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
  1089. data/node_modules/govuk-frontend/govuk/components/panel/_panel.scss +0 -2
  1090. data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +0 -91
  1091. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +0 -44
  1092. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +0 -13
  1093. data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +0 -27
  1094. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
  1095. data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +0 -76
  1096. data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +0 -33
  1097. data/node_modules/govuk-frontend/govuk/components/phase-banner/template.njk +0 -15
  1098. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +0 -356
  1099. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
  1100. data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +0 -1183
  1101. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +0 -143
  1102. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1148
  1103. data/node_modules/govuk-frontend/govuk/components/radios/template.njk +0 -116
  1104. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -49
  1105. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
  1106. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +0 -327
  1107. data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +0 -105
  1108. data/node_modules/govuk-frontend/govuk/components/select/template.njk +0 -51
  1109. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +0 -36
  1110. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
  1111. data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +0 -84
  1112. data/node_modules/govuk-frontend/govuk/components/skip-link/macro-options.json +0 -32
  1113. data/node_modules/govuk-frontend/govuk/components/skip-link/template.njk +0 -3
  1114. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +0 -145
  1115. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
  1116. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +0 -1084
  1117. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +0 -113
  1118. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +0 -47
  1119. data/node_modules/govuk-frontend/govuk/components/table/_index.scss +0 -71
  1120. data/node_modules/govuk-frontend/govuk/components/table/_table.scss +0 -2
  1121. data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +0 -538
  1122. data/node_modules/govuk-frontend/govuk/components/table/macro-options.json +0 -132
  1123. data/node_modules/govuk-frontend/govuk/components/table/template.njk +0 -45
  1124. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +0 -130
  1125. data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +0 -2
  1126. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +0 -286
  1127. data/node_modules/govuk-frontend/govuk/components/tabs/macro-options.json +0 -84
  1128. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1347
  1129. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +0 -32
  1130. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -86
  1131. data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +0 -2
  1132. data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +0 -131
  1133. data/node_modules/govuk-frontend/govuk/components/tag/macro-options.json +0 -26
  1134. data/node_modules/govuk-frontend/govuk/components/tag/template.njk +0 -3
  1135. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -47
  1136. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
  1137. data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +0 -250
  1138. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +0 -91
  1139. data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +0 -45
  1140. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +0 -66
  1141. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
  1142. data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +0 -73
  1143. data/node_modules/govuk-frontend/govuk/components/warning-text/macro-options.json +0 -32
  1144. data/node_modules/govuk-frontend/govuk/components/warning-text/template.njk +0 -9
  1145. data/node_modules/govuk-frontend/govuk/core/_all.scss +0 -6
  1146. data/node_modules/govuk-frontend/govuk/core/_global-styles.scss +0 -25
  1147. data/node_modules/govuk-frontend/govuk/core/_links.scss +0 -41
  1148. data/node_modules/govuk-frontend/govuk/core/_lists.scss +0 -72
  1149. data/node_modules/govuk-frontend/govuk/core/_section-break.scss +0 -62
  1150. data/node_modules/govuk-frontend/govuk/core/_template.scss +0 -36
  1151. data/node_modules/govuk-frontend/govuk/core/_typography.scss +0 -192
  1152. data/node_modules/govuk-frontend/govuk/helpers/_all.scss +0 -12
  1153. data/node_modules/govuk-frontend/govuk/helpers/_clearfix.scss +0 -15
  1154. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -95
  1155. data/node_modules/govuk-frontend/govuk/helpers/_device-pixels.scss +0 -37
  1156. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +0 -28
  1157. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
  1158. data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +0 -61
  1159. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +0 -427
  1160. data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +0 -91
  1161. data/node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss +0 -80
  1162. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +0 -171
  1163. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -207
  1164. data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +0 -84
  1165. data/node_modules/govuk-frontend/govuk/objects/_all.scss +0 -5
  1166. data/node_modules/govuk-frontend/govuk/objects/_button-group.scss +0 -101
  1167. data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +0 -23
  1168. data/node_modules/govuk-frontend/govuk/objects/_grid.scss +0 -24
  1169. data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +0 -68
  1170. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +0 -88
  1171. data/node_modules/govuk-frontend/govuk/overrides/_all.scss +0 -5
  1172. data/node_modules/govuk-frontend/govuk/overrides/_display.scss +0 -30
  1173. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +0 -64
  1174. data/node_modules/govuk-frontend/govuk/overrides/_text-align.scss +0 -20
  1175. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -27
  1176. data/node_modules/govuk-frontend/govuk/overrides/_width.scss +0 -52
  1177. data/node_modules/govuk-frontend/govuk/settings/_all.scss +0 -23
  1178. data/node_modules/govuk-frontend/govuk/settings/_assets.scss +0 -82
  1179. data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +0 -155
  1180. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -139
  1181. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -108
  1182. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -74
  1183. data/node_modules/govuk-frontend/govuk/settings/_global-styles.scss +0 -13
  1184. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -18
  1185. data/node_modules/govuk-frontend/govuk/settings/_links.scss +0 -62
  1186. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +0 -105
  1187. data/node_modules/govuk-frontend/govuk/settings/_media-queries.scss +0 -23
  1188. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +0 -80
  1189. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
  1190. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -89
  1191. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -183
  1192. data/node_modules/govuk-frontend/govuk/template.njk +0 -60
  1193. data/node_modules/govuk-frontend/govuk/tools/_all.scss +0 -8
  1194. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -36
  1195. data/node_modules/govuk-frontend/govuk/tools/_exports.scss +0 -33
  1196. data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +0 -25
  1197. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -51
  1198. data/node_modules/govuk-frontend/govuk/tools/_iff.scss +0 -17
  1199. data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +0 -25
  1200. data/node_modules/govuk-frontend/govuk/tools/_px-to-em.scss +0 -20
  1201. data/node_modules/govuk-frontend/govuk/tools/_px-to-rem.scss +0 -20
  1202. data/node_modules/govuk-frontend/govuk/utilities/_all.scss +0 -2
  1203. data/node_modules/govuk-frontend/govuk/utilities/_clearfix.scss +0 -5
  1204. data/node_modules/govuk-frontend/govuk/utilities/_visually-hidden.scss +0 -9
  1205. data/node_modules/govuk-frontend/govuk/vendor/_sass-mq.scss +0 -347
  1206. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -272
  1207. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -34
  1208. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -589
  1209. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -54
  1210. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -31
  1211. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -254
  1212. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -254
  1213. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -147
  1214. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -504
  1215. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -252
  1216. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -94
  1217. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -28
  1218. data/vendor/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  1219. data/vendor/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  1220. data/vendor/assets/images/govuk-apple-touch-icon.png +0 -0
  1221. data/vendor/assets/images/govuk-logotype-crown.png +0 -0
  1222. data/vendor/assets/images/govuk-logotype-tudor-crown.png +0 -0
  1223. data/vendor/assets/images/govuk-mask-icon.svg +0 -1
  1224. data/vendor/assets/stylesheets/all-ie8.scss +0 -6
  1225. data/vendor/assets/stylesheets/core/_template.scss +0 -36
  1226. data/vendor/assets/stylesheets/settings/_compatibility.scss +0 -74
  1227. data/vendor/assets/stylesheets/settings/_ie8.scss +0 -18
  1228. data/vendor/assets/stylesheets/settings/_typography-font-families.scss +0 -32
  1229. data/vendor/assets/stylesheets/tools/_compatibility.scss +0 -36
  1230. data/vendor/assets/stylesheets/tools/_ie8.scss +0 -51
  1231. data/vendor/assets/stylesheets/tools/_iff.scss +0 -17
  1232. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
  1233. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  1234. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  1235. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  1236. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/favicon.ico +0 -0
  1237. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest-2x.png +0 -0
  1238. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest.png +0 -0
  1239. /data/node_modules/govuk-frontend/{govuk/assets/images/govuk-apple-touch-icon-180x180.png → dist/govuk/assets/images/govuk-icon-180.png} +0 -0
  1240. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-opengraph-image.png +0 -0
  1241. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/README.md +0 -0
  1242. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/macro.njk +0 -0
  1243. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/README.md +0 -0
  1244. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/macro.njk +0 -0
  1245. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/README.md +0 -0
  1246. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/macro.njk +0 -0
  1247. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/README.md +0 -0
  1248. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/macro.njk +0 -0
  1249. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/README.md +0 -0
  1250. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/macro.njk +0 -0
  1251. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/README.md +0 -0
  1252. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/macro.njk +0 -0
  1253. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/README.md +0 -0
  1254. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/macro.njk +0 -0
  1255. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/README.md +0 -0
  1256. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/macro.njk +0 -0
  1257. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/README.md +0 -0
  1258. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/macro.njk +0 -0
  1259. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/README.md +0 -0
  1260. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/macro.njk +0 -0
  1261. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/README.md +0 -0
  1262. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/macro.njk +0 -0
  1263. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/README.md +0 -0
  1264. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/macro.njk +0 -0
  1265. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/README.md +0 -0
  1266. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/macro.njk +0 -0
  1267. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/README.md +0 -0
  1268. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/macro.njk +0 -0
  1269. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/README.md +0 -0
  1270. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/macro.njk +0 -0
  1271. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/README.md +0 -0
  1272. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/macro.njk +0 -0
  1273. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/README.md +0 -0
  1274. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/macro.njk +0 -0
  1275. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/README.md +0 -0
  1276. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/macro.njk +0 -0
  1277. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/README.md +0 -0
  1278. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/macro.njk +0 -0
  1279. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/README.md +0 -0
  1280. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/macro.njk +0 -0
  1281. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/README.md +0 -0
  1282. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/macro.njk +0 -0
  1283. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/README.md +0 -0
  1284. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/macro.njk +0 -0
  1285. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/README.md +0 -0
  1286. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/macro.njk +0 -0
  1287. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/README.md +0 -0
  1288. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/macro.njk +0 -0
  1289. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/README.md +0 -0
  1290. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/macro.njk +0 -0
  1291. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/README.md +0 -0
  1292. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/macro.njk +0 -0
  1293. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/README.md +0 -0
  1294. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/macro.njk +0 -0
  1295. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/README.md +0 -0
  1296. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/macro.njk +0 -0
  1297. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/README.md +0 -0
  1298. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/macro.njk +0 -0
  1299. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/README.md +0 -0
  1300. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/macro.njk +0 -0
  1301. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/README.md +0 -0
  1302. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/macro.njk +0 -0
  1303. /data/vendor/assets/images/{govuk-apple-touch-icon-180x180.png → govuk-icon-180.png} +0 -0
@@ -0,0 +1,177 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.GOVUKFrontend = {}));
5
+ })(this, (function (exports) { 'use strict';
6
+
7
+ function getFragmentFromUrl(url) {
8
+ if (!url.includes('#')) {
9
+ return undefined;
10
+ }
11
+ return url.split('#').pop();
12
+ }
13
+ function setFocus($element, options = {}) {
14
+ var _options$onBeforeFocu;
15
+ const isFocusable = $element.getAttribute('tabindex');
16
+ if (!isFocusable) {
17
+ $element.setAttribute('tabindex', '-1');
18
+ }
19
+ function onFocus() {
20
+ $element.addEventListener('blur', onBlur, {
21
+ once: true
22
+ });
23
+ }
24
+ function onBlur() {
25
+ var _options$onBlur;
26
+ (_options$onBlur = options.onBlur) == null || _options$onBlur.call($element);
27
+ if (!isFocusable) {
28
+ $element.removeAttribute('tabindex');
29
+ }
30
+ }
31
+ $element.addEventListener('focus', onFocus, {
32
+ once: true
33
+ });
34
+ (_options$onBeforeFocu = options.onBeforeFocus) == null || _options$onBeforeFocu.call($element);
35
+ $element.focus();
36
+ }
37
+ function isSupported($scope = document.body) {
38
+ if (!$scope) {
39
+ return false;
40
+ }
41
+ return $scope.classList.contains('govuk-frontend-supported');
42
+ }
43
+
44
+ /**
45
+ * Schema for component config
46
+ *
47
+ * @typedef {object} Schema
48
+ * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
49
+ * @property {SchemaCondition[]} [anyOf] - List of schema conditions
50
+ */
51
+
52
+ /**
53
+ * Schema property for component config
54
+ *
55
+ * @typedef {object} SchemaProperty
56
+ * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
57
+ */
58
+
59
+ /**
60
+ * Schema condition for component config
61
+ *
62
+ * @typedef {object} SchemaCondition
63
+ * @property {string[]} required - List of required config fields
64
+ * @property {string} errorMessage - Error message when required config fields not provided
65
+ */
66
+
67
+ class GOVUKFrontendError extends Error {
68
+ constructor(...args) {
69
+ super(...args);
70
+ this.name = 'GOVUKFrontendError';
71
+ }
72
+ }
73
+ class SupportError extends GOVUKFrontendError {
74
+ /**
75
+ * Checks if GOV.UK Frontend is supported on this page
76
+ *
77
+ * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
78
+ */
79
+ constructor($scope = document.body) {
80
+ const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';
81
+ super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
82
+ this.name = 'SupportError';
83
+ }
84
+ }
85
+ class ElementError extends GOVUKFrontendError {
86
+ constructor(messageOrOptions) {
87
+ let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
88
+ if (typeof messageOrOptions === 'object') {
89
+ const {
90
+ componentName,
91
+ identifier,
92
+ element,
93
+ expectedType
94
+ } = messageOrOptions;
95
+ message = `${componentName}: ${identifier}`;
96
+ message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
97
+ }
98
+ super(message);
99
+ this.name = 'ElementError';
100
+ }
101
+ }
102
+
103
+ class GOVUKFrontendComponent {
104
+ constructor() {
105
+ this.checkSupport();
106
+ }
107
+ checkSupport() {
108
+ if (!isSupported()) {
109
+ throw new SupportError();
110
+ }
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Skip link component
116
+ *
117
+ * @preserve
118
+ */
119
+ class SkipLink extends GOVUKFrontendComponent {
120
+ /**
121
+ * @param {Element | null} $module - HTML element to use for skip link
122
+ * @throws {ElementError} when $module is not set or the wrong type
123
+ * @throws {ElementError} when $module.hash does not contain a hash
124
+ * @throws {ElementError} when the linked element is missing or the wrong type
125
+ */
126
+ constructor($module) {
127
+ var _this$$module$getAttr;
128
+ super();
129
+ this.$module = void 0;
130
+ if (!($module instanceof HTMLAnchorElement)) {
131
+ throw new ElementError({
132
+ componentName: 'Skip link',
133
+ element: $module,
134
+ expectedType: 'HTMLAnchorElement',
135
+ identifier: 'Root element (`$module`)'
136
+ });
137
+ }
138
+ this.$module = $module;
139
+ const hash = this.$module.hash;
140
+ const href = (_this$$module$getAttr = this.$module.getAttribute('href')) != null ? _this$$module$getAttr : '';
141
+ let url;
142
+ try {
143
+ url = new window.URL(this.$module.href);
144
+ } catch (error) {
145
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) is invalid`);
146
+ }
147
+ if (url.origin !== window.location.origin || url.pathname !== window.location.pathname) {
148
+ return;
149
+ }
150
+ const linkedElementId = getFragmentFromUrl(hash);
151
+ if (!linkedElementId) {
152
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) has no hash fragment`);
153
+ }
154
+ const $linkedElement = document.getElementById(linkedElementId);
155
+ if (!$linkedElement) {
156
+ throw new ElementError({
157
+ componentName: 'Skip link',
158
+ element: $linkedElement,
159
+ identifier: `Target content (\`id="${linkedElementId}"\`)`
160
+ });
161
+ }
162
+ this.$module.addEventListener('click', () => setFocus($linkedElement, {
163
+ onBeforeFocus() {
164
+ $linkedElement.classList.add('govuk-skip-link-focused-element');
165
+ },
166
+ onBlur() {
167
+ $linkedElement.classList.remove('govuk-skip-link-focused-element');
168
+ }
169
+ }));
170
+ }
171
+ }
172
+ SkipLink.moduleName = 'govuk-skip-link';
173
+
174
+ exports.SkipLink = SkipLink;
175
+
176
+ }));
177
+ //# sourceMappingURL=skip-link.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-link.bundle.js","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/errors/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/skip-link/skip-link.mjs"],"sourcesContent":["import { normaliseString } from './normalise-string.mjs'\n\n/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n */\n\n/**\n * Config merging function\n *\n * Takes any number of objects and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @internal\n * @param {...{ [key: string]: unknown }} configObjects - Config objects to merge\n * @returns {{ [key: string]: unknown }} A merged config object\n */\nexport function mergeConfigs(...configObjects) {\n // Start with an empty object as our base\n /** @type {{ [key: string]: unknown }} */\n const formattedConfigObject = {}\n\n // Loop through each of the passed objects\n for (const configObject of configObjects) {\n for (const key of Object.keys(configObject)) {\n const option = formattedConfigObject[key]\n const override = configObject[key]\n\n // Push their keys one-by-one into formattedConfigObject. Any duplicate\n // keys with object values will be merged, otherwise the new value will\n // override the existing value.\n if (isObject(option) && isObject(override)) {\n // @ts-expect-error Index signature for type 'string' is missing\n formattedConfigObject[key] = mergeConfigs(option, override)\n } else {\n // Apply override\n formattedConfigObject[key] = override\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from dataset ('data-*')\n * object, removing the namespace in the process, normalising all values\n *\n * @internal\n * @param {{ schema: Schema }} Component - Component class\n * @param {DOMStringMap} dataset - The object to extract key-value pairs from\n * @param {string} namespace - The namespace to filter keys with\n * @returns {ObjectNested | undefined} Nested object with dot-separated key namespace removed\n */\nexport function extractConfigByNamespace(Component, dataset, namespace) {\n const property = Component.schema.properties[namespace]\n\n // Only extract configs for object schema properties\n if (property?.type !== 'object') {\n return\n }\n\n // Add default empty config\n const newObject = {\n [namespace]: /** @type {ObjectNested} */ ({})\n }\n\n for (const [key, value] of Object.entries(dataset)) {\n /** @type {ObjectNested | ObjectNested[NestedKey]} */\n let current = newObject\n\n // Split the key into parts, using . as our namespace separator\n const keyParts = key.split('.')\n\n /**\n * Create new level per part\n *\n * e.g. 'i18n.textareaDescription.other' becomes\n * `{ i18n: { textareaDescription: { other } } }`\n */\n for (const [index, name] of keyParts.entries()) {\n if (typeof current === 'object') {\n // Drop down to nested object until the last part\n if (index < keyParts.length - 1) {\n // New nested object (optionally) replaces existing value\n if (!isObject(current[name])) {\n current[name] = {}\n }\n\n // Drop down into new or existing nested object\n current = current[name]\n } else if (key !== namespace) {\n // Normalised value (optionally) replaces existing value\n current[name] = normaliseString(value)\n }\n }\n }\n }\n\n return newObject[namespace]\n}\n\n/**\n * Get hash fragment from URL\n *\n * Extract the hash fragment (everything after the hash) from a URL,\n * but not including the hash symbol\n *\n * @private\n * @param {string} url - URL\n * @returns {string | undefined} Fragment from URL, without the hash\n */\nexport function getFragmentFromUrl(url) {\n if (!url.includes('#')) {\n return undefined\n }\n\n return url.split('#').pop()\n}\n\n/**\n * Get GOV.UK Frontend breakpoint value from CSS custom property\n *\n * @private\n * @param {string} name - Breakpoint name\n * @returns {{ property: string, value?: string }} Breakpoint object\n */\nexport function getBreakpoint(name) {\n const property = `--govuk-frontend-breakpoint-${name}`\n\n // Get value from `<html>` with breakpoints on CSS :root\n const value = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(property)\n\n return {\n property,\n value: value || undefined\n }\n}\n\n/**\n * Move focus to element\n *\n * Sets tabindex to -1 to make the element programmatically focusable,\n * but removes it on blur as the element doesn't need to be focused again.\n *\n * @private\n * @template {HTMLElement} FocusElement\n * @param {FocusElement} $element - HTML element\n * @param {object} [options] - Handler options\n * @param {function(this: FocusElement): void} [options.onBeforeFocus] - Callback before focus\n * @param {function(this: FocusElement): void} [options.onBlur] - Callback on blur\n */\nexport function setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute('tabindex')\n\n if (!isFocusable) {\n $element.setAttribute('tabindex', '-1')\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener('blur', onBlur, { once: true })\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element)\n\n if (!isFocusable) {\n $element.removeAttribute('tabindex')\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener('focus', onFocus, { once: true })\n\n // Focus element\n options.onBeforeFocus?.call($element)\n $element.focus()\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @internal\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nexport function isSupported($scope = document.body) {\n if (!$scope) {\n return false\n }\n\n return $scope.classList.contains('govuk-frontend-supported')\n}\n\n/**\n * Validate component config by schema\n *\n * Follows limited examples in JSON schema for wider support in future\n *\n * {@link https://ajv.js.org/json-schema.html#compound-keywords}\n * {@link https://ajv.js.org/packages/ajv-errors.html#single-message}\n *\n * @internal\n * @param {Schema} schema - Config schema\n * @param {{ [key: string]: unknown }} config - Component config\n * @returns {string[]} List of validation errors\n */\nexport function validateConfig(schema, config) {\n const validationErrors = []\n\n // Check errors for each schema\n for (const [name, conditions] of Object.entries(schema)) {\n const errors = []\n\n // Check errors for each schema condition\n if (Array.isArray(conditions)) {\n for (const { required, errorMessage } of conditions) {\n if (!required.every((key) => !!config[key])) {\n errors.push(errorMessage) // Missing config key value\n }\n }\n\n // Check one condition passes or add errors\n if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n validationErrors.push(...errors)\n }\n }\n }\n\n return validationErrors\n}\n\n/**\n * Check for an array\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an array\n */\nfunction isArray(option) {\n return Array.isArray(option)\n}\n\n/**\n * Check for an object\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an object\n */\nfunction isObject(option) {\n return !!option && typeof option === 'object' && !isArray(option)\n}\n\n/**\n * Schema for component config\n *\n * @typedef {object} Schema\n * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties\n * @property {SchemaCondition[]} [anyOf] - List of schema conditions\n */\n\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n\n/**\n * Schema condition for component config\n *\n * @typedef {object} SchemaCondition\n * @property {string[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n\n/**\n * @internal\n * @typedef {keyof ObjectNested} NestedKey\n * @typedef {{ [key: string]: string | boolean | number | ObjectNested | undefined }} ObjectNested\n */\n","/**\n * GOV.UK Frontend error\n *\n * A base class for `Error`s thrown by GOV.UK Frontend.\n *\n * It is meant to be extended into specific types of errors\n * to be thrown by our code.\n *\n * @example\n * ```js\n * class MissingRootError extends GOVUKFrontendError {\n * // Setting an explicit name is important as extending the class will not\n * // set a new `name` on the subclass. The `name` property is important\n * // to ensure intelligible error names even if the class name gets\n * // mangled by a minifier\n * name = \"MissingRootError\"\n * }\n * ```\n * @abstract\n */\nexport class GOVUKFrontendError extends Error {\n name = 'GOVUKFrontendError'\n}\n\n/**\n * Indicates that GOV.UK Frontend is not supported\n */\nexport class SupportError extends GOVUKFrontendError {\n name = 'SupportError'\n\n /**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n */\n constructor($scope = document.body) {\n const supportMessage =\n 'noModule' in HTMLScriptElement.prototype\n ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet'\n : 'GOV.UK Frontend is not supported in this browser'\n\n super(\n $scope\n ? supportMessage\n : 'GOV.UK Frontend initialised without `<script type=\"module\">`'\n )\n }\n}\n\n/**\n * Indicates that a component has received an illegal configuration\n */\nexport class ConfigError extends GOVUKFrontendError {\n name = 'ConfigError'\n}\n\n/**\n * Indicates an issue with an element (possibly `null` or `undefined`)\n */\nexport class ElementError extends GOVUKFrontendError {\n name = 'ElementError'\n\n /**\n * @internal\n * @overload\n * @param {string} message - Element error message\n */\n\n /**\n * @internal\n * @overload\n * @param {ElementErrorOptions} options - Element error options\n */\n\n /**\n * @internal\n * @param {string | ElementErrorOptions} messageOrOptions - Element error message or options\n */\n constructor(messageOrOptions) {\n let message = typeof messageOrOptions === 'string' ? messageOrOptions : ''\n\n // Build message from options\n if (typeof messageOrOptions === 'object') {\n const { componentName, identifier, element, expectedType } =\n messageOrOptions\n\n // Add prefix and identifier\n message = `${componentName}: ${identifier}`\n\n // Append reason\n message += element\n ? ` is not of type ${expectedType ?? 'HTMLElement'}`\n : ' not found'\n }\n\n super(message)\n }\n}\n\n/**\n * Element error options\n *\n * @internal\n * @typedef {object} ElementErrorOptions\n * @property {string} componentName - The name of the component throwing the error\n * @property {string} identifier - An identifier that'll let the user understand which element has an error. This is whatever makes the most sense\n * @property {Element | null} [element] - The element in error\n * @property {string} [expectedType] - The type that was expected for the identifier\n */\n","import { isSupported } from './common/index.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Base Component class\n *\n * Centralises the behaviours shared by our components\n *\n * @internal\n * @abstract\n */\nexport class GOVUKFrontendComponent {\n /**\n * Constructs a new component, validating that GOV.UK Frontend is supported\n *\n * @internal\n */\n constructor() {\n this.checkSupport()\n }\n\n /**\n * Validates whether GOV.UK Frontend is supported\n *\n * @private\n * @throws {SupportError} when GOV.UK Frontend is not supported\n */\n checkSupport() {\n if (!isSupported()) {\n throw new SupportError()\n }\n }\n}\n","import { getFragmentFromUrl, setFocus } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Skip link component\n *\n * @preserve\n */\nexport class SkipLink extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /**\n * @param {Element | null} $module - HTML element to use for skip link\n * @throws {ElementError} when $module is not set or the wrong type\n * @throws {ElementError} when $module.hash does not contain a hash\n * @throws {ElementError} when the linked element is missing or the wrong type\n */\n constructor($module) {\n super()\n\n if (!($module instanceof HTMLAnchorElement)) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $module,\n expectedType: 'HTMLAnchorElement',\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n\n const hash = this.$module.hash\n const href = this.$module.getAttribute('href') ?? ''\n\n /** @type {URL | undefined} */\n let url\n\n /**\n * Check for valid link URL\n *\n * {@link https://caniuse.com/url}\n * {@link https://url.spec.whatwg.org}\n *\n */\n try {\n url = new window.URL(this.$module.href)\n } catch (error) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) is invalid`\n )\n }\n\n // Return early for external URLs or links to other pages\n if (\n url.origin !== window.location.origin ||\n url.pathname !== window.location.pathname\n ) {\n return\n }\n\n const linkedElementId = getFragmentFromUrl(hash)\n\n // Check link path matching current page\n if (!linkedElementId) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) has no hash fragment`\n )\n }\n\n const $linkedElement = document.getElementById(linkedElementId)\n\n // Check for link target element\n if (!$linkedElement) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $linkedElement,\n identifier: `Target content (\\`id=\"${linkedElementId}\"\\`)`\n })\n }\n\n /**\n * Focus the linked element on click\n *\n * Adds a helper CSS class to hide native focus styles,\n * but removes it on blur to restore native focus styles\n */\n this.$module.addEventListener('click', () =>\n setFocus($linkedElement, {\n onBeforeFocus() {\n $linkedElement.classList.add('govuk-skip-link-focused-element')\n },\n onBlur() {\n $linkedElement.classList.remove('govuk-skip-link-focused-element')\n }\n })\n )\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-skip-link'\n}\n"],"names":["getFragmentFromUrl","url","includes","undefined","split","pop","setFocus","$element","options","_options$onBeforeFocu","isFocusable","getAttribute","setAttribute","onFocus","addEventListener","onBlur","once","_options$onBlur","call","removeAttribute","onBeforeFocus","focus","isSupported","$scope","document","body","classList","contains","GOVUKFrontendError","Error","constructor","args","name","SupportError","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","GOVUKFrontendComponent","checkSupport","SkipLink","$module","_this$$module$getAttr","HTMLAnchorElement","hash","href","window","URL","error","origin","location","pathname","linkedElementId","$linkedElement","getElementById","add","remove","moduleName"],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ function getFragmentFromUrl(url) {
2
+ if (!url.includes('#')) {
3
+ return undefined;
4
+ }
5
+ return url.split('#').pop();
6
+ }
7
+ function setFocus($element, options = {}) {
8
+ var _options$onBeforeFocu;
9
+ const isFocusable = $element.getAttribute('tabindex');
10
+ if (!isFocusable) {
11
+ $element.setAttribute('tabindex', '-1');
12
+ }
13
+ function onFocus() {
14
+ $element.addEventListener('blur', onBlur, {
15
+ once: true
16
+ });
17
+ }
18
+ function onBlur() {
19
+ var _options$onBlur;
20
+ (_options$onBlur = options.onBlur) == null || _options$onBlur.call($element);
21
+ if (!isFocusable) {
22
+ $element.removeAttribute('tabindex');
23
+ }
24
+ }
25
+ $element.addEventListener('focus', onFocus, {
26
+ once: true
27
+ });
28
+ (_options$onBeforeFocu = options.onBeforeFocus) == null || _options$onBeforeFocu.call($element);
29
+ $element.focus();
30
+ }
31
+ function isSupported($scope = document.body) {
32
+ if (!$scope) {
33
+ return false;
34
+ }
35
+ return $scope.classList.contains('govuk-frontend-supported');
36
+ }
37
+
38
+ /**
39
+ * Schema for component config
40
+ *
41
+ * @typedef {object} Schema
42
+ * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
43
+ * @property {SchemaCondition[]} [anyOf] - List of schema conditions
44
+ */
45
+
46
+ /**
47
+ * Schema property for component config
48
+ *
49
+ * @typedef {object} SchemaProperty
50
+ * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
51
+ */
52
+
53
+ /**
54
+ * Schema condition for component config
55
+ *
56
+ * @typedef {object} SchemaCondition
57
+ * @property {string[]} required - List of required config fields
58
+ * @property {string} errorMessage - Error message when required config fields not provided
59
+ */
60
+
61
+ class GOVUKFrontendError extends Error {
62
+ constructor(...args) {
63
+ super(...args);
64
+ this.name = 'GOVUKFrontendError';
65
+ }
66
+ }
67
+ class SupportError extends GOVUKFrontendError {
68
+ /**
69
+ * Checks if GOV.UK Frontend is supported on this page
70
+ *
71
+ * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
72
+ */
73
+ constructor($scope = document.body) {
74
+ const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';
75
+ super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
76
+ this.name = 'SupportError';
77
+ }
78
+ }
79
+ class ElementError extends GOVUKFrontendError {
80
+ constructor(messageOrOptions) {
81
+ let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
82
+ if (typeof messageOrOptions === 'object') {
83
+ const {
84
+ componentName,
85
+ identifier,
86
+ element,
87
+ expectedType
88
+ } = messageOrOptions;
89
+ message = `${componentName}: ${identifier}`;
90
+ message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
91
+ }
92
+ super(message);
93
+ this.name = 'ElementError';
94
+ }
95
+ }
96
+
97
+ class GOVUKFrontendComponent {
98
+ constructor() {
99
+ this.checkSupport();
100
+ }
101
+ checkSupport() {
102
+ if (!isSupported()) {
103
+ throw new SupportError();
104
+ }
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Skip link component
110
+ *
111
+ * @preserve
112
+ */
113
+ class SkipLink extends GOVUKFrontendComponent {
114
+ /**
115
+ * @param {Element | null} $module - HTML element to use for skip link
116
+ * @throws {ElementError} when $module is not set or the wrong type
117
+ * @throws {ElementError} when $module.hash does not contain a hash
118
+ * @throws {ElementError} when the linked element is missing or the wrong type
119
+ */
120
+ constructor($module) {
121
+ var _this$$module$getAttr;
122
+ super();
123
+ this.$module = void 0;
124
+ if (!($module instanceof HTMLAnchorElement)) {
125
+ throw new ElementError({
126
+ componentName: 'Skip link',
127
+ element: $module,
128
+ expectedType: 'HTMLAnchorElement',
129
+ identifier: 'Root element (`$module`)'
130
+ });
131
+ }
132
+ this.$module = $module;
133
+ const hash = this.$module.hash;
134
+ const href = (_this$$module$getAttr = this.$module.getAttribute('href')) != null ? _this$$module$getAttr : '';
135
+ let url;
136
+ try {
137
+ url = new window.URL(this.$module.href);
138
+ } catch (error) {
139
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) is invalid`);
140
+ }
141
+ if (url.origin !== window.location.origin || url.pathname !== window.location.pathname) {
142
+ return;
143
+ }
144
+ const linkedElementId = getFragmentFromUrl(hash);
145
+ if (!linkedElementId) {
146
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) has no hash fragment`);
147
+ }
148
+ const $linkedElement = document.getElementById(linkedElementId);
149
+ if (!$linkedElement) {
150
+ throw new ElementError({
151
+ componentName: 'Skip link',
152
+ element: $linkedElement,
153
+ identifier: `Target content (\`id="${linkedElementId}"\`)`
154
+ });
155
+ }
156
+ this.$module.addEventListener('click', () => setFocus($linkedElement, {
157
+ onBeforeFocus() {
158
+ $linkedElement.classList.add('govuk-skip-link-focused-element');
159
+ },
160
+ onBlur() {
161
+ $linkedElement.classList.remove('govuk-skip-link-focused-element');
162
+ }
163
+ }));
164
+ }
165
+ }
166
+ SkipLink.moduleName = 'govuk-skip-link';
167
+
168
+ export { SkipLink };
169
+ //# sourceMappingURL=skip-link.bundle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-link.bundle.mjs","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/errors/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/skip-link/skip-link.mjs"],"sourcesContent":["import { normaliseString } from './normalise-string.mjs'\n\n/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n */\n\n/**\n * Config merging function\n *\n * Takes any number of objects and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @internal\n * @param {...{ [key: string]: unknown }} configObjects - Config objects to merge\n * @returns {{ [key: string]: unknown }} A merged config object\n */\nexport function mergeConfigs(...configObjects) {\n // Start with an empty object as our base\n /** @type {{ [key: string]: unknown }} */\n const formattedConfigObject = {}\n\n // Loop through each of the passed objects\n for (const configObject of configObjects) {\n for (const key of Object.keys(configObject)) {\n const option = formattedConfigObject[key]\n const override = configObject[key]\n\n // Push their keys one-by-one into formattedConfigObject. Any duplicate\n // keys with object values will be merged, otherwise the new value will\n // override the existing value.\n if (isObject(option) && isObject(override)) {\n // @ts-expect-error Index signature for type 'string' is missing\n formattedConfigObject[key] = mergeConfigs(option, override)\n } else {\n // Apply override\n formattedConfigObject[key] = override\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from dataset ('data-*')\n * object, removing the namespace in the process, normalising all values\n *\n * @internal\n * @param {{ schema: Schema }} Component - Component class\n * @param {DOMStringMap} dataset - The object to extract key-value pairs from\n * @param {string} namespace - The namespace to filter keys with\n * @returns {ObjectNested | undefined} Nested object with dot-separated key namespace removed\n */\nexport function extractConfigByNamespace(Component, dataset, namespace) {\n const property = Component.schema.properties[namespace]\n\n // Only extract configs for object schema properties\n if (property?.type !== 'object') {\n return\n }\n\n // Add default empty config\n const newObject = {\n [namespace]: /** @type {ObjectNested} */ ({})\n }\n\n for (const [key, value] of Object.entries(dataset)) {\n /** @type {ObjectNested | ObjectNested[NestedKey]} */\n let current = newObject\n\n // Split the key into parts, using . as our namespace separator\n const keyParts = key.split('.')\n\n /**\n * Create new level per part\n *\n * e.g. 'i18n.textareaDescription.other' becomes\n * `{ i18n: { textareaDescription: { other } } }`\n */\n for (const [index, name] of keyParts.entries()) {\n if (typeof current === 'object') {\n // Drop down to nested object until the last part\n if (index < keyParts.length - 1) {\n // New nested object (optionally) replaces existing value\n if (!isObject(current[name])) {\n current[name] = {}\n }\n\n // Drop down into new or existing nested object\n current = current[name]\n } else if (key !== namespace) {\n // Normalised value (optionally) replaces existing value\n current[name] = normaliseString(value)\n }\n }\n }\n }\n\n return newObject[namespace]\n}\n\n/**\n * Get hash fragment from URL\n *\n * Extract the hash fragment (everything after the hash) from a URL,\n * but not including the hash symbol\n *\n * @private\n * @param {string} url - URL\n * @returns {string | undefined} Fragment from URL, without the hash\n */\nexport function getFragmentFromUrl(url) {\n if (!url.includes('#')) {\n return undefined\n }\n\n return url.split('#').pop()\n}\n\n/**\n * Get GOV.UK Frontend breakpoint value from CSS custom property\n *\n * @private\n * @param {string} name - Breakpoint name\n * @returns {{ property: string, value?: string }} Breakpoint object\n */\nexport function getBreakpoint(name) {\n const property = `--govuk-frontend-breakpoint-${name}`\n\n // Get value from `<html>` with breakpoints on CSS :root\n const value = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(property)\n\n return {\n property,\n value: value || undefined\n }\n}\n\n/**\n * Move focus to element\n *\n * Sets tabindex to -1 to make the element programmatically focusable,\n * but removes it on blur as the element doesn't need to be focused again.\n *\n * @private\n * @template {HTMLElement} FocusElement\n * @param {FocusElement} $element - HTML element\n * @param {object} [options] - Handler options\n * @param {function(this: FocusElement): void} [options.onBeforeFocus] - Callback before focus\n * @param {function(this: FocusElement): void} [options.onBlur] - Callback on blur\n */\nexport function setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute('tabindex')\n\n if (!isFocusable) {\n $element.setAttribute('tabindex', '-1')\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener('blur', onBlur, { once: true })\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element)\n\n if (!isFocusable) {\n $element.removeAttribute('tabindex')\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener('focus', onFocus, { once: true })\n\n // Focus element\n options.onBeforeFocus?.call($element)\n $element.focus()\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @internal\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nexport function isSupported($scope = document.body) {\n if (!$scope) {\n return false\n }\n\n return $scope.classList.contains('govuk-frontend-supported')\n}\n\n/**\n * Validate component config by schema\n *\n * Follows limited examples in JSON schema for wider support in future\n *\n * {@link https://ajv.js.org/json-schema.html#compound-keywords}\n * {@link https://ajv.js.org/packages/ajv-errors.html#single-message}\n *\n * @internal\n * @param {Schema} schema - Config schema\n * @param {{ [key: string]: unknown }} config - Component config\n * @returns {string[]} List of validation errors\n */\nexport function validateConfig(schema, config) {\n const validationErrors = []\n\n // Check errors for each schema\n for (const [name, conditions] of Object.entries(schema)) {\n const errors = []\n\n // Check errors for each schema condition\n if (Array.isArray(conditions)) {\n for (const { required, errorMessage } of conditions) {\n if (!required.every((key) => !!config[key])) {\n errors.push(errorMessage) // Missing config key value\n }\n }\n\n // Check one condition passes or add errors\n if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n validationErrors.push(...errors)\n }\n }\n }\n\n return validationErrors\n}\n\n/**\n * Check for an array\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an array\n */\nfunction isArray(option) {\n return Array.isArray(option)\n}\n\n/**\n * Check for an object\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an object\n */\nfunction isObject(option) {\n return !!option && typeof option === 'object' && !isArray(option)\n}\n\n/**\n * Schema for component config\n *\n * @typedef {object} Schema\n * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties\n * @property {SchemaCondition[]} [anyOf] - List of schema conditions\n */\n\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n\n/**\n * Schema condition for component config\n *\n * @typedef {object} SchemaCondition\n * @property {string[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n\n/**\n * @internal\n * @typedef {keyof ObjectNested} NestedKey\n * @typedef {{ [key: string]: string | boolean | number | ObjectNested | undefined }} ObjectNested\n */\n","/**\n * GOV.UK Frontend error\n *\n * A base class for `Error`s thrown by GOV.UK Frontend.\n *\n * It is meant to be extended into specific types of errors\n * to be thrown by our code.\n *\n * @example\n * ```js\n * class MissingRootError extends GOVUKFrontendError {\n * // Setting an explicit name is important as extending the class will not\n * // set a new `name` on the subclass. The `name` property is important\n * // to ensure intelligible error names even if the class name gets\n * // mangled by a minifier\n * name = \"MissingRootError\"\n * }\n * ```\n * @abstract\n */\nexport class GOVUKFrontendError extends Error {\n name = 'GOVUKFrontendError'\n}\n\n/**\n * Indicates that GOV.UK Frontend is not supported\n */\nexport class SupportError extends GOVUKFrontendError {\n name = 'SupportError'\n\n /**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n */\n constructor($scope = document.body) {\n const supportMessage =\n 'noModule' in HTMLScriptElement.prototype\n ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet'\n : 'GOV.UK Frontend is not supported in this browser'\n\n super(\n $scope\n ? supportMessage\n : 'GOV.UK Frontend initialised without `<script type=\"module\">`'\n )\n }\n}\n\n/**\n * Indicates that a component has received an illegal configuration\n */\nexport class ConfigError extends GOVUKFrontendError {\n name = 'ConfigError'\n}\n\n/**\n * Indicates an issue with an element (possibly `null` or `undefined`)\n */\nexport class ElementError extends GOVUKFrontendError {\n name = 'ElementError'\n\n /**\n * @internal\n * @overload\n * @param {string} message - Element error message\n */\n\n /**\n * @internal\n * @overload\n * @param {ElementErrorOptions} options - Element error options\n */\n\n /**\n * @internal\n * @param {string | ElementErrorOptions} messageOrOptions - Element error message or options\n */\n constructor(messageOrOptions) {\n let message = typeof messageOrOptions === 'string' ? messageOrOptions : ''\n\n // Build message from options\n if (typeof messageOrOptions === 'object') {\n const { componentName, identifier, element, expectedType } =\n messageOrOptions\n\n // Add prefix and identifier\n message = `${componentName}: ${identifier}`\n\n // Append reason\n message += element\n ? ` is not of type ${expectedType ?? 'HTMLElement'}`\n : ' not found'\n }\n\n super(message)\n }\n}\n\n/**\n * Element error options\n *\n * @internal\n * @typedef {object} ElementErrorOptions\n * @property {string} componentName - The name of the component throwing the error\n * @property {string} identifier - An identifier that'll let the user understand which element has an error. This is whatever makes the most sense\n * @property {Element | null} [element] - The element in error\n * @property {string} [expectedType] - The type that was expected for the identifier\n */\n","import { isSupported } from './common/index.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Base Component class\n *\n * Centralises the behaviours shared by our components\n *\n * @internal\n * @abstract\n */\nexport class GOVUKFrontendComponent {\n /**\n * Constructs a new component, validating that GOV.UK Frontend is supported\n *\n * @internal\n */\n constructor() {\n this.checkSupport()\n }\n\n /**\n * Validates whether GOV.UK Frontend is supported\n *\n * @private\n * @throws {SupportError} when GOV.UK Frontend is not supported\n */\n checkSupport() {\n if (!isSupported()) {\n throw new SupportError()\n }\n }\n}\n","import { getFragmentFromUrl, setFocus } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Skip link component\n *\n * @preserve\n */\nexport class SkipLink extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /**\n * @param {Element | null} $module - HTML element to use for skip link\n * @throws {ElementError} when $module is not set or the wrong type\n * @throws {ElementError} when $module.hash does not contain a hash\n * @throws {ElementError} when the linked element is missing or the wrong type\n */\n constructor($module) {\n super()\n\n if (!($module instanceof HTMLAnchorElement)) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $module,\n expectedType: 'HTMLAnchorElement',\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n\n const hash = this.$module.hash\n const href = this.$module.getAttribute('href') ?? ''\n\n /** @type {URL | undefined} */\n let url\n\n /**\n * Check for valid link URL\n *\n * {@link https://caniuse.com/url}\n * {@link https://url.spec.whatwg.org}\n *\n */\n try {\n url = new window.URL(this.$module.href)\n } catch (error) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) is invalid`\n )\n }\n\n // Return early for external URLs or links to other pages\n if (\n url.origin !== window.location.origin ||\n url.pathname !== window.location.pathname\n ) {\n return\n }\n\n const linkedElementId = getFragmentFromUrl(hash)\n\n // Check link path matching current page\n if (!linkedElementId) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) has no hash fragment`\n )\n }\n\n const $linkedElement = document.getElementById(linkedElementId)\n\n // Check for link target element\n if (!$linkedElement) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $linkedElement,\n identifier: `Target content (\\`id=\"${linkedElementId}\"\\`)`\n })\n }\n\n /**\n * Focus the linked element on click\n *\n * Adds a helper CSS class to hide native focus styles,\n * but removes it on blur to restore native focus styles\n */\n this.$module.addEventListener('click', () =>\n setFocus($linkedElement, {\n onBeforeFocus() {\n $linkedElement.classList.add('govuk-skip-link-focused-element')\n },\n onBlur() {\n $linkedElement.classList.remove('govuk-skip-link-focused-element')\n }\n })\n )\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-skip-link'\n}\n"],"names":["getFragmentFromUrl","url","includes","undefined","split","pop","setFocus","$element","options","_options$onBeforeFocu","isFocusable","getAttribute","setAttribute","onFocus","addEventListener","onBlur","once","_options$onBlur","call","removeAttribute","onBeforeFocus","focus","isSupported","$scope","document","body","classList","contains","GOVUKFrontendError","Error","constructor","args","name","SupportError","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","GOVUKFrontendComponent","checkSupport","SkipLink","$module","_this$$module$getAttr","HTMLAnchorElement","hash","href","window","URL","error","origin","location","pathname","linkedElementId","$linkedElement","getElementById","add","remove","moduleName"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { getFragmentFromUrl, setFocus } from '../../common/index.mjs';
2
+ import { ElementError } from '../../errors/index.mjs';
3
+ import { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs';
4
+
5
+ /**
6
+ * Skip link component
7
+ *
8
+ * @preserve
9
+ */
10
+ class SkipLink extends GOVUKFrontendComponent {
11
+ /**
12
+ * @param {Element | null} $module - HTML element to use for skip link
13
+ * @throws {ElementError} when $module is not set or the wrong type
14
+ * @throws {ElementError} when $module.hash does not contain a hash
15
+ * @throws {ElementError} when the linked element is missing or the wrong type
16
+ */
17
+ constructor($module) {
18
+ var _this$$module$getAttr;
19
+ super();
20
+ this.$module = void 0;
21
+ if (!($module instanceof HTMLAnchorElement)) {
22
+ throw new ElementError({
23
+ componentName: 'Skip link',
24
+ element: $module,
25
+ expectedType: 'HTMLAnchorElement',
26
+ identifier: 'Root element (`$module`)'
27
+ });
28
+ }
29
+ this.$module = $module;
30
+ const hash = this.$module.hash;
31
+ const href = (_this$$module$getAttr = this.$module.getAttribute('href')) != null ? _this$$module$getAttr : '';
32
+ let url;
33
+ try {
34
+ url = new window.URL(this.$module.href);
35
+ } catch (error) {
36
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) is invalid`);
37
+ }
38
+ if (url.origin !== window.location.origin || url.pathname !== window.location.pathname) {
39
+ return;
40
+ }
41
+ const linkedElementId = getFragmentFromUrl(hash);
42
+ if (!linkedElementId) {
43
+ throw new ElementError(`Skip link: Target link (\`href="${href}"\`) has no hash fragment`);
44
+ }
45
+ const $linkedElement = document.getElementById(linkedElementId);
46
+ if (!$linkedElement) {
47
+ throw new ElementError({
48
+ componentName: 'Skip link',
49
+ element: $linkedElement,
50
+ identifier: `Target content (\`id="${linkedElementId}"\`)`
51
+ });
52
+ }
53
+ this.$module.addEventListener('click', () => setFocus($linkedElement, {
54
+ onBeforeFocus() {
55
+ $linkedElement.classList.add('govuk-skip-link-focused-element');
56
+ },
57
+ onBlur() {
58
+ $linkedElement.classList.remove('govuk-skip-link-focused-element');
59
+ }
60
+ }));
61
+ }
62
+ }
63
+ SkipLink.moduleName = 'govuk-skip-link';
64
+
65
+ export { SkipLink };
66
+ //# sourceMappingURL=skip-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-link.mjs","sources":["../../../../src/govuk/components/skip-link/skip-link.mjs"],"sourcesContent":["import { getFragmentFromUrl, setFocus } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Skip link component\n *\n * @preserve\n */\nexport class SkipLink extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /**\n * @param {Element | null} $module - HTML element to use for skip link\n * @throws {ElementError} when $module is not set or the wrong type\n * @throws {ElementError} when $module.hash does not contain a hash\n * @throws {ElementError} when the linked element is missing or the wrong type\n */\n constructor($module) {\n super()\n\n if (!($module instanceof HTMLAnchorElement)) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $module,\n expectedType: 'HTMLAnchorElement',\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n\n const hash = this.$module.hash\n const href = this.$module.getAttribute('href') ?? ''\n\n /** @type {URL | undefined} */\n let url\n\n /**\n * Check for valid link URL\n *\n * {@link https://caniuse.com/url}\n * {@link https://url.spec.whatwg.org}\n *\n */\n try {\n url = new window.URL(this.$module.href)\n } catch (error) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) is invalid`\n )\n }\n\n // Return early for external URLs or links to other pages\n if (\n url.origin !== window.location.origin ||\n url.pathname !== window.location.pathname\n ) {\n return\n }\n\n const linkedElementId = getFragmentFromUrl(hash)\n\n // Check link path matching current page\n if (!linkedElementId) {\n throw new ElementError(\n `Skip link: Target link (\\`href=\"${href}\"\\`) has no hash fragment`\n )\n }\n\n const $linkedElement = document.getElementById(linkedElementId)\n\n // Check for link target element\n if (!$linkedElement) {\n throw new ElementError({\n componentName: 'Skip link',\n element: $linkedElement,\n identifier: `Target content (\\`id=\"${linkedElementId}\"\\`)`\n })\n }\n\n /**\n * Focus the linked element on click\n *\n * Adds a helper CSS class to hide native focus styles,\n * but removes it on blur to restore native focus styles\n */\n this.$module.addEventListener('click', () =>\n setFocus($linkedElement, {\n onBeforeFocus() {\n $linkedElement.classList.add('govuk-skip-link-focused-element')\n },\n onBlur() {\n $linkedElement.classList.remove('govuk-skip-link-focused-element')\n }\n })\n )\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-skip-link'\n}\n"],"names":["SkipLink","GOVUKFrontendComponent","constructor","$module","_this$$module$getAttr","HTMLAnchorElement","ElementError","componentName","element","expectedType","identifier","hash","href","getAttribute","url","window","URL","error","origin","location","pathname","linkedElementId","getFragmentFromUrl","$linkedElement","document","getElementById","addEventListener","setFocus","onBeforeFocus","classList","add","onBlur","remove","moduleName"],"mappings":";;;;AAIA;AACA;AACA;AACA;AACA;AACO,MAAMA,QAAQ,SAASC,sBAAsB,CAAC;AAInD;AACF;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,OAAO,EAAE;AAAA,IAAA,IAAAC,qBAAA,CAAA;AACnB,IAAA,KAAK,EAAE,CAAA;AAAA,IAAA,IAAA,CATTD,OAAO,GAAA,KAAA,CAAA,CAAA;AAWL,IAAA,IAAI,EAAEA,OAAO,YAAYE,iBAAiB,CAAC,EAAE;MAC3C,MAAM,IAAIC,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,WAAW;AAC1BC,QAAAA,OAAO,EAAEL,OAAO;AAChBM,QAAAA,YAAY,EAAE,mBAAmB;AACjCC,QAAAA,UAAU,EAAE,0BAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,IAAI,CAACP,OAAO,GAAGA,OAAO,CAAA;AAEtB,IAAA,MAAMQ,IAAI,GAAG,IAAI,CAACR,OAAO,CAACQ,IAAI,CAAA;AAC9B,IAAA,MAAMC,IAAI,GAAA,CAAAR,qBAAA,GAAG,IAAI,CAACD,OAAO,CAACU,YAAY,CAAC,MAAM,CAAC,KAAAT,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;AAGpD,IAAA,IAAIU,GAAG,CAAA;IASP,IAAI;MACFA,GAAG,GAAG,IAAIC,MAAM,CAACC,GAAG,CAAC,IAAI,CAACb,OAAO,CAACS,IAAI,CAAC,CAAA;KACxC,CAAC,OAAOK,KAAK,EAAE;AACd,MAAA,MAAM,IAAIX,YAAY,CACnB,CAAkCM,gCAAAA,EAAAA,IAAK,iBAC1C,CAAC,CAAA;AACH,KAAA;AAGA,IAAA,IACEE,GAAG,CAACI,MAAM,KAAKH,MAAM,CAACI,QAAQ,CAACD,MAAM,IACrCJ,GAAG,CAACM,QAAQ,KAAKL,MAAM,CAACI,QAAQ,CAACC,QAAQ,EACzC;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMC,eAAe,GAAGC,kBAAkB,CAACX,IAAI,CAAC,CAAA;IAGhD,IAAI,CAACU,eAAe,EAAE;AACpB,MAAA,MAAM,IAAIf,YAAY,CACnB,CAAkCM,gCAAAA,EAAAA,IAAK,2BAC1C,CAAC,CAAA;AACH,KAAA;AAEA,IAAA,MAAMW,cAAc,GAAGC,QAAQ,CAACC,cAAc,CAACJ,eAAe,CAAC,CAAA;IAG/D,IAAI,CAACE,cAAc,EAAE;MACnB,MAAM,IAAIjB,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,WAAW;AAC1BC,QAAAA,OAAO,EAAEe,cAAc;QACvBb,UAAU,EAAG,yBAAwBW,eAAgB,CAAA,IAAA,CAAA;AACvD,OAAC,CAAC,CAAA;AACJ,KAAA;IAQA,IAAI,CAAClB,OAAO,CAACuB,gBAAgB,CAAC,OAAO,EAAE,MACrCC,QAAQ,CAACJ,cAAc,EAAE;AACvBK,MAAAA,aAAaA,GAAG;AACdL,QAAAA,cAAc,CAACM,SAAS,CAACC,GAAG,CAAC,iCAAiC,CAAC,CAAA;OAChE;AACDC,MAAAA,MAAMA,GAAG;AACPR,QAAAA,cAAc,CAACM,SAAS,CAACG,MAAM,CAAC,iCAAiC,CAAC,CAAA;AACpE,OAAA;AACF,KAAC,CACH,CAAC,CAAA;AACH,GAAA;AAMF,CAAA;AA/FahC,QAAQ,CA8FZiC,UAAU,GAAG,iBAAiB;;;;"}
@@ -0,0 +1 @@
1
+ <a href="#test-target-element" class="govuk-skip-link" data-module="govuk-skip-link">Skip to main content</a>
@@ -0,0 +1 @@
1
+ <a href="#test-target-element" class="govuk-skip-link :focus" data-module="govuk-skip-link">Skip to main content</a>
@@ -0,0 +1,6 @@
1
+ {% from "../../macros/attributes.njk" import govukAttributes -%}
2
+
3
+ <a href="{{ params.href | default("#content", true) }}" class="govuk-skip-link {%- if params.classes %} {{ params.classes }}{% endif %}"
4
+ {{- govukAttributes(params.attributes) }} data-module="govuk-skip-link">
5
+ {{- params.html | safe if params.html else params.text -}}
6
+ </a>