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.
- checksums.yaml +4 -4
- data/.github/workflows/publish.yaml +8 -4
- data/.github/workflows/test.yaml +11 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +22 -1
- data/example/.ruby-version +1 -1
- data/example/source/javascripts/govuk_frontend.js +1 -0
- data/govuk_tech_docs.gemspec +17 -11
- data/lib/assets/javascripts/_modules/page-expiry.js +2 -2
- data/lib/assets/javascripts/_modules/table-of-contents.js +48 -2
- data/lib/assets/javascripts/govuk_frontend_all.js +3 -0
- data/lib/assets/javascripts/govuk_tech_docs.js +0 -2
- data/lib/assets/stylesheets/_govuk_tech_docs.scss +4 -10
- data/lib/assets/stylesheets/modules/_page-review.scss +0 -2
- data/lib/assets/stylesheets/modules/_search.scss +0 -4
- data/lib/govuk_tech_docs/meta_tags.rb +1 -1
- data/lib/govuk_tech_docs/redirects.rb +1 -1
- data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +1 -1
- data/lib/govuk_tech_docs/table_of_contents/helpers.rb +2 -2
- data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +6 -2
- data/lib/govuk_tech_docs/version.rb +1 -1
- data/lib/govuk_tech_docs.rb +20 -3
- data/lib/source/layouts/_header.erb +8 -12
- data/lib/source/layouts/_page_review.erb +1 -1
- data/lib/source/layouts/_search.erb +2 -2
- data/lib/source/layouts/core.erb +8 -2
- data/lib/source/stylesheets/manifest.css +1 -1
- data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2554 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2529 -0
- data/node_modules/govuk-frontend/dist/govuk/all.mjs +18 -0
- data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-crest.svg +1 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +159 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
- data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk/components/_all.scss → dist/govuk/components/_index.scss} +8 -3
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/_index.scss +55 -77
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +785 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +777 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +349 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/_index.scss +12 -36
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/_index.scss +11 -36
- data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/_index.scss +30 -103
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +318 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +310 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +73 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/_index.scss +8 -6
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +761 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +753 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +295 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/_index.scss +108 -132
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +268 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +260 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +111 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/_index.scss +19 -15
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/_index.scss +3 -2
- data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +139 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/_index.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/_index.scss +19 -6
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +378 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +370 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +103 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/exit-this-page/_index.scss +5 -10
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +662 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +654 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +226 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/_index.scss +20 -15
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/_index.scss +11 -15
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/_index.scss +25 -68
- data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/_index.scss +84 -79
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +252 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +244 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +88 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_hint.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_index.scss +3 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_index.scss +24 -49
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_input.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/_index.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_index.scss +12 -7
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_label.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/_index.scss +11 -7
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +320 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +312 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +51 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/pagination/_index.scss +36 -55
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +58 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/_panel.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +57 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +594 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +586 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +154 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/_index.scss +10 -1
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/_index.scss +92 -113
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +245 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +237 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +88 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/_index.scss +9 -16
- data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +168 -0
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_service-navigation.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +249 -0
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +241 -0
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.mjs +85 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/_index.scss +10 -5
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +244 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +236 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +58 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/_index.scss +22 -20
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_index.scss +21 -17
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_table.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_index.scss +13 -9
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_tabs.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +453 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +445 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +283 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +97 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/_tag.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +79 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/_index.scss +6 -10
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/_index.scss +13 -13
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_global-styles.scss +2 -1
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
- data/node_modules/govuk-frontend/{govuk/core/_all.scss → dist/govuk/core/_index.scss} +3 -1
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_links.scss +8 -1
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_lists.scss +2 -1
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_section-break.scss +2 -7
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_typography.scss +8 -5
- data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +57 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +60 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_clearfix.scss +3 -1
- data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +127 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_device-pixels.scss +4 -3
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_focused.scss +22 -6
- data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_grid.scss +3 -1
- data/node_modules/govuk-frontend/{govuk/helpers/_all.scss → dist/govuk/helpers/_index.scss} +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_links.scss +38 -76
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_media-queries.scss +3 -12
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_shape-arrow.scss +3 -1
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_spacing.scss +12 -10
- data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +288 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_visually-hidden.scss +39 -50
- data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
- data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
- data/node_modules/govuk-frontend/dist/govuk/init.mjs +162 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_button-group.scss +7 -12
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_form-group.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_grid.scss +4 -2
- data/node_modules/govuk-frontend/{govuk/objects/_all.scss → dist/govuk/objects/_index.scss} +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_main-wrapper.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_template.scss +2 -1
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_width-container.scss +2 -9
- data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_display.scss +2 -0
- data/node_modules/govuk-frontend/{govuk/overrides/_all.scss → dist/govuk/overrides/_index.scss} +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_spacing.scss +3 -19
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_text-align.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +42 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_width.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_assets.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_colours-applied.scss +9 -7
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +378 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_global-styles.scss +2 -0
- data/node_modules/govuk-frontend/{govuk/settings/_all.scss → dist/govuk/settings/_index.scss} +2 -3
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_links.scss +3 -20
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_measurements.scss +18 -6
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_media-queries.scss +5 -3
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_spacing.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_warnings.scss +33 -8
- data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_exports.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_font-url.scss +3 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_image-url.scss +3 -0
- data/node_modules/govuk-frontend/{govuk/tools/_all.scss → dist/govuk/tools/_index.scss} +2 -2
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-em.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-rem.scss +2 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_clearfix.scss +2 -0
- data/node_modules/govuk-frontend/{govuk/utilities/_all.scss → dist/govuk/utilities/_index.scss} +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_visually-hidden.scss +2 -0
- data/node_modules/govuk-frontend/{govuk → dist/govuk}/vendor/_sass-mq.scss +3 -1
- data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
- data/node_modules/govuk-frontend/{govuk-prototype-kit → dist/govuk-prototype-kit}/init.scss +3 -2
- data/package-lock.json +37 -37
- data/package.json +6 -1
- metadata +316 -206
- data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
- data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -14
- data/node_modules/govuk-frontend/govuk/all.js +0 -5172
- data/node_modules/govuk-frontend/govuk/all.scss +0 -9
- data/node_modules/govuk-frontend/govuk/assets/images/favicon.ico +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest-2x.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -7
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-opengraph-image.png +0 -0
- data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +0 -75
- data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +0 -17
- data/node_modules/govuk-frontend/govuk/common/index.js +0 -192
- data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +0 -386
- data/node_modules/govuk-frontend/govuk/common.js +0 -194
- data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -2386
- data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -1027
- data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -2281
- data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1277
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
- data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -873
- data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -1189
- data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +0 -2120
- data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -794
- data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -843
- data/node_modules/govuk-frontend/govuk/components/pagination/_pagination.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
- data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1222
- data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +0 -1145
- data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1621
- data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -81
- data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
- data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +0 -5
- data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -98
- data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
- data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -214
- data/node_modules/govuk-frontend/govuk/i18n.js +0 -397
- data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -21
- data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -146
- data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -120
- data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -100
- data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -34
- data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
- data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -112
- data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -195
- data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -50
- data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -87
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -274
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +0 -23
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -36
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -597
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -58
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +0 -307
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -33
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -261
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -261
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -151
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -512
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -256
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -96
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +0 -23
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -30
- data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +0 -8
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
- /data/{lib/source → node_modules/govuk-frontend/dist/govuk/assets/images}/favicon.ico +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
@include govuk-exports("govuk/component/header") {
|
|
2
|
-
|
|
3
2
|
$govuk-header-background: govuk-colour("black");
|
|
4
3
|
$govuk-header-border-color: $govuk-brand-colour;
|
|
5
4
|
$govuk-header-border-width: govuk-spacing(2);
|
|
@@ -7,9 +6,15 @@
|
|
|
7
6
|
$govuk-header-link-active: #1d8feb;
|
|
8
7
|
$govuk-header-nav-item-border-color: #2e3133;
|
|
9
8
|
$govuk-header-link-underline-thickness: 3px;
|
|
9
|
+
$govuk-header-vertical-spacing-value: 2;
|
|
10
|
+
// This crown height is only used to calculate top offset of mobile menu button
|
|
11
|
+
// as the crown svg height is the only thing that controls the height of the header
|
|
12
|
+
$govuk-header-crown-height: 30px;
|
|
13
|
+
$govuk-header-menu-button-height: 24px;
|
|
14
|
+
$govuk-header-menu-button-width: 80px;
|
|
10
15
|
|
|
11
16
|
.govuk-header {
|
|
12
|
-
@include govuk-font($size: 16);
|
|
17
|
+
@include govuk-font($size: 16, $line-height: 1);
|
|
13
18
|
|
|
14
19
|
border-bottom: govuk-spacing(2) solid govuk-colour("white");
|
|
15
20
|
color: $govuk-header-text;
|
|
@@ -29,16 +34,28 @@
|
|
|
29
34
|
@include govuk-clearfix;
|
|
30
35
|
position: relative;
|
|
31
36
|
margin-bottom: -$govuk-header-border-width;
|
|
32
|
-
padding-top: govuk-spacing(
|
|
37
|
+
padding-top: govuk-spacing($govuk-header-vertical-spacing-value);
|
|
33
38
|
border-bottom: $govuk-header-border-width solid $govuk-header-border-color;
|
|
34
39
|
}
|
|
35
40
|
|
|
41
|
+
.govuk-header--full-width-border {
|
|
42
|
+
border-bottom-color: $govuk-header-border-color;
|
|
43
|
+
|
|
44
|
+
.govuk-header__container {
|
|
45
|
+
border-bottom-color: transparent;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
36
49
|
.govuk-header__logotype {
|
|
37
50
|
display: inline-block;
|
|
51
|
+
position: relative;
|
|
52
|
+
top: -3px;
|
|
38
53
|
|
|
39
54
|
// Add a gap after the logo in case it's followed by a product name. This
|
|
40
55
|
// gets removed later if the logotype is a :last-child.
|
|
41
56
|
margin-right: govuk-spacing(1);
|
|
57
|
+
fill: currentcolor;
|
|
58
|
+
vertical-align: top;
|
|
42
59
|
|
|
43
60
|
// Prevent readability backplate from obscuring underline in Windows High
|
|
44
61
|
// Contrast Mode
|
|
@@ -54,24 +71,32 @@
|
|
|
54
71
|
}
|
|
55
72
|
}
|
|
56
73
|
|
|
57
|
-
.govuk-header__logotype-crown {
|
|
58
|
-
position: relative;
|
|
59
|
-
top: -1px;
|
|
60
|
-
margin-right: 1px;
|
|
61
|
-
fill: currentcolor;
|
|
62
|
-
vertical-align: top;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.govuk-header__logotype-crown-fallback-image {
|
|
66
|
-
width: 36px;
|
|
67
|
-
height: 32px;
|
|
68
|
-
border: 0;
|
|
69
|
-
vertical-align: bottom;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
74
|
.govuk-header__product-name {
|
|
73
|
-
|
|
75
|
+
$product-name-offset: if($govuk-new-typography-scale, 7px, 10px);
|
|
76
|
+
$product-name-offset-tablet: 5px;
|
|
77
|
+
|
|
78
|
+
@include govuk-font-size($size: 24, $line-height: 1);
|
|
79
|
+
@include govuk-typography-weight-regular;
|
|
74
80
|
display: inline-table;
|
|
81
|
+
|
|
82
|
+
// Maintain space below logo when wrapped
|
|
83
|
+
margin-top: $product-name-offset;
|
|
84
|
+
|
|
85
|
+
// Firefox places the GOV.UK logo one pixel higher, due to how it rounds
|
|
86
|
+
// subpixels, so nudge the product name in FF to still be aligned.
|
|
87
|
+
@-moz-document url-prefix() {
|
|
88
|
+
margin-top: $product-name-offset - 0.5px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Align vertically with logo when not wrapped
|
|
92
|
+
vertical-align: top;
|
|
93
|
+
|
|
94
|
+
@include govuk-media-query($from: tablet) {
|
|
95
|
+
margin-top: $product-name-offset-tablet;
|
|
96
|
+
@-moz-document url-prefix() {
|
|
97
|
+
margin-top: $product-name-offset-tablet - 0.5px;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
75
100
|
}
|
|
76
101
|
|
|
77
102
|
.govuk-header__link {
|
|
@@ -82,7 +107,6 @@
|
|
|
82
107
|
// - all links get a 3px underline regardless of text size, as there are
|
|
83
108
|
// multiple grouped elements close to one another and having slightly
|
|
84
109
|
// different underline widths looks unbalanced
|
|
85
|
-
@include govuk-typography-common;
|
|
86
110
|
@include govuk-link-style-inverse;
|
|
87
111
|
|
|
88
112
|
text-decoration: none;
|
|
@@ -104,14 +128,11 @@
|
|
|
104
128
|
.govuk-header__link--homepage {
|
|
105
129
|
// Font size needs to be set on the link so that the box sizing is correct
|
|
106
130
|
// in Firefox
|
|
107
|
-
@include govuk-font($size: false, $weight: bold);
|
|
108
|
-
|
|
109
131
|
display: inline-block;
|
|
110
132
|
margin-right: govuk-spacing(2);
|
|
111
133
|
font-size: 30px; // We don't have a mixin that produces 30px font size
|
|
112
|
-
line-height: 1;
|
|
113
134
|
|
|
114
|
-
@include govuk-media-query($from:
|
|
135
|
+
@include govuk-media-query($from: desktop) {
|
|
115
136
|
display: inline;
|
|
116
137
|
|
|
117
138
|
&:focus {
|
|
@@ -130,8 +151,6 @@
|
|
|
130
151
|
&:active {
|
|
131
152
|
// Negate the added border
|
|
132
153
|
margin-bottom: $govuk-header-link-underline-thickness * -1;
|
|
133
|
-
// Omitting colour will use default value of currentColor – if we
|
|
134
|
-
// specified currentColor explicitly IE8 would ignore this rule.
|
|
135
154
|
border-bottom: $govuk-header-link-underline-thickness solid;
|
|
136
155
|
}
|
|
137
156
|
|
|
@@ -142,13 +161,11 @@
|
|
|
142
161
|
}
|
|
143
162
|
}
|
|
144
163
|
|
|
145
|
-
|
|
146
|
-
// govuk-header__service-name instead.
|
|
147
|
-
.govuk-header__service-name,
|
|
148
|
-
.govuk-header__link--service-name {
|
|
164
|
+
.govuk-header__service-name {
|
|
149
165
|
display: inline-block;
|
|
150
166
|
margin-bottom: govuk-spacing(2);
|
|
151
|
-
@include govuk-font($size: 24
|
|
167
|
+
@include govuk-font-size($size: 24);
|
|
168
|
+
@include govuk-typography-weight-bold;
|
|
152
169
|
}
|
|
153
170
|
|
|
154
171
|
.govuk-header__logo,
|
|
@@ -157,19 +174,28 @@
|
|
|
157
174
|
}
|
|
158
175
|
|
|
159
176
|
.govuk-header__logo {
|
|
160
|
-
@include govuk-responsive-margin(
|
|
161
|
-
|
|
177
|
+
@include govuk-responsive-margin($govuk-header-vertical-spacing-value, "bottom");
|
|
178
|
+
// Protect the absolute positioned menu button from overlapping with the
|
|
179
|
+
// logo with right padding using the button's width
|
|
180
|
+
padding-right: $govuk-header-menu-button-width;
|
|
162
181
|
|
|
163
|
-
@include govuk-media-query
|
|
182
|
+
@include govuk-media-query($from: desktop) {
|
|
164
183
|
width: 33.33%;
|
|
165
184
|
padding-right: $govuk-gutter-half;
|
|
166
185
|
float: left;
|
|
167
186
|
vertical-align: top;
|
|
187
|
+
|
|
188
|
+
// Reset float when logo is the last child, without a navigation
|
|
189
|
+
&:last-child {
|
|
190
|
+
width: auto;
|
|
191
|
+
padding-right: 0;
|
|
192
|
+
float: none;
|
|
193
|
+
}
|
|
168
194
|
}
|
|
169
195
|
}
|
|
170
196
|
|
|
171
197
|
.govuk-header__content {
|
|
172
|
-
@include govuk-media-query
|
|
198
|
+
@include govuk-media-query($from: desktop) {
|
|
173
199
|
width: 66.66%;
|
|
174
200
|
padding-left: $govuk-gutter-half;
|
|
175
201
|
float: left;
|
|
@@ -178,15 +204,23 @@
|
|
|
178
204
|
|
|
179
205
|
.govuk-header__menu-button {
|
|
180
206
|
@include govuk-font($size: 16);
|
|
181
|
-
display: none;
|
|
182
207
|
position: absolute;
|
|
183
|
-
top:
|
|
208
|
+
// calculate top offset by:
|
|
209
|
+
// - getting the vertical spacing for the top and the bottom of the header
|
|
210
|
+
// - adding that to the crown height
|
|
211
|
+
// - dividing it by 2 so you have the vertical centre of the header
|
|
212
|
+
// - subtracting half the height of the menu button
|
|
213
|
+
top: (((govuk-spacing($govuk-header-vertical-spacing-value) * 2) + $govuk-header-crown-height) / 2) -
|
|
214
|
+
($govuk-header-menu-button-height / 2);
|
|
184
215
|
right: 0;
|
|
216
|
+
max-width: $govuk-header-menu-button-width;
|
|
217
|
+
min-height: $govuk-header-menu-button-height;
|
|
185
218
|
margin: 0;
|
|
186
219
|
padding: 0;
|
|
187
220
|
border: 0;
|
|
188
221
|
color: govuk-colour("white");
|
|
189
222
|
background: none;
|
|
223
|
+
word-break: break-all;
|
|
190
224
|
cursor: pointer;
|
|
191
225
|
|
|
192
226
|
&:hover {
|
|
@@ -202,32 +236,32 @@
|
|
|
202
236
|
@include govuk-focused-text;
|
|
203
237
|
}
|
|
204
238
|
|
|
205
|
-
|
|
239
|
+
&::after {
|
|
206
240
|
@include govuk-shape-arrow($direction: down, $base: 10px, $display: inline-block);
|
|
207
241
|
content: "";
|
|
208
242
|
margin-left: govuk-spacing(1);
|
|
209
243
|
}
|
|
210
244
|
|
|
211
|
-
&[aria-expanded="true"]
|
|
245
|
+
&[aria-expanded="true"]::after {
|
|
212
246
|
@include govuk-shape-arrow($direction: up, $base: 10px, $display: inline-block);
|
|
213
247
|
}
|
|
214
248
|
|
|
215
|
-
@include govuk-media-query
|
|
249
|
+
@include govuk-media-query($from: tablet) {
|
|
216
250
|
top: govuk-spacing(3);
|
|
217
251
|
}
|
|
218
252
|
|
|
219
|
-
.
|
|
253
|
+
.govuk-frontend-supported & {
|
|
220
254
|
display: block;
|
|
221
255
|
}
|
|
222
256
|
|
|
223
257
|
&[hidden],
|
|
224
|
-
.
|
|
258
|
+
.govuk-frontend-supported &[hidden] {
|
|
225
259
|
display: none;
|
|
226
260
|
}
|
|
227
261
|
}
|
|
228
262
|
|
|
229
263
|
.govuk-header__navigation {
|
|
230
|
-
@include govuk-media-query
|
|
264
|
+
@include govuk-media-query($from: desktop) {
|
|
231
265
|
margin-bottom: govuk-spacing(2);
|
|
232
266
|
}
|
|
233
267
|
}
|
|
@@ -244,24 +278,18 @@
|
|
|
244
278
|
}
|
|
245
279
|
|
|
246
280
|
.govuk-header__navigation--end {
|
|
247
|
-
@include govuk-media-query
|
|
281
|
+
@include govuk-media-query($from: desktop) {
|
|
248
282
|
margin: 0;
|
|
249
283
|
padding: govuk-spacing(1) 0;
|
|
250
284
|
text-align: right;
|
|
251
285
|
}
|
|
252
286
|
}
|
|
253
287
|
|
|
254
|
-
// The govuk-header__navigation--no-service-name class is deprecated and will
|
|
255
|
-
// be removed in the next major release.
|
|
256
|
-
.govuk-header__navigation--no-service-name {
|
|
257
|
-
padding-top: govuk-spacing(7);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
288
|
.govuk-header__navigation-item {
|
|
261
289
|
padding: govuk-spacing(2) 0;
|
|
262
290
|
border-bottom: 1px solid $govuk-header-nav-item-border-color;
|
|
263
291
|
|
|
264
|
-
@include govuk-media-query
|
|
292
|
+
@include govuk-media-query($from: desktop) {
|
|
265
293
|
display: inline-block;
|
|
266
294
|
margin-right: govuk-spacing(3);
|
|
267
295
|
padding: govuk-spacing(1) 0;
|
|
@@ -269,7 +297,8 @@
|
|
|
269
297
|
}
|
|
270
298
|
|
|
271
299
|
a {
|
|
272
|
-
@include govuk-font($size: 16
|
|
300
|
+
@include govuk-font-size($size: 16);
|
|
301
|
+
@include govuk-typography-weight-bold;
|
|
273
302
|
white-space: nowrap;
|
|
274
303
|
}
|
|
275
304
|
}
|
|
@@ -308,11 +337,6 @@
|
|
|
308
337
|
background: transparent;
|
|
309
338
|
}
|
|
310
339
|
|
|
311
|
-
// Hide the inverted crown when printing in browsers that don't support SVG.
|
|
312
|
-
.govuk-header__logotype-crown-fallback-image {
|
|
313
|
-
display: none;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
340
|
.govuk-header__link {
|
|
317
341
|
&:link,
|
|
318
342
|
&:visited {
|
|
@@ -320,30 +344,11 @@
|
|
|
320
344
|
}
|
|
321
345
|
|
|
322
346
|
// Do not append link href to GOV.UK link when printing (e.g. '(/)')
|
|
323
|
-
|
|
347
|
+
&::after {
|
|
324
348
|
display: none;
|
|
325
349
|
}
|
|
326
350
|
}
|
|
327
351
|
}
|
|
328
|
-
|
|
329
|
-
@if $govuk-use-legacy-font {
|
|
330
|
-
// Begin adjustments for font baseline offset
|
|
331
|
-
// These should be removed when the font is updated with the correct baseline
|
|
332
|
-
.govuk-header__logotype-crown,
|
|
333
|
-
.govuk-header__logotype-crown-fallback-image {
|
|
334
|
-
position: relative;
|
|
335
|
-
top: -4px;
|
|
336
|
-
vertical-align: middle;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
.govuk-header {
|
|
340
|
-
$offset: 3px;
|
|
341
|
-
padding-top: $offset;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
.govuk-header__link--homepage {
|
|
345
|
-
line-height: 30px;
|
|
346
|
-
}
|
|
347
|
-
// End adjustments
|
|
348
|
-
}
|
|
349
352
|
}
|
|
353
|
+
|
|
354
|
+
/*# sourceMappingURL=_index.scss.map */
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.GOVUKFrontend = {}));
|
|
5
|
+
})(this, (function (exports) { 'use strict';
|
|
6
|
+
|
|
7
|
+
function getBreakpoint(name) {
|
|
8
|
+
const property = `--govuk-frontend-breakpoint-${name}`;
|
|
9
|
+
const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);
|
|
10
|
+
return {
|
|
11
|
+
property,
|
|
12
|
+
value: value || undefined
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function isInitialised($root, moduleName) {
|
|
16
|
+
return $root instanceof HTMLElement && $root.hasAttribute(`data-${moduleName}-init`);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Checks if GOV.UK Frontend is supported on this page
|
|
21
|
+
*
|
|
22
|
+
* Some browsers will load and run our JavaScript but GOV.UK Frontend
|
|
23
|
+
* won't be supported.
|
|
24
|
+
*
|
|
25
|
+
* @param {HTMLElement | null} [$scope] - (internal) `<body>` HTML element checked for browser support
|
|
26
|
+
* @returns {boolean} Whether GOV.UK Frontend is supported on this page
|
|
27
|
+
*/
|
|
28
|
+
function isSupported($scope = document.body) {
|
|
29
|
+
if (!$scope) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return $scope.classList.contains('govuk-frontend-supported');
|
|
33
|
+
}
|
|
34
|
+
function formatErrorMessage(Component, message) {
|
|
35
|
+
return `${Component.moduleName}: ${message}`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Schema for component config
|
|
40
|
+
*
|
|
41
|
+
* @typedef {object} Schema
|
|
42
|
+
* @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
|
|
43
|
+
* @property {SchemaCondition[]} [anyOf] - List of schema conditions
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Schema property for component config
|
|
48
|
+
*
|
|
49
|
+
* @typedef {object} SchemaProperty
|
|
50
|
+
* @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Schema condition for component config
|
|
55
|
+
*
|
|
56
|
+
* @typedef {object} SchemaCondition
|
|
57
|
+
* @property {string[]} required - List of required config fields
|
|
58
|
+
* @property {string} errorMessage - Error message when required config fields not provided
|
|
59
|
+
*/
|
|
60
|
+
/**
|
|
61
|
+
* @typedef ComponentWithModuleName
|
|
62
|
+
* @property {string} moduleName - Name of the component
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
class GOVUKFrontendError extends Error {
|
|
66
|
+
constructor(...args) {
|
|
67
|
+
super(...args);
|
|
68
|
+
this.name = 'GOVUKFrontendError';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
class SupportError extends GOVUKFrontendError {
|
|
72
|
+
/**
|
|
73
|
+
* Checks if GOV.UK Frontend is supported on this page
|
|
74
|
+
*
|
|
75
|
+
* @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
|
|
76
|
+
*/
|
|
77
|
+
constructor($scope = document.body) {
|
|
78
|
+
const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';
|
|
79
|
+
super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
|
|
80
|
+
this.name = 'SupportError';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
class ElementError extends GOVUKFrontendError {
|
|
84
|
+
constructor(messageOrOptions) {
|
|
85
|
+
let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
|
|
86
|
+
if (typeof messageOrOptions === 'object') {
|
|
87
|
+
const {
|
|
88
|
+
component,
|
|
89
|
+
identifier,
|
|
90
|
+
element,
|
|
91
|
+
expectedType
|
|
92
|
+
} = messageOrOptions;
|
|
93
|
+
message = identifier;
|
|
94
|
+
message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
|
|
95
|
+
message = formatErrorMessage(component, message);
|
|
96
|
+
}
|
|
97
|
+
super(message);
|
|
98
|
+
this.name = 'ElementError';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
class InitError extends GOVUKFrontendError {
|
|
102
|
+
constructor(componentOrMessage) {
|
|
103
|
+
const message = typeof componentOrMessage === 'string' ? componentOrMessage : formatErrorMessage(componentOrMessage, `Root element (\`$root\`) already initialised`);
|
|
104
|
+
super(message);
|
|
105
|
+
this.name = 'InitError';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @typedef {import('../common/index.mjs').ComponentWithModuleName} ComponentWithModuleName
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
class GOVUKFrontendComponent {
|
|
113
|
+
/**
|
|
114
|
+
* Returns the root element of the component
|
|
115
|
+
*
|
|
116
|
+
* @protected
|
|
117
|
+
* @returns {RootElementType} - the root element of component
|
|
118
|
+
*/
|
|
119
|
+
get $root() {
|
|
120
|
+
return this._$root;
|
|
121
|
+
}
|
|
122
|
+
constructor($root) {
|
|
123
|
+
this._$root = void 0;
|
|
124
|
+
const childConstructor = this.constructor;
|
|
125
|
+
if (typeof childConstructor.moduleName !== 'string') {
|
|
126
|
+
throw new InitError(`\`moduleName\` not defined in component`);
|
|
127
|
+
}
|
|
128
|
+
if (!($root instanceof childConstructor.elementType)) {
|
|
129
|
+
throw new ElementError({
|
|
130
|
+
element: $root,
|
|
131
|
+
component: childConstructor,
|
|
132
|
+
identifier: 'Root element (`$root`)',
|
|
133
|
+
expectedType: childConstructor.elementType.name
|
|
134
|
+
});
|
|
135
|
+
} else {
|
|
136
|
+
this._$root = $root;
|
|
137
|
+
}
|
|
138
|
+
childConstructor.checkSupport();
|
|
139
|
+
this.checkInitialised();
|
|
140
|
+
const moduleName = childConstructor.moduleName;
|
|
141
|
+
this.$root.setAttribute(`data-${moduleName}-init`, '');
|
|
142
|
+
}
|
|
143
|
+
checkInitialised() {
|
|
144
|
+
const constructor = this.constructor;
|
|
145
|
+
const moduleName = constructor.moduleName;
|
|
146
|
+
if (moduleName && isInitialised(this.$root, moduleName)) {
|
|
147
|
+
throw new InitError(constructor);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
static checkSupport() {
|
|
151
|
+
if (!isSupported()) {
|
|
152
|
+
throw new SupportError();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @typedef ChildClass
|
|
159
|
+
* @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component
|
|
160
|
+
*/
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @typedef {typeof GOVUKFrontendComponent & ChildClass} ChildClassConstructor
|
|
164
|
+
*/
|
|
165
|
+
GOVUKFrontendComponent.elementType = HTMLElement;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Header component
|
|
169
|
+
*
|
|
170
|
+
* @preserve
|
|
171
|
+
*/
|
|
172
|
+
class Header extends GOVUKFrontendComponent {
|
|
173
|
+
/**
|
|
174
|
+
* Apply a matchMedia for desktop which will trigger a state sync if the
|
|
175
|
+
* browser viewport moves between states.
|
|
176
|
+
*
|
|
177
|
+
* @param {Element | null} $root - HTML element to use for header
|
|
178
|
+
*/
|
|
179
|
+
constructor($root) {
|
|
180
|
+
super($root);
|
|
181
|
+
this.$menuButton = void 0;
|
|
182
|
+
this.$menu = void 0;
|
|
183
|
+
this.menuIsOpen = false;
|
|
184
|
+
this.mql = null;
|
|
185
|
+
const $menuButton = this.$root.querySelector('.govuk-js-header-toggle');
|
|
186
|
+
if (!$menuButton) {
|
|
187
|
+
return this;
|
|
188
|
+
}
|
|
189
|
+
const menuId = $menuButton.getAttribute('aria-controls');
|
|
190
|
+
if (!menuId) {
|
|
191
|
+
throw new ElementError({
|
|
192
|
+
component: Header,
|
|
193
|
+
identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const $menu = document.getElementById(menuId);
|
|
197
|
+
if (!$menu) {
|
|
198
|
+
throw new ElementError({
|
|
199
|
+
component: Header,
|
|
200
|
+
element: $menu,
|
|
201
|
+
identifier: `Navigation (\`<ul id="${menuId}">\`)`
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
this.$menu = $menu;
|
|
205
|
+
this.$menuButton = $menuButton;
|
|
206
|
+
this.setupResponsiveChecks();
|
|
207
|
+
this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
|
|
208
|
+
}
|
|
209
|
+
setupResponsiveChecks() {
|
|
210
|
+
const breakpoint = getBreakpoint('desktop');
|
|
211
|
+
if (!breakpoint.value) {
|
|
212
|
+
throw new ElementError({
|
|
213
|
+
component: Header,
|
|
214
|
+
identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
|
|
218
|
+
if ('addEventListener' in this.mql) {
|
|
219
|
+
this.mql.addEventListener('change', () => this.checkMode());
|
|
220
|
+
} else {
|
|
221
|
+
this.mql.addListener(() => this.checkMode());
|
|
222
|
+
}
|
|
223
|
+
this.checkMode();
|
|
224
|
+
}
|
|
225
|
+
checkMode() {
|
|
226
|
+
if (!this.mql || !this.$menu || !this.$menuButton) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (this.mql.matches) {
|
|
230
|
+
this.$menu.removeAttribute('hidden');
|
|
231
|
+
this.$menuButton.setAttribute('hidden', '');
|
|
232
|
+
} else {
|
|
233
|
+
this.$menuButton.removeAttribute('hidden');
|
|
234
|
+
this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
|
|
235
|
+
if (this.menuIsOpen) {
|
|
236
|
+
this.$menu.removeAttribute('hidden');
|
|
237
|
+
} else {
|
|
238
|
+
this.$menu.setAttribute('hidden', '');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
handleMenuButtonClick() {
|
|
243
|
+
this.menuIsOpen = !this.menuIsOpen;
|
|
244
|
+
this.checkMode();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
Header.moduleName = 'govuk-header';
|
|
248
|
+
|
|
249
|
+
exports.Header = Header;
|
|
250
|
+
|
|
251
|
+
}));
|
|
252
|
+
//# sourceMappingURL=header.bundle.js.map
|