defra_ruby_template 3.15.1 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1302) 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 +15 -0
  6. data/Rakefile +44 -24
  7. data/app/views/layouts/defra_ruby_template.html.erb +7 -11
  8. data/lib/defra_ruby_template/version.rb +1 -1
  9. data/node_modules/.package-lock.json +3 -3
  10. data/node_modules/govuk-frontend/README.md +14 -13
  11. data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
  12. data/node_modules/govuk-frontend/dist/govuk/_base.scss.map +1 -0
  13. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2457 -0
  14. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -0
  15. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2435 -0
  16. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -0
  17. data/node_modules/govuk-frontend/dist/govuk/all.mjs +15 -0
  18. data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -0
  19. data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
  20. data/node_modules/govuk-frontend/dist/govuk/all.scss.map +1 -0
  21. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
  22. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  23. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  24. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
  25. data/node_modules/govuk-frontend/dist/govuk/assets/manifest.json +39 -0
  26. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
  27. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs.map +1 -0
  28. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
  29. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs.map +1 -0
  30. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +139 -0
  31. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs.map +1 -0
  32. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
  33. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map +1 -0
  34. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
  35. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map +1 -0
  36. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
  37. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss.map +1 -0
  38. data/node_modules/govuk-frontend/dist/govuk/components/_index.scss +39 -0
  39. data/node_modules/govuk-frontend/dist/govuk/components/_index.scss.map +1 -0
  40. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
  41. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss.map +1 -0
  42. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +366 -0
  43. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss.map +1 -0
  44. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +729 -0
  45. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -0
  46. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +721 -0
  47. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -0
  48. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +368 -0
  49. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs.map +1 -0
  50. data/node_modules/govuk-frontend/dist/govuk/components/accordion/fixtures.json +359 -0
  51. data/node_modules/govuk-frontend/dist/govuk/components/accordion/macro-options.json +142 -0
  52. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-default.html +30 -0
  53. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-additional-descriptions.html +39 -0
  54. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-all-sections-already-open.html +30 -0
  55. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-focusable-elements-inside.html +26 -0
  56. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-long-content-and-description.html +36 -0
  57. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-one-section-open.html +30 -0
  58. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-translations.html +30 -0
  59. data/node_modules/govuk-frontend/dist/govuk/components/accordion/template.njk +67 -0
  60. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
  61. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss.map +1 -0
  62. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss +83 -0
  63. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss.map +1 -0
  64. data/node_modules/govuk-frontend/dist/govuk/components/back-link/fixtures.json +87 -0
  65. data/node_modules/govuk-frontend/dist/govuk/components/back-link/macro-options.json +32 -0
  66. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-default.html +1 -0
  67. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-inverse.html +1 -0
  68. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-with-custom-text.html +1 -0
  69. data/node_modules/govuk-frontend/dist/govuk/components/back-link/template.njk +6 -0
  70. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
  71. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss.map +1 -0
  72. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +134 -0
  73. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss.map +1 -0
  74. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/fixtures.json +240 -0
  75. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/macro-options.json +52 -0
  76. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-default.html +10 -0
  77. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-inverse.html +11 -0
  78. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-collapse-on-mobile.html +13 -0
  79. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-last-breadcrumb-as-current-page.html +11 -0
  80. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-multiple-levels.html +16 -0
  81. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-one-level.html +7 -0
  82. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-without-the-home-section.html +10 -0
  83. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template.njk +30 -0
  84. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
  85. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss.map +1 -0
  86. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +262 -0
  87. data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss.map +1 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +252 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js.map +1 -0
  90. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +244 -0
  91. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs.map +1 -0
  92. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +83 -0
  93. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs.map +1 -0
  94. data/node_modules/govuk-frontend/dist/govuk/components/button/fixtures.json +474 -0
  95. data/node_modules/govuk-frontend/dist/govuk/components/button/macro-options.json +80 -0
  96. data/node_modules/govuk-frontend/dist/govuk/components/button/template-default.html +3 -0
  97. data/node_modules/govuk-frontend/dist/govuk/components/button/template-disabled.html +3 -0
  98. data/node_modules/govuk-frontend/dist/govuk/components/button/template-input-disabled.html +1 -0
  99. data/node_modules/govuk-frontend/dist/govuk/components/button/template-input.html +1 -0
  100. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-disabled.html +3 -0
  101. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-link.html +3 -0
  102. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-start.html +6 -0
  103. data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse.html +3 -0
  104. data/node_modules/govuk-frontend/dist/govuk/components/button/template-link.html +3 -0
  105. data/node_modules/govuk-frontend/dist/govuk/components/button/template-prevent-double-click.html +3 -0
  106. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-disabled.html +3 -0
  107. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-link.html +3 -0
  108. data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary.html +3 -0
  109. data/node_modules/govuk-frontend/dist/govuk/components/button/template-start-link.html +6 -0
  110. data/node_modules/govuk-frontend/dist/govuk/components/button/template-start.html +6 -0
  111. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-disabled.html +3 -0
  112. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-link.html +3 -0
  113. data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning.html +3 -0
  114. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-active-state.html +3 -0
  115. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-focus-state.html +3 -0
  116. data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-hover-state.html +3 -0
  117. data/node_modules/govuk-frontend/dist/govuk/components/button/template.njk +58 -0
  118. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
  119. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss.map +1 -0
  120. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +36 -0
  121. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss.map +1 -0
  122. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +695 -0
  123. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -0
  124. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +687 -0
  125. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -0
  126. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +304 -0
  127. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -0
  128. data/node_modules/govuk-frontend/dist/govuk/components/character-count/fixtures.json +398 -0
  129. data/node_modules/govuk-frontend/dist/govuk/components/character-count/macro-options.json +199 -0
  130. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-default.html +9 -0
  131. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-rows.html +9 -0
  132. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-textarea-description.html +9 -0
  133. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value-exceeding-limit.html +15 -0
  134. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value.html +12 -0
  135. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-hint.html +12 -0
  136. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-label-as-page-heading.html +11 -0
  137. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-threshold.html +9 -0
  138. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-translations.html +9 -0
  139. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-word-count.html +9 -0
  140. data/node_modules/govuk-frontend/dist/govuk/components/character-count/template.njk +120 -0
  141. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
  142. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss.map +1 -0
  143. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss +306 -0
  144. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss.map +1 -0
  145. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +202 -0
  146. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js.map +1 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +194 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs.map +1 -0
  149. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +120 -0
  150. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs.map +1 -0
  151. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/fixtures.json +1411 -0
  152. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/macro-options.json +229 -0
  153. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-default.html +22 -0
  154. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-conditional-reveal.html +25 -0
  155. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-disabled.html +27 -0
  156. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-error.html +30 -0
  157. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-hint.html +30 -0
  158. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-long-text.html +27 -0
  159. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small.html +27 -0
  160. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-a-medium-legend.html +33 -0
  161. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-item-checked.html +39 -0
  162. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items-with-special-characters.html +39 -0
  163. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items.html +39 -0
  164. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-disabled-item.html +29 -0
  165. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-and-none.html +36 -0
  166. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-none-and-conditional-items.html +46 -0
  167. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message-and-hints-on-items.html +39 -0
  168. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message.html +30 -0
  169. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-fieldset-and-error-message.html +30 -0
  170. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-hints-on-items.html +29 -0
  171. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-id-and-name.html +30 -0
  172. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-legend-as-a-page-heading.html +32 -0
  173. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-optional-form-group-classes-showing-group-error.html +40 -0
  174. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-pre-checked-values.html +30 -0
  175. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-and-hint-set-aria-describedby-on-input.html +16 -0
  176. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-set-aria-describedby-on-input.html +13 -0
  177. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-very-long-option-text.html +33 -0
  178. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-without-fieldset.html +22 -0
  179. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template.njk +122 -0
  180. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
  181. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss.map +1 -0
  182. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss +50 -0
  183. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss.map +1 -0
  184. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/fixtures.json +520 -0
  185. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/macro-options.json +132 -0
  186. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-accepted-confirmation-banner.html +19 -0
  187. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-client-side-implementation.html +60 -0
  188. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-default.html +26 -0
  189. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-rejected-confirmation-banner.html +19 -0
  190. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-with-html.html +27 -0
  191. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template.njk +57 -0
  192. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
  193. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss.map +1 -0
  194. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss +28 -0
  195. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss.map +1 -0
  196. data/node_modules/govuk-frontend/dist/govuk/components/date-input/fixtures.json +657 -0
  197. data/node_modules/govuk-frontend/dist/govuk/components/date-input/macro-options.json +163 -0
  198. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-complete-question.html +36 -0
  199. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-day-and-month.html +28 -0
  200. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-default.html +28 -0
  201. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-month-and-year.html +28 -0
  202. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-autocomplete-values.html +36 -0
  203. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-default-items.html +36 -0
  204. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-day-input.html +39 -0
  205. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-month-input.html +39 -0
  206. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-year-input.html +39 -0
  207. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-and-hint.html +39 -0
  208. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-only.html +36 -0
  209. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-input-attributes.html +36 -0
  210. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-optional-form-group-classes.html +36 -0
  211. data/node_modules/govuk-frontend/dist/govuk/components/date-input/template.njk +106 -0
  212. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
  213. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss.map +1 -0
  214. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +134 -0
  215. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss.map +1 -0
  216. data/node_modules/govuk-frontend/dist/govuk/components/details/fixtures.json +123 -0
  217. data/node_modules/govuk-frontend/dist/govuk/components/details/implementation.md +87 -0
  218. data/node_modules/govuk-frontend/dist/govuk/components/details/macro-options.json +56 -0
  219. data/node_modules/govuk-frontend/dist/govuk/components/details/template-default.html +10 -0
  220. data/node_modules/govuk-frontend/dist/govuk/components/details/template-expanded.html +10 -0
  221. data/node_modules/govuk-frontend/dist/govuk/components/details/template-with-html.html +18 -0
  222. data/node_modules/govuk-frontend/dist/govuk/components/details/template.njk +14 -0
  223. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
  224. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss.map +1 -0
  225. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss +14 -0
  226. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss.map +1 -0
  227. data/node_modules/govuk-frontend/dist/govuk/components/error-message/fixtures.json +104 -0
  228. data/node_modules/govuk-frontend/dist/govuk/components/error-message/macro-options.json +38 -0
  229. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-default.html +3 -0
  230. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-translated.html +3 -0
  231. data/node_modules/govuk-frontend/dist/govuk/components/error-message/template.njk +13 -0
  232. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
  233. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss.map +1 -0
  234. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss +52 -0
  235. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss.map +1 -0
  236. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +312 -0
  237. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js.map +1 -0
  238. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +304 -0
  239. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs.map +1 -0
  240. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +113 -0
  241. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs.map +1 -0
  242. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/fixtures.json +307 -0
  243. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/macro-options.json +82 -0
  244. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-default.html +17 -0
  245. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-mixed-with-and-without-links.html +17 -0
  246. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-description-only.html +12 -0
  247. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-everything.html +20 -0
  248. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-without-links.html +14 -0
  249. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template.njk +37 -0
  250. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/README.md +15 -0
  251. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
  252. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss.map +1 -0
  253. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss +92 -0
  254. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss.map +1 -0
  255. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +596 -0
  256. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -0
  257. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +588 -0
  258. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -0
  259. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +235 -0
  260. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs.map +1 -0
  261. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/fixtures.json +58 -0
  262. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro-options.json +62 -0
  263. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro.njk +3 -0
  264. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-default.html +5 -0
  265. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-translated.html +5 -0
  266. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template.njk +25 -0
  267. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
  268. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss.map +1 -0
  269. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss +71 -0
  270. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss.map +1 -0
  271. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/fixtures.json +242 -0
  272. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/macro-options.json +70 -0
  273. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-l.html +7 -0
  274. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-m.html +7 -0
  275. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-s.html +7 -0
  276. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-without-class.html +7 -0
  277. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-xl.html +7 -0
  278. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-default.html +5 -0
  279. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-large-text.html +5 -0
  280. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-medium-text.html +5 -0
  281. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-small-text.html +5 -0
  282. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-xl-text.html +5 -0
  283. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template.njk +24 -0
  284. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
  285. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss.map +1 -0
  286. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +52 -0
  287. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss.map +1 -0
  288. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/fixtures.json +225 -0
  289. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/macro-options.json +125 -0
  290. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-default.html +6 -0
  291. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-error-message-and-hint.html +12 -0
  292. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-hint-text.html +9 -0
  293. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-label-as-page-heading.html +8 -0
  294. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-optional-form-group-classes.html +6 -0
  295. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-value.html +6 -0
  296. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template.njk +53 -0
  297. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
  298. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss.map +1 -0
  299. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +152 -0
  300. data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss.map +1 -0
  301. data/node_modules/govuk-frontend/dist/govuk/components/footer/fixtures.json +691 -0
  302. data/node_modules/govuk-frontend/dist/govuk/components/footer/macro-options.json +164 -0
  303. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-default.html +38 -0
  304. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-full-gds-example.html +212 -0
  305. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-three-equal-columns.html +146 -0
  306. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-html-content-licence-and-copyright-notice.html +33 -0
  307. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-meta.html +42 -0
  308. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-text-content-licence-and-copyright-notice.html +33 -0
  309. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-one-column.html +76 -0
  310. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-two-columns.html +76 -0
  311. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta-links-and-meta-content.html +84 -0
  312. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta.html +56 -0
  313. data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-navigation.html +96 -0
  314. data/node_modules/govuk-frontend/dist/govuk/components/footer/template.njk +97 -0
  315. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
  316. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss.map +1 -0
  317. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +346 -0
  318. data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss.map +1 -0
  319. data/node_modules/govuk-frontend/dist/govuk/components/header/fixtures.json +504 -0
  320. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +186 -0
  321. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +1 -0
  322. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +178 -0
  323. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +1 -0
  324. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +97 -0
  325. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs.map +1 -0
  326. data/node_modules/govuk-frontend/dist/govuk/components/header/macro-options.json +112 -0
  327. data/node_modules/govuk-frontend/dist/govuk/components/header/template-default.html +21 -0
  328. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width-with-navigation.html +49 -0
  329. data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width.html +24 -0
  330. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-html.html +49 -0
  331. data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-text-without-link.html +43 -0
  332. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-label.html +51 -0
  333. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-text.html +51 -0
  334. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-navigation-label.html +51 -0
  335. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-large-navigation.html +111 -0
  336. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-navigation.html +51 -0
  337. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-product-name.html +24 -0
  338. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-and-navigation.html +54 -0
  339. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-but-no-service-url.html +26 -0
  340. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name.html +26 -0
  341. data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-st-edwards-crown.html +21 -0
  342. data/node_modules/govuk-frontend/dist/govuk/components/header/template.njk +96 -0
  343. data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss +4 -0
  344. data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss.map +1 -0
  345. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss +45 -0
  346. data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss.map +1 -0
  347. data/node_modules/govuk-frontend/dist/govuk/components/hint/fixtures.json +71 -0
  348. data/node_modules/govuk-frontend/dist/govuk/components/hint/macro-options.json +32 -0
  349. data/node_modules/govuk-frontend/dist/govuk/components/hint/template-default.html +5 -0
  350. data/node_modules/govuk-frontend/dist/govuk/components/hint/template-with-html.html +4 -0
  351. data/node_modules/govuk-frontend/dist/govuk/components/hint/template.njk +6 -0
  352. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +165 -0
  353. data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss.map +1 -0
  354. data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss +4 -0
  355. data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss.map +1 -0
  356. data/node_modules/govuk-frontend/dist/govuk/components/input/fixtures.json +781 -0
  357. data/node_modules/govuk-frontend/dist/govuk/components/input/macro-options.json +245 -0
  358. data/node_modules/govuk-frontend/dist/govuk/components/input/template-default.html +6 -0
  359. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocapitalize-turned-off.html +6 -0
  360. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocomplete-attribute.html +6 -0
  361. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-error-message.html +12 -0
  362. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-extra-letter-spacing.html +6 -0
  363. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-hint-text.html +9 -0
  364. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-label-as-page-heading.html +8 -0
  365. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-optional-form-group-classes.html +6 -0
  366. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-pattern-attribute.html +6 -0
  367. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-long-suffix.html +10 -0
  368. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-error.html +13 -0
  369. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-width-modifier.html +10 -0
  370. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix.html +10 -0
  371. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix.html +9 -0
  372. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-disabled.html +6 -0
  373. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-enabled.html +6 -0
  374. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-suffix.html +9 -0
  375. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-10-class.html +9 -0
  376. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-2-class.html +9 -0
  377. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-20-class.html +9 -0
  378. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-3-class.html +9 -0
  379. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-30-class.html +9 -0
  380. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-4-class.html +9 -0
  381. data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-5-class.html +9 -0
  382. data/node_modules/govuk-frontend/dist/govuk/components/input/template.njk +132 -0
  383. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss +26 -0
  384. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss.map +1 -0
  385. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
  386. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss.map +1 -0
  387. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/fixtures.json +70 -0
  388. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/macro-options.json +38 -0
  389. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-default.html +3 -0
  390. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-with-html.html +11 -0
  391. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template.njk +6 -0
  392. data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss +46 -0
  393. data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss.map +1 -0
  394. data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss +4 -0
  395. data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss.map +1 -0
  396. data/node_modules/govuk-frontend/dist/govuk/components/label/fixtures.json +193 -0
  397. data/node_modules/govuk-frontend/dist/govuk/components/label/macro-options.json +38 -0
  398. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-l.html +5 -0
  399. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-m.html +5 -0
  400. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-s.html +5 -0
  401. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-without-class.html +5 -0
  402. data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-xl.html +5 -0
  403. data/node_modules/govuk-frontend/dist/govuk/components/label/template-default.html +3 -0
  404. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-large-text.html +3 -0
  405. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-medium-text.html +3 -0
  406. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-small-text.html +3 -0
  407. data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-xl-text.html +3 -0
  408. data/node_modules/govuk-frontend/dist/govuk/components/label/template-with-bold-text.html +3 -0
  409. data/node_modules/govuk-frontend/dist/govuk/components/label/template.njk +19 -0
  410. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +92 -0
  411. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss.map +1 -0
  412. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
  413. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss.map +1 -0
  414. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/fixtures.json +270 -0
  415. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/macro-options.json +74 -0
  416. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +254 -0
  417. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js.map +1 -0
  418. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +246 -0
  419. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs.map +1 -0
  420. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +61 -0
  421. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs.map +1 -0
  422. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-disabled-with-type-as-success.html +12 -0
  423. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-explicitly-enabled-with-type-as-success.html +12 -0
  424. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-custom-tabindex.html +12 -0
  425. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-default.html +12 -0
  426. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-paragraph-as-html-heading.html +10 -0
  427. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-rolealert-overridden-to-roleregion-with-type-as-success.html +12 -0
  428. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-success-with-custom-html.html +16 -0
  429. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-a-list.html +16 -0
  430. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-long-heading.html +12 -0
  431. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-lots-of-content.html +19 -0
  432. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-text-as-html.html +15 -0
  433. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-type-as-success.html +12 -0
  434. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template.njk +49 -0
  435. data/node_modules/govuk-frontend/dist/govuk/components/pagination/README.md +15 -0
  436. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +241 -0
  437. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss.map +1 -0
  438. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
  439. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss.map +1 -0
  440. data/node_modules/govuk-frontend/dist/govuk/components/pagination/fixtures.json +396 -0
  441. data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro-options.json +140 -0
  442. data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro.njk +3 -0
  443. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-default.html +39 -0
  444. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-first-page.html +29 -0
  445. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-last-page.html +29 -0
  446. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-accessible-labels-on-item-links.html +39 -0
  447. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-link-and-item-text.html +39 -0
  448. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-navigation-landmark.html +39 -0
  449. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-many-pages.html +65 -0
  450. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-next-only.html +12 -0
  451. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-labels.html +26 -0
  452. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-very-long-labels.html +26 -0
  453. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-in-a-different-language.html +22 -0
  454. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only.html +22 -0
  455. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-previous-only.html +12 -0
  456. data/node_modules/govuk-frontend/dist/govuk/components/pagination/template.njk +85 -0
  457. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +54 -0
  458. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss.map +1 -0
  459. data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss +4 -0
  460. data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss.map +1 -0
  461. data/node_modules/govuk-frontend/dist/govuk/components/panel/fixtures.json +109 -0
  462. data/node_modules/govuk-frontend/dist/govuk/components/panel/macro-options.json +50 -0
  463. data/node_modules/govuk-frontend/dist/govuk/components/panel/template-custom-heading-level.html +8 -0
  464. data/node_modules/govuk-frontend/dist/govuk/components/panel/template-default.html +8 -0
  465. data/node_modules/govuk-frontend/dist/govuk/components/panel/template.njk +16 -0
  466. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +54 -0
  467. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss.map +1 -0
  468. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
  469. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss.map +1 -0
  470. data/node_modules/govuk-frontend/dist/govuk/components/password-input/fixtures.json +185 -0
  471. data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro-options.json +181 -0
  472. data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro.njk +3 -0
  473. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +528 -0
  474. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -0
  475. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +520 -0
  476. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -0
  477. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +163 -0
  478. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs.map +1 -0
  479. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-default.html +11 -0
  480. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-error-message.html +17 -0
  481. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-hint-text.html +14 -0
  482. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-input-width-class.html +11 -0
  483. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-label-as-page-heading.html +13 -0
  484. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-new-password-autocomplete.html +11 -0
  485. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-translations.html +11 -0
  486. data/node_modules/govuk-frontend/dist/govuk/components/password-input/template.njk +91 -0
  487. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +44 -0
  488. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss.map +1 -0
  489. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
  490. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss.map +1 -0
  491. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/fixtures.json +90 -0
  492. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/macro-options.json +33 -0
  493. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template-default.html +10 -0
  494. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template.njk +17 -0
  495. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +326 -0
  496. data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss.map +1 -0
  497. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
  498. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss.map +1 -0
  499. data/node_modules/govuk-frontend/dist/govuk/components/radios/fixtures.json +1403 -0
  500. data/node_modules/govuk-frontend/dist/govuk/components/radios/macro-options.json +211 -0
  501. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +179 -0
  502. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js.map +1 -0
  503. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +171 -0
  504. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs.map +1 -0
  505. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +97 -0
  506. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs.map +1 -0
  507. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-default.html +19 -0
  508. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-inline.html +24 -0
  509. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked-using-value.html +16 -0
  510. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked.html +19 -0
  511. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline-extreme.html +69 -0
  512. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline.html +27 -0
  513. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-a-divider.html +28 -0
  514. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-conditional-reveal.html +31 -0
  515. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-disabled.html +27 -0
  516. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-error.html +30 -0
  517. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-hint.html +30 -0
  518. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-long-text.html +27 -0
  519. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small.html +27 -0
  520. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-divider.html +28 -0
  521. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-medium-legend.html +24 -0
  522. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-item-checked.html +39 -0
  523. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-and-pre-checked-value.html +39 -0
  524. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-with-special-characters.html +39 -0
  525. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items.html +39 -0
  526. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-disabled.html +29 -0
  527. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-fieldset-and-error-message.html +24 -0
  528. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-hints-on-items.html +29 -0
  529. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-idprefix.html +16 -0
  530. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-legend-as-page-heading.html +26 -0
  531. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-optional-form-group-classes-showing-group-error.html +40 -0
  532. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-very-long-option-text.html +33 -0
  533. data/node_modules/govuk-frontend/dist/govuk/components/radios/template-without-fieldset.html +22 -0
  534. data/node_modules/govuk-frontend/dist/govuk/components/radios/template.njk +115 -0
  535. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +59 -0
  536. data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss.map +1 -0
  537. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
  538. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss.map +1 -0
  539. data/node_modules/govuk-frontend/dist/govuk/components/select/fixtures.json +532 -0
  540. data/node_modules/govuk-frontend/dist/govuk/components/select/macro-options.json +163 -0
  541. data/node_modules/govuk-frontend/dist/govuk/components/select/template-default.html +10 -0
  542. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-full-width-override.html +10 -0
  543. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-hint-text-and-error-message.html +16 -0
  544. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-label-as-page-heading.html +12 -0
  545. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-no-items.html +7 -0
  546. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-optional-form-group-classes.html +10 -0
  547. data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-selected-value.html +10 -0
  548. data/node_modules/govuk-frontend/dist/govuk/components/select/template.njk +66 -0
  549. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss +50 -0
  550. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss.map +1 -0
  551. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
  552. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss.map +1 -0
  553. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/fixtures.json +104 -0
  554. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/macro-options.json +32 -0
  555. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +177 -0
  556. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js.map +1 -0
  557. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +169 -0
  558. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs.map +1 -0
  559. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +66 -0
  560. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs.map +1 -0
  561. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-default.html +1 -0
  562. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-with-focus.html +1 -0
  563. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template.njk +6 -0
  564. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +277 -0
  565. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss.map +1 -0
  566. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
  567. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss.map +1 -0
  568. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/fixtures.json +1591 -0
  569. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/macro-options.json +248 -0
  570. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-custom-header-level.html +28 -0
  571. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-html-header.html +28 -0
  572. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-text-header.html +28 -0
  573. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions-plus-summary-list-actions.html +49 -0
  574. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions.html +36 -0
  575. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-check-your-answers.html +98 -0
  576. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-default.html +35 -0
  577. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-extreme.html +261 -0
  578. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border-on-last-row.html +35 -0
  579. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border.html +35 -0
  580. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-overridden-widths.html +58 -0
  581. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-translated.html +51 -0
  582. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-actions.html +58 -0
  583. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-no-first-action.html +58 -0
  584. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-some-actions.html +45 -0
  585. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template.njk +94 -0
  586. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +75 -0
  587. data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss.map +1 -0
  588. data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss +4 -0
  589. data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss.map +1 -0
  590. data/node_modules/govuk-frontend/dist/govuk/components/table/fixtures.json +630 -0
  591. data/node_modules/govuk-frontend/dist/govuk/components/table/macro-options.json +132 -0
  592. data/node_modules/govuk-frontend/dist/govuk/components/table/template-default.html +19 -0
  593. data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head-and-caption.html +27 -0
  594. data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head.html +26 -0
  595. data/node_modules/govuk-frontend/dist/govuk/components/table/template-with-small-text-modifier-for-tables-with-a-lot-of-data.html +19 -0
  596. data/node_modules/govuk-frontend/dist/govuk/components/table/template.njk +57 -0
  597. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +134 -0
  598. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss.map +1 -0
  599. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss +4 -0
  600. data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss.map +1 -0
  601. data/node_modules/govuk-frontend/dist/govuk/components/tabs/fixtures.json +314 -0
  602. data/node_modules/govuk-frontend/dist/govuk/components/tabs/macro-options.json +84 -0
  603. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +391 -0
  604. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js.map +1 -0
  605. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +383 -0
  606. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs.map +1 -0
  607. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +296 -0
  608. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs.map +1 -0
  609. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-default.html +117 -0
  610. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-tabs-with-anchor-in-panel.html +26 -0
  611. data/node_modules/govuk-frontend/dist/govuk/components/tabs/template.njk +48 -0
  612. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +94 -0
  613. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss.map +1 -0
  614. data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss +4 -0
  615. data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss.map +1 -0
  616. data/node_modules/govuk-frontend/dist/govuk/components/tag/fixtures.json +159 -0
  617. data/node_modules/govuk-frontend/dist/govuk/components/tag/macro-options.json +26 -0
  618. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-blue.html +3 -0
  619. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-default.html +3 -0
  620. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-green.html +3 -0
  621. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-grey.html +3 -0
  622. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-light-blue.html +3 -0
  623. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-orange.html +3 -0
  624. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-pink.html +3 -0
  625. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-purple.html +3 -0
  626. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-red.html +3 -0
  627. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-turquoise.html +3 -0
  628. data/node_modules/govuk-frontend/dist/govuk/components/tag/template-yellow.html +3 -0
  629. data/node_modules/govuk-frontend/dist/govuk/components/tag/template.njk +6 -0
  630. data/node_modules/govuk-frontend/dist/govuk/components/task-list/README.md +15 -0
  631. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +77 -0
  632. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss.map +1 -0
  633. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
  634. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss.map +1 -0
  635. data/node_modules/govuk-frontend/dist/govuk/components/task-list/fixtures.json +542 -0
  636. data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro-options.json +119 -0
  637. data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro.njk +3 -0
  638. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-default.html +37 -0
  639. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-3-states.html +49 -0
  640. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-all-possible-colours.html +143 -0
  641. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-hint-text-and-additional-states.html +77 -0
  642. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-very-long-single-word-tags.html +37 -0
  643. data/node_modules/govuk-frontend/dist/govuk/components/task-list/template.njk +41 -0
  644. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +50 -0
  645. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss.map +1 -0
  646. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
  647. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss.map +1 -0
  648. data/node_modules/govuk-frontend/dist/govuk/components/textarea/fixtures.json +285 -0
  649. data/node_modules/govuk-frontend/dist/govuk/components/textarea/macro-options.json +143 -0
  650. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-default.html +6 -0
  651. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-autocomplete-attribute.html +6 -0
  652. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-custom-rows.html +6 -0
  653. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-default-value.html +9 -0
  654. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-error-message.html +9 -0
  655. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-hint.html +9 -0
  656. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-label-as-page-heading.html +8 -0
  657. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-optional-form-group-classes.html +6 -0
  658. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-disabled.html +6 -0
  659. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-enabled.html +6 -0
  660. data/node_modules/govuk-frontend/dist/govuk/components/textarea/template.njk +54 -0
  661. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +65 -0
  662. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss.map +1 -0
  663. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
  664. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss.map +1 -0
  665. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/fixtures.json +93 -0
  666. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/macro-options.json +32 -0
  667. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-default.html +7 -0
  668. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-multiple-lines.html +7 -0
  669. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template.njk +10 -0
  670. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
  671. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss.map +1 -0
  672. data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss +20 -0
  673. data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss.map +1 -0
  674. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
  675. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss.map +1 -0
  676. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss +8 -0
  677. data/node_modules/govuk-frontend/dist/govuk/core/_index.scss.map +1 -0
  678. data/node_modules/govuk-frontend/dist/govuk/core/_links.scss +42 -0
  679. data/node_modules/govuk-frontend/dist/govuk/core/_links.scss.map +1 -0
  680. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss +67 -0
  681. data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss.map +1 -0
  682. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss +51 -0
  683. data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss.map +1 -0
  684. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +189 -0
  685. data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss.map +1 -0
  686. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +44 -0
  687. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs.map +1 -0
  688. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +16 -0
  689. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs.map +1 -0
  690. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +3 -0
  691. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -0
  692. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
  693. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -0
  694. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
  695. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss.map +1 -0
  696. data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss +17 -0
  697. data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss.map +1 -0
  698. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +91 -0
  699. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss.map +1 -0
  700. data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss +38 -0
  701. data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss.map +1 -0
  702. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +49 -0
  703. data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss.map +1 -0
  704. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
  705. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss.map +1 -0
  706. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss +63 -0
  707. data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss.map +1 -0
  708. data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss +14 -0
  709. data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss.map +1 -0
  710. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +391 -0
  711. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss.map +1 -0
  712. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss +82 -0
  713. data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss.map +1 -0
  714. data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss +82 -0
  715. data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss.map +1 -0
  716. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss +173 -0
  717. data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss.map +1 -0
  718. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +271 -0
  719. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss.map +1 -0
  720. data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss +117 -0
  721. data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss.map +1 -0
  722. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
  723. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs.map +1 -0
  724. data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
  725. data/node_modules/govuk-frontend/dist/govuk/index.scss.map +1 -0
  726. data/node_modules/govuk-frontend/dist/govuk/init.mjs +100 -0
  727. data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -0
  728. data/node_modules/govuk-frontend/dist/govuk/macros/attributes.njk +94 -0
  729. data/node_modules/govuk-frontend/dist/govuk/macros/i18n.njk +21 -0
  730. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
  731. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss.map +1 -0
  732. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss +80 -0
  733. data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss.map +1 -0
  734. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss +25 -0
  735. data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss.map +1 -0
  736. data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss +26 -0
  737. data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss.map +1 -0
  738. data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss +8 -0
  739. data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss.map +1 -0
  740. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss +55 -0
  741. data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss.map +1 -0
  742. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +53 -0
  743. data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss.map +1 -0
  744. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss +77 -0
  745. data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss.map +1 -0
  746. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
  747. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss.map +1 -0
  748. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss +26 -0
  749. data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss.map +1 -0
  750. data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss +7 -0
  751. data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss.map +1 -0
  752. data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss +86 -0
  753. data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss.map +1 -0
  754. data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss +16 -0
  755. data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss.map +1 -0
  756. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +38 -0
  757. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss.map +1 -0
  758. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss +48 -0
  759. data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss.map +1 -0
  760. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
  761. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss.map +1 -0
  762. data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss +84 -0
  763. data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss.map +1 -0
  764. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss +157 -0
  765. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss.map +1 -0
  766. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +148 -0
  767. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss.map +1 -0
  768. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
  769. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss.map +1 -0
  770. data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss +15 -0
  771. data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss.map +1 -0
  772. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss +23 -0
  773. data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss.map +1 -0
  774. data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss +49 -0
  775. data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss.map +1 -0
  776. data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss +107 -0
  777. data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss.map +1 -0
  778. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +25 -0
  779. data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss.map +1 -0
  780. data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss +78 -0
  781. data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss.map +1 -0
  782. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
  783. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss.map +1 -0
  784. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
  785. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -0
  786. data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss +78 -0
  787. data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss.map +1 -0
  788. data/node_modules/govuk-frontend/dist/govuk/template.njk +58 -0
  789. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
  790. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss.map +1 -0
  791. data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss +35 -0
  792. data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss.map +1 -0
  793. data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss +28 -0
  794. data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss.map +1 -0
  795. data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss +28 -0
  796. data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss.map +1 -0
  797. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss +7 -0
  798. data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss.map +1 -0
  799. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss +22 -0
  800. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss.map +1 -0
  801. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss +22 -0
  802. data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss.map +1 -0
  803. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
  804. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss.map +1 -0
  805. data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss +7 -0
  806. data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss.map +1 -0
  807. data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss +4 -0
  808. data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss.map +1 -0
  809. data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss +11 -0
  810. data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss.map +1 -0
  811. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss +349 -0
  812. data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss.map +1 -0
  813. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
  814. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss +13 -0
  815. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss.map +1 -0
  816. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +165 -7
  817. data/node_modules/govuk-frontend/package.json +67 -4
  818. data/package-lock.json +4 -4
  819. data/package.json +1 -1
  820. data/vendor/assets/images/favicon.svg +1 -0
  821. data/vendor/assets/images/govuk-icon-192.png +0 -0
  822. data/vendor/assets/images/govuk-icon-512.png +0 -0
  823. data/vendor/assets/images/govuk-icon-mask.svg +1 -0
  824. data/vendor/assets/javascripts/defra_ruby_template.js +2374 -2533
  825. data/vendor/assets/stylesheets/_base.scss +5 -3
  826. data/vendor/assets/stylesheets/all.scss +2 -8
  827. data/vendor/assets/stylesheets/components/_all.scss +9 -32
  828. data/vendor/assets/stylesheets/components/_index.scss +39 -0
  829. data/vendor/assets/stylesheets/components/accordion/_accordion.scss +2 -0
  830. data/vendor/assets/stylesheets/components/accordion/_index.scss +270 -101
  831. data/vendor/assets/stylesheets/components/back-link/_back-link.scss +2 -0
  832. data/vendor/assets/stylesheets/components/back-link/_index.scss +27 -43
  833. data/vendor/assets/stylesheets/components/breadcrumbs/_breadcrumbs.scss +2 -0
  834. data/vendor/assets/stylesheets/components/breadcrumbs/_index.scss +37 -41
  835. data/vendor/assets/stylesheets/components/button/_button.scss +2 -0
  836. data/vendor/assets/stylesheets/components/button/_index.scss +79 -105
  837. data/vendor/assets/stylesheets/components/character-count/_character-count.scss +2 -0
  838. data/vendor/assets/stylesheets/components/character-count/_index.scss +12 -1
  839. data/vendor/assets/stylesheets/components/checkboxes/_checkboxes.scss +2 -0
  840. data/vendor/assets/stylesheets/components/checkboxes/_index.scss +119 -133
  841. data/vendor/assets/stylesheets/components/cookie-banner/_cookie-banner.scss +2 -0
  842. data/vendor/assets/stylesheets/components/cookie-banner/_index.scss +3 -4
  843. data/vendor/assets/stylesheets/components/date-input/_date-input.scss +2 -0
  844. data/vendor/assets/stylesheets/components/date-input/_index.scss +2 -0
  845. data/vendor/assets/stylesheets/components/details/_details.scss +2 -0
  846. data/vendor/assets/stylesheets/components/details/_index.scss +97 -50
  847. data/vendor/assets/stylesheets/components/error-message/_error-message.scss +2 -0
  848. data/vendor/assets/stylesheets/components/error-message/_index.scss +3 -0
  849. data/vendor/assets/stylesheets/components/error-summary/_error-summary.scss +2 -0
  850. data/vendor/assets/stylesheets/components/error-summary/_index.scss +15 -6
  851. data/vendor/assets/stylesheets/components/exit-this-page/_exit-this-page.scss +4 -0
  852. data/vendor/assets/stylesheets/components/exit-this-page/_index.scss +92 -0
  853. data/vendor/assets/stylesheets/components/fieldset/_fieldset.scss +2 -0
  854. data/vendor/assets/stylesheets/components/fieldset/_index.scss +18 -11
  855. data/vendor/assets/stylesheets/components/file-upload/_file-upload.scss +2 -0
  856. data/vendor/assets/stylesheets/components/file-upload/_index.scss +8 -5
  857. data/vendor/assets/stylesheets/components/footer/_footer.scss +2 -0
  858. data/vendor/assets/stylesheets/components/footer/_index.scss +23 -112
  859. data/vendor/assets/stylesheets/components/header/_header.scss +2 -0
  860. data/vendor/assets/stylesheets/components/header/_index.scss +109 -94
  861. data/vendor/assets/stylesheets/components/hint/_hint.scss +2 -0
  862. data/vendor/assets/stylesheets/components/hint/_index.scss +4 -3
  863. data/vendor/assets/stylesheets/components/input/_index.scss +35 -61
  864. data/vendor/assets/stylesheets/components/input/_input.scss +2 -0
  865. data/vendor/assets/stylesheets/components/inset-text/_index.scss +2 -0
  866. data/vendor/assets/stylesheets/components/inset-text/_inset-text.scss +2 -0
  867. data/vendor/assets/stylesheets/components/label/_index.scss +12 -7
  868. data/vendor/assets/stylesheets/components/label/_label.scss +2 -0
  869. data/vendor/assets/stylesheets/components/notification-banner/_index.scss +8 -5
  870. data/vendor/assets/stylesheets/components/notification-banner/_notification-banner.scss +2 -0
  871. data/vendor/assets/stylesheets/components/pagination/_index.scss +241 -0
  872. data/vendor/assets/stylesheets/components/pagination/_pagination.scss +4 -0
  873. data/vendor/assets/stylesheets/components/panel/_index.scss +20 -10
  874. data/vendor/assets/stylesheets/components/panel/_panel.scss +2 -0
  875. data/vendor/assets/stylesheets/components/password-input/_index.scss +54 -0
  876. data/vendor/assets/stylesheets/components/password-input/_password-input.scss +4 -0
  877. data/vendor/assets/stylesheets/components/phase-banner/_index.scss +18 -1
  878. data/vendor/assets/stylesheets/components/phase-banner/_phase-banner.scss +2 -0
  879. data/vendor/assets/stylesheets/components/radios/_index.scss +104 -120
  880. data/vendor/assets/stylesheets/components/radios/_radios.scss +2 -0
  881. data/vendor/assets/stylesheets/components/select/_index.scss +20 -10
  882. data/vendor/assets/stylesheets/components/select/_select.scss +2 -0
  883. data/vendor/assets/stylesheets/components/skip-link/_index.scss +18 -4
  884. data/vendor/assets/stylesheets/components/skip-link/_skip-link.scss +2 -0
  885. data/vendor/assets/stylesheets/components/summary-list/_index.scss +167 -35
  886. data/vendor/assets/stylesheets/components/summary-list/_summary-list.scss +2 -0
  887. data/vendor/assets/stylesheets/components/table/_index.scss +21 -17
  888. data/vendor/assets/stylesheets/components/table/_table.scss +2 -0
  889. data/vendor/assets/stylesheets/components/tabs/_index.scss +15 -11
  890. data/vendor/assets/stylesheets/components/tabs/_tabs.scss +2 -0
  891. data/vendor/assets/stylesheets/components/tag/_index.scss +56 -48
  892. data/vendor/assets/stylesheets/components/tag/_tag.scss +2 -0
  893. data/vendor/assets/stylesheets/components/task-list/_index.scss +77 -0
  894. data/vendor/assets/stylesheets/components/task-list/_task-list.scss +4 -0
  895. data/vendor/assets/stylesheets/components/textarea/_index.scss +9 -6
  896. data/vendor/assets/stylesheets/components/textarea/_textarea.scss +2 -0
  897. data/vendor/assets/stylesheets/components/warning-text/_index.scss +10 -11
  898. data/vendor/assets/stylesheets/components/warning-text/_warning-text.scss +2 -0
  899. data/vendor/assets/stylesheets/core/_all.scss +10 -6
  900. data/vendor/assets/stylesheets/core/_global-styles.scss +2 -7
  901. data/vendor/assets/stylesheets/core/_govuk-frontend-properties.scss +12 -0
  902. data/vendor/assets/stylesheets/core/_index.scss +8 -0
  903. data/vendor/assets/stylesheets/core/_links.scss +8 -7
  904. data/vendor/assets/stylesheets/core/_lists.scss +2 -7
  905. data/vendor/assets/stylesheets/core/_section-break.scss +2 -13
  906. data/vendor/assets/stylesheets/core/_typography.scss +8 -11
  907. data/vendor/assets/stylesheets/defra_ruby_template.scss +2 -11
  908. data/vendor/assets/stylesheets/govuk-frontend.min.css +3 -0
  909. data/vendor/assets/stylesheets/helpers/_all.scss +10 -12
  910. data/vendor/assets/stylesheets/helpers/_clearfix.scss +3 -1
  911. data/vendor/assets/stylesheets/helpers/_colour.scss +20 -24
  912. data/vendor/assets/stylesheets/helpers/_device-pixels.scss +4 -3
  913. data/vendor/assets/stylesheets/helpers/_focused.scss +27 -6
  914. data/vendor/assets/stylesheets/helpers/_font-faces.scss +22 -22
  915. data/vendor/assets/stylesheets/helpers/_grid.scss +2 -0
  916. data/vendor/assets/stylesheets/helpers/_index.scss +14 -0
  917. data/vendor/assets/stylesheets/helpers/_links.scss +38 -74
  918. data/vendor/assets/stylesheets/helpers/_media-queries.scss +4 -13
  919. data/vendor/assets/stylesheets/helpers/_shape-arrow.scss +3 -1
  920. data/vendor/assets/stylesheets/helpers/_spacing.scss +36 -16
  921. data/vendor/assets/stylesheets/helpers/_typography.scss +117 -53
  922. data/vendor/assets/stylesheets/helpers/_visually-hidden.scss +33 -0
  923. data/vendor/assets/stylesheets/index.scss +11 -0
  924. data/vendor/assets/stylesheets/objects/_all.scss +10 -5
  925. data/vendor/assets/stylesheets/objects/_button-group.scss +7 -28
  926. data/vendor/assets/stylesheets/objects/_form-group.scss +2 -0
  927. data/vendor/assets/stylesheets/objects/_grid.scss +4 -2
  928. data/vendor/assets/stylesheets/objects/_index.scss +8 -0
  929. data/vendor/assets/stylesheets/objects/_main-wrapper.scss +17 -30
  930. data/vendor/assets/stylesheets/objects/_template.scss +53 -0
  931. data/vendor/assets/stylesheets/objects/_width-container.scss +2 -13
  932. data/vendor/assets/stylesheets/overrides/_all.scss +9 -4
  933. data/vendor/assets/stylesheets/overrides/_display.scss +2 -6
  934. data/vendor/assets/stylesheets/overrides/_index.scss +7 -0
  935. data/vendor/assets/stylesheets/overrides/_spacing.scss +49 -27
  936. data/vendor/assets/stylesheets/overrides/_text-align.scss +16 -0
  937. data/vendor/assets/stylesheets/overrides/_typography.scss +19 -8
  938. data/vendor/assets/stylesheets/overrides/_width.scss +2 -6
  939. data/vendor/assets/stylesheets/settings/_all.scss +8 -21
  940. data/vendor/assets/stylesheets/settings/_assets.scss +2 -0
  941. data/vendor/assets/stylesheets/settings/_colours-applied.scss +9 -7
  942. data/vendor/assets/stylesheets/settings/_colours-organisations.scss +10 -1
  943. data/vendor/assets/stylesheets/settings/_colours-palette.scss +8 -79
  944. data/vendor/assets/stylesheets/settings/_global-styles.scss +2 -0
  945. data/vendor/assets/stylesheets/settings/_index.scss +23 -0
  946. data/vendor/assets/stylesheets/settings/_links.scss +7 -20
  947. data/vendor/assets/stylesheets/settings/_measurements.scss +18 -16
  948. data/vendor/assets/stylesheets/settings/_media-queries.scss +5 -3
  949. data/vendor/assets/stylesheets/settings/_spacing.scss +6 -8
  950. data/vendor/assets/stylesheets/settings/_typography-font.scss +6 -43
  951. data/vendor/assets/stylesheets/settings/_typography-responsive.scss +179 -40
  952. data/vendor/assets/stylesheets/settings/_warnings.scss +78 -0
  953. data/vendor/assets/stylesheets/tools/_all.scss +10 -8
  954. data/vendor/assets/stylesheets/tools/_exports.scss +3 -1
  955. data/vendor/assets/stylesheets/tools/_font-url.scss +4 -1
  956. data/vendor/assets/stylesheets/tools/_image-url.scss +4 -1
  957. data/vendor/assets/stylesheets/tools/_index.scss +7 -0
  958. data/vendor/assets/stylesheets/tools/_px-to-em.scss +4 -2
  959. data/vendor/assets/stylesheets/tools/_px-to-rem.scss +3 -1
  960. data/vendor/assets/stylesheets/utilities/_all.scss +10 -2
  961. data/vendor/assets/stylesheets/utilities/_clearfix.scss +2 -0
  962. data/vendor/assets/stylesheets/utilities/_index.scss +4 -0
  963. data/vendor/assets/stylesheets/utilities/_visually-hidden.scss +2 -0
  964. data/vendor/assets/stylesheets/vendor/_sass-mq.scss +3 -1
  965. metadata +906 -339
  966. data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
  967. data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -6
  968. data/node_modules/govuk-frontend/govuk/all.js +0 -2616
  969. data/node_modules/govuk-frontend/govuk/all.scss +0 -9
  970. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  971. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  972. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
  973. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
  974. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-tudor-crown.png +0 -0
  975. data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -1
  976. data/node_modules/govuk-frontend/govuk/common.js +0 -39
  977. data/node_modules/govuk-frontend/govuk/components/_all.scss +0 -33
  978. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
  979. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +0 -197
  980. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -1011
  981. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +0 -250
  982. data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +0 -76
  983. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +0 -27
  984. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
  985. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +0 -99
  986. data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +0 -62
  987. data/node_modules/govuk-frontend/govuk/components/back-link/macro-options.json +0 -32
  988. data/node_modules/govuk-frontend/govuk/components/back-link/template.njk +0 -2
  989. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
  990. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +0 -138
  991. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +0 -193
  992. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +0 -52
  993. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/template.njk +0 -24
  994. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
  995. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +0 -287
  996. data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -724
  997. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +0 -327
  998. data/node_modules/govuk-frontend/govuk/components/button/macro-options.json +0 -74
  999. data/node_modules/govuk-frontend/govuk/components/button/template.njk +0 -60
  1000. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
  1001. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -25
  1002. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -1194
  1003. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +0 -240
  1004. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +0 -111
  1005. data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +0 -37
  1006. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
  1007. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +0 -334
  1008. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1192
  1009. data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +0 -1189
  1010. data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +0 -161
  1011. data/node_modules/govuk-frontend/govuk/components/checkboxes/template.njk +0 -119
  1012. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
  1013. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_index.scss +0 -51
  1014. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +0 -443
  1015. data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +0 -132
  1016. data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +0 -73
  1017. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
  1018. data/node_modules/govuk-frontend/govuk/components/date-input/_index.scss +0 -26
  1019. data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +0 -549
  1020. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +0 -117
  1021. data/node_modules/govuk-frontend/govuk/components/date-input/template.njk +0 -97
  1022. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
  1023. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
  1024. data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -828
  1025. data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +0 -103
  1026. data/node_modules/govuk-frontend/govuk/components/details/implementation.md +0 -43
  1027. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +0 -50
  1028. data/node_modules/govuk-frontend/govuk/components/details/template.njk +0 -10
  1029. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
  1030. data/node_modules/govuk-frontend/govuk/components/error-message/_index.scss +0 -11
  1031. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +0 -77
  1032. data/node_modules/govuk-frontend/govuk/components/error-message/macro-options.json +0 -38
  1033. data/node_modules/govuk-frontend/govuk/components/error-message/template.njk +0 -6
  1034. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
  1035. data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +0 -43
  1036. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -853
  1037. data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +0 -242
  1038. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +0 -70
  1039. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +0 -25
  1040. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
  1041. data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +0 -64
  1042. data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +0 -103
  1043. data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +0 -70
  1044. data/node_modules/govuk-frontend/govuk/components/fieldset/template.njk +0 -22
  1045. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
  1046. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -50
  1047. data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +0 -198
  1048. data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +0 -73
  1049. data/node_modules/govuk-frontend/govuk/components/file-upload/template.njk +0 -44
  1050. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
  1051. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -244
  1052. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +0 -501
  1053. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +0 -118
  1054. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +0 -87
  1055. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
  1056. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +0 -347
  1057. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +0 -386
  1058. data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -1066
  1059. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +0 -112
  1060. data/node_modules/govuk-frontend/govuk/components/header/template.njk +0 -104
  1061. data/node_modules/govuk-frontend/govuk/components/hint/_hint.scss +0 -2
  1062. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +0 -44
  1063. data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +0 -59
  1064. data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +0 -32
  1065. data/node_modules/govuk-frontend/govuk/components/hint/template.njk +0 -4
  1066. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -191
  1067. data/node_modules/govuk-frontend/govuk/components/input/_input.scss +0 -2
  1068. data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +0 -628
  1069. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +0 -167
  1070. data/node_modules/govuk-frontend/govuk/components/input/template.njk +0 -65
  1071. data/node_modules/govuk-frontend/govuk/components/inset-text/_index.scss +0 -24
  1072. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
  1073. data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +0 -58
  1074. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +0 -32
  1075. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +0 -4
  1076. data/node_modules/govuk-frontend/govuk/components/label/_index.scss +0 -41
  1077. data/node_modules/govuk-frontend/govuk/components/label/_label.scss +0 -2
  1078. data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +0 -84
  1079. data/node_modules/govuk-frontend/govuk/components/label/macro-options.json +0 -38
  1080. data/node_modules/govuk-frontend/govuk/components/label/template.njk +0 -15
  1081. data/node_modules/govuk-frontend/govuk/components/notification-banner/_index.scss +0 -89
  1082. data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
  1083. data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +0 -212
  1084. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +0 -68
  1085. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -61
  1086. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +0 -47
  1087. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
  1088. data/node_modules/govuk-frontend/govuk/components/panel/_panel.scss +0 -2
  1089. data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +0 -91
  1090. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +0 -44
  1091. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +0 -13
  1092. data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +0 -27
  1093. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
  1094. data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +0 -76
  1095. data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +0 -33
  1096. data/node_modules/govuk-frontend/govuk/components/phase-banner/template.njk +0 -15
  1097. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +0 -356
  1098. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
  1099. data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +0 -1183
  1100. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +0 -143
  1101. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1148
  1102. data/node_modules/govuk-frontend/govuk/components/radios/template.njk +0 -116
  1103. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -49
  1104. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
  1105. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +0 -327
  1106. data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +0 -105
  1107. data/node_modules/govuk-frontend/govuk/components/select/template.njk +0 -51
  1108. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +0 -36
  1109. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
  1110. data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +0 -84
  1111. data/node_modules/govuk-frontend/govuk/components/skip-link/macro-options.json +0 -32
  1112. data/node_modules/govuk-frontend/govuk/components/skip-link/template.njk +0 -3
  1113. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +0 -145
  1114. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
  1115. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +0 -1084
  1116. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +0 -113
  1117. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +0 -47
  1118. data/node_modules/govuk-frontend/govuk/components/table/_index.scss +0 -71
  1119. data/node_modules/govuk-frontend/govuk/components/table/_table.scss +0 -2
  1120. data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +0 -538
  1121. data/node_modules/govuk-frontend/govuk/components/table/macro-options.json +0 -132
  1122. data/node_modules/govuk-frontend/govuk/components/table/template.njk +0 -45
  1123. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +0 -130
  1124. data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +0 -2
  1125. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +0 -286
  1126. data/node_modules/govuk-frontend/govuk/components/tabs/macro-options.json +0 -84
  1127. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1347
  1128. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +0 -32
  1129. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -86
  1130. data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +0 -2
  1131. data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +0 -131
  1132. data/node_modules/govuk-frontend/govuk/components/tag/macro-options.json +0 -26
  1133. data/node_modules/govuk-frontend/govuk/components/tag/template.njk +0 -3
  1134. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -47
  1135. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
  1136. data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +0 -250
  1137. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +0 -91
  1138. data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +0 -45
  1139. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +0 -66
  1140. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
  1141. data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +0 -73
  1142. data/node_modules/govuk-frontend/govuk/components/warning-text/macro-options.json +0 -32
  1143. data/node_modules/govuk-frontend/govuk/components/warning-text/template.njk +0 -9
  1144. data/node_modules/govuk-frontend/govuk/core/_all.scss +0 -6
  1145. data/node_modules/govuk-frontend/govuk/core/_global-styles.scss +0 -25
  1146. data/node_modules/govuk-frontend/govuk/core/_links.scss +0 -41
  1147. data/node_modules/govuk-frontend/govuk/core/_lists.scss +0 -72
  1148. data/node_modules/govuk-frontend/govuk/core/_section-break.scss +0 -62
  1149. data/node_modules/govuk-frontend/govuk/core/_template.scss +0 -36
  1150. data/node_modules/govuk-frontend/govuk/core/_typography.scss +0 -192
  1151. data/node_modules/govuk-frontend/govuk/helpers/_all.scss +0 -12
  1152. data/node_modules/govuk-frontend/govuk/helpers/_clearfix.scss +0 -15
  1153. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -95
  1154. data/node_modules/govuk-frontend/govuk/helpers/_device-pixels.scss +0 -37
  1155. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +0 -28
  1156. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
  1157. data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +0 -61
  1158. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +0 -427
  1159. data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +0 -91
  1160. data/node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss +0 -80
  1161. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +0 -171
  1162. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -207
  1163. data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +0 -84
  1164. data/node_modules/govuk-frontend/govuk/objects/_all.scss +0 -5
  1165. data/node_modules/govuk-frontend/govuk/objects/_button-group.scss +0 -101
  1166. data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +0 -23
  1167. data/node_modules/govuk-frontend/govuk/objects/_grid.scss +0 -24
  1168. data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +0 -68
  1169. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +0 -88
  1170. data/node_modules/govuk-frontend/govuk/overrides/_all.scss +0 -5
  1171. data/node_modules/govuk-frontend/govuk/overrides/_display.scss +0 -30
  1172. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +0 -64
  1173. data/node_modules/govuk-frontend/govuk/overrides/_text-align.scss +0 -20
  1174. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -27
  1175. data/node_modules/govuk-frontend/govuk/overrides/_width.scss +0 -52
  1176. data/node_modules/govuk-frontend/govuk/settings/_all.scss +0 -23
  1177. data/node_modules/govuk-frontend/govuk/settings/_assets.scss +0 -82
  1178. data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +0 -155
  1179. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -139
  1180. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -108
  1181. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -74
  1182. data/node_modules/govuk-frontend/govuk/settings/_global-styles.scss +0 -13
  1183. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -18
  1184. data/node_modules/govuk-frontend/govuk/settings/_links.scss +0 -62
  1185. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +0 -105
  1186. data/node_modules/govuk-frontend/govuk/settings/_media-queries.scss +0 -23
  1187. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +0 -80
  1188. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
  1189. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -89
  1190. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -183
  1191. data/node_modules/govuk-frontend/govuk/template.njk +0 -60
  1192. data/node_modules/govuk-frontend/govuk/tools/_all.scss +0 -8
  1193. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -36
  1194. data/node_modules/govuk-frontend/govuk/tools/_exports.scss +0 -33
  1195. data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +0 -25
  1196. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -51
  1197. data/node_modules/govuk-frontend/govuk/tools/_iff.scss +0 -17
  1198. data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +0 -25
  1199. data/node_modules/govuk-frontend/govuk/tools/_px-to-em.scss +0 -20
  1200. data/node_modules/govuk-frontend/govuk/tools/_px-to-rem.scss +0 -20
  1201. data/node_modules/govuk-frontend/govuk/utilities/_all.scss +0 -2
  1202. data/node_modules/govuk-frontend/govuk/utilities/_clearfix.scss +0 -5
  1203. data/node_modules/govuk-frontend/govuk/utilities/_visually-hidden.scss +0 -9
  1204. data/node_modules/govuk-frontend/govuk/vendor/_sass-mq.scss +0 -347
  1205. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -272
  1206. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -34
  1207. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -589
  1208. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -54
  1209. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -31
  1210. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -254
  1211. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -254
  1212. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -147
  1213. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -504
  1214. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -252
  1215. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -94
  1216. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -28
  1217. data/vendor/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  1218. data/vendor/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  1219. data/vendor/assets/images/govuk-apple-touch-icon.png +0 -0
  1220. data/vendor/assets/images/govuk-logotype-crown.png +0 -0
  1221. data/vendor/assets/images/govuk-logotype-tudor-crown.png +0 -0
  1222. data/vendor/assets/images/govuk-mask-icon.svg +0 -1
  1223. data/vendor/assets/stylesheets/all-ie8.scss +0 -6
  1224. data/vendor/assets/stylesheets/core/_template.scss +0 -36
  1225. data/vendor/assets/stylesheets/settings/_compatibility.scss +0 -74
  1226. data/vendor/assets/stylesheets/settings/_ie8.scss +0 -18
  1227. data/vendor/assets/stylesheets/settings/_typography-font-families.scss +0 -32
  1228. data/vendor/assets/stylesheets/tools/_compatibility.scss +0 -36
  1229. data/vendor/assets/stylesheets/tools/_ie8.scss +0 -51
  1230. data/vendor/assets/stylesheets/tools/_iff.scss +0 -17
  1231. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
  1232. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  1233. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  1234. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  1235. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/favicon.ico +0 -0
  1236. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest-2x.png +0 -0
  1237. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest.png +0 -0
  1238. /data/node_modules/govuk-frontend/{govuk/assets/images/govuk-apple-touch-icon-180x180.png → dist/govuk/assets/images/govuk-icon-180.png} +0 -0
  1239. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-opengraph-image.png +0 -0
  1240. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/README.md +0 -0
  1241. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/macro.njk +0 -0
  1242. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/README.md +0 -0
  1243. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/macro.njk +0 -0
  1244. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/README.md +0 -0
  1245. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/macro.njk +0 -0
  1246. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/README.md +0 -0
  1247. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/macro.njk +0 -0
  1248. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/README.md +0 -0
  1249. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/macro.njk +0 -0
  1250. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/README.md +0 -0
  1251. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/macro.njk +0 -0
  1252. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/README.md +0 -0
  1253. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/macro.njk +0 -0
  1254. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/README.md +0 -0
  1255. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/macro.njk +0 -0
  1256. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/README.md +0 -0
  1257. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/macro.njk +0 -0
  1258. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/README.md +0 -0
  1259. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/macro.njk +0 -0
  1260. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/README.md +0 -0
  1261. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/macro.njk +0 -0
  1262. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/README.md +0 -0
  1263. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/macro.njk +0 -0
  1264. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/README.md +0 -0
  1265. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/macro.njk +0 -0
  1266. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/README.md +0 -0
  1267. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/macro.njk +0 -0
  1268. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/README.md +0 -0
  1269. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/macro.njk +0 -0
  1270. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/README.md +0 -0
  1271. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/macro.njk +0 -0
  1272. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/README.md +0 -0
  1273. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/macro.njk +0 -0
  1274. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/README.md +0 -0
  1275. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/macro.njk +0 -0
  1276. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/README.md +0 -0
  1277. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/macro.njk +0 -0
  1278. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/README.md +0 -0
  1279. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/macro.njk +0 -0
  1280. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/README.md +0 -0
  1281. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/macro.njk +0 -0
  1282. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/README.md +0 -0
  1283. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/macro.njk +0 -0
  1284. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/README.md +0 -0
  1285. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/macro.njk +0 -0
  1286. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/README.md +0 -0
  1287. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/macro.njk +0 -0
  1288. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/README.md +0 -0
  1289. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/macro.njk +0 -0
  1290. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/README.md +0 -0
  1291. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/macro.njk +0 -0
  1292. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/README.md +0 -0
  1293. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/macro.njk +0 -0
  1294. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/README.md +0 -0
  1295. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/macro.njk +0 -0
  1296. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/README.md +0 -0
  1297. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/macro.njk +0 -0
  1298. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/README.md +0 -0
  1299. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/macro.njk +0 -0
  1300. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/README.md +0 -0
  1301. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/macro.njk +0 -0
  1302. /data/vendor/assets/images/{govuk-apple-touch-icon-180x180.png → govuk-icon-180.png} +0 -0
