govuk_tech_docs 3.5.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish.yaml +8 -4
  3. data/.github/workflows/test.yaml +11 -4
  4. data/.rubocop.yml +1 -1
  5. data/CHANGELOG.md +21 -2
  6. data/example/.ruby-version +1 -1
  7. data/example/source/javascripts/govuk_frontend.js +1 -0
  8. data/govuk_tech_docs.gemspec +17 -11
  9. data/lib/assets/javascripts/_modules/page-expiry.js +2 -2
  10. data/lib/assets/javascripts/_modules/table-of-contents.js +48 -2
  11. data/lib/assets/javascripts/govuk_frontend_all.js +3 -0
  12. data/lib/assets/javascripts/govuk_tech_docs.js +0 -2
  13. data/lib/assets/stylesheets/_govuk_tech_docs.scss +4 -10
  14. data/lib/assets/stylesheets/modules/_page-review.scss +0 -2
  15. data/lib/assets/stylesheets/modules/_search.scss +0 -4
  16. data/lib/govuk_tech_docs/meta_tags.rb +1 -1
  17. data/lib/govuk_tech_docs/redirects.rb +1 -1
  18. data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +1 -1
  19. data/lib/govuk_tech_docs/table_of_contents/helpers.rb +2 -2
  20. data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +6 -2
  21. data/lib/govuk_tech_docs/version.rb +1 -1
  22. data/lib/govuk_tech_docs.rb +20 -3
  23. data/lib/source/layouts/_header.erb +8 -12
  24. data/lib/source/layouts/_page_review.erb +1 -1
  25. data/lib/source/layouts/_search.erb +2 -2
  26. data/lib/source/layouts/core.erb +8 -2
  27. data/lib/source/stylesheets/manifest.css +1 -1
  28. data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
  29. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2554 -0
  30. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2529 -0
  31. data/node_modules/govuk-frontend/dist/govuk/all.mjs +18 -0
  32. data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
  33. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
  34. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-crest.svg +1 -0
  35. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
  36. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  37. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  38. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
  39. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
  40. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
  41. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
  42. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +159 -0
  43. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
  44. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
  45. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
  46. data/node_modules/govuk-frontend/{govuk/components/_all.scss → dist/govuk/components/_index.scss} +8 -3
  47. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
  48. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/_index.scss +55 -77
  49. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +785 -0
  50. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +777 -0
  51. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +349 -0
  52. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
  53. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/_index.scss +12 -36
  54. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
  55. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/_index.scss +11 -36
  56. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
  57. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/_index.scss +30 -103
  58. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +318 -0
  59. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +310 -0
  60. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +73 -0
  61. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
  62. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/_index.scss +8 -6
  63. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +761 -0
  64. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +753 -0
  65. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +295 -0
  66. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
  67. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/_index.scss +108 -132
  68. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +268 -0
  69. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +260 -0
  70. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +111 -0
  71. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
  72. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/_index.scss +19 -15
  73. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
  74. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/_index.scss +3 -2
  75. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
  76. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +139 -0
  77. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
  78. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/_index.scss +2 -0
  79. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
  80. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/_index.scss +19 -6
  81. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +378 -0
  82. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +370 -0
  83. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +103 -0
  84. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
  85. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/exit-this-page/_index.scss +5 -10
  86. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +662 -0
  87. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +654 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +226 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
  90. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/_index.scss +20 -15
  91. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
  92. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/_index.scss +11 -15
  93. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
  94. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/_index.scss +25 -68
  95. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
  96. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/_index.scss +84 -79
  97. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +252 -0
  98. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +244 -0
  99. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +88 -0
  100. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_hint.scss +2 -0
  101. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_index.scss +3 -0
  102. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_index.scss +24 -49
  103. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_input.scss +2 -0
  104. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/_index.scss +2 -0
  105. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
  106. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_index.scss +12 -7
  107. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_label.scss +2 -0
  108. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/_index.scss +11 -7
  109. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
  110. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +320 -0
  111. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +312 -0
  112. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +51 -0
  113. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/pagination/_index.scss +36 -55
  114. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
  115. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +58 -0
  116. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/_panel.scss +2 -0
  117. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +57 -0
  118. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
  119. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +594 -0
  120. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +586 -0
  121. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +154 -0
  122. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/_index.scss +10 -1
  123. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
  124. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/_index.scss +92 -113
  125. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
  126. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +245 -0
  127. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +237 -0
  128. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +88 -0
  129. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/_index.scss +9 -16
  130. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
  131. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +168 -0
  132. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_service-navigation.scss +4 -0
  133. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +249 -0
  134. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +241 -0
  135. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.mjs +85 -0
  136. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/_index.scss +10 -5
  137. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
  138. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +244 -0
  139. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +236 -0
  140. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +58 -0
  141. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/_index.scss +22 -20
  142. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
  143. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_index.scss +21 -17
  144. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_table.scss +2 -0
  145. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_index.scss +13 -9
  146. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_tabs.scss +2 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +453 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +445 -0
  149. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +283 -0
  150. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +97 -0
  151. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/_tag.scss +2 -0
  152. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +79 -0
  153. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
  154. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/_index.scss +6 -10
  155. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
  156. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/_index.scss +13 -13
  157. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
  158. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
  159. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_global-styles.scss +2 -1
  160. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
  161. data/node_modules/govuk-frontend/{govuk/core/_all.scss → dist/govuk/core/_index.scss} +3 -1
  162. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_links.scss +8 -1
  163. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_lists.scss +2 -1
  164. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_section-break.scss +2 -7
  165. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_typography.scss +8 -5
  166. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +57 -0
  167. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +60 -0
  168. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
  169. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
  170. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_clearfix.scss +3 -1
  171. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +127 -0
  172. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_device-pixels.scss +4 -3
  173. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_focused.scss +22 -6
  174. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
  175. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_grid.scss +3 -1
  176. data/node_modules/govuk-frontend/{govuk/helpers/_all.scss → dist/govuk/helpers/_index.scss} +2 -0
  177. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_links.scss +38 -76
  178. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_media-queries.scss +3 -12
  179. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_shape-arrow.scss +3 -1
  180. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_spacing.scss +12 -10
  181. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +288 -0
  182. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_visually-hidden.scss +39 -50
  183. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
  184. data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
  185. data/node_modules/govuk-frontend/dist/govuk/init.mjs +162 -0
  186. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
  187. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_button-group.scss +7 -12
  188. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_form-group.scss +2 -0
  189. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_grid.scss +4 -2
  190. data/node_modules/govuk-frontend/{govuk/objects/_all.scss → dist/govuk/objects/_index.scss} +2 -0
  191. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_main-wrapper.scss +2 -0
  192. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_template.scss +2 -1
  193. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_width-container.scss +2 -9
  194. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
  195. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_display.scss +2 -0
  196. data/node_modules/govuk-frontend/{govuk/overrides/_all.scss → dist/govuk/overrides/_index.scss} +2 -0
  197. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_spacing.scss +3 -19
  198. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_text-align.scss +2 -0
  199. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +42 -0
  200. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_width.scss +2 -0
  201. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
  202. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_assets.scss +2 -0
  203. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_colours-applied.scss +9 -7
  204. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +378 -0
  205. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
  206. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_global-styles.scss +2 -0
  207. data/node_modules/govuk-frontend/{govuk/settings/_all.scss → dist/govuk/settings/_index.scss} +2 -3
  208. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_links.scss +3 -20
  209. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_measurements.scss +18 -6
  210. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_media-queries.scss +5 -3
  211. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_spacing.scss +2 -0
  212. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
  213. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
  214. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_warnings.scss +33 -8
  215. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
  216. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_exports.scss +2 -0
  217. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_font-url.scss +3 -0
  218. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_image-url.scss +3 -0
  219. data/node_modules/govuk-frontend/{govuk/tools/_all.scss → dist/govuk/tools/_index.scss} +2 -2
  220. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-em.scss +2 -0
  221. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-rem.scss +2 -0
  222. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
  223. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_clearfix.scss +2 -0
  224. data/node_modules/govuk-frontend/{govuk/utilities/_all.scss → dist/govuk/utilities/_index.scss} +2 -0
  225. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_visually-hidden.scss +2 -0
  226. data/node_modules/govuk-frontend/{govuk → dist/govuk}/vendor/_sass-mq.scss +3 -1
  227. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
  228. data/node_modules/govuk-frontend/{govuk-prototype-kit → dist/govuk-prototype-kit}/init.scss +3 -2
  229. data/package-lock.json +37 -37
  230. data/package.json +6 -1
  231. metadata +316 -206
  232. data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
  233. data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -14
  234. data/node_modules/govuk-frontend/govuk/all.js +0 -5172
  235. data/node_modules/govuk-frontend/govuk/all.scss +0 -9
  236. data/node_modules/govuk-frontend/govuk/assets/images/favicon.ico +0 -0
  237. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  238. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  239. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
  240. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
  241. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest-2x.png +0 -0
  242. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest.png +0 -0
  243. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
  244. data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -7
  245. data/node_modules/govuk-frontend/govuk/assets/images/govuk-opengraph-image.png +0 -0
  246. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +0 -75
  247. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +0 -17
  248. data/node_modules/govuk-frontend/govuk/common/index.js +0 -192
  249. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +0 -386
  250. data/node_modules/govuk-frontend/govuk/common.js +0 -194
  251. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
  252. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -2386
  253. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
  254. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
  255. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
  256. data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -1027
  257. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
  258. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -2281
  259. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
  260. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1277
  261. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
  262. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
  263. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
  264. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
  265. data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -873
  266. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
  267. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
  268. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -1189
  269. data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +0 -2
  270. data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +0 -2120
  271. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
  272. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
  273. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
  274. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
  275. data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -794
  276. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
  277. data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
  278. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -843
  279. data/node_modules/govuk-frontend/govuk/components/pagination/_pagination.scss +0 -2
  280. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
  281. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
  282. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
  283. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1222
  284. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
  285. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
  286. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +0 -1145
  287. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
  288. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1621
  289. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -81
  290. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
  291. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
  292. data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +0 -5
  293. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -98
  294. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
  295. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -214
  296. data/node_modules/govuk-frontend/govuk/i18n.js +0 -397
  297. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -21
  298. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -146
  299. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -120
  300. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -100
  301. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -34
  302. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
  303. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -112
  304. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -195
  305. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -50
  306. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -87
  307. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -274
  308. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +0 -23
  309. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -36
  310. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -597
  311. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -58
  312. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +0 -307
  313. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -33
  314. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -261
  315. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -261
  316. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -151
  317. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -512
  318. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -256
  319. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -96
  320. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +0 -23
  321. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -30
  322. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +0 -8
  323. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
  324. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  325. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  326. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  327. /data/{lib/source → node_modules/govuk-frontend/dist/govuk/assets/images}/favicon.ico +0 -0
