govuk_tech_docs 3.5.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 +26 -2
- 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 +23 -10
- 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/assets/manifest.json +39 -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 +317 -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
@@ -0,0 +1,349 @@
|
|
1
|
+
import { mergeConfigs } from '../../common/index.mjs';
|
2
|
+
import { normaliseDataset } from '../../common/normalise-dataset.mjs';
|
3
|
+
import { ElementError } from '../../errors/index.mjs';
|
4
|
+
import { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs';
|
5
|
+
import { I18n } from '../../i18n.mjs';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Accordion component
|
9
|
+
*
|
10
|
+
* This allows a collection of sections to be collapsed by default, showing only
|
11
|
+
* their headers. Sections can be expanded or collapsed individually by clicking
|
12
|
+
* their headers. A "Show all sections" button is also added to the top of the
|
13
|
+
* accordion, which switches to "Hide all sections" when all the sections are
|
14
|
+
* expanded.
|
15
|
+
*
|
16
|
+
* The state of each section is saved to the DOM via the `aria-expanded`
|
17
|
+
* attribute, which also provides accessibility.
|
18
|
+
*
|
19
|
+
* @preserve
|
20
|
+
*/
|
21
|
+
class Accordion extends GOVUKFrontendComponent {
|
22
|
+
/**
|
23
|
+
* @param {Element | null} $root - HTML element to use for accordion
|
24
|
+
* @param {AccordionConfig} [config] - Accordion config
|
25
|
+
*/
|
26
|
+
constructor($root, config = {}) {
|
27
|
+
super($root);
|
28
|
+
this.config = void 0;
|
29
|
+
this.i18n = void 0;
|
30
|
+
this.controlsClass = 'govuk-accordion__controls';
|
31
|
+
this.showAllClass = 'govuk-accordion__show-all';
|
32
|
+
this.showAllTextClass = 'govuk-accordion__show-all-text';
|
33
|
+
this.sectionClass = 'govuk-accordion__section';
|
34
|
+
this.sectionExpandedClass = 'govuk-accordion__section--expanded';
|
35
|
+
this.sectionButtonClass = 'govuk-accordion__section-button';
|
36
|
+
this.sectionHeaderClass = 'govuk-accordion__section-header';
|
37
|
+
this.sectionHeadingClass = 'govuk-accordion__section-heading';
|
38
|
+
this.sectionHeadingDividerClass = 'govuk-accordion__section-heading-divider';
|
39
|
+
this.sectionHeadingTextClass = 'govuk-accordion__section-heading-text';
|
40
|
+
this.sectionHeadingTextFocusClass = 'govuk-accordion__section-heading-text-focus';
|
41
|
+
this.sectionShowHideToggleClass = 'govuk-accordion__section-toggle';
|
42
|
+
this.sectionShowHideToggleFocusClass = 'govuk-accordion__section-toggle-focus';
|
43
|
+
this.sectionShowHideTextClass = 'govuk-accordion__section-toggle-text';
|
44
|
+
this.upChevronIconClass = 'govuk-accordion-nav__chevron';
|
45
|
+
this.downChevronIconClass = 'govuk-accordion-nav__chevron--down';
|
46
|
+
this.sectionSummaryClass = 'govuk-accordion__section-summary';
|
47
|
+
this.sectionSummaryFocusClass = 'govuk-accordion__section-summary-focus';
|
48
|
+
this.sectionContentClass = 'govuk-accordion__section-content';
|
49
|
+
this.$sections = void 0;
|
50
|
+
this.$showAllButton = null;
|
51
|
+
this.$showAllIcon = null;
|
52
|
+
this.$showAllText = null;
|
53
|
+
this.config = mergeConfigs(Accordion.defaults, config, normaliseDataset(Accordion, this.$root.dataset));
|
54
|
+
this.i18n = new I18n(this.config.i18n);
|
55
|
+
const $sections = this.$root.querySelectorAll(`.${this.sectionClass}`);
|
56
|
+
if (!$sections.length) {
|
57
|
+
throw new ElementError({
|
58
|
+
component: Accordion,
|
59
|
+
identifier: `Sections (\`<div class="${this.sectionClass}">\`)`
|
60
|
+
});
|
61
|
+
}
|
62
|
+
this.$sections = $sections;
|
63
|
+
this.initControls();
|
64
|
+
this.initSectionHeaders();
|
65
|
+
this.updateShowAllButton(this.areAllSectionsOpen());
|
66
|
+
}
|
67
|
+
initControls() {
|
68
|
+
this.$showAllButton = document.createElement('button');
|
69
|
+
this.$showAllButton.setAttribute('type', 'button');
|
70
|
+
this.$showAllButton.setAttribute('class', this.showAllClass);
|
71
|
+
this.$showAllButton.setAttribute('aria-expanded', 'false');
|
72
|
+
this.$showAllIcon = document.createElement('span');
|
73
|
+
this.$showAllIcon.classList.add(this.upChevronIconClass);
|
74
|
+
this.$showAllButton.appendChild(this.$showAllIcon);
|
75
|
+
const $accordionControls = document.createElement('div');
|
76
|
+
$accordionControls.setAttribute('class', this.controlsClass);
|
77
|
+
$accordionControls.appendChild(this.$showAllButton);
|
78
|
+
this.$root.insertBefore($accordionControls, this.$root.firstChild);
|
79
|
+
this.$showAllText = document.createElement('span');
|
80
|
+
this.$showAllText.classList.add(this.showAllTextClass);
|
81
|
+
this.$showAllButton.appendChild(this.$showAllText);
|
82
|
+
this.$showAllButton.addEventListener('click', () => this.onShowOrHideAllToggle());
|
83
|
+
if ('onbeforematch' in document) {
|
84
|
+
document.addEventListener('beforematch', event => this.onBeforeMatch(event));
|
85
|
+
}
|
86
|
+
}
|
87
|
+
initSectionHeaders() {
|
88
|
+
this.$sections.forEach(($section, i) => {
|
89
|
+
const $header = $section.querySelector(`.${this.sectionHeaderClass}`);
|
90
|
+
if (!$header) {
|
91
|
+
throw new ElementError({
|
92
|
+
component: Accordion,
|
93
|
+
identifier: `Section headers (\`<div class="${this.sectionHeaderClass}">\`)`
|
94
|
+
});
|
95
|
+
}
|
96
|
+
this.constructHeaderMarkup($header, i);
|
97
|
+
this.setExpanded(this.isExpanded($section), $section);
|
98
|
+
$header.addEventListener('click', () => this.onSectionToggle($section));
|
99
|
+
this.setInitialState($section);
|
100
|
+
});
|
101
|
+
}
|
102
|
+
constructHeaderMarkup($header, index) {
|
103
|
+
const $span = $header.querySelector(`.${this.sectionButtonClass}`);
|
104
|
+
const $heading = $header.querySelector(`.${this.sectionHeadingClass}`);
|
105
|
+
const $summary = $header.querySelector(`.${this.sectionSummaryClass}`);
|
106
|
+
if (!$heading) {
|
107
|
+
throw new ElementError({
|
108
|
+
component: Accordion,
|
109
|
+
identifier: `Section heading (\`.${this.sectionHeadingClass}\`)`
|
110
|
+
});
|
111
|
+
}
|
112
|
+
if (!$span) {
|
113
|
+
throw new ElementError({
|
114
|
+
component: Accordion,
|
115
|
+
identifier: `Section button placeholder (\`<span class="${this.sectionButtonClass}">\`)`
|
116
|
+
});
|
117
|
+
}
|
118
|
+
const $button = document.createElement('button');
|
119
|
+
$button.setAttribute('type', 'button');
|
120
|
+
$button.setAttribute('aria-controls', `${this.$root.id}-content-${index + 1}`);
|
121
|
+
for (const attr of Array.from($span.attributes)) {
|
122
|
+
if (attr.name !== 'id') {
|
123
|
+
$button.setAttribute(attr.name, attr.value);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
const $headingText = document.createElement('span');
|
127
|
+
$headingText.classList.add(this.sectionHeadingTextClass);
|
128
|
+
$headingText.id = $span.id;
|
129
|
+
const $headingTextFocus = document.createElement('span');
|
130
|
+
$headingTextFocus.classList.add(this.sectionHeadingTextFocusClass);
|
131
|
+
$headingText.appendChild($headingTextFocus);
|
132
|
+
Array.from($span.childNodes).forEach($child => $headingTextFocus.appendChild($child));
|
133
|
+
const $showHideToggle = document.createElement('span');
|
134
|
+
$showHideToggle.classList.add(this.sectionShowHideToggleClass);
|
135
|
+
$showHideToggle.setAttribute('data-nosnippet', '');
|
136
|
+
const $showHideToggleFocus = document.createElement('span');
|
137
|
+
$showHideToggleFocus.classList.add(this.sectionShowHideToggleFocusClass);
|
138
|
+
$showHideToggle.appendChild($showHideToggleFocus);
|
139
|
+
const $showHideText = document.createElement('span');
|
140
|
+
const $showHideIcon = document.createElement('span');
|
141
|
+
$showHideIcon.classList.add(this.upChevronIconClass);
|
142
|
+
$showHideToggleFocus.appendChild($showHideIcon);
|
143
|
+
$showHideText.classList.add(this.sectionShowHideTextClass);
|
144
|
+
$showHideToggleFocus.appendChild($showHideText);
|
145
|
+
$button.appendChild($headingText);
|
146
|
+
$button.appendChild(this.getButtonPunctuationEl());
|
147
|
+
if ($summary) {
|
148
|
+
const $summarySpan = document.createElement('span');
|
149
|
+
const $summarySpanFocus = document.createElement('span');
|
150
|
+
$summarySpanFocus.classList.add(this.sectionSummaryFocusClass);
|
151
|
+
$summarySpan.appendChild($summarySpanFocus);
|
152
|
+
for (const attr of Array.from($summary.attributes)) {
|
153
|
+
$summarySpan.setAttribute(attr.name, attr.value);
|
154
|
+
}
|
155
|
+
Array.from($summary.childNodes).forEach($child => $summarySpanFocus.appendChild($child));
|
156
|
+
$summary.remove();
|
157
|
+
$button.appendChild($summarySpan);
|
158
|
+
$button.appendChild(this.getButtonPunctuationEl());
|
159
|
+
}
|
160
|
+
$button.appendChild($showHideToggle);
|
161
|
+
$heading.removeChild($span);
|
162
|
+
$heading.appendChild($button);
|
163
|
+
}
|
164
|
+
onBeforeMatch(event) {
|
165
|
+
const $fragment = event.target;
|
166
|
+
if (!($fragment instanceof Element)) {
|
167
|
+
return;
|
168
|
+
}
|
169
|
+
const $section = $fragment.closest(`.${this.sectionClass}`);
|
170
|
+
if ($section) {
|
171
|
+
this.setExpanded(true, $section);
|
172
|
+
}
|
173
|
+
}
|
174
|
+
onSectionToggle($section) {
|
175
|
+
const nowExpanded = !this.isExpanded($section);
|
176
|
+
this.setExpanded(nowExpanded, $section);
|
177
|
+
this.storeState($section, nowExpanded);
|
178
|
+
}
|
179
|
+
onShowOrHideAllToggle() {
|
180
|
+
const nowExpanded = !this.areAllSectionsOpen();
|
181
|
+
this.$sections.forEach($section => {
|
182
|
+
this.setExpanded(nowExpanded, $section);
|
183
|
+
this.storeState($section, nowExpanded);
|
184
|
+
});
|
185
|
+
this.updateShowAllButton(nowExpanded);
|
186
|
+
}
|
187
|
+
setExpanded(expanded, $section) {
|
188
|
+
const $showHideIcon = $section.querySelector(`.${this.upChevronIconClass}`);
|
189
|
+
const $showHideText = $section.querySelector(`.${this.sectionShowHideTextClass}`);
|
190
|
+
const $button = $section.querySelector(`.${this.sectionButtonClass}`);
|
191
|
+
const $content = $section.querySelector(`.${this.sectionContentClass}`);
|
192
|
+
if (!$content) {
|
193
|
+
throw new ElementError({
|
194
|
+
component: Accordion,
|
195
|
+
identifier: `Section content (\`<div class="${this.sectionContentClass}">\`)`
|
196
|
+
});
|
197
|
+
}
|
198
|
+
if (!$showHideIcon || !$showHideText || !$button) {
|
199
|
+
return;
|
200
|
+
}
|
201
|
+
const newButtonText = expanded ? this.i18n.t('hideSection') : this.i18n.t('showSection');
|
202
|
+
$showHideText.textContent = newButtonText;
|
203
|
+
$button.setAttribute('aria-expanded', `${expanded}`);
|
204
|
+
const ariaLabelParts = [];
|
205
|
+
const $headingText = $section.querySelector(`.${this.sectionHeadingTextClass}`);
|
206
|
+
if ($headingText) {
|
207
|
+
ariaLabelParts.push(`${$headingText.textContent}`.trim());
|
208
|
+
}
|
209
|
+
const $summary = $section.querySelector(`.${this.sectionSummaryClass}`);
|
210
|
+
if ($summary) {
|
211
|
+
ariaLabelParts.push(`${$summary.textContent}`.trim());
|
212
|
+
}
|
213
|
+
const ariaLabelMessage = expanded ? this.i18n.t('hideSectionAriaLabel') : this.i18n.t('showSectionAriaLabel');
|
214
|
+
ariaLabelParts.push(ariaLabelMessage);
|
215
|
+
$button.setAttribute('aria-label', ariaLabelParts.join(' , '));
|
216
|
+
if (expanded) {
|
217
|
+
$content.removeAttribute('hidden');
|
218
|
+
$section.classList.add(this.sectionExpandedClass);
|
219
|
+
$showHideIcon.classList.remove(this.downChevronIconClass);
|
220
|
+
} else {
|
221
|
+
$content.setAttribute('hidden', 'until-found');
|
222
|
+
$section.classList.remove(this.sectionExpandedClass);
|
223
|
+
$showHideIcon.classList.add(this.downChevronIconClass);
|
224
|
+
}
|
225
|
+
this.updateShowAllButton(this.areAllSectionsOpen());
|
226
|
+
}
|
227
|
+
isExpanded($section) {
|
228
|
+
return $section.classList.contains(this.sectionExpandedClass);
|
229
|
+
}
|
230
|
+
areAllSectionsOpen() {
|
231
|
+
return Array.from(this.$sections).every($section => this.isExpanded($section));
|
232
|
+
}
|
233
|
+
updateShowAllButton(expanded) {
|
234
|
+
if (!this.$showAllButton || !this.$showAllText || !this.$showAllIcon) {
|
235
|
+
return;
|
236
|
+
}
|
237
|
+
this.$showAllButton.setAttribute('aria-expanded', expanded.toString());
|
238
|
+
this.$showAllText.textContent = expanded ? this.i18n.t('hideAllSections') : this.i18n.t('showAllSections');
|
239
|
+
this.$showAllIcon.classList.toggle(this.downChevronIconClass, !expanded);
|
240
|
+
}
|
241
|
+
|
242
|
+
/**
|
243
|
+
* Get the identifier for a section
|
244
|
+
*
|
245
|
+
* We need a unique way of identifying each content in the Accordion.
|
246
|
+
* Since an `#id` should be unique and an `id` is required for `aria-`
|
247
|
+
* attributes `id` can be safely used.
|
248
|
+
*
|
249
|
+
* @param {Element} $section - Section element
|
250
|
+
* @returns {string | undefined | null} Identifier for section
|
251
|
+
*/
|
252
|
+
getIdentifier($section) {
|
253
|
+
const $button = $section.querySelector(`.${this.sectionButtonClass}`);
|
254
|
+
return $button == null ? void 0 : $button.getAttribute('aria-controls');
|
255
|
+
}
|
256
|
+
storeState($section, isExpanded) {
|
257
|
+
if (!this.config.rememberExpanded) {
|
258
|
+
return;
|
259
|
+
}
|
260
|
+
const id = this.getIdentifier($section);
|
261
|
+
if (id) {
|
262
|
+
try {
|
263
|
+
window.sessionStorage.setItem(id, isExpanded.toString());
|
264
|
+
} catch (exception) {}
|
265
|
+
}
|
266
|
+
}
|
267
|
+
setInitialState($section) {
|
268
|
+
if (!this.config.rememberExpanded) {
|
269
|
+
return;
|
270
|
+
}
|
271
|
+
const id = this.getIdentifier($section);
|
272
|
+
if (id) {
|
273
|
+
try {
|
274
|
+
const state = window.sessionStorage.getItem(id);
|
275
|
+
if (state !== null) {
|
276
|
+
this.setExpanded(state === 'true', $section);
|
277
|
+
}
|
278
|
+
} catch (exception) {}
|
279
|
+
}
|
280
|
+
}
|
281
|
+
getButtonPunctuationEl() {
|
282
|
+
const $punctuationEl = document.createElement('span');
|
283
|
+
$punctuationEl.classList.add('govuk-visually-hidden', this.sectionHeadingDividerClass);
|
284
|
+
$punctuationEl.textContent = ', ';
|
285
|
+
return $punctuationEl;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Accordion config
|
291
|
+
*
|
292
|
+
* @see {@link Accordion.defaults}
|
293
|
+
* @typedef {object} AccordionConfig
|
294
|
+
* @property {AccordionTranslations} [i18n=Accordion.defaults.i18n] - Accordion translations
|
295
|
+
* @property {boolean} [rememberExpanded] - Whether the expanded and collapsed
|
296
|
+
* state of each section is remembered and restored when navigating.
|
297
|
+
*/
|
298
|
+
|
299
|
+
/**
|
300
|
+
* Accordion translations
|
301
|
+
*
|
302
|
+
* @see {@link Accordion.defaults.i18n}
|
303
|
+
* @typedef {object} AccordionTranslations
|
304
|
+
*
|
305
|
+
* Messages used by the component for the labels of its buttons. This includes
|
306
|
+
* the visible text shown on screen, and text to help assistive technology users
|
307
|
+
* for the buttons toggling each section.
|
308
|
+
* @property {string} [hideAllSections] - The text content for the 'Hide all
|
309
|
+
* sections' button, used when at least one section is expanded.
|
310
|
+
* @property {string} [hideSection] - The text content for the 'Hide'
|
311
|
+
* button, used when a section is expanded.
|
312
|
+
* @property {string} [hideSectionAriaLabel] - The text content appended to the
|
313
|
+
* 'Hide' button's accessible name when a section is expanded.
|
314
|
+
* @property {string} [showAllSections] - The text content for the 'Show all
|
315
|
+
* sections' button, used when all sections are collapsed.
|
316
|
+
* @property {string} [showSection] - The text content for the 'Show'
|
317
|
+
* button, used when a section is collapsed.
|
318
|
+
* @property {string} [showSectionAriaLabel] - The text content appended to the
|
319
|
+
* 'Show' button's accessible name when a section is expanded.
|
320
|
+
*/
|
321
|
+
|
322
|
+
/**
|
323
|
+
* @typedef {import('../../common/index.mjs').Schema} Schema
|
324
|
+
*/
|
325
|
+
Accordion.moduleName = 'govuk-accordion';
|
326
|
+
Accordion.defaults = Object.freeze({
|
327
|
+
i18n: {
|
328
|
+
hideAllSections: 'Hide all sections',
|
329
|
+
hideSection: 'Hide',
|
330
|
+
hideSectionAriaLabel: 'Hide this section',
|
331
|
+
showAllSections: 'Show all sections',
|
332
|
+
showSection: 'Show',
|
333
|
+
showSectionAriaLabel: 'Show this section'
|
334
|
+
},
|
335
|
+
rememberExpanded: true
|
336
|
+
});
|
337
|
+
Accordion.schema = Object.freeze({
|
338
|
+
properties: {
|
339
|
+
i18n: {
|
340
|
+
type: 'object'
|
341
|
+
},
|
342
|
+
rememberExpanded: {
|
343
|
+
type: 'boolean'
|
344
|
+
}
|
345
|
+
}
|
346
|
+
});
|
347
|
+
|
348
|
+
export { Accordion };
|
349
|
+
//# sourceMappingURL=accordion.mjs.map
|
@@ -13,7 +13,7 @@
|
|
13
13
|
$chevron-border-colour: $govuk-secondary-text-colour;
|
14
14
|
|
15
15
|
.govuk-back-link {
|
16
|
-
@include govuk-
|
16
|
+
@include govuk-font-size($size: $font-size);
|
17
17
|
@include govuk-link-common;
|
18
18
|
@include govuk-link-style-text;
|
19
19
|
|
@@ -28,24 +28,14 @@
|
|
28
28
|
}
|
29
29
|
|
30
30
|
// Prepend left pointing chevron
|
31
|
-
.govuk-back-link
|
31
|
+
.govuk-back-link::before {
|
32
32
|
content: "";
|
33
33
|
display: block;
|
34
34
|
|
35
35
|
// Vertically align with the parent element
|
36
36
|
position: absolute;
|
37
|
-
|
38
|
-
|
39
|
-
// Begin adjustments for font baseline offset
|
40
|
-
// These should be removed when legacy font support is dropped
|
41
|
-
$offset: govuk-em(1px, $font-size);
|
42
|
-
top: $offset * -1;
|
43
|
-
bottom: $offset;
|
44
|
-
} @else {
|
45
|
-
top: 0;
|
46
|
-
bottom: 0;
|
47
|
-
}
|
48
|
-
|
37
|
+
top: 0;
|
38
|
+
bottom: 0;
|
49
39
|
left: govuk-em(3px, $font-size);
|
50
40
|
|
51
41
|
width: $chevron-size;
|
@@ -53,42 +43,26 @@
|
|
53
43
|
|
54
44
|
margin: auto 0;
|
55
45
|
|
56
|
-
|
57
|
-
|
58
|
-
-ms-transform: rotate(225deg);
|
59
|
-
|
60
|
-
transform: rotate(225deg);
|
46
|
+
transform: rotate(225deg);
|
61
47
|
|
62
48
|
border: solid;
|
63
49
|
border-width: $chevron-border-min-width $chevron-border-min-width 0 0;
|
64
50
|
border-color: $chevron-border-colour;
|
65
51
|
|
66
52
|
@supports (border-width: unquote("max(0px)")) {
|
67
|
-
border-width:
|
53
|
+
$border-width-eval: "max(#{$chevron-border-min-width}, #{$chevron-border-width})";
|
68
54
|
|
69
55
|
// Ensure that the chevron never gets smaller than 16px
|
56
|
+
border-width: unquote($border-width-eval) unquote($border-width-eval) 0 0;
|
70
57
|
font-size: unquote("max(#{$font-size * 1px}, 1em)");
|
71
58
|
}
|
72
|
-
|
73
|
-
// Fall back to a less than sign for IE8
|
74
|
-
@include _govuk-if-ie8 {
|
75
|
-
content: "\003c"; // Less than sign (<)
|
76
|
-
width: auto;
|
77
|
-
height: auto;
|
78
|
-
border: 0;
|
79
|
-
color: $chevron-border-colour;
|
80
|
-
|
81
|
-
// IE8 doesn't seem to like rendering pseudo-elements using @font-faces,
|
82
|
-
// so fall back to using another sans-serif font to render the chevron.
|
83
|
-
font-family: Arial, sans-serif;
|
84
|
-
}
|
85
59
|
}
|
86
60
|
|
87
|
-
.govuk-back-link:focus
|
61
|
+
.govuk-back-link:focus::before {
|
88
62
|
border-color: $govuk-focus-text-colour;
|
89
63
|
}
|
90
64
|
|
91
|
-
.govuk-back-link
|
65
|
+
.govuk-back-link::after {
|
92
66
|
content: "";
|
93
67
|
position: absolute;
|
94
68
|
top: -14px;
|
@@ -100,8 +74,10 @@
|
|
100
74
|
.govuk-back-link--inverse {
|
101
75
|
@include govuk-link-style-inverse;
|
102
76
|
|
103
|
-
|
77
|
+
&::before {
|
104
78
|
border-color: currentcolor;
|
105
79
|
}
|
106
80
|
}
|
107
81
|
}
|
82
|
+
|
83
|
+
/*# sourceMappingURL=_index.scss.map */
|
@@ -35,7 +35,6 @@
|
|
35
35
|
}
|
36
36
|
|
37
37
|
.govuk-breadcrumbs__list-item {
|
38
|
-
|
39
38
|
display: inline-block;
|
40
39
|
position: relative;
|
41
40
|
|
@@ -49,22 +48,13 @@
|
|
49
48
|
float: left;
|
50
49
|
|
51
50
|
// Create a chevron using a box with borders on two sides, rotated 45deg.
|
52
|
-
|
51
|
+
&::before {
|
53
52
|
content: "";
|
54
53
|
display: block;
|
55
54
|
|
56
55
|
position: absolute;
|
57
|
-
|
58
|
-
|
59
|
-
// Begin adjustments for font baseline offset
|
60
|
-
// These should be removed when legacy font support is dropped
|
61
|
-
$offset: govuk-em(1px, $font-size);
|
62
|
-
top: $offset * -1;
|
63
|
-
bottom: $offset;
|
64
|
-
} @else {
|
65
|
-
top: 0;
|
66
|
-
bottom: 0;
|
67
|
-
}
|
56
|
+
top: 0;
|
57
|
+
bottom: 0;
|
68
58
|
|
69
59
|
// Offset by the difference between the width of the non-rotated square
|
70
60
|
// and its width when rotated
|
@@ -75,42 +65,26 @@
|
|
75
65
|
|
76
66
|
margin: auto 0;
|
77
67
|
|
78
|
-
|
79
|
-
|
80
|
-
-ms-transform: rotate(45deg);
|
81
|
-
|
82
|
-
transform: rotate(45deg);
|
68
|
+
transform: rotate(45deg);
|
83
69
|
|
84
70
|
border: solid;
|
85
71
|
border-width: $chevron-border-min-width $chevron-border-min-width 0 0;
|
86
72
|
border-color: $chevron-border-colour;
|
87
73
|
|
88
74
|
@supports (border-width: unquote("max(0px)")) {
|
89
|
-
border-width:
|
75
|
+
$border-width-eval: "max(#{$chevron-border-min-width}, #{$chevron-border-width})";
|
90
76
|
|
91
77
|
// Ensure that the chevron never gets smaller than 16px
|
78
|
+
border-width: unquote($border-width-eval) unquote($border-width-eval) 0 0;
|
92
79
|
font-size: unquote("max(#{$font-size * 1px}, 1em)");
|
93
80
|
}
|
94
|
-
|
95
|
-
// Fall back to a greater than sign for IE8
|
96
|
-
@include _govuk-if-ie8 {
|
97
|
-
content: "\003e"; // Greater than sign (>)
|
98
|
-
width: auto;
|
99
|
-
height: auto;
|
100
|
-
border: 0;
|
101
|
-
color: $chevron-border-colour;
|
102
|
-
|
103
|
-
// IE8 doesn't seem to like rendering pseudo-elements using @font-faces,
|
104
|
-
// so fall back to using another sans-serif font to render the chevron.
|
105
|
-
font-family: Arial, sans-serif;
|
106
|
-
}
|
107
81
|
}
|
108
82
|
|
109
83
|
&:first-child {
|
110
84
|
margin-left: 0;
|
111
85
|
padding-left: 0;
|
112
86
|
|
113
|
-
|
87
|
+
&::before {
|
114
88
|
content: none;
|
115
89
|
display: none;
|
116
90
|
}
|
@@ -132,14 +106,13 @@
|
|
132
106
|
display: inline-block;
|
133
107
|
}
|
134
108
|
|
135
|
-
|
109
|
+
&::before {
|
136
110
|
top: govuk-em(6px, $font-size);
|
137
111
|
margin: 0;
|
138
112
|
}
|
139
113
|
}
|
140
114
|
|
141
115
|
.govuk-breadcrumbs__list {
|
142
|
-
display: -ms-flexbox;
|
143
116
|
display: flex;
|
144
117
|
}
|
145
118
|
}
|
@@ -152,8 +125,10 @@
|
|
152
125
|
@include govuk-link-style-inverse;
|
153
126
|
}
|
154
127
|
|
155
|
-
.govuk-breadcrumbs__list-item
|
128
|
+
.govuk-breadcrumbs__list-item::before {
|
156
129
|
border-color: currentcolor;
|
157
130
|
}
|
158
131
|
}
|
159
132
|
}
|
133
|
+
|
134
|
+
/*# sourceMappingURL=_index.scss.map */
|