@@ -0,0 +1,186 @@
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 getBreakpoint(name) {
8
+ const property = `--govuk-frontend-breakpoint-${name}`;
9
+ const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);
10
+ return {
11
+ property,
12
+ value: value || undefined
13
+ };
14
+ }
15
+ function isSupported($scope = document.body) {
16
+ if (!$scope) {
17
+ return false;
18
+ }
19
+ return $scope.classList.contains('govuk-frontend-supported');
20
+ }
21
+
22
+ /**
23
+ * Schema for component config
24
+ *
25
+ * @typedef {object} Schema
26
+ * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
27
+ * @property {SchemaCondition[]} [anyOf] - List of schema conditions
28
+ */
29
+
30
+ /**
31
+ * Schema property for component config
32
+ *
33
+ * @typedef {object} SchemaProperty
34
+ * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
35
+ */
36
+
37
+ /**
38
+ * Schema condition for component config
39
+ *
40
+ * @typedef {object} SchemaCondition
41
+ * @property {string[]} required - List of required config fields
42
+ * @property {string} errorMessage - Error message when required config fields not provided
43
+ */
44
+
45
+ class GOVUKFrontendError extends Error {
46
+ constructor(...args) {
47
+ super(...args);
48
+ this.name = 'GOVUKFrontendError';
49
+ }
50
+ }
51
+ class SupportError extends GOVUKFrontendError {
52
+ /**
53
+ * Checks if GOV.UK Frontend is supported on this page
54
+ *
55
+ * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
56
+ */
57
+ constructor($scope = document.body) {
58
+ 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';
59
+ super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
60
+ this.name = 'SupportError';
61
+ }
62
+ }
63
+ class ElementError extends GOVUKFrontendError {
64
+ constructor(messageOrOptions) {
65
+ let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
66
+ if (typeof messageOrOptions === 'object') {
67
+ const {
68
+ componentName,
69
+ identifier,
70
+ element,
71
+ expectedType
72
+ } = messageOrOptions;
73
+ message = `${componentName}: ${identifier}`;
74
+ message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
75
+ }
76
+ super(message);
77
+ this.name = 'ElementError';
78
+ }
79
+ }
80
+
81
+ class GOVUKFrontendComponent {
82
+ constructor() {
83
+ this.checkSupport();
84
+ }
85
+ checkSupport() {
86
+ if (!isSupported()) {
87
+ throw new SupportError();
88
+ }
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Header component
94
+ *
95
+ * @preserve
96
+ */
97
+ class Header extends GOVUKFrontendComponent {
98
+ /**
99
+ * Apply a matchMedia for desktop which will trigger a state sync if the
100
+ * browser viewport moves between states.
101
+ *
102
+ * @param {Element | null} $module - HTML element to use for header
103
+ */
104
+ constructor($module) {
105
+ super();
106
+ this.$module = void 0;
107
+ this.$menuButton = void 0;
108
+ this.$menu = void 0;
109
+ this.menuIsOpen = false;
110
+ this.mql = null;
111
+ if (!$module) {
112
+ throw new ElementError({
113
+ componentName: 'Header',
114
+ element: $module,
115
+ identifier: 'Root element (`$module`)'
116
+ });
117
+ }
118
+ this.$module = $module;
119
+ const $menuButton = $module.querySelector('.govuk-js-header-toggle');
120
+ if (!$menuButton) {
121
+ return this;
122
+ }
123
+ const menuId = $menuButton.getAttribute('aria-controls');
124
+ if (!menuId) {
125
+ throw new ElementError({
126
+ componentName: 'Header',
127
+ identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
128
+ });
129
+ }
130
+ const $menu = document.getElementById(menuId);
131
+ if (!$menu) {
132
+ throw new ElementError({
133
+ componentName: 'Header',
134
+ element: $menu,
135
+ identifier: `Navigation (\`<ul id="${menuId}">\`)`
136
+ });
137
+ }
138
+ this.$menu = $menu;
139
+ this.$menuButton = $menuButton;
140
+ this.setupResponsiveChecks();
141
+ this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
142
+ }
143
+ setupResponsiveChecks() {
144
+ const breakpoint = getBreakpoint('desktop');
145
+ if (!breakpoint.value) {
146
+ throw new ElementError({
147
+ componentName: 'Header',
148
+ identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
149
+ });
150
+ }
151
+ this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
152
+ if ('addEventListener' in this.mql) {
153
+ this.mql.addEventListener('change', () => this.checkMode());
154
+ } else {
155
+ this.mql.addListener(() => this.checkMode());
156
+ }
157
+ this.checkMode();
158
+ }
159
+ checkMode() {
160
+ if (!this.mql || !this.$menu || !this.$menuButton) {
161
+ return;
162
+ }
163
+ if (this.mql.matches) {
164
+ this.$menu.removeAttribute('hidden');
165
+ this.$menuButton.setAttribute('hidden', '');
166
+ } else {
167
+ this.$menuButton.removeAttribute('hidden');
168
+ this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
169
+ if (this.menuIsOpen) {
170
+ this.$menu.removeAttribute('hidden');
171
+ } else {
172
+ this.$menu.setAttribute('hidden', '');
173
+ }
174
+ }
175
+ }
176
+ handleMenuButtonClick() {
177
+ this.menuIsOpen = !this.menuIsOpen;
178
+ this.checkMode();
179
+ }
180
+ }
181
+ Header.moduleName = 'govuk-header';
182
+
183
+ exports.Header = Header;
184
+
185
+ }));
186
+ //# sourceMappingURL=header.bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.bundle.js","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/errors/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/header/header.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 { getBreakpoint } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Header component\n *\n * @preserve\n */\nexport class Header extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /** @private */\n $menuButton\n\n /** @private */\n $menu\n\n /**\n * Save the opened/closed state for the nav in memory so that we can\n * accurately maintain state when the screen is changed from small to big and\n * back to small\n *\n * @private\n */\n menuIsOpen = false\n\n /**\n * A global const for storing a matchMedia instance which we'll use to detect\n * when a screen size change happens. We rely on it being null if the feature\n * isn't available to initially apply hidden attributes\n *\n * @private\n * @type {MediaQueryList | null}\n */\n mql = null\n\n /**\n * Apply a matchMedia for desktop which will trigger a state sync if the\n * browser viewport moves between states.\n *\n * @param {Element | null} $module - HTML element to use for header\n */\n constructor($module) {\n super()\n\n if (!$module) {\n throw new ElementError({\n componentName: 'Header',\n element: $module,\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n const $menuButton = $module.querySelector('.govuk-js-header-toggle')\n\n // Headers don't necessarily have a navigation. When they don't, the menu\n // toggle won't be rendered by our macro (or may be omitted when writing\n // plain HTML)\n if (!$menuButton) {\n return this\n }\n\n const menuId = $menuButton.getAttribute('aria-controls')\n if (!menuId) {\n throw new ElementError({\n componentName: 'Header',\n identifier:\n 'Navigation button (`<button class=\"govuk-js-header-toggle\">`) attribute (`aria-controls`)'\n })\n }\n\n const $menu = document.getElementById(menuId)\n if (!$menu) {\n throw new ElementError({\n componentName: 'Header',\n element: $menu,\n identifier: `Navigation (\\`<ul id=\"${menuId}\">\\`)`\n })\n }\n\n this.$menu = $menu\n this.$menuButton = $menuButton\n\n this.setupResponsiveChecks()\n\n this.$menuButton.addEventListener('click', () =>\n this.handleMenuButtonClick()\n )\n }\n\n /**\n * Setup viewport resize check\n *\n * @private\n */\n setupResponsiveChecks() {\n const breakpoint = getBreakpoint('desktop')\n\n if (!breakpoint.value) {\n throw new ElementError({\n componentName: 'Header',\n identifier: `CSS custom property (\\`${breakpoint.property}\\`) on pseudo-class \\`:root\\``\n })\n }\n\n // Media query list for GOV.UK Frontend desktop breakpoint\n this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`)\n\n // MediaQueryList.addEventListener isn't supported by Safari < 14 so we need\n // to be able to fall back to the deprecated MediaQueryList.addListener\n if ('addEventListener' in this.mql) {\n this.mql.addEventListener('change', () => this.checkMode())\n } else {\n // @ts-expect-error Property 'addListener' does not exist\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.mql.addListener(() => this.checkMode())\n }\n\n this.checkMode()\n }\n\n /**\n * Sync menu state\n *\n * Uses the global variable menuIsOpen to correctly set the accessible and\n * visual states of the menu and the menu button.\n * Additionally will force the menu to be visible and the menu button to be\n * hidden if the matchMedia is triggered to desktop.\n *\n * @private\n */\n checkMode() {\n if (!this.mql || !this.$menu || !this.$menuButton) {\n return\n }\n\n if (this.mql.matches) {\n this.$menu.removeAttribute('hidden')\n this.$menuButton.setAttribute('hidden', '')\n } else {\n this.$menuButton.removeAttribute('hidden')\n this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString())\n\n if (this.menuIsOpen) {\n this.$menu.removeAttribute('hidden')\n } else {\n this.$menu.setAttribute('hidden', '')\n }\n }\n }\n\n /**\n * Handle menu button click\n *\n * When the menu button is clicked, change the visibility of the menu and then\n * sync the accessibility state and menu button state\n *\n * @private\n */\n handleMenuButtonClick() {\n this.menuIsOpen = !this.menuIsOpen\n this.checkMode()\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-header'\n}\n"],"names":["getBreakpoint","name","property","value","window","getComputedStyle","document","documentElement","getPropertyValue","undefined","isSupported","$scope","body","classList","contains","GOVUKFrontendError","Error","constructor","args","SupportError","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","GOVUKFrontendComponent","checkSupport","Header","$module","$menuButton","$menu","menuIsOpen","mql","querySelector","menuId","getAttribute","getElementById","setupResponsiveChecks","addEventListener","handleMenuButtonClick","breakpoint","matchMedia","checkMode","addListener","matches","removeAttribute","setAttribute","toString","moduleName"],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ function getBreakpoint(name) {
2
+ const property = `--govuk-frontend-breakpoint-${name}`;
3
+ const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);
4
+ return {
5
+ property,
6
+ value: value || undefined
7
+ };
8
+ }
9
+ function isSupported($scope = document.body) {
10
+ if (!$scope) {
11
+ return false;
12
+ }
13
+ return $scope.classList.contains('govuk-frontend-supported');
14
+ }
15
+
16
+ /**
17
+ * Schema for component config
18
+ *
19
+ * @typedef {object} Schema
20
+ * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
21
+ * @property {SchemaCondition[]} [anyOf] - List of schema conditions
22
+ */
23
+
24
+ /**
25
+ * Schema property for component config
26
+ *
27
+ * @typedef {object} SchemaProperty
28
+ * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
29
+ */
30
+
31
+ /**
32
+ * Schema condition for component config
33
+ *
34
+ * @typedef {object} SchemaCondition
35
+ * @property {string[]} required - List of required config fields
36
+ * @property {string} errorMessage - Error message when required config fields not provided
37
+ */
38
+
39
+ class GOVUKFrontendError extends Error {
40
+ constructor(...args) {
41
+ super(...args);
42
+ this.name = 'GOVUKFrontendError';
43
+ }
44
+ }
45
+ class SupportError extends GOVUKFrontendError {
46
+ /**
47
+ * Checks if GOV.UK Frontend is supported on this page
48
+ *
49
+ * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
50
+ */
51
+ constructor($scope = document.body) {
52
+ 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';
53
+ super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
54
+ this.name = 'SupportError';
55
+ }
56
+ }
57
+ class ElementError extends GOVUKFrontendError {
58
+ constructor(messageOrOptions) {
59
+ let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
60
+ if (typeof messageOrOptions === 'object') {
61
+ const {
62
+ componentName,
63
+ identifier,
64
+ element,
65
+ expectedType
66
+ } = messageOrOptions;
67
+ message = `${componentName}: ${identifier}`;
68
+ message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
69
+ }
70
+ super(message);
71
+ this.name = 'ElementError';
72
+ }
73
+ }
74
+
75
+ class GOVUKFrontendComponent {
76
+ constructor() {
77
+ this.checkSupport();
78
+ }
79
+ checkSupport() {
80
+ if (!isSupported()) {
81
+ throw new SupportError();
82
+ }
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Header component
88
+ *
89
+ * @preserve
90
+ */
91
+ class Header extends GOVUKFrontendComponent {
92
+ /**
93
+ * Apply a matchMedia for desktop which will trigger a state sync if the
94
+ * browser viewport moves between states.
95
+ *
96
+ * @param {Element | null} $module - HTML element to use for header
97
+ */
98
+ constructor($module) {
99
+ super();
100
+ this.$module = void 0;
101
+ this.$menuButton = void 0;
102
+ this.$menu = void 0;
103
+ this.menuIsOpen = false;
104
+ this.mql = null;
105
+ if (!$module) {
106
+ throw new ElementError({
107
+ componentName: 'Header',
108
+ element: $module,
109
+ identifier: 'Root element (`$module`)'
110
+ });
111
+ }
112
+ this.$module = $module;
113
+ const $menuButton = $module.querySelector('.govuk-js-header-toggle');
114
+ if (!$menuButton) {
115
+ return this;
116
+ }
117
+ const menuId = $menuButton.getAttribute('aria-controls');
118
+ if (!menuId) {
119
+ throw new ElementError({
120
+ componentName: 'Header',
121
+ identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
122
+ });
123
+ }
124
+ const $menu = document.getElementById(menuId);
125
+ if (!$menu) {
126
+ throw new ElementError({
127
+ componentName: 'Header',
128
+ element: $menu,
129
+ identifier: `Navigation (\`<ul id="${menuId}">\`)`
130
+ });
131
+ }
132
+ this.$menu = $menu;
133
+ this.$menuButton = $menuButton;
134
+ this.setupResponsiveChecks();
135
+ this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
136
+ }
137
+ setupResponsiveChecks() {
138
+ const breakpoint = getBreakpoint('desktop');
139
+ if (!breakpoint.value) {
140
+ throw new ElementError({
141
+ componentName: 'Header',
142
+ identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
143
+ });
144
+ }
145
+ this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
146
+ if ('addEventListener' in this.mql) {
147
+ this.mql.addEventListener('change', () => this.checkMode());
148
+ } else {
149
+ this.mql.addListener(() => this.checkMode());
150
+ }
151
+ this.checkMode();
152
+ }
153
+ checkMode() {
154
+ if (!this.mql || !this.$menu || !this.$menuButton) {
155
+ return;
156
+ }
157
+ if (this.mql.matches) {
158
+ this.$menu.removeAttribute('hidden');
159
+ this.$menuButton.setAttribute('hidden', '');
160
+ } else {
161
+ this.$menuButton.removeAttribute('hidden');
162
+ this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
163
+ if (this.menuIsOpen) {
164
+ this.$menu.removeAttribute('hidden');
165
+ } else {
166
+ this.$menu.setAttribute('hidden', '');
167
+ }
168
+ }
169
+ }
170
+ handleMenuButtonClick() {
171
+ this.menuIsOpen = !this.menuIsOpen;
172
+ this.checkMode();
173
+ }
174
+ }
175
+ Header.moduleName = 'govuk-header';
176
+
177
+ export { Header };
178
+ //# sourceMappingURL=header.bundle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.bundle.mjs","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/errors/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/header/header.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 { getBreakpoint } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Header component\n *\n * @preserve\n */\nexport class Header extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /** @private */\n $menuButton\n\n /** @private */\n $menu\n\n /**\n * Save the opened/closed state for the nav in memory so that we can\n * accurately maintain state when the screen is changed from small to big and\n * back to small\n *\n * @private\n */\n menuIsOpen = false\n\n /**\n * A global const for storing a matchMedia instance which we'll use to detect\n * when a screen size change happens. We rely on it being null if the feature\n * isn't available to initially apply hidden attributes\n *\n * @private\n * @type {MediaQueryList | null}\n */\n mql = null\n\n /**\n * Apply a matchMedia for desktop which will trigger a state sync if the\n * browser viewport moves between states.\n *\n * @param {Element | null} $module - HTML element to use for header\n */\n constructor($module) {\n super()\n\n if (!$module) {\n throw new ElementError({\n componentName: 'Header',\n element: $module,\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n const $menuButton = $module.querySelector('.govuk-js-header-toggle')\n\n // Headers don't necessarily have a navigation. When they don't, the menu\n // toggle won't be rendered by our macro (or may be omitted when writing\n // plain HTML)\n if (!$menuButton) {\n return this\n }\n\n const menuId = $menuButton.getAttribute('aria-controls')\n if (!menuId) {\n throw new ElementError({\n componentName: 'Header',\n identifier:\n 'Navigation button (`<button class=\"govuk-js-header-toggle\">`) attribute (`aria-controls`)'\n })\n }\n\n const $menu = document.getElementById(menuId)\n if (!$menu) {\n throw new ElementError({\n componentName: 'Header',\n element: $menu,\n identifier: `Navigation (\\`<ul id=\"${menuId}\">\\`)`\n })\n }\n\n this.$menu = $menu\n this.$menuButton = $menuButton\n\n this.setupResponsiveChecks()\n\n this.$menuButton.addEventListener('click', () =>\n this.handleMenuButtonClick()\n )\n }\n\n /**\n * Setup viewport resize check\n *\n * @private\n */\n setupResponsiveChecks() {\n const breakpoint = getBreakpoint('desktop')\n\n if (!breakpoint.value) {\n throw new ElementError({\n componentName: 'Header',\n identifier: `CSS custom property (\\`${breakpoint.property}\\`) on pseudo-class \\`:root\\``\n })\n }\n\n // Media query list for GOV.UK Frontend desktop breakpoint\n this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`)\n\n // MediaQueryList.addEventListener isn't supported by Safari < 14 so we need\n // to be able to fall back to the deprecated MediaQueryList.addListener\n if ('addEventListener' in this.mql) {\n this.mql.addEventListener('change', () => this.checkMode())\n } else {\n // @ts-expect-error Property 'addListener' does not exist\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.mql.addListener(() => this.checkMode())\n }\n\n this.checkMode()\n }\n\n /**\n * Sync menu state\n *\n * Uses the global variable menuIsOpen to correctly set the accessible and\n * visual states of the menu and the menu button.\n * Additionally will force the menu to be visible and the menu button to be\n * hidden if the matchMedia is triggered to desktop.\n *\n * @private\n */\n checkMode() {\n if (!this.mql || !this.$menu || !this.$menuButton) {\n return\n }\n\n if (this.mql.matches) {\n this.$menu.removeAttribute('hidden')\n this.$menuButton.setAttribute('hidden', '')\n } else {\n this.$menuButton.removeAttribute('hidden')\n this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString())\n\n if (this.menuIsOpen) {\n this.$menu.removeAttribute('hidden')\n } else {\n this.$menu.setAttribute('hidden', '')\n }\n }\n }\n\n /**\n * Handle menu button click\n *\n * When the menu button is clicked, change the visibility of the menu and then\n * sync the accessibility state and menu button state\n *\n * @private\n */\n handleMenuButtonClick() {\n this.menuIsOpen = !this.menuIsOpen\n this.checkMode()\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-header'\n}\n"],"names":["getBreakpoint","name","property","value","window","getComputedStyle","document","documentElement","getPropertyValue","undefined","isSupported","$scope","body","classList","contains","GOVUKFrontendError","Error","constructor","args","SupportError","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","GOVUKFrontendComponent","checkSupport","Header","$module","$menuButton","$menu","menuIsOpen","mql","querySelector","menuId","getAttribute","getElementById","setupResponsiveChecks","addEventListener","handleMenuButtonClick","breakpoint","matchMedia","checkMode","addListener","matches","removeAttribute","setAttribute","toString","moduleName"],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { getBreakpoint } from '../../common/index.mjs';
2
+ import { ElementError } from '../../errors/index.mjs';
3
+ import { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs';
4
+
5
+ /**
6
+ * Header component
7
+ *
8
+ * @preserve
9
+ */
10
+ class Header extends GOVUKFrontendComponent {
11
+ /**
12
+ * Apply a matchMedia for desktop which will trigger a state sync if the
13
+ * browser viewport moves between states.
14
+ *
15
+ * @param {Element | null} $module - HTML element to use for header
16
+ */
17
+ constructor($module) {
18
+ super();
19
+ this.$module = void 0;
20
+ this.$menuButton = void 0;
21
+ this.$menu = void 0;
22
+ this.menuIsOpen = false;
23
+ this.mql = null;
24
+ if (!$module) {
25
+ throw new ElementError({
26
+ componentName: 'Header',
27
+ element: $module,
28
+ identifier: 'Root element (`$module`)'
29
+ });
30
+ }
31
+ this.$module = $module;
32
+ const $menuButton = $module.querySelector('.govuk-js-header-toggle');
33
+ if (!$menuButton) {
34
+ return this;
35
+ }
36
+ const menuId = $menuButton.getAttribute('aria-controls');
37
+ if (!menuId) {
38
+ throw new ElementError({
39
+ componentName: 'Header',
40
+ identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
41
+ });
42
+ }
43
+ const $menu = document.getElementById(menuId);
44
+ if (!$menu) {
45
+ throw new ElementError({
46
+ componentName: 'Header',
47
+ element: $menu,
48
+ identifier: `Navigation (\`<ul id="${menuId}">\`)`
49
+ });
50
+ }
51
+ this.$menu = $menu;
52
+ this.$menuButton = $menuButton;
53
+ this.setupResponsiveChecks();
54
+ this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
55
+ }
56
+ setupResponsiveChecks() {
57
+ const breakpoint = getBreakpoint('desktop');
58
+ if (!breakpoint.value) {
59
+ throw new ElementError({
60
+ componentName: 'Header',
61
+ identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
62
+ });
63
+ }
64
+ this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
65
+ if ('addEventListener' in this.mql) {
66
+ this.mql.addEventListener('change', () => this.checkMode());
67
+ } else {
68
+ this.mql.addListener(() => this.checkMode());
69
+ }
70
+ this.checkMode();
71
+ }
72
+ checkMode() {
73
+ if (!this.mql || !this.$menu || !this.$menuButton) {
74
+ return;
75
+ }
76
+ if (this.mql.matches) {
77
+ this.$menu.removeAttribute('hidden');
78
+ this.$menuButton.setAttribute('hidden', '');
79
+ } else {
80
+ this.$menuButton.removeAttribute('hidden');
81
+ this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
82
+ if (this.menuIsOpen) {
83
+ this.$menu.removeAttribute('hidden');
84
+ } else {
85
+ this.$menu.setAttribute('hidden', '');
86
+ }
87
+ }
88
+ }
89
+ handleMenuButtonClick() {
90
+ this.menuIsOpen = !this.menuIsOpen;
91
+ this.checkMode();
92
+ }
93
+ }
94
+ Header.moduleName = 'govuk-header';
95
+
96
+ export { Header };
97
+ //# sourceMappingURL=header.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.mjs","sources":["../../../../src/govuk/components/header/header.mjs"],"sourcesContent":["import { getBreakpoint } from '../../common/index.mjs'\nimport { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Header component\n *\n * @preserve\n */\nexport class Header extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /** @private */\n $menuButton\n\n /** @private */\n $menu\n\n /**\n * Save the opened/closed state for the nav in memory so that we can\n * accurately maintain state when the screen is changed from small to big and\n * back to small\n *\n * @private\n */\n menuIsOpen = false\n\n /**\n * A global const for storing a matchMedia instance which we'll use to detect\n * when a screen size change happens. We rely on it being null if the feature\n * isn't available to initially apply hidden attributes\n *\n * @private\n * @type {MediaQueryList | null}\n */\n mql = null\n\n /**\n * Apply a matchMedia for desktop which will trigger a state sync if the\n * browser viewport moves between states.\n *\n * @param {Element | null} $module - HTML element to use for header\n */\n constructor($module) {\n super()\n\n if (!$module) {\n throw new ElementError({\n componentName: 'Header',\n element: $module,\n identifier: 'Root element (`$module`)'\n })\n }\n\n this.$module = $module\n const $menuButton = $module.querySelector('.govuk-js-header-toggle')\n\n // Headers don't necessarily have a navigation. When they don't, the menu\n // toggle won't be rendered by our macro (or may be omitted when writing\n // plain HTML)\n if (!$menuButton) {\n return this\n }\n\n const menuId = $menuButton.getAttribute('aria-controls')\n if (!menuId) {\n throw new ElementError({\n componentName: 'Header',\n identifier:\n 'Navigation button (`<button class=\"govuk-js-header-toggle\">`) attribute (`aria-controls`)'\n })\n }\n\n const $menu = document.getElementById(menuId)\n if (!$menu) {\n throw new ElementError({\n componentName: 'Header',\n element: $menu,\n identifier: `Navigation (\\`<ul id=\"${menuId}\">\\`)`\n })\n }\n\n this.$menu = $menu\n this.$menuButton = $menuButton\n\n this.setupResponsiveChecks()\n\n this.$menuButton.addEventListener('click', () =>\n this.handleMenuButtonClick()\n )\n }\n\n /**\n * Setup viewport resize check\n *\n * @private\n */\n setupResponsiveChecks() {\n const breakpoint = getBreakpoint('desktop')\n\n if (!breakpoint.value) {\n throw new ElementError({\n componentName: 'Header',\n identifier: `CSS custom property (\\`${breakpoint.property}\\`) on pseudo-class \\`:root\\``\n })\n }\n\n // Media query list for GOV.UK Frontend desktop breakpoint\n this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`)\n\n // MediaQueryList.addEventListener isn't supported by Safari < 14 so we need\n // to be able to fall back to the deprecated MediaQueryList.addListener\n if ('addEventListener' in this.mql) {\n this.mql.addEventListener('change', () => this.checkMode())\n } else {\n // @ts-expect-error Property 'addListener' does not exist\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.mql.addListener(() => this.checkMode())\n }\n\n this.checkMode()\n }\n\n /**\n * Sync menu state\n *\n * Uses the global variable menuIsOpen to correctly set the accessible and\n * visual states of the menu and the menu button.\n * Additionally will force the menu to be visible and the menu button to be\n * hidden if the matchMedia is triggered to desktop.\n *\n * @private\n */\n checkMode() {\n if (!this.mql || !this.$menu || !this.$menuButton) {\n return\n }\n\n if (this.mql.matches) {\n this.$menu.removeAttribute('hidden')\n this.$menuButton.setAttribute('hidden', '')\n } else {\n this.$menuButton.removeAttribute('hidden')\n this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString())\n\n if (this.menuIsOpen) {\n this.$menu.removeAttribute('hidden')\n } else {\n this.$menu.setAttribute('hidden', '')\n }\n }\n }\n\n /**\n * Handle menu button click\n *\n * When the menu button is clicked, change the visibility of the menu and then\n * sync the accessibility state and menu button state\n *\n * @private\n */\n handleMenuButtonClick() {\n this.menuIsOpen = !this.menuIsOpen\n this.checkMode()\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-header'\n}\n"],"names":["Header","GOVUKFrontendComponent","constructor","$module","$menuButton","$menu","menuIsOpen","mql","ElementError","componentName","element","identifier","querySelector","menuId","getAttribute","document","getElementById","setupResponsiveChecks","addEventListener","handleMenuButtonClick","breakpoint","getBreakpoint","value","property","window","matchMedia","checkMode","addListener","matches","removeAttribute","setAttribute","toString","moduleName"],"mappings":";;;;AAIA;AACA;AACA;AACA;AACA;AACO,MAAMA,MAAM,SAASC,sBAAsB,CAAC;AA6BjD;AACF;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,OAAO,EAAE;AACnB,IAAA,KAAK,EAAE,CAAA;AAAA,IAAA,IAAA,CAlCTA,OAAO,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAGPC,WAAW,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CAGXC,KAAK,GAAA,KAAA,CAAA,CAAA;IAAA,IASLC,CAAAA,UAAU,GAAG,KAAK,CAAA;IAAA,IAUlBC,CAAAA,GAAG,GAAG,IAAI,CAAA;IAWR,IAAI,CAACJ,OAAO,EAAE;MACZ,MAAM,IAAIK,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,QAAQ;AACvBC,QAAAA,OAAO,EAAEP,OAAO;AAChBQ,QAAAA,UAAU,EAAE,0BAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,IAAI,CAACR,OAAO,GAAGA,OAAO,CAAA;AACtB,IAAA,MAAMC,WAAW,GAAGD,OAAO,CAACS,aAAa,CAAC,yBAAyB,CAAC,CAAA;IAKpE,IAAI,CAACR,WAAW,EAAE;AAChB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMS,MAAM,GAAGT,WAAW,CAACU,YAAY,CAAC,eAAe,CAAC,CAAA;IACxD,IAAI,CAACD,MAAM,EAAE;MACX,MAAM,IAAIL,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,QAAQ;AACvBE,QAAAA,UAAU,EACR,2FAAA;AACJ,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,MAAMN,KAAK,GAAGU,QAAQ,CAACC,cAAc,CAACH,MAAM,CAAC,CAAA;IAC7C,IAAI,CAACR,KAAK,EAAE;MACV,MAAM,IAAIG,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,QAAQ;AACvBC,QAAAA,OAAO,EAAEL,KAAK;QACdM,UAAU,EAAG,yBAAwBE,MAAO,CAAA,KAAA,CAAA;AAC9C,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,IAAI,CAACR,KAAK,GAAGA,KAAK,CAAA;IAClB,IAAI,CAACD,WAAW,GAAGA,WAAW,CAAA;IAE9B,IAAI,CAACa,qBAAqB,EAAE,CAAA;AAE5B,IAAA,IAAI,CAACb,WAAW,CAACc,gBAAgB,CAAC,OAAO,EAAE,MACzC,IAAI,CAACC,qBAAqB,EAC5B,CAAC,CAAA;AACH,GAAA;AAOAF,EAAAA,qBAAqBA,GAAG;AACtB,IAAA,MAAMG,UAAU,GAAGC,aAAa,CAAC,SAAS,CAAC,CAAA;AAE3C,IAAA,IAAI,CAACD,UAAU,CAACE,KAAK,EAAE;MACrB,MAAM,IAAId,YAAY,CAAC;AACrBC,QAAAA,aAAa,EAAE,QAAQ;AACvBE,QAAAA,UAAU,EAAG,CAAA,uBAAA,EAAyBS,UAAU,CAACG,QAAS,CAAA,6BAAA,CAAA;AAC5D,OAAC,CAAC,CAAA;AACJ,KAAA;AAGA,IAAA,IAAI,CAAChB,GAAG,GAAGiB,MAAM,CAACC,UAAU,CAAE,CAAA,YAAA,EAAcL,UAAU,CAACE,KAAM,CAAA,CAAA,CAAE,CAAC,CAAA;AAIhE,IAAA,IAAI,kBAAkB,IAAI,IAAI,CAACf,GAAG,EAAE;AAClC,MAAA,IAAI,CAACA,GAAG,CAACW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAACQ,SAAS,EAAE,CAAC,CAAA;AAC7D,KAAC,MAAM;MAGL,IAAI,CAACnB,GAAG,CAACoB,WAAW,CAAC,MAAM,IAAI,CAACD,SAAS,EAAE,CAAC,CAAA;AAC9C,KAAA;IAEA,IAAI,CAACA,SAAS,EAAE,CAAA;AAClB,GAAA;AAYAA,EAAAA,SAASA,GAAG;AACV,IAAA,IAAI,CAAC,IAAI,CAACnB,GAAG,IAAI,CAAC,IAAI,CAACF,KAAK,IAAI,CAAC,IAAI,CAACD,WAAW,EAAE;AACjD,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,IAAI,CAACG,GAAG,CAACqB,OAAO,EAAE;AACpB,MAAA,IAAI,CAACvB,KAAK,CAACwB,eAAe,CAAC,QAAQ,CAAC,CAAA;MACpC,IAAI,CAACzB,WAAW,CAAC0B,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC7C,KAAC,MAAM;AACL,MAAA,IAAI,CAAC1B,WAAW,CAACyB,eAAe,CAAC,QAAQ,CAAC,CAAA;AAC1C,MAAA,IAAI,CAACzB,WAAW,CAAC0B,YAAY,CAAC,eAAe,EAAE,IAAI,CAACxB,UAAU,CAACyB,QAAQ,EAAE,CAAC,CAAA;MAE1E,IAAI,IAAI,CAACzB,UAAU,EAAE;AACnB,QAAA,IAAI,CAACD,KAAK,CAACwB,eAAe,CAAC,QAAQ,CAAC,CAAA;AACtC,OAAC,MAAM;QACL,IAAI,CAACxB,KAAK,CAACyB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACvC,OAAA;AACF,KAAA;AACF,GAAA;AAUAX,EAAAA,qBAAqBA,GAAG;AACtB,IAAA,IAAI,CAACb,UAAU,GAAG,CAAC,IAAI,CAACA,UAAU,CAAA;IAClC,IAAI,CAACoB,SAAS,EAAE,CAAA;AAClB,GAAA;AAMF,CAAA;AAlKa1B,MAAM,CAiKVgC,UAAU,GAAG,cAAc;;;;"}