@@ -2,7 +2,7 @@
2
2
  /// @group helpers/accessibility
3
3
  ////
4
4
 
5
- /// Hide an element visually, but have it available for screen readers
5
+ /// Helper function containing the common code for the following two mixins
6
6
  ///
7
7
  /// @link https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
8
8
  /// - Hiding Content for Accessibility, Jonathan Snook, February 2011
@@ -11,23 +11,11 @@
11
11
  ///
12
12
  /// @param {Boolean} $important [true] - Whether to mark as `!important`
13
13
  ///
14
- /// @access public
14
+ /// @access private
15
15
 
16
- @mixin govuk-visually-hidden($important: true) {
16
+ @mixin _govuk-visually-hide-content($important: true) {
17
17
  position: absolute if($important, !important, null);
18
18
 
19
- // Absolute positioning has the unintended consequence of removing any
20
- // whitespace surrounding visually hidden text from the accessibility tree.
21
- // Insert a space character before and after visually hidden text to separate
22
- // it from any visible text surrounding it.
23
- &:before {
24
- content: "\00a0";
25
- }
26
-
27
- &:after {
28
- content: "\00a0";
29
- }
30
-
31
19
  width: 1px if($important, !important, null);
32
20
  height: 1px if($important, !important, null);
33
21
  // If margin is set to a negative value it can cause text to be announced in
@@ -36,6 +24,8 @@
36
24
  padding: 0 if($important, !important, null);
37
25
 
38
26
  overflow: hidden if($important, !important, null);
27
+
28
+ // `clip` is needed for IE11 support
39
29
  clip: rect(0 0 0 0) if($important, !important, null);
40
30
  -webkit-clip-path: inset(50%) if($important, !important, null);
41
31
  clip-path: inset(50%) if($important, !important, null);
@@ -46,51 +36,50 @@
46
36
  // causes content to wrap 1 word per line:
47
37
  // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
48
38
  white-space: nowrap if($important, !important, null);
39
+
40
+ // Prevent users from selecting or copying visually-hidden text. This prevents
41
+ // a user unintentionally copying more text than they intended and needing to
42
+ // manually trim it down again.
43
+ -webkit-user-select: none;
44
+ -ms-user-select: none;
45
+ user-select: none;
49
46
  }
50
47
 
51
- /// Hide an element visually, but have it available for screen readers whilst
52
- /// allowing the element to be focused when navigated to via the keyboard (e.g.
53
- /// for the skip link)
54
- ///
55
- /// This is slightly less opinionated about borders and padding to make it
56
- /// easier to style the focussed element.
48
+ /// Hide an element visually, but have it available for screen readers
57
49
  ///
58
50
  /// @param {Boolean} $important [true] - Whether to mark as `!important`
59
51
  ///
60
52
  /// @access public
61
53
 
62
- @mixin govuk-visually-hidden-focusable($important: true) {
63
- position: absolute if($important, !important, null);
64
-
65
- width: 1px if($important, !important, null);
66
- height: 1px if($important, !important, null);
67
- // If margin is set to a negative value it can cause text to be announced in
68
- // the wrong order in VoiceOver for OSX
69
- margin: 0 if($important, !important, null);
70
-
71
- overflow: hidden if($important, !important, null);
72
- clip: rect(0 0 0 0) if($important, !important, null);
73
- -webkit-clip-path: inset(50%) if($important, !important, null);
74
- clip-path: inset(50%) if($important, !important, null);
75
-
76
- // For long content, line feeds are not interpreted as spaces and small width
77
- // causes content to wrap 1 word per line:
78
- // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
79
- white-space: nowrap if($important, !important, null);
54
+ @mixin govuk-visually-hidden($important: true) {
55
+ @include _govuk-visually-hide-content($important: $important);
80
56
 
81
- &:active,
82
- &:focus {
83
- position: static if($important, !important, null);
57
+ // Absolute positioning has the unintended consequence of removing any
58
+ // whitespace surrounding visually hidden text from the accessibility tree.
59
+ // Insert a space character before and after visually hidden text to separate
60
+ // it from any visible text surrounding it.
61
+ &::before {
62
+ content: "\00a0";
63
+ }
84
64
 
85
- width: auto if($important, !important, null);
86
- height: auto if($important, !important, null);
87
- margin: inherit if($important, !important, null);
65
+ &::after {
66
+ content: "\00a0";
67
+ }
68
+ }
88
69
 
89
- overflow: visible if($important, !important, null);
90
- clip: auto if($important, !important, null);
91
- -webkit-clip-path: none if($important, !important, null);
92
- clip-path: none if($important, !important, null);
70
+ /// Hide an element visually, but have it available for screen readers whilst
71
+ /// allowing the element to be focused when navigated to via the keyboard (e.g.
72
+ /// for the skip link)
73
+ ///
74
+ /// @param {Boolean} $important [true] - Whether to mark as `!important`
75
+ ///
76
+ /// @access public
93
77
 
94
- white-space: inherit if($important, !important, null);
78
+ @mixin govuk-visually-hidden-focusable($important: true) {
79
+ // IE 11 doesn't support the combined `:not(:active, :focus)` syntax.
80
+ &:not(:active):not(:focus) {
81
+ @include _govuk-visually-hide-content($important: $important);
95
82
  }
96
83
  }
84
+
85
+ /*# sourceMappingURL=_visually-hidden.scss.map */
@@ -0,0 +1,195 @@
1
+ class I18n {
2
+ constructor(translations = {}, config = {}) {
3
+ var _config$locale;
4
+ this.translations = void 0;
5
+ this.locale = void 0;
6
+ this.translations = translations;
7
+ this.locale = (_config$locale = config.locale) != null ? _config$locale : document.documentElement.lang || 'en';
8
+ }
9
+ t(lookupKey, options) {
10
+ if (!lookupKey) {
11
+ throw new Error('i18n: lookup key missing');
12
+ }
13
+ let translation = this.translations[lookupKey];
14
+ if (typeof (options == null ? void 0 : options.count) === 'number' && typeof translation === 'object') {
15
+ const translationPluralForm = translation[this.getPluralSuffix(lookupKey, options.count)];
16
+ if (translationPluralForm) {
17
+ translation = translationPluralForm;
18
+ }
19
+ }
20
+ if (typeof translation === 'string') {
21
+ if (translation.match(/%{(.\S+)}/)) {
22
+ if (!options) {
23
+ throw new Error('i18n: cannot replace placeholders in string if no option data provided');
24
+ }
25
+ return this.replacePlaceholders(translation, options);
26
+ }
27
+ return translation;
28
+ }
29
+ return lookupKey;
30
+ }
31
+ replacePlaceholders(translationString, options) {
32
+ const formatter = Intl.NumberFormat.supportedLocalesOf(this.locale).length ? new Intl.NumberFormat(this.locale) : undefined;
33
+ return translationString.replace(/%{(.\S+)}/g, function (placeholderWithBraces, placeholderKey) {
34
+ if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {
35
+ const placeholderValue = options[placeholderKey];
36
+ if (placeholderValue === false || typeof placeholderValue !== 'number' && typeof placeholderValue !== 'string') {
37
+ return '';
38
+ }
39
+ if (typeof placeholderValue === 'number') {
40
+ return formatter ? formatter.format(placeholderValue) : `${placeholderValue}`;
41
+ }
42
+ return placeholderValue;
43
+ }
44
+ throw new Error(`i18n: no data found to replace ${placeholderWithBraces} placeholder in string`);
45
+ });
46
+ }
47
+ hasIntlPluralRulesSupport() {
48
+ return Boolean('PluralRules' in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length);
49
+ }
50
+ getPluralSuffix(lookupKey, count) {
51
+ count = Number(count);
52
+ if (!isFinite(count)) {
53
+ return 'other';
54
+ }
55
+ const translation = this.translations[lookupKey];
56
+ const preferredForm = this.hasIntlPluralRulesSupport() ? new Intl.PluralRules(this.locale).select(count) : this.selectPluralFormUsingFallbackRules(count);
57
+ if (typeof translation === 'object') {
58
+ if (preferredForm in translation) {
59
+ return preferredForm;
60
+ } else if ('other' in translation) {
61
+ console.warn(`i18n: Missing plural form ".${preferredForm}" for "${this.locale}" locale. Falling back to ".other".`);
62
+ return 'other';
63
+ }
64
+ }
65
+ throw new Error(`i18n: Plural form ".other" is required for "${this.locale}" locale`);
66
+ }
67
+ selectPluralFormUsingFallbackRules(count) {
68
+ count = Math.abs(Math.floor(count));
69
+ const ruleset = this.getPluralRulesForLocale();
70
+ if (ruleset) {
71
+ return I18n.pluralRules[ruleset](count);
72
+ }
73
+ return 'other';
74
+ }
75
+ getPluralRulesForLocale() {
76
+ const localeShort = this.locale.split('-')[0];
77
+ for (const pluralRule in I18n.pluralRulesMap) {
78
+ const languages = I18n.pluralRulesMap[pluralRule];
79
+ if (languages.includes(this.locale) || languages.includes(localeShort)) {
80
+ return pluralRule;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ I18n.pluralRulesMap = {
86
+ arabic: ['ar'],
87
+ chinese: ['my', 'zh', 'id', 'ja', 'jv', 'ko', 'ms', 'th', 'vi'],
88
+ french: ['hy', 'bn', 'fr', 'gu', 'hi', 'fa', 'pa', 'zu'],
89
+ german: ['af', 'sq', 'az', 'eu', 'bg', 'ca', 'da', 'nl', 'en', 'et', 'fi', 'ka', 'de', 'el', 'hu', 'lb', 'no', 'so', 'sw', 'sv', 'ta', 'te', 'tr', 'ur'],
90
+ irish: ['ga'],
91
+ russian: ['ru', 'uk'],
92
+ scottish: ['gd'],
93
+ spanish: ['pt-PT', 'it', 'es'],
94
+ welsh: ['cy']
95
+ };
96
+ I18n.pluralRules = {
97
+ arabic(n) {
98
+ if (n === 0) {
99
+ return 'zero';
100
+ }
101
+ if (n === 1) {
102
+ return 'one';
103
+ }
104
+ if (n === 2) {
105
+ return 'two';
106
+ }
107
+ if (n % 100 >= 3 && n % 100 <= 10) {
108
+ return 'few';
109
+ }
110
+ if (n % 100 >= 11 && n % 100 <= 99) {
111
+ return 'many';
112
+ }
113
+ return 'other';
114
+ },
115
+ chinese() {
116
+ return 'other';
117
+ },
118
+ french(n) {
119
+ return n === 0 || n === 1 ? 'one' : 'other';
120
+ },
121
+ german(n) {
122
+ return n === 1 ? 'one' : 'other';
123
+ },
124
+ irish(n) {
125
+ if (n === 1) {
126
+ return 'one';
127
+ }
128
+ if (n === 2) {
129
+ return 'two';
130
+ }
131
+ if (n >= 3 && n <= 6) {
132
+ return 'few';
133
+ }
134
+ if (n >= 7 && n <= 10) {
135
+ return 'many';
136
+ }
137
+ return 'other';
138
+ },
139
+ russian(n) {
140
+ const lastTwo = n % 100;
141
+ const last = lastTwo % 10;
142
+ if (last === 1 && lastTwo !== 11) {
143
+ return 'one';
144
+ }
145
+ if (last >= 2 && last <= 4 && !(lastTwo >= 12 && lastTwo <= 14)) {
146
+ return 'few';
147
+ }
148
+ if (last === 0 || last >= 5 && last <= 9 || lastTwo >= 11 && lastTwo <= 14) {
149
+ return 'many';
150
+ }
151
+ return 'other';
152
+ },
153
+ scottish(n) {
154
+ if (n === 1 || n === 11) {
155
+ return 'one';
156
+ }
157
+ if (n === 2 || n === 12) {
158
+ return 'two';
159
+ }
160
+ if (n >= 3 && n <= 10 || n >= 13 && n <= 19) {
161
+ return 'few';
162
+ }
163
+ return 'other';
164
+ },
165
+ spanish(n) {
166
+ if (n === 1) {
167
+ return 'one';
168
+ }
169
+ if (n % 1000000 === 0 && n !== 0) {
170
+ return 'many';
171
+ }
172
+ return 'other';
173
+ },
174
+ welsh(n) {
175
+ if (n === 0) {
176
+ return 'zero';
177
+ }
178
+ if (n === 1) {
179
+ return 'one';
180
+ }
181
+ if (n === 2) {
182
+ return 'two';
183
+ }
184
+ if (n === 3) {
185
+ return 'few';
186
+ }
187
+ if (n === 6) {
188
+ return 'many';
189
+ }
190
+ return 'other';
191
+ }
192
+ };
193
+
194
+ export { I18n };
195
+ //# sourceMappingURL=i18n.mjs.map
@@ -0,0 +1,11 @@
1
+ @import "base";
2
+
3
+ @import "core/index";
4
+ @import "objects/index";
5
+
6
+ @import "components/index";
7
+
8
+ @import "utilities/index";
9
+ @import "overrides/index";
10
+
11
+ /*# sourceMappingURL=index.scss.map */
@@ -0,0 +1,162 @@
1
+ import { isSupported } from './common/index.mjs';
2
+ import { Accordion } from './components/accordion/accordion.mjs';
3
+ import { Button } from './components/button/button.mjs';
4
+ import { CharacterCount } from './components/character-count/character-count.mjs';
5
+ import { Checkboxes } from './components/checkboxes/checkboxes.mjs';
6
+ import { ErrorSummary } from './components/error-summary/error-summary.mjs';
7
+ import { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs';
8
+ import { Header } from './components/header/header.mjs';
9
+ import { NotificationBanner } from './components/notification-banner/notification-banner.mjs';
10
+ import { PasswordInput } from './components/password-input/password-input.mjs';
11
+ import { Radios } from './components/radios/radios.mjs';
12
+ import { ServiceNavigation } from './components/service-navigation/service-navigation.mjs';
13
+ import { SkipLink } from './components/skip-link/skip-link.mjs';
14
+ import { Tabs } from './components/tabs/tabs.mjs';
15
+ import { SupportError } from './errors/index.mjs';
16
+
17
+ /**
18
+ * Initialise all components
19
+ *
20
+ * Use the `data-module` attributes to find, instantiate and init all of the
21
+ * components provided as part of GOV.UK Frontend.
22
+ *
23
+ * @param {Config & { scope?: Element, onError?: OnErrorCallback<CompatibleClass> }} [config] - Config for all components (with optional scope)
24
+ */
25
+ function initAll(config) {
26
+ var _config$scope;
27
+ config = typeof config !== 'undefined' ? config : {};
28
+ if (!isSupported()) {
29
+ if (config.onError) {
30
+ config.onError(new SupportError(), {
31
+ config
32
+ });
33
+ } else {
34
+ console.log(new SupportError());
35
+ }
36
+ return;
37
+ }
38
+ const components = [[Accordion, config.accordion], [Button, config.button], [CharacterCount, config.characterCount], [Checkboxes], [ErrorSummary, config.errorSummary], [ExitThisPage, config.exitThisPage], [Header], [NotificationBanner, config.notificationBanner], [PasswordInput, config.passwordInput], [Radios], [ServiceNavigation], [SkipLink], [Tabs]];
39
+ const options = {
40
+ scope: (_config$scope = config.scope) != null ? _config$scope : document,
41
+ onError: config.onError
42
+ };
43
+ components.forEach(([Component, config]) => {
44
+ createAll(Component, config, options);
45
+ });
46
+ }
47
+
48
+ /**
49
+ * Create all instances of a specific component on the page
50
+ *
51
+ * Uses the `data-module` attribute to find all elements matching the specified
52
+ * component on the page, creating instances of the component object for each
53
+ * of them.
54
+ *
55
+ * Any component errors will be caught and logged to the console.
56
+ *
57
+ * @template {CompatibleClass} T
58
+ * @param {T} Component - class of the component to create
59
+ * @param {T["defaults"]} [config] - Config supplied to component
60
+ * @param {OnErrorCallback<T> | Element | Document | CreateAllOptions<T> } [createAllOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init
61
+ * @returns {Array<InstanceType<T>>} - array of instantiated components
62
+ */
63
+ function createAll(Component, config, createAllOptions) {
64
+ let $scope = document;
65
+ let onError;
66
+ if (typeof createAllOptions === 'object') {
67
+ var _createAllOptions$sco;
68
+ createAllOptions = createAllOptions;
69
+ $scope = (_createAllOptions$sco = createAllOptions.scope) != null ? _createAllOptions$sco : $scope;
70
+ onError = createAllOptions.onError;
71
+ }
72
+ if (typeof createAllOptions === 'function') {
73
+ onError = createAllOptions;
74
+ }
75
+ if (createAllOptions instanceof HTMLElement) {
76
+ $scope = createAllOptions;
77
+ }
78
+ const $elements = $scope.querySelectorAll(`[data-module="${Component.moduleName}"]`);
79
+ if (!isSupported()) {
80
+ if (onError) {
81
+ onError(new SupportError(), {
82
+ component: Component,
83
+ config
84
+ });
85
+ } else {
86
+ console.log(new SupportError());
87
+ }
88
+ return [];
89
+ }
90
+ return Array.from($elements).map($element => {
91
+ try {
92
+ return typeof config !== 'undefined' ? new Component($element, config) : new Component($element);
93
+ } catch (error) {
94
+ if (onError) {
95
+ onError(error, {
96
+ element: $element,
97
+ component: Component,
98
+ config
99
+ });
100
+ } else {
101
+ console.log(error);
102
+ }
103
+ return null;
104
+ }
105
+ }).filter(Boolean);
106
+ }
107
+ /**
108
+ * @typedef {{new (...args: any[]): any, defaults?: object, moduleName: string}} CompatibleClass
109
+ */
110
+ /**
111
+ * Config for all components via `initAll()`
112
+ *
113
+ * @typedef {object} Config
114
+ * @property {AccordionConfig} [accordion] - Accordion config
115
+ * @property {ButtonConfig} [button] - Button config
116
+ * @property {CharacterCountConfig} [characterCount] - Character Count config
117
+ * @property {ErrorSummaryConfig} [errorSummary] - Error Summary config
118
+ * @property {ExitThisPageConfig} [exitThisPage] - Exit This Page config
119
+ * @property {NotificationBannerConfig} [notificationBanner] - Notification Banner config
120
+ * @property {PasswordInputConfig} [passwordInput] - Password input config
121
+ */
122
+ /**
123
+ * Config for individual components
124
+ *
125
+ * @typedef {import('./components/accordion/accordion.mjs').AccordionConfig} AccordionConfig
126
+ * @typedef {import('./components/accordion/accordion.mjs').AccordionTranslations} AccordionTranslations
127
+ * @typedef {import('./components/button/button.mjs').ButtonConfig} ButtonConfig
128
+ * @typedef {import('./components/character-count/character-count.mjs').CharacterCountConfig} CharacterCountConfig
129
+ * @typedef {import('./components/character-count/character-count.mjs').CharacterCountTranslations} CharacterCountTranslations
130
+ * @typedef {import('./components/error-summary/error-summary.mjs').ErrorSummaryConfig} ErrorSummaryConfig
131
+ * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageConfig} ExitThisPageConfig
132
+ * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageTranslations} ExitThisPageTranslations
133
+ * @typedef {import('./components/notification-banner/notification-banner.mjs').NotificationBannerConfig} NotificationBannerConfig
134
+ * @typedef {import('./components/password-input/password-input.mjs').PasswordInputConfig} PasswordInputConfig
135
+ */
136
+ /**
137
+ * Component config keys, e.g. `accordion` and `characterCount`
138
+ *
139
+ * @typedef {keyof Config} ConfigKey
140
+ */
141
+ /**
142
+ * @template {CompatibleClass} T
143
+ * @typedef {object} ErrorContext
144
+ * @property {Element} [element] - Element used for component module initialisation
145
+ * @property {T} [component] - Class of component
146
+ * @property {T["defaults"]} config - Config supplied to component
147
+ */
148
+ /**
149
+ * @template {CompatibleClass} T
150
+ * @callback OnErrorCallback
151
+ * @param {unknown} error - Thrown error
152
+ * @param {ErrorContext<T>} context - Object containing the element, component class and configuration
153
+ */
154
+ /**
155
+ * @template {CompatibleClass} T
156
+ * @typedef {object} CreateAllOptions
157
+ * @property {Element | Document} [scope] - scope of the document to search within
158
+ * @property {OnErrorCallback<T>} [onError] - callback function if error throw by component on init
159
+ */
160
+
161
+ export { createAll, initAll };
162
+ //# sourceMappingURL=init.mjs.map
@@ -0,0 +1,10 @@
1
+ @import "../settings/warnings";
2
+ @import "index";
3
+
4
+ @include _warning(
5
+ "import-using-all",
6
+ "Importing using 'govuk/objects/all' is deprecated. Update your import statement to import 'govuk/objects/index'.",
7
+ $silence-further-warnings: false
8
+ );
9
+
10
+ /*# sourceMappingURL=_all.scss.map */
@@ -29,12 +29,9 @@
29
29
  // margins, but unfortunately the support isn't there (yet) and @supports
30
30
  // doesn't play nicely with it
31
31
  // (https://github.com/w3c/csswg-drafts/issues/3559)
32
- display: -ms-flexbox;
33
32
  display: flex;
34
- -ms-flex-direction: column;
35
- flex-direction: column;
36
- -ms-flex-align: center;
37
- align-items: center;
33
+ flex-direction: column;
34
+ align-items: center;
38
35
 
39
36
  // Give links within the button group the same font-size and line-height
40
37
  // as buttons.
@@ -64,13 +61,9 @@
64
61
  // Cancel out the column gap for the last item in each row
65
62
  margin-right: ($horizontal-gap * -1);
66
63
 
67
- -ms-flex-direction: row;
68
-
69
- flex-direction: row;
70
- -ms-flex-wrap: wrap;
71
- flex-wrap: wrap;
72
- -ms-flex-align: baseline;
73
- align-items: baseline;
64
+ flex-direction: row;
65
+ flex-wrap: wrap;
66
+ align-items: baseline;
74
67
 
75
68
  .govuk-button,
76
69
  .govuk-link {
@@ -83,3 +76,5 @@
83
76
  }
84
77
  }
85
78
  }
79
+
80
+ /*# sourceMappingURL=_button-group.scss.map */
@@ -21,3 +21,5 @@
21
21
  }
22
22
  }
23
23
  }
24
+
25
+ /*# sourceMappingURL=_form-group.scss.map */
@@ -3,8 +3,8 @@
3
3
  @include govuk-exports("govuk/objects/grid") {
4
4
  .govuk-grid-row {
5
5
  @include govuk-clearfix;
6
- margin-right: - ($govuk-gutter-half);
7
- margin-left: - ($govuk-gutter-half);
6
+ margin-right: -($govuk-gutter-half);
7
+ margin-left: -($govuk-gutter-half);
8
8
  }
9
9
 
10
10
  @each $width in map-keys($govuk-grid-widths) {
@@ -22,3 +22,5 @@
22
22
  }
23
23
  }
24
24
  }
25
+
26
+ /*# sourceMappingURL=_grid.scss.map */
@@ -4,3 +4,5 @@
4
4
  @import "main-wrapper";
5
5
  @import "template";
6
6
  @import "width-container";
7
+
8
+ /*# sourceMappingURL=_index.scss.map */
@@ -51,3 +51,5 @@
51
51
  @include govuk-responsive-padding(8, "top");
52
52
  }
53
53
  }
