govuk_tech_docs 3.4.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +22 -1
  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 */