54
+
55
+ /*# sourceMappingURL=_main-wrapper.scss.map */
@@ -1,7 +1,6 @@
1
1
  @import "../base";
2
2
 
3
3
  @include govuk-exports("govuk/objects/template") {
4
-
5
4
  // Applied to the <html> element
6
5
  .govuk-template {
7
6
  // Set the overall page background colour to the same colour as used by the
@@ -50,3 +49,5 @@
50
49
  background-color: $govuk-body-background-colour;
51
50
  }
52
51
  }
52
+
53
+ /*# sourceMappingURL=_template.scss.map */
@@ -18,7 +18,6 @@
18
18
  /// @access public
19
19
 
20
20
  @mixin govuk-width-container($width: $govuk-page-width) {
21
-
22
21
  // By default, limit the width of the container to the page width
23
22
  max-width: $width;
24
23
 
@@ -67,14 +66,6 @@
67
66
  margin-left: auto;
68
67
  }
69
68
  }
70
-
71
- @include _govuk-if-ie8 {
72
- width: $width;
73
- // Since media queries are not supported in IE8,
74
- // we need to duplicate this margin that centers the page.
75
- margin-right: auto;
76
- margin-left: auto;
77
- }
78
69
  }
79
70
 
80
71
  @include govuk-exports("govuk/objects/width-container") {
@@ -82,3 +73,5 @@
82
73
  @include govuk-width-container;
83
74
  }
84
75
  }
76
+
77
+ /*# sourceMappingURL=_width-container.scss.map */
@@ -0,0 +1,9 @@
1
+ @import "../settings/warnings";
2
+ @import "index";
3
+
4
+ @include _warning(
5
+ "import-using-all",
6
+ "Importing using 'govuk/overrides/all' is deprecated. Update your import statement to import 'govuk/overrides/index'."
7
+ );
8
+
9
+ /*# sourceMappingURL=_all.scss.map */
@@ -22,3 +22,5 @@
22
22
  }
23
23
  }
24
24
  }
25
+
26
+ /*# sourceMappingURL=_display.scss.map */
@@ -3,3 +3,5 @@
3
3
  @import "text-align";
4
4
  @import "typography";
5
5
  @import "width";
6
+
7
+ /*# sourceMappingURL=_index.scss.map */