defra_ruby_template 3.15.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +4 -0
- data/.rspec +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +16 -1
- data/Rakefile +44 -24
- data/app/views/layouts/defra_ruby_template.html.erb +7 -11
- data/lib/defra_ruby_template/version.rb +1 -1
- data/node_modules/.package-lock.json +3 -3
- data/node_modules/govuk-frontend/README.md +14 -13
- data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
- data/node_modules/govuk-frontend/dist/govuk/_base.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2457 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2435 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.mjs +15 -0
- data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
- data/node_modules/govuk-frontend/dist/govuk/all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -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/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/closest-attribute-value.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +139 -0
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/_index.scss +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +366 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +729 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +721 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +368 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/fixtures.json +359 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/macro-options.json +142 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-default.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-additional-descriptions.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-all-sections-already-open.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-focusable-elements-inside.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-long-content-and-description.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-one-section-open.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template-with-translations.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/template.njk +67 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss +83 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/fixtures.json +87 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/macro-options.json +32 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-default.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-inverse.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/template-with-custom-text.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/template.njk +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +134 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/fixtures.json +240 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/macro-options.json +52 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-default.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-inverse.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-collapse-on-mobile.html +13 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-last-breadcrumb-as-current-page.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-multiple-levels.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-with-one-level.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template-without-the-home-section.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/template.njk +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +262 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +252 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +244 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +83 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/fixtures.json +474 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/macro-options.json +80 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-default.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-disabled.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-input-disabled.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-input.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-disabled.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-link.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse-start.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-inverse.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-link.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-prevent-double-click.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-disabled.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary-link.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-secondary.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-start-link.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-start.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-disabled.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning-link.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-warning.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-active-state.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-focus-state.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template-with-hover-state.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/button/template.njk +58 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +695 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +687 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +304 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/fixtures.json +398 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/macro-options.json +199 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-default.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-rows.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-custom-textarea-description.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value-exceeding-limit.html +15 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-default-value.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-hint.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-label-as-page-heading.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-threshold.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-translations.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template-with-word-count.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/template.njk +120 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss +306 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +202 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +194 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +120 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/fixtures.json +1411 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/macro-options.json +229 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-default.html +22 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-conditional-reveal.html +25 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-disabled.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-error.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-hint.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small-with-long-text.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-small.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-a-medium-legend.html +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-item-checked.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items-with-special-characters.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-conditional-items.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-disabled-item.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-and-none.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-divider-none-and-conditional-items.html +46 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message-and-hints-on-items.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-error-message.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-fieldset-and-error-message.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-hints-on-items.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-id-and-name.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-legend-as-a-page-heading.html +32 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-optional-form-group-classes-showing-group-error.html +40 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-pre-checked-values.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-and-hint-set-aria-describedby-on-input.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-single-option-set-aria-describedby-on-input.html +13 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-with-very-long-option-text.html +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template-without-fieldset.html +22 -0
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/template.njk +122 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss +50 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/fixtures.json +520 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/macro-options.json +132 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-accepted-confirmation-banner.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-client-side-implementation.html +60 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-default.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-rejected-confirmation-banner.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template-with-html.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/template.njk +57 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/fixtures.json +657 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/macro-options.json +163 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-complete-question.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-day-and-month.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-default.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-month-and-year.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-autocomplete-values.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-default-items.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-day-input.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-month-input.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-error-on-year-input.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-and-hint.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-errors-only.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-input-attributes.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template-with-optional-form-group-classes.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/template.njk +106 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +134 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/fixtures.json +123 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/implementation.md +87 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/macro-options.json +56 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/template-default.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/template-expanded.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/template-with-html.html +18 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/template.njk +14 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss +14 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/fixtures.json +104 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/macro-options.json +38 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-default.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/template-translated.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/template.njk +13 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss +52 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +312 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +304 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +113 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/fixtures.json +307 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/macro-options.json +82 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-default.html +17 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-mixed-with-and-without-links.html +17 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-description-only.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-with-everything.html +20 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template-without-links.html +14 -0
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/template.njk +37 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/README.md +15 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss +92 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +596 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +588 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +235 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/fixtures.json +58 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro-options.json +62 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/macro.njk +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-default.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template-translated.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/template.njk +25 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss +71 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/fixtures.json +242 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/macro-options.json +70 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-l.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-m.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-s.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-without-class.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-as-page-heading-xl.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-default.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-large-text.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-medium-text.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-small-text.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template-styled-as-xl-text.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/fieldset/template.njk +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +52 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/fixtures.json +225 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/macro-options.json +125 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-default.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-error-message-and-hint.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-hint-text.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-label-as-page-heading.html +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-optional-form-group-classes.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template-with-value.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/template.njk +53 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +152 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/fixtures.json +691 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/macro-options.json +164 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-default.html +38 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-full-gds-example.html +212 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-three-equal-columns.html +146 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-html-content-licence-and-copyright-notice.html +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-meta.html +42 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-custom-text-content-licence-and-copyright-notice.html +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-one-column.html +76 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-default-width-navigation-two-columns.html +76 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta-links-and-meta-content.html +84 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-meta.html +56 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template-with-navigation.html +96 -0
- data/node_modules/govuk-frontend/dist/govuk/components/footer/template.njk +97 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +346 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/fixtures.json +504 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +186 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +178 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +97 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/macro-options.json +112 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-default.html +21 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width-with-navigation.html +49 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-full-width.html +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-html.html +49 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-navigation-item-with-text-without-link.html +43 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-label.html +51 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-menu-button-text.html +51 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-custom-navigation-label.html +51 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-large-navigation.html +111 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-navigation.html +51 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-product-name.html +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-and-navigation.html +54 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name-but-no-service-url.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-service-name.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template-with-st-edwards-crown.html +21 -0
- data/node_modules/govuk-frontend/dist/govuk/components/header/template.njk +96 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/_hint.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss +45 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/fixtures.json +71 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/macro-options.json +32 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/template-default.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/template-with-html.html +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/hint/template.njk +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +165 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/_input.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/fixtures.json +781 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/macro-options.json +245 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-default.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocapitalize-turned-off.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-autocomplete-attribute.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-error-message.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-extra-letter-spacing.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-hint-text.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-label-as-page-heading.html +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-optional-form-group-classes.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-pattern-attribute.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-long-suffix.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-error.html +13 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix-and-width-modifier.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix-and-suffix.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-prefix.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-disabled.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-spellcheck-enabled.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-suffix.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-10-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-2-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-20-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-3-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-30-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-4-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template-with-width-5-class.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/input/template.njk +132 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/fixtures.json +70 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/macro-options.json +38 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-default.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template-with-html.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/template.njk +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss +46 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/_label.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/fixtures.json +193 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/macro-options.json +38 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-l.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-m.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-s.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-without-class.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-as-page-heading-xl.html +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-default.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-large-text.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-medium-text.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-small-text.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-styled-as-xl-text.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template-with-bold-text.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/label/template.njk +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +92 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss.map +1 -0
- 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.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/fixtures.json +270 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/macro-options.json +74 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +254 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +246 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +61 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-disabled-with-type-as-success.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-auto-focus-explicitly-enabled-with-type-as-success.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-custom-tabindex.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-default.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-paragraph-as-html-heading.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-rolealert-overridden-to-roleregion-with-type-as-success.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-success-with-custom-html.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-a-list.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-long-heading.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-lots-of-content.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-text-as-html.html +15 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template-with-type-as-success.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/template.njk +49 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/README.md +15 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +241 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/fixtures.json +396 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro-options.json +140 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/macro.njk +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-default.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-first-page.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-last-page.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-accessible-labels-on-item-links.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-link-and-item-text.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-custom-navigation-landmark.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-many-pages.html +65 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-next-only.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-labels.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-and-very-long-labels.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only-in-a-different-language.html +22 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-prev-and-next-only.html +22 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template-with-previous-only.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/template.njk +85 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +54 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_panel.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/fixtures.json +109 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/macro-options.json +50 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/template-custom-heading-level.html +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/template-default.html +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/panel/template.njk +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +54 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss.map +1 -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.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/fixtures.json +185 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro-options.json +181 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro.njk +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +528 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +520 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +163 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-default.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-error-message.html +17 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-hint-text.html +14 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-input-width-class.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-label-as-page-heading.html +13 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-new-password-autocomplete.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template-with-translations.html +11 -0
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/template.njk +91 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +44 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/fixtures.json +90 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/macro-options.json +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template-default.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/template.njk +17 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +326 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/fixtures.json +1403 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/macro-options.json +211 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +179 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +171 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +97 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-default.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-inline.html +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked-using-value.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-prechecked.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline-extreme.html +69 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-inline.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-a-divider.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-conditional-reveal.html +31 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-disabled.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-error.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-hint.html +30 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small-with-long-text.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-small.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-divider.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-a-medium-legend.html +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-item-checked.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-and-pre-checked-value.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items-with-special-characters.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-conditional-items.html +39 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-disabled.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-fieldset-and-error-message.html +24 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-hints-on-items.html +29 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-idprefix.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-legend-as-page-heading.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-optional-form-group-classes-showing-group-error.html +40 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-with-very-long-option-text.html +33 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template-without-fieldset.html +22 -0
- data/node_modules/govuk-frontend/dist/govuk/components/radios/template.njk +115 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +59 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/fixtures.json +532 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/macro-options.json +163 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-default.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-full-width-override.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-hint-text-and-error-message.html +16 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-label-as-page-heading.html +12 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-no-items.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-optional-form-group-classes.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template-with-selected-value.html +10 -0
- data/node_modules/govuk-frontend/dist/govuk/components/select/template.njk +66 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss +50 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss.map +1 -0
- 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.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/fixtures.json +104 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/macro-options.json +32 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +177 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +169 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +66 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-default.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template-with-focus.html +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/template.njk +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +277 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/fixtures.json +1591 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/macro-options.json +248 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-custom-header-level.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-html-header.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-a-text-header.html +28 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions-plus-summary-list-actions.html +49 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-as-a-summary-card-with-actions.html +36 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-check-your-answers.html +98 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-default.html +35 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-extreme.html +261 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border-on-last-row.html +35 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-no-border.html +35 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-overridden-widths.html +58 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-translated.html +51 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-actions.html +58 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-no-first-action.html +58 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template-with-some-actions.html +45 -0
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/template.njk +94 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +75 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/_table.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/fixtures.json +630 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/macro-options.json +132 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/template-default.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head-and-caption.html +27 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/template-table-with-head.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/template-with-small-text-modifier-for-tables-with-a-lot-of-data.html +19 -0
- data/node_modules/govuk-frontend/dist/govuk/components/table/template.njk +57 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +134 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/_tabs.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/fixtures.json +314 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/macro-options.json +84 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +391 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +383 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +296 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-default.html +117 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/template-tabs-with-anchor-in-panel.html +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/template.njk +48 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +94 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_tag.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/fixtures.json +159 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/macro-options.json +26 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-blue.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-default.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-green.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-grey.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-light-blue.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-orange.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-pink.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-purple.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-red.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-turquoise.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template-yellow.html +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/tag/template.njk +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/README.md +15 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +77 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/fixtures.json +542 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro-options.json +119 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/macro.njk +3 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-default.html +37 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-3-states.html +49 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-all-possible-colours.html +143 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-hint-text-and-additional-states.html +77 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template-example-with-very-long-single-word-tags.html +37 -0
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/template.njk +41 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +50 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/fixtures.json +285 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/macro-options.json +143 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-default.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-autocomplete-attribute.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-custom-rows.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-default-value.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-error-message.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-hint.html +9 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-label-as-page-heading.html +8 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-optional-form-group-classes.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-disabled.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template-with-spellcheck-enabled.html +6 -0
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/template.njk +54 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +65 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/fixtures.json +93 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/macro-options.json +32 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-default.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template-multiple-lines.html +7 -0
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/template.njk +10 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss +20 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_global-styles.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_index.scss +8 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_links.scss +42 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_links.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss +67 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss +51 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +189 -0
- data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +44 -0
- data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +16 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +3 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss +17 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_clearfix.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +91 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss +38 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_device-pixels.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +49 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss +63 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss +14 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +391 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss +82 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss +82 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_shape-arrow.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss +173 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +271 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss +117 -0
- data/node_modules/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
- data/node_modules/govuk-frontend/dist/govuk/i18n.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
- data/node_modules/govuk-frontend/dist/govuk/index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/init.mjs +100 -0
- data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/macros/attributes.njk +94 -0
- data/node_modules/govuk-frontend/dist/govuk/macros/i18n.njk +21 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss +80 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss +25 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss +26 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_grid.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss +8 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss +55 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +53 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss +77 -0
- data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss +26 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss +7 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss +86 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_spacing.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss +16 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_text-align.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +38 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss +48 -0
- data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss +84 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_assets.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss +157 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +148 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss +15 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_global-styles.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss +23 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss +49 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_links.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss +107 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_measurements.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +25 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss +78 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_spacing.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss +78 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_warnings.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/template.njk +58 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss +35 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss +28 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_font-url.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss +28 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_image-url.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss +7 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss +22 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss +22 -0
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss +7 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_clearfix.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss +4 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_index.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss +11 -0
- data/node_modules/govuk-frontend/dist/govuk/utilities/_visually-hidden.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss +349 -0
- data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
- data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss +13 -0
- data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.scss.map +1 -0
- data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +165 -7
- data/node_modules/govuk-frontend/package.json +67 -4
- data/package-lock.json +4 -4
- data/package.json +1 -1
- data/vendor/assets/images/favicon.ico +0 -0
- data/vendor/assets/images/favicon.svg +1 -0
- data/vendor/assets/images/govuk-icon-180.png +0 -0
- data/vendor/assets/images/govuk-icon-192.png +0 -0
- data/vendor/assets/images/govuk-icon-512.png +0 -0
- data/vendor/assets/images/govuk-icon-mask.svg +1 -0
- data/vendor/assets/images/govuk-opengraph-image.png +0 -0
- data/vendor/assets/javascripts/defra_ruby_template.js +2374 -2533
- data/vendor/assets/stylesheets/_base.scss +5 -3
- data/vendor/assets/stylesheets/all.scss +2 -8
- data/vendor/assets/stylesheets/components/_all.scss +9 -32
- data/vendor/assets/stylesheets/components/_index.scss +39 -0
- data/vendor/assets/stylesheets/components/accordion/_accordion.scss +2 -0
- data/vendor/assets/stylesheets/components/accordion/_index.scss +270 -101
- data/vendor/assets/stylesheets/components/back-link/_back-link.scss +2 -0
- data/vendor/assets/stylesheets/components/back-link/_index.scss +27 -43
- data/vendor/assets/stylesheets/components/breadcrumbs/_breadcrumbs.scss +2 -0
- data/vendor/assets/stylesheets/components/breadcrumbs/_index.scss +37 -41
- data/vendor/assets/stylesheets/components/button/_button.scss +2 -0
- data/vendor/assets/stylesheets/components/button/_index.scss +79 -105
- data/vendor/assets/stylesheets/components/character-count/_character-count.scss +2 -0
- data/vendor/assets/stylesheets/components/character-count/_index.scss +12 -1
- data/vendor/assets/stylesheets/components/checkboxes/_checkboxes.scss +2 -0
- data/vendor/assets/stylesheets/components/checkboxes/_index.scss +119 -133
- data/vendor/assets/stylesheets/components/cookie-banner/_cookie-banner.scss +2 -0
- data/vendor/assets/stylesheets/components/cookie-banner/_index.scss +3 -4
- data/vendor/assets/stylesheets/components/date-input/_date-input.scss +2 -0
- data/vendor/assets/stylesheets/components/date-input/_index.scss +2 -0
- data/vendor/assets/stylesheets/components/details/_details.scss +2 -0
- data/vendor/assets/stylesheets/components/details/_index.scss +97 -50
- data/vendor/assets/stylesheets/components/error-message/_error-message.scss +2 -0
- data/vendor/assets/stylesheets/components/error-message/_index.scss +3 -0
- data/vendor/assets/stylesheets/components/error-summary/_error-summary.scss +2 -0
- data/vendor/assets/stylesheets/components/error-summary/_index.scss +15 -6
- data/vendor/assets/stylesheets/components/exit-this-page/_exit-this-page.scss +4 -0
- data/vendor/assets/stylesheets/components/exit-this-page/_index.scss +92 -0
- data/vendor/assets/stylesheets/components/fieldset/_fieldset.scss +2 -0
- data/vendor/assets/stylesheets/components/fieldset/_index.scss +18 -11
- data/vendor/assets/stylesheets/components/file-upload/_file-upload.scss +2 -0
- data/vendor/assets/stylesheets/components/file-upload/_index.scss +8 -5
- data/vendor/assets/stylesheets/components/footer/_footer.scss +2 -0
- data/vendor/assets/stylesheets/components/footer/_index.scss +23 -112
- data/vendor/assets/stylesheets/components/header/_header.scss +2 -0
- data/vendor/assets/stylesheets/components/header/_index.scss +109 -94
- data/vendor/assets/stylesheets/components/hint/_hint.scss +2 -0
- data/vendor/assets/stylesheets/components/hint/_index.scss +4 -3
- data/vendor/assets/stylesheets/components/input/_index.scss +35 -61
- data/vendor/assets/stylesheets/components/input/_input.scss +2 -0
- data/vendor/assets/stylesheets/components/inset-text/_index.scss +2 -0
- data/vendor/assets/stylesheets/components/inset-text/_inset-text.scss +2 -0
- data/vendor/assets/stylesheets/components/label/_index.scss +12 -7
- data/vendor/assets/stylesheets/components/label/_label.scss +2 -0
- data/vendor/assets/stylesheets/components/notification-banner/_index.scss +8 -5
- data/vendor/assets/stylesheets/components/notification-banner/_notification-banner.scss +2 -0
- data/vendor/assets/stylesheets/components/pagination/_index.scss +241 -0
- data/vendor/assets/stylesheets/components/pagination/_pagination.scss +4 -0
- data/vendor/assets/stylesheets/components/panel/_index.scss +20 -10
- data/vendor/assets/stylesheets/components/panel/_panel.scss +2 -0
- data/vendor/assets/stylesheets/components/password-input/_index.scss +54 -0
- data/vendor/assets/stylesheets/components/password-input/_password-input.scss +4 -0
- data/vendor/assets/stylesheets/components/phase-banner/_index.scss +18 -1
- data/vendor/assets/stylesheets/components/phase-banner/_phase-banner.scss +2 -0
- data/vendor/assets/stylesheets/components/radios/_index.scss +104 -120
- data/vendor/assets/stylesheets/components/radios/_radios.scss +2 -0
- data/vendor/assets/stylesheets/components/select/_index.scss +20 -10
- data/vendor/assets/stylesheets/components/select/_select.scss +2 -0
- data/vendor/assets/stylesheets/components/skip-link/_index.scss +18 -4
- data/vendor/assets/stylesheets/components/skip-link/_skip-link.scss +2 -0
- data/vendor/assets/stylesheets/components/summary-list/_index.scss +167 -35
- data/vendor/assets/stylesheets/components/summary-list/_summary-list.scss +2 -0
- data/vendor/assets/stylesheets/components/table/_index.scss +21 -17
- data/vendor/assets/stylesheets/components/table/_table.scss +2 -0
- data/vendor/assets/stylesheets/components/tabs/_index.scss +15 -11
- data/vendor/assets/stylesheets/components/tabs/_tabs.scss +2 -0
- data/vendor/assets/stylesheets/components/tag/_index.scss +56 -48
- data/vendor/assets/stylesheets/components/tag/_tag.scss +2 -0
- data/vendor/assets/stylesheets/components/task-list/_index.scss +77 -0
- data/vendor/assets/stylesheets/components/task-list/_task-list.scss +4 -0
- data/vendor/assets/stylesheets/components/textarea/_index.scss +9 -6
- data/vendor/assets/stylesheets/components/textarea/_textarea.scss +2 -0
- data/vendor/assets/stylesheets/components/warning-text/_index.scss +10 -11
- data/vendor/assets/stylesheets/components/warning-text/_warning-text.scss +2 -0
- data/vendor/assets/stylesheets/core/_all.scss +10 -6
- data/vendor/assets/stylesheets/core/_global-styles.scss +2 -7
- data/vendor/assets/stylesheets/core/_govuk-frontend-properties.scss +12 -0
- data/vendor/assets/stylesheets/core/_index.scss +8 -0
- data/vendor/assets/stylesheets/core/_links.scss +8 -7
- data/vendor/assets/stylesheets/core/_lists.scss +2 -7
- data/vendor/assets/stylesheets/core/_section-break.scss +2 -13
- data/vendor/assets/stylesheets/core/_typography.scss +8 -11
- data/vendor/assets/stylesheets/defra_ruby_template.scss +2 -11
- data/vendor/assets/stylesheets/govuk-frontend.min.css +3 -0
- data/vendor/assets/stylesheets/helpers/_all.scss +10 -12
- data/vendor/assets/stylesheets/helpers/_clearfix.scss +3 -1
- data/vendor/assets/stylesheets/helpers/_colour.scss +20 -24
- data/vendor/assets/stylesheets/helpers/_device-pixels.scss +4 -3
- data/vendor/assets/stylesheets/helpers/_focused.scss +27 -6
- data/vendor/assets/stylesheets/helpers/_font-faces.scss +22 -22
- data/vendor/assets/stylesheets/helpers/_grid.scss +2 -0
- data/vendor/assets/stylesheets/helpers/_index.scss +14 -0
- data/vendor/assets/stylesheets/helpers/_links.scss +38 -74
- data/vendor/assets/stylesheets/helpers/_media-queries.scss +4 -13
- data/vendor/assets/stylesheets/helpers/_shape-arrow.scss +3 -1
- data/vendor/assets/stylesheets/helpers/_spacing.scss +36 -16
- data/vendor/assets/stylesheets/helpers/_typography.scss +117 -53
- data/vendor/assets/stylesheets/helpers/_visually-hidden.scss +33 -0
- data/vendor/assets/stylesheets/index.scss +11 -0
- data/vendor/assets/stylesheets/objects/_all.scss +10 -5
- data/vendor/assets/stylesheets/objects/_button-group.scss +7 -28
- data/vendor/assets/stylesheets/objects/_form-group.scss +2 -0
- data/vendor/assets/stylesheets/objects/_grid.scss +4 -2
- data/vendor/assets/stylesheets/objects/_index.scss +8 -0
- data/vendor/assets/stylesheets/objects/_main-wrapper.scss +17 -30
- data/vendor/assets/stylesheets/objects/_template.scss +53 -0
- data/vendor/assets/stylesheets/objects/_width-container.scss +2 -13
- data/vendor/assets/stylesheets/overrides/_all.scss +9 -4
- data/vendor/assets/stylesheets/overrides/_display.scss +2 -6
- data/vendor/assets/stylesheets/overrides/_index.scss +7 -0
- data/vendor/assets/stylesheets/overrides/_spacing.scss +49 -27
- data/vendor/assets/stylesheets/overrides/_text-align.scss +16 -0
- data/vendor/assets/stylesheets/overrides/_typography.scss +19 -8
- data/vendor/assets/stylesheets/overrides/_width.scss +2 -6
- data/vendor/assets/stylesheets/settings/_all.scss +8 -21
- data/vendor/assets/stylesheets/settings/_assets.scss +2 -0
- data/vendor/assets/stylesheets/settings/_colours-applied.scss +9 -7
- data/vendor/assets/stylesheets/settings/_colours-organisations.scss +10 -1
- data/vendor/assets/stylesheets/settings/_colours-palette.scss +8 -79
- data/vendor/assets/stylesheets/settings/_global-styles.scss +2 -0
- data/vendor/assets/stylesheets/settings/_index.scss +23 -0
- data/vendor/assets/stylesheets/settings/_links.scss +7 -20
- data/vendor/assets/stylesheets/settings/_measurements.scss +18 -16
- data/vendor/assets/stylesheets/settings/_media-queries.scss +5 -3
- data/vendor/assets/stylesheets/settings/_spacing.scss +6 -8
- data/vendor/assets/stylesheets/settings/_typography-font.scss +6 -43
- data/vendor/assets/stylesheets/settings/_typography-responsive.scss +179 -40
- data/vendor/assets/stylesheets/settings/_warnings.scss +78 -0
- data/vendor/assets/stylesheets/tools/_all.scss +10 -8
- data/vendor/assets/stylesheets/tools/_exports.scss +3 -1
- data/vendor/assets/stylesheets/tools/_font-url.scss +4 -1
- data/vendor/assets/stylesheets/tools/_image-url.scss +4 -1
- data/vendor/assets/stylesheets/tools/_index.scss +7 -0
- data/vendor/assets/stylesheets/tools/_px-to-em.scss +4 -2
- data/vendor/assets/stylesheets/tools/_px-to-rem.scss +3 -1
- data/vendor/assets/stylesheets/utilities/_all.scss +10 -2
- data/vendor/assets/stylesheets/utilities/_clearfix.scss +2 -0
- data/vendor/assets/stylesheets/utilities/_index.scss +4 -0
- data/vendor/assets/stylesheets/utilities/_visually-hidden.scss +2 -0
- data/vendor/assets/stylesheets/vendor/_sass-mq.scss +3 -1
- metadata +906 -338
- data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
- data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -6
- data/node_modules/govuk-frontend/govuk/all.js +0 -2616
- data/node_modules/govuk-frontend/govuk/all.scss +0 -9
- 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.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-logotype-tudor-crown.png +0 -0
- data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -1
- data/node_modules/govuk-frontend/govuk/common.js +0 -39
- data/node_modules/govuk-frontend/govuk/components/_all.scss +0 -33
- data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +0 -197
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -1011
- data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +0 -250
- data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +0 -76
- data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +0 -27
- data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +0 -99
- data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +0 -62
- data/node_modules/govuk-frontend/govuk/components/back-link/macro-options.json +0 -32
- data/node_modules/govuk-frontend/govuk/components/back-link/template.njk +0 -2
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +0 -138
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +0 -193
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +0 -52
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/template.njk +0 -24
- data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/button/_index.scss +0 -287
- data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -724
- data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +0 -327
- data/node_modules/govuk-frontend/govuk/components/button/macro-options.json +0 -74
- data/node_modules/govuk-frontend/govuk/components/button/template.njk +0 -60
- data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -25
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -1194
- data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +0 -240
- data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +0 -111
- data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +0 -37
- data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +0 -334
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1192
- data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +0 -1189
- data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +0 -161
- data/node_modules/govuk-frontend/govuk/components/checkboxes/template.njk +0 -119
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/_index.scss +0 -51
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +0 -443
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +0 -132
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +0 -73
- data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/date-input/_index.scss +0 -26
- data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +0 -549
- data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +0 -117
- data/node_modules/govuk-frontend/govuk/components/date-input/template.njk +0 -97
- 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 -828
- data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +0 -103
- data/node_modules/govuk-frontend/govuk/components/details/implementation.md +0 -43
- data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +0 -50
- data/node_modules/govuk-frontend/govuk/components/details/template.njk +0 -10
- data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/error-message/_index.scss +0 -11
- data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +0 -77
- data/node_modules/govuk-frontend/govuk/components/error-message/macro-options.json +0 -38
- data/node_modules/govuk-frontend/govuk/components/error-message/template.njk +0 -6
- data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +0 -43
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -853
- data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +0 -242
- data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +0 -70
- data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +0 -25
- data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +0 -64
- data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +0 -103
- data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +0 -70
- data/node_modules/govuk-frontend/govuk/components/fieldset/template.njk +0 -22
- data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -50
- data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +0 -198
- data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +0 -73
- data/node_modules/govuk-frontend/govuk/components/file-upload/template.njk +0 -44
- data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -244
- data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +0 -501
- data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +0 -118
- data/node_modules/govuk-frontend/govuk/components/footer/template.njk +0 -87
- data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +0 -347
- data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +0 -386
- data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -1066
- data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +0 -112
- data/node_modules/govuk-frontend/govuk/components/header/template.njk +0 -104
- data/node_modules/govuk-frontend/govuk/components/hint/_hint.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +0 -44
- data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +0 -59
- data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +0 -32
- data/node_modules/govuk-frontend/govuk/components/hint/template.njk +0 -4
- data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -191
- data/node_modules/govuk-frontend/govuk/components/input/_input.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +0 -628
- data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +0 -167
- data/node_modules/govuk-frontend/govuk/components/input/template.njk +0 -65
- data/node_modules/govuk-frontend/govuk/components/inset-text/_index.scss +0 -24
- data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +0 -58
- data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +0 -32
- data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +0 -4
- data/node_modules/govuk-frontend/govuk/components/label/_index.scss +0 -41
- data/node_modules/govuk-frontend/govuk/components/label/_label.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +0 -84
- data/node_modules/govuk-frontend/govuk/components/label/macro-options.json +0 -38
- data/node_modules/govuk-frontend/govuk/components/label/template.njk +0 -15
- data/node_modules/govuk-frontend/govuk/components/notification-banner/_index.scss +0 -89
- data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +0 -212
- data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +0 -68
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -61
- data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +0 -47
- data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
- data/node_modules/govuk-frontend/govuk/components/panel/_panel.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +0 -91
- data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +0 -44
- data/node_modules/govuk-frontend/govuk/components/panel/template.njk +0 -13
- data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +0 -27
- data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +0 -76
- data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +0 -33
- data/node_modules/govuk-frontend/govuk/components/phase-banner/template.njk +0 -15
- data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +0 -356
- data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +0 -1183
- data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +0 -143
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1148
- data/node_modules/govuk-frontend/govuk/components/radios/template.njk +0 -116
- data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -49
- data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +0 -327
- data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +0 -105
- data/node_modules/govuk-frontend/govuk/components/select/template.njk +0 -51
- data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +0 -36
- data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +0 -84
- data/node_modules/govuk-frontend/govuk/components/skip-link/macro-options.json +0 -32
- data/node_modules/govuk-frontend/govuk/components/skip-link/template.njk +0 -3
- data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +0 -145
- data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +0 -1084
- data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +0 -113
- data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +0 -47
- data/node_modules/govuk-frontend/govuk/components/table/_index.scss +0 -71
- data/node_modules/govuk-frontend/govuk/components/table/_table.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +0 -538
- data/node_modules/govuk-frontend/govuk/components/table/macro-options.json +0 -132
- data/node_modules/govuk-frontend/govuk/components/table/template.njk +0 -45
- data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +0 -130
- data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +0 -286
- data/node_modules/govuk-frontend/govuk/components/tabs/macro-options.json +0 -84
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1347
- data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +0 -32
- data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -86
- data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +0 -131
- data/node_modules/govuk-frontend/govuk/components/tag/macro-options.json +0 -26
- data/node_modules/govuk-frontend/govuk/components/tag/template.njk +0 -3
- data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -47
- data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +0 -250
- data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +0 -91
- data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +0 -45
- data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +0 -66
- data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
- data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +0 -73
- data/node_modules/govuk-frontend/govuk/components/warning-text/macro-options.json +0 -32
- data/node_modules/govuk-frontend/govuk/components/warning-text/template.njk +0 -9
- data/node_modules/govuk-frontend/govuk/core/_all.scss +0 -6
- data/node_modules/govuk-frontend/govuk/core/_global-styles.scss +0 -25
- data/node_modules/govuk-frontend/govuk/core/_links.scss +0 -41
- data/node_modules/govuk-frontend/govuk/core/_lists.scss +0 -72
- data/node_modules/govuk-frontend/govuk/core/_section-break.scss +0 -62
- data/node_modules/govuk-frontend/govuk/core/_template.scss +0 -36
- data/node_modules/govuk-frontend/govuk/core/_typography.scss +0 -192
- data/node_modules/govuk-frontend/govuk/helpers/_all.scss +0 -12
- data/node_modules/govuk-frontend/govuk/helpers/_clearfix.scss +0 -15
- data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -95
- data/node_modules/govuk-frontend/govuk/helpers/_device-pixels.scss +0 -37
- data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +0 -28
- data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
- data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +0 -61
- data/node_modules/govuk-frontend/govuk/helpers/_links.scss +0 -427
- data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +0 -91
- data/node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss +0 -80
- data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +0 -171
- data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -207
- data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +0 -84
- data/node_modules/govuk-frontend/govuk/objects/_all.scss +0 -5
- data/node_modules/govuk-frontend/govuk/objects/_button-group.scss +0 -101
- data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +0 -23
- data/node_modules/govuk-frontend/govuk/objects/_grid.scss +0 -24
- data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +0 -68
- data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +0 -88
- data/node_modules/govuk-frontend/govuk/overrides/_all.scss +0 -5
- data/node_modules/govuk-frontend/govuk/overrides/_display.scss +0 -30
- data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +0 -64
- data/node_modules/govuk-frontend/govuk/overrides/_text-align.scss +0 -20
- data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -27
- data/node_modules/govuk-frontend/govuk/overrides/_width.scss +0 -52
- data/node_modules/govuk-frontend/govuk/settings/_all.scss +0 -23
- data/node_modules/govuk-frontend/govuk/settings/_assets.scss +0 -82
- data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +0 -155
- data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -139
- data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -108
- data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -74
- data/node_modules/govuk-frontend/govuk/settings/_global-styles.scss +0 -13
- data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -18
- data/node_modules/govuk-frontend/govuk/settings/_links.scss +0 -62
- data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +0 -105
- data/node_modules/govuk-frontend/govuk/settings/_media-queries.scss +0 -23
- data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +0 -80
- data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
- data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -89
- data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -183
- data/node_modules/govuk-frontend/govuk/template.njk +0 -60
- data/node_modules/govuk-frontend/govuk/tools/_all.scss +0 -8
- data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -36
- data/node_modules/govuk-frontend/govuk/tools/_exports.scss +0 -33
- data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +0 -25
- data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -51
- data/node_modules/govuk-frontend/govuk/tools/_iff.scss +0 -17
- data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +0 -25
- data/node_modules/govuk-frontend/govuk/tools/_px-to-em.scss +0 -20
- data/node_modules/govuk-frontend/govuk/tools/_px-to-rem.scss +0 -20
- data/node_modules/govuk-frontend/govuk/utilities/_all.scss +0 -2
- data/node_modules/govuk-frontend/govuk/utilities/_clearfix.scss +0 -5
- data/node_modules/govuk-frontend/govuk/utilities/_visually-hidden.scss +0 -9
- data/node_modules/govuk-frontend/govuk/vendor/_sass-mq.scss +0 -347
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -272
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -34
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -589
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -54
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -31
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -254
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -254
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -147
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -504
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -252
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -94
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -28
- data/vendor/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
- data/vendor/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
- data/vendor/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
- data/vendor/assets/images/govuk-apple-touch-icon.png +0 -0
- data/vendor/assets/images/govuk-logotype-crown.png +0 -0
- data/vendor/assets/images/govuk-mask-icon.svg +0 -7
- data/vendor/assets/stylesheets/all-ie8.scss +0 -6
- data/vendor/assets/stylesheets/core/_template.scss +0 -36
- data/vendor/assets/stylesheets/settings/_compatibility.scss +0 -74
- data/vendor/assets/stylesheets/settings/_ie8.scss +0 -18
- data/vendor/assets/stylesheets/settings/_typography-font-families.scss +0 -32
- data/vendor/assets/stylesheets/tools/_compatibility.scss +0 -36
- data/vendor/assets/stylesheets/tools/_ie8.scss +0 -51
- data/vendor/assets/stylesheets/tools/_iff.scss +0 -17
- /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/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/favicon.ico +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest-2x.png +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-crest.png +0 -0
- /data/node_modules/govuk-frontend/{govuk/assets/images/govuk-apple-touch-icon-180x180.png → dist/govuk/assets/images/govuk-icon-180.png} +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/images/govuk-opengraph-image.png +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/details/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/macro.njk +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/README.md +0 -0
- /data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/macro.njk +0 -0
|
@@ -0,0 +1,202 @@
|
|
|
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
|
+
class GOVUKFrontendError extends Error {
|
|
8
|
+
constructor(...args) {
|
|
9
|
+
super(...args);
|
|
10
|
+
this.name = 'GOVUKFrontendError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
class SupportError extends GOVUKFrontendError {
|
|
14
|
+
/**
|
|
15
|
+
* Checks if GOV.UK Frontend is supported on this page
|
|
16
|
+
*
|
|
17
|
+
* @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
|
|
18
|
+
*/
|
|
19
|
+
constructor($scope = document.body) {
|
|
20
|
+
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';
|
|
21
|
+
super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
|
|
22
|
+
this.name = 'SupportError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
class ElementError extends GOVUKFrontendError {
|
|
26
|
+
constructor(messageOrOptions) {
|
|
27
|
+
let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
|
|
28
|
+
if (typeof messageOrOptions === 'object') {
|
|
29
|
+
const {
|
|
30
|
+
componentName,
|
|
31
|
+
identifier,
|
|
32
|
+
element,
|
|
33
|
+
expectedType
|
|
34
|
+
} = messageOrOptions;
|
|
35
|
+
message = `${componentName}: ${identifier}`;
|
|
36
|
+
message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
|
|
37
|
+
}
|
|
38
|
+
super(message);
|
|
39
|
+
this.name = 'ElementError';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function isSupported($scope = document.body) {
|
|
44
|
+
if (!$scope) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return $scope.classList.contains('govuk-frontend-supported');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Schema for component config
|
|
52
|
+
*
|
|
53
|
+
* @typedef {object} Schema
|
|
54
|
+
* @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
|
|
55
|
+
* @property {SchemaCondition[]} [anyOf] - List of schema conditions
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Schema property for component config
|
|
60
|
+
*
|
|
61
|
+
* @typedef {object} SchemaProperty
|
|
62
|
+
* @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Schema condition for component config
|
|
67
|
+
*
|
|
68
|
+
* @typedef {object} SchemaCondition
|
|
69
|
+
* @property {string[]} required - List of required config fields
|
|
70
|
+
* @property {string} errorMessage - Error message when required config fields not provided
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
class GOVUKFrontendComponent {
|
|
74
|
+
constructor() {
|
|
75
|
+
this.checkSupport();
|
|
76
|
+
}
|
|
77
|
+
checkSupport() {
|
|
78
|
+
if (!isSupported()) {
|
|
79
|
+
throw new SupportError();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Checkboxes component
|
|
86
|
+
*
|
|
87
|
+
* @preserve
|
|
88
|
+
*/
|
|
89
|
+
class Checkboxes extends GOVUKFrontendComponent {
|
|
90
|
+
/**
|
|
91
|
+
* Checkboxes can be associated with a 'conditionally revealed' content block
|
|
92
|
+
* – for example, a checkbox for 'Phone' could reveal an additional form field
|
|
93
|
+
* for the user to enter their phone number.
|
|
94
|
+
*
|
|
95
|
+
* These associations are made using a `data-aria-controls` attribute, which
|
|
96
|
+
* is promoted to an aria-controls attribute during initialisation.
|
|
97
|
+
*
|
|
98
|
+
* We also need to restore the state of any conditional reveals on the page
|
|
99
|
+
* (for example if the user has navigated back), and set up event handlers to
|
|
100
|
+
* keep the reveal in sync with the checkbox state.
|
|
101
|
+
*
|
|
102
|
+
* @param {Element | null} $module - HTML element to use for checkboxes
|
|
103
|
+
*/
|
|
104
|
+
constructor($module) {
|
|
105
|
+
super();
|
|
106
|
+
this.$module = void 0;
|
|
107
|
+
this.$inputs = void 0;
|
|
108
|
+
if (!($module instanceof HTMLElement)) {
|
|
109
|
+
throw new ElementError({
|
|
110
|
+
componentName: 'Checkboxes',
|
|
111
|
+
element: $module,
|
|
112
|
+
identifier: 'Root element (`$module`)'
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const $inputs = $module.querySelectorAll('input[type="checkbox"]');
|
|
116
|
+
if (!$inputs.length) {
|
|
117
|
+
throw new ElementError({
|
|
118
|
+
componentName: 'Checkboxes',
|
|
119
|
+
identifier: 'Form inputs (`<input type="checkbox">`)'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
this.$module = $module;
|
|
123
|
+
this.$inputs = $inputs;
|
|
124
|
+
this.$inputs.forEach($input => {
|
|
125
|
+
const targetId = $input.getAttribute('data-aria-controls');
|
|
126
|
+
if (!targetId) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (!document.getElementById(targetId)) {
|
|
130
|
+
throw new ElementError({
|
|
131
|
+
componentName: 'Checkboxes',
|
|
132
|
+
identifier: `Conditional reveal (\`id="${targetId}"\`)`
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
$input.setAttribute('aria-controls', targetId);
|
|
136
|
+
$input.removeAttribute('data-aria-controls');
|
|
137
|
+
});
|
|
138
|
+
window.addEventListener('pageshow', () => this.syncAllConditionalReveals());
|
|
139
|
+
this.syncAllConditionalReveals();
|
|
140
|
+
this.$module.addEventListener('click', event => this.handleClick(event));
|
|
141
|
+
}
|
|
142
|
+
syncAllConditionalReveals() {
|
|
143
|
+
this.$inputs.forEach($input => this.syncConditionalRevealWithInputState($input));
|
|
144
|
+
}
|
|
145
|
+
syncConditionalRevealWithInputState($input) {
|
|
146
|
+
const targetId = $input.getAttribute('aria-controls');
|
|
147
|
+
if (!targetId) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const $target = document.getElementById(targetId);
|
|
151
|
+
if ($target != null && $target.classList.contains('govuk-checkboxes__conditional')) {
|
|
152
|
+
const inputIsChecked = $input.checked;
|
|
153
|
+
$input.setAttribute('aria-expanded', inputIsChecked.toString());
|
|
154
|
+
$target.classList.toggle('govuk-checkboxes__conditional--hidden', !inputIsChecked);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
unCheckAllInputsExcept($input) {
|
|
158
|
+
const allInputsWithSameName = document.querySelectorAll(`input[type="checkbox"][name="${$input.name}"]`);
|
|
159
|
+
allInputsWithSameName.forEach($inputWithSameName => {
|
|
160
|
+
const hasSameFormOwner = $input.form === $inputWithSameName.form;
|
|
161
|
+
if (hasSameFormOwner && $inputWithSameName !== $input) {
|
|
162
|
+
$inputWithSameName.checked = false;
|
|
163
|
+
this.syncConditionalRevealWithInputState($inputWithSameName);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
unCheckExclusiveInputs($input) {
|
|
168
|
+
const allInputsWithSameNameAndExclusiveBehaviour = document.querySelectorAll(`input[data-behaviour="exclusive"][type="checkbox"][name="${$input.name}"]`);
|
|
169
|
+
allInputsWithSameNameAndExclusiveBehaviour.forEach($exclusiveInput => {
|
|
170
|
+
const hasSameFormOwner = $input.form === $exclusiveInput.form;
|
|
171
|
+
if (hasSameFormOwner) {
|
|
172
|
+
$exclusiveInput.checked = false;
|
|
173
|
+
this.syncConditionalRevealWithInputState($exclusiveInput);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
handleClick(event) {
|
|
178
|
+
const $clickedInput = event.target;
|
|
179
|
+
if (!($clickedInput instanceof HTMLInputElement) || $clickedInput.type !== 'checkbox') {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const hasAriaControls = $clickedInput.getAttribute('aria-controls');
|
|
183
|
+
if (hasAriaControls) {
|
|
184
|
+
this.syncConditionalRevealWithInputState($clickedInput);
|
|
185
|
+
}
|
|
186
|
+
if (!$clickedInput.checked) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const hasBehaviourExclusive = $clickedInput.getAttribute('data-behaviour') === 'exclusive';
|
|
190
|
+
if (hasBehaviourExclusive) {
|
|
191
|
+
this.unCheckAllInputsExcept($clickedInput);
|
|
192
|
+
} else {
|
|
193
|
+
this.unCheckExclusiveInputs($clickedInput);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
Checkboxes.moduleName = 'govuk-checkboxes';
|
|
198
|
+
|
|
199
|
+
exports.Checkboxes = Checkboxes;
|
|
200
|
+
|
|
201
|
+
}));
|
|
202
|
+
//# sourceMappingURL=checkboxes.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkboxes.bundle.js","sources":["../../../../src/govuk/errors/index.mjs","../../../../src/govuk/common/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/checkboxes/checkboxes.mjs"],"sourcesContent":["/**\n * GOV.UK Frontend error\n *\n * A base class for `Error`s thrown by GOV.UK Frontend.\n *\n * It is meant to be extended into specific types of errors\n * to be thrown by our code.\n *\n * @example\n * ```js\n * class MissingRootError extends GOVUKFrontendError {\n * // Setting an explicit name is important as extending the class will not\n * // set a new `name` on the subclass. The `name` property is important\n * // to ensure intelligible error names even if the class name gets\n * // mangled by a minifier\n * name = \"MissingRootError\"\n * }\n * ```\n * @abstract\n */\nexport class GOVUKFrontendError extends Error {\n name = 'GOVUKFrontendError'\n}\n\n/**\n * Indicates that GOV.UK Frontend is not supported\n */\nexport class SupportError extends GOVUKFrontendError {\n name = 'SupportError'\n\n /**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n */\n constructor($scope = document.body) {\n const supportMessage =\n 'noModule' in HTMLScriptElement.prototype\n ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet'\n : 'GOV.UK Frontend is not supported in this browser'\n\n super(\n $scope\n ? supportMessage\n : 'GOV.UK Frontend initialised without `<script type=\"module\">`'\n )\n }\n}\n\n/**\n * Indicates that a component has received an illegal configuration\n */\nexport class ConfigError extends GOVUKFrontendError {\n name = 'ConfigError'\n}\n\n/**\n * Indicates an issue with an element (possibly `null` or `undefined`)\n */\nexport class ElementError extends GOVUKFrontendError {\n name = 'ElementError'\n\n /**\n * @internal\n * @overload\n * @param {string} message - Element error message\n */\n\n /**\n * @internal\n * @overload\n * @param {ElementErrorOptions} options - Element error options\n */\n\n /**\n * @internal\n * @param {string | ElementErrorOptions} messageOrOptions - Element error message or options\n */\n constructor(messageOrOptions) {\n let message = typeof messageOrOptions === 'string' ? messageOrOptions : ''\n\n // Build message from options\n if (typeof messageOrOptions === 'object') {\n const { componentName, identifier, element, expectedType } =\n messageOrOptions\n\n // Add prefix and identifier\n message = `${componentName}: ${identifier}`\n\n // Append reason\n message += element\n ? ` is not of type ${expectedType ?? 'HTMLElement'}`\n : ' not found'\n }\n\n super(message)\n }\n}\n\n/**\n * Element error options\n *\n * @internal\n * @typedef {object} ElementErrorOptions\n * @property {string} componentName - The name of the component throwing the error\n * @property {string} identifier - An identifier that'll let the user understand which element has an error. This is whatever makes the most sense\n * @property {Element | null} [element] - The element in error\n * @property {string} [expectedType] - The type that was expected for the identifier\n */\n","import { normaliseString } from './normalise-string.mjs'\n\n/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n */\n\n/**\n * Config merging function\n *\n * Takes any number of objects and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @internal\n * @param {...{ [key: string]: unknown }} configObjects - Config objects to merge\n * @returns {{ [key: string]: unknown }} A merged config object\n */\nexport function mergeConfigs(...configObjects) {\n // Start with an empty object as our base\n /** @type {{ [key: string]: unknown }} */\n const formattedConfigObject = {}\n\n // Loop through each of the passed objects\n for (const configObject of configObjects) {\n for (const key of Object.keys(configObject)) {\n const option = formattedConfigObject[key]\n const override = configObject[key]\n\n // Push their keys one-by-one into formattedConfigObject. Any duplicate\n // keys with object values will be merged, otherwise the new value will\n // override the existing value.\n if (isObject(option) && isObject(override)) {\n // @ts-expect-error Index signature for type 'string' is missing\n formattedConfigObject[key] = mergeConfigs(option, override)\n } else {\n // Apply override\n formattedConfigObject[key] = override\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from dataset ('data-*')\n * object, removing the namespace in the process, normalising all values\n *\n * @internal\n * @param {{ schema: Schema }} Component - Component class\n * @param {DOMStringMap} dataset - The object to extract key-value pairs from\n * @param {string} namespace - The namespace to filter keys with\n * @returns {ObjectNested | undefined} Nested object with dot-separated key namespace removed\n */\nexport function extractConfigByNamespace(Component, dataset, namespace) {\n const property = Component.schema.properties[namespace]\n\n // Only extract configs for object schema properties\n if (property?.type !== 'object') {\n return\n }\n\n // Add default empty config\n const newObject = {\n [namespace]: /** @type {ObjectNested} */ ({})\n }\n\n for (const [key, value] of Object.entries(dataset)) {\n /** @type {ObjectNested | ObjectNested[NestedKey]} */\n let current = newObject\n\n // Split the key into parts, using . as our namespace separator\n const keyParts = key.split('.')\n\n /**\n * Create new level per part\n *\n * e.g. 'i18n.textareaDescription.other' becomes\n * `{ i18n: { textareaDescription: { other } } }`\n */\n for (const [index, name] of keyParts.entries()) {\n if (typeof current === 'object') {\n // Drop down to nested object until the last part\n if (index < keyParts.length - 1) {\n // New nested object (optionally) replaces existing value\n if (!isObject(current[name])) {\n current[name] = {}\n }\n\n // Drop down into new or existing nested object\n current = current[name]\n } else if (key !== namespace) {\n // Normalised value (optionally) replaces existing value\n current[name] = normaliseString(value)\n }\n }\n }\n }\n\n return newObject[namespace]\n}\n\n/**\n * Get hash fragment from URL\n *\n * Extract the hash fragment (everything after the hash) from a URL,\n * but not including the hash symbol\n *\n * @private\n * @param {string} url - URL\n * @returns {string | undefined} Fragment from URL, without the hash\n */\nexport function getFragmentFromUrl(url) {\n if (!url.includes('#')) {\n return undefined\n }\n\n return url.split('#').pop()\n}\n\n/**\n * Get GOV.UK Frontend breakpoint value from CSS custom property\n *\n * @private\n * @param {string} name - Breakpoint name\n * @returns {{ property: string, value?: string }} Breakpoint object\n */\nexport function getBreakpoint(name) {\n const property = `--govuk-frontend-breakpoint-${name}`\n\n // Get value from `<html>` with breakpoints on CSS :root\n const value = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(property)\n\n return {\n property,\n value: value || undefined\n }\n}\n\n/**\n * Move focus to element\n *\n * Sets tabindex to -1 to make the element programmatically focusable,\n * but removes it on blur as the element doesn't need to be focused again.\n *\n * @private\n * @template {HTMLElement} FocusElement\n * @param {FocusElement} $element - HTML element\n * @param {object} [options] - Handler options\n * @param {function(this: FocusElement): void} [options.onBeforeFocus] - Callback before focus\n * @param {function(this: FocusElement): void} [options.onBlur] - Callback on blur\n */\nexport function setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute('tabindex')\n\n if (!isFocusable) {\n $element.setAttribute('tabindex', '-1')\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener('blur', onBlur, { once: true })\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element)\n\n if (!isFocusable) {\n $element.removeAttribute('tabindex')\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener('focus', onFocus, { once: true })\n\n // Focus element\n options.onBeforeFocus?.call($element)\n $element.focus()\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @internal\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nexport function isSupported($scope = document.body) {\n if (!$scope) {\n return false\n }\n\n return $scope.classList.contains('govuk-frontend-supported')\n}\n\n/**\n * Validate component config by schema\n *\n * Follows limited examples in JSON schema for wider support in future\n *\n * {@link https://ajv.js.org/json-schema.html#compound-keywords}\n * {@link https://ajv.js.org/packages/ajv-errors.html#single-message}\n *\n * @internal\n * @param {Schema} schema - Config schema\n * @param {{ [key: string]: unknown }} config - Component config\n * @returns {string[]} List of validation errors\n */\nexport function validateConfig(schema, config) {\n const validationErrors = []\n\n // Check errors for each schema\n for (const [name, conditions] of Object.entries(schema)) {\n const errors = []\n\n // Check errors for each schema condition\n if (Array.isArray(conditions)) {\n for (const { required, errorMessage } of conditions) {\n if (!required.every((key) => !!config[key])) {\n errors.push(errorMessage) // Missing config key value\n }\n }\n\n // Check one condition passes or add errors\n if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n validationErrors.push(...errors)\n }\n }\n }\n\n return validationErrors\n}\n\n/**\n * Check for an array\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an array\n */\nfunction isArray(option) {\n return Array.isArray(option)\n}\n\n/**\n * Check for an object\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an object\n */\nfunction isObject(option) {\n return !!option && typeof option === 'object' && !isArray(option)\n}\n\n/**\n * Schema for component config\n *\n * @typedef {object} Schema\n * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties\n * @property {SchemaCondition[]} [anyOf] - List of schema conditions\n */\n\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n\n/**\n * Schema condition for component config\n *\n * @typedef {object} SchemaCondition\n * @property {string[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n\n/**\n * @internal\n * @typedef {keyof ObjectNested} NestedKey\n * @typedef {{ [key: string]: string | boolean | number | ObjectNested | undefined }} ObjectNested\n */\n","import { isSupported } from './common/index.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Base Component class\n *\n * Centralises the behaviours shared by our components\n *\n * @internal\n * @abstract\n */\nexport class GOVUKFrontendComponent {\n /**\n * Constructs a new component, validating that GOV.UK Frontend is supported\n *\n * @internal\n */\n constructor() {\n this.checkSupport()\n }\n\n /**\n * Validates whether GOV.UK Frontend is supported\n *\n * @private\n * @throws {SupportError} when GOV.UK Frontend is not supported\n */\n checkSupport() {\n if (!isSupported()) {\n throw new SupportError()\n }\n }\n}\n","import { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Checkboxes component\n *\n * @preserve\n */\nexport class Checkboxes extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /** @private */\n $inputs\n\n /**\n * Checkboxes can be associated with a 'conditionally revealed' content block\n * – for example, a checkbox for 'Phone' could reveal an additional form field\n * for the user to enter their phone number.\n *\n * These associations are made using a `data-aria-controls` attribute, which\n * is promoted to an aria-controls attribute during initialisation.\n *\n * We also need to restore the state of any conditional reveals on the page\n * (for example if the user has navigated back), and set up event handlers to\n * keep the reveal in sync with the checkbox state.\n *\n * @param {Element | null} $module - HTML element to use for checkboxes\n */\n constructor($module) {\n super()\n\n if (!($module instanceof HTMLElement)) {\n throw new ElementError({\n componentName: 'Checkboxes',\n element: $module,\n identifier: 'Root element (`$module`)'\n })\n }\n\n const $inputs = $module.querySelectorAll('input[type=\"checkbox\"]')\n if (!$inputs.length) {\n throw new ElementError({\n componentName: 'Checkboxes',\n identifier: 'Form inputs (`<input type=\"checkbox\">`)'\n })\n }\n\n this.$module = $module\n this.$inputs = $inputs\n\n this.$inputs.forEach(($input) => {\n const targetId = $input.getAttribute('data-aria-controls')\n\n // Skip radios without data-aria-controls attributes\n if (!targetId) {\n return\n }\n\n // Throw if target conditional element does not exist.\n if (!document.getElementById(targetId)) {\n throw new ElementError({\n componentName: 'Checkboxes',\n identifier: `Conditional reveal (\\`id=\"${targetId}\"\\`)`\n })\n }\n\n // Promote the data-aria-controls attribute to a aria-controls attribute\n // so that the relationship is exposed in the AOM\n $input.setAttribute('aria-controls', targetId)\n $input.removeAttribute('data-aria-controls')\n })\n\n // When the page is restored after navigating 'back' in some browsers the\n // state of form controls is not restored until *after* the DOMContentLoaded\n // event is fired, so we need to sync after the pageshow event.\n window.addEventListener('pageshow', () => this.syncAllConditionalReveals())\n\n // Although we've set up handlers to sync state on the pageshow event, init\n // could be called after those events have fired, for example if they are\n // added to the page dynamically, so sync now too.\n this.syncAllConditionalReveals()\n\n // Handle events\n this.$module.addEventListener('click', (event) => this.handleClick(event))\n }\n\n /**\n * Sync the conditional reveal states for all checkboxes in this $module.\n *\n * @private\n */\n syncAllConditionalReveals() {\n this.$inputs.forEach(($input) =>\n this.syncConditionalRevealWithInputState($input)\n )\n }\n\n /**\n * Sync conditional reveal with the input state\n *\n * Synchronise the visibility of the conditional reveal, and its accessible\n * state, with the input's checked state.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n syncConditionalRevealWithInputState($input) {\n const targetId = $input.getAttribute('aria-controls')\n if (!targetId) {\n return\n }\n\n const $target = document.getElementById(targetId)\n if ($target?.classList.contains('govuk-checkboxes__conditional')) {\n const inputIsChecked = $input.checked\n\n $input.setAttribute('aria-expanded', inputIsChecked.toString())\n $target.classList.toggle(\n 'govuk-checkboxes__conditional--hidden',\n !inputIsChecked\n )\n }\n }\n\n /**\n * Uncheck other checkboxes\n *\n * Find any other checkbox inputs with the same name value, and uncheck them.\n * This is useful for when a “None of these\" checkbox is checked.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n unCheckAllInputsExcept($input) {\n const allInputsWithSameName = document.querySelectorAll(\n `input[type=\"checkbox\"][name=\"${$input.name}\"]`\n )\n\n allInputsWithSameName.forEach(($inputWithSameName) => {\n const hasSameFormOwner = $input.form === $inputWithSameName.form\n if (hasSameFormOwner && $inputWithSameName !== $input) {\n $inputWithSameName.checked = false\n this.syncConditionalRevealWithInputState($inputWithSameName)\n }\n })\n }\n\n /**\n * Uncheck exclusive checkboxes\n *\n * Find any checkbox inputs with the same name value and the 'exclusive'\n * behaviour, and uncheck them. This helps prevent someone checking both a\n * regular checkbox and a \"None of these\" checkbox in the same fieldset.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n unCheckExclusiveInputs($input) {\n const allInputsWithSameNameAndExclusiveBehaviour =\n document.querySelectorAll(\n `input[data-behaviour=\"exclusive\"][type=\"checkbox\"][name=\"${$input.name}\"]`\n )\n\n allInputsWithSameNameAndExclusiveBehaviour.forEach(($exclusiveInput) => {\n const hasSameFormOwner = $input.form === $exclusiveInput.form\n if (hasSameFormOwner) {\n $exclusiveInput.checked = false\n this.syncConditionalRevealWithInputState($exclusiveInput)\n }\n })\n }\n\n /**\n * Click event handler\n *\n * Handle a click within the $module – if the click occurred on a checkbox,\n * sync the state of any associated conditional reveal with the checkbox\n * state.\n *\n * @private\n * @param {MouseEvent} event - Click event\n */\n handleClick(event) {\n const $clickedInput = event.target\n\n // Ignore clicks on things that aren't checkbox inputs\n if (\n !($clickedInput instanceof HTMLInputElement) ||\n $clickedInput.type !== 'checkbox'\n ) {\n return\n }\n\n // If the checkbox conditionally-reveals some content, sync the state\n const hasAriaControls = $clickedInput.getAttribute('aria-controls')\n if (hasAriaControls) {\n this.syncConditionalRevealWithInputState($clickedInput)\n }\n\n // No further behaviour needed for unchecking\n if (!$clickedInput.checked) {\n return\n }\n\n // Handle 'exclusive' checkbox behaviour (ie \"None of these\")\n const hasBehaviourExclusive =\n $clickedInput.getAttribute('data-behaviour') === 'exclusive'\n if (hasBehaviourExclusive) {\n this.unCheckAllInputsExcept($clickedInput)\n } else {\n this.unCheckExclusiveInputs($clickedInput)\n }\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-checkboxes'\n}\n"],"names":["GOVUKFrontendError","Error","constructor","args","name","SupportError","$scope","document","body","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","isSupported","classList","contains","GOVUKFrontendComponent","checkSupport","Checkboxes","$module","$inputs","HTMLElement","querySelectorAll","length","forEach","$input","targetId","getAttribute","getElementById","setAttribute","removeAttribute","window","addEventListener","syncAllConditionalReveals","event","handleClick","syncConditionalRevealWithInputState","$target","inputIsChecked","checked","toString","toggle","unCheckAllInputsExcept","allInputsWithSameName","$inputWithSameName","hasSameFormOwner","form","unCheckExclusiveInputs","allInputsWithSameNameAndExclusiveBehaviour","$exclusiveInput","$clickedInput","target","HTMLInputElement","type","hasAriaControls","hasBehaviourExclusive","moduleName"],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
class GOVUKFrontendError extends Error {
|
|
2
|
+
constructor(...args) {
|
|
3
|
+
super(...args);
|
|
4
|
+
this.name = 'GOVUKFrontendError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
class SupportError extends GOVUKFrontendError {
|
|
8
|
+
/**
|
|
9
|
+
* Checks if GOV.UK Frontend is supported on this page
|
|
10
|
+
*
|
|
11
|
+
* @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
|
|
12
|
+
*/
|
|
13
|
+
constructor($scope = document.body) {
|
|
14
|
+
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';
|
|
15
|
+
super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
|
|
16
|
+
this.name = 'SupportError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
class ElementError extends GOVUKFrontendError {
|
|
20
|
+
constructor(messageOrOptions) {
|
|
21
|
+
let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
|
|
22
|
+
if (typeof messageOrOptions === 'object') {
|
|
23
|
+
const {
|
|
24
|
+
componentName,
|
|
25
|
+
identifier,
|
|
26
|
+
element,
|
|
27
|
+
expectedType
|
|
28
|
+
} = messageOrOptions;
|
|
29
|
+
message = `${componentName}: ${identifier}`;
|
|
30
|
+
message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
|
|
31
|
+
}
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'ElementError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function isSupported($scope = document.body) {
|
|
38
|
+
if (!$scope) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return $scope.classList.contains('govuk-frontend-supported');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Schema for component config
|
|
46
|
+
*
|
|
47
|
+
* @typedef {object} Schema
|
|
48
|
+
* @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
|
|
49
|
+
* @property {SchemaCondition[]} [anyOf] - List of schema conditions
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Schema property for component config
|
|
54
|
+
*
|
|
55
|
+
* @typedef {object} SchemaProperty
|
|
56
|
+
* @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Schema condition for component config
|
|
61
|
+
*
|
|
62
|
+
* @typedef {object} SchemaCondition
|
|
63
|
+
* @property {string[]} required - List of required config fields
|
|
64
|
+
* @property {string} errorMessage - Error message when required config fields not provided
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
class GOVUKFrontendComponent {
|
|
68
|
+
constructor() {
|
|
69
|
+
this.checkSupport();
|
|
70
|
+
}
|
|
71
|
+
checkSupport() {
|
|
72
|
+
if (!isSupported()) {
|
|
73
|
+
throw new SupportError();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Checkboxes component
|
|
80
|
+
*
|
|
81
|
+
* @preserve
|
|
82
|
+
*/
|
|
83
|
+
class Checkboxes extends GOVUKFrontendComponent {
|
|
84
|
+
/**
|
|
85
|
+
* Checkboxes can be associated with a 'conditionally revealed' content block
|
|
86
|
+
* – for example, a checkbox for 'Phone' could reveal an additional form field
|
|
87
|
+
* for the user to enter their phone number.
|
|
88
|
+
*
|
|
89
|
+
* These associations are made using a `data-aria-controls` attribute, which
|
|
90
|
+
* is promoted to an aria-controls attribute during initialisation.
|
|
91
|
+
*
|
|
92
|
+
* We also need to restore the state of any conditional reveals on the page
|
|
93
|
+
* (for example if the user has navigated back), and set up event handlers to
|
|
94
|
+
* keep the reveal in sync with the checkbox state.
|
|
95
|
+
*
|
|
96
|
+
* @param {Element | null} $module - HTML element to use for checkboxes
|
|
97
|
+
*/
|
|
98
|
+
constructor($module) {
|
|
99
|
+
super();
|
|
100
|
+
this.$module = void 0;
|
|
101
|
+
this.$inputs = void 0;
|
|
102
|
+
if (!($module instanceof HTMLElement)) {
|
|
103
|
+
throw new ElementError({
|
|
104
|
+
componentName: 'Checkboxes',
|
|
105
|
+
element: $module,
|
|
106
|
+
identifier: 'Root element (`$module`)'
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const $inputs = $module.querySelectorAll('input[type="checkbox"]');
|
|
110
|
+
if (!$inputs.length) {
|
|
111
|
+
throw new ElementError({
|
|
112
|
+
componentName: 'Checkboxes',
|
|
113
|
+
identifier: 'Form inputs (`<input type="checkbox">`)'
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
this.$module = $module;
|
|
117
|
+
this.$inputs = $inputs;
|
|
118
|
+
this.$inputs.forEach($input => {
|
|
119
|
+
const targetId = $input.getAttribute('data-aria-controls');
|
|
120
|
+
if (!targetId) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (!document.getElementById(targetId)) {
|
|
124
|
+
throw new ElementError({
|
|
125
|
+
componentName: 'Checkboxes',
|
|
126
|
+
identifier: `Conditional reveal (\`id="${targetId}"\`)`
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
$input.setAttribute('aria-controls', targetId);
|
|
130
|
+
$input.removeAttribute('data-aria-controls');
|
|
131
|
+
});
|
|
132
|
+
window.addEventListener('pageshow', () => this.syncAllConditionalReveals());
|
|
133
|
+
this.syncAllConditionalReveals();
|
|
134
|
+
this.$module.addEventListener('click', event => this.handleClick(event));
|
|
135
|
+
}
|
|
136
|
+
syncAllConditionalReveals() {
|
|
137
|
+
this.$inputs.forEach($input => this.syncConditionalRevealWithInputState($input));
|
|
138
|
+
}
|
|
139
|
+
syncConditionalRevealWithInputState($input) {
|
|
140
|
+
const targetId = $input.getAttribute('aria-controls');
|
|
141
|
+
if (!targetId) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const $target = document.getElementById(targetId);
|
|
145
|
+
if ($target != null && $target.classList.contains('govuk-checkboxes__conditional')) {
|
|
146
|
+
const inputIsChecked = $input.checked;
|
|
147
|
+
$input.setAttribute('aria-expanded', inputIsChecked.toString());
|
|
148
|
+
$target.classList.toggle('govuk-checkboxes__conditional--hidden', !inputIsChecked);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
unCheckAllInputsExcept($input) {
|
|
152
|
+
const allInputsWithSameName = document.querySelectorAll(`input[type="checkbox"][name="${$input.name}"]`);
|
|
153
|
+
allInputsWithSameName.forEach($inputWithSameName => {
|
|
154
|
+
const hasSameFormOwner = $input.form === $inputWithSameName.form;
|
|
155
|
+
if (hasSameFormOwner && $inputWithSameName !== $input) {
|
|
156
|
+
$inputWithSameName.checked = false;
|
|
157
|
+
this.syncConditionalRevealWithInputState($inputWithSameName);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
unCheckExclusiveInputs($input) {
|
|
162
|
+
const allInputsWithSameNameAndExclusiveBehaviour = document.querySelectorAll(`input[data-behaviour="exclusive"][type="checkbox"][name="${$input.name}"]`);
|
|
163
|
+
allInputsWithSameNameAndExclusiveBehaviour.forEach($exclusiveInput => {
|
|
164
|
+
const hasSameFormOwner = $input.form === $exclusiveInput.form;
|
|
165
|
+
if (hasSameFormOwner) {
|
|
166
|
+
$exclusiveInput.checked = false;
|
|
167
|
+
this.syncConditionalRevealWithInputState($exclusiveInput);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
handleClick(event) {
|
|
172
|
+
const $clickedInput = event.target;
|
|
173
|
+
if (!($clickedInput instanceof HTMLInputElement) || $clickedInput.type !== 'checkbox') {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const hasAriaControls = $clickedInput.getAttribute('aria-controls');
|
|
177
|
+
if (hasAriaControls) {
|
|
178
|
+
this.syncConditionalRevealWithInputState($clickedInput);
|
|
179
|
+
}
|
|
180
|
+
if (!$clickedInput.checked) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const hasBehaviourExclusive = $clickedInput.getAttribute('data-behaviour') === 'exclusive';
|
|
184
|
+
if (hasBehaviourExclusive) {
|
|
185
|
+
this.unCheckAllInputsExcept($clickedInput);
|
|
186
|
+
} else {
|
|
187
|
+
this.unCheckExclusiveInputs($clickedInput);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
Checkboxes.moduleName = 'govuk-checkboxes';
|
|
192
|
+
|
|
193
|
+
export { Checkboxes };
|
|
194
|
+
//# sourceMappingURL=checkboxes.bundle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkboxes.bundle.mjs","sources":["../../../../src/govuk/errors/index.mjs","../../../../src/govuk/common/index.mjs","../../../../src/govuk/govuk-frontend-component.mjs","../../../../src/govuk/components/checkboxes/checkboxes.mjs"],"sourcesContent":["/**\n * GOV.UK Frontend error\n *\n * A base class for `Error`s thrown by GOV.UK Frontend.\n *\n * It is meant to be extended into specific types of errors\n * to be thrown by our code.\n *\n * @example\n * ```js\n * class MissingRootError extends GOVUKFrontendError {\n * // Setting an explicit name is important as extending the class will not\n * // set a new `name` on the subclass. The `name` property is important\n * // to ensure intelligible error names even if the class name gets\n * // mangled by a minifier\n * name = \"MissingRootError\"\n * }\n * ```\n * @abstract\n */\nexport class GOVUKFrontendError extends Error {\n name = 'GOVUKFrontendError'\n}\n\n/**\n * Indicates that GOV.UK Frontend is not supported\n */\nexport class SupportError extends GOVUKFrontendError {\n name = 'SupportError'\n\n /**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n */\n constructor($scope = document.body) {\n const supportMessage =\n 'noModule' in HTMLScriptElement.prototype\n ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet'\n : 'GOV.UK Frontend is not supported in this browser'\n\n super(\n $scope\n ? supportMessage\n : 'GOV.UK Frontend initialised without `<script type=\"module\">`'\n )\n }\n}\n\n/**\n * Indicates that a component has received an illegal configuration\n */\nexport class ConfigError extends GOVUKFrontendError {\n name = 'ConfigError'\n}\n\n/**\n * Indicates an issue with an element (possibly `null` or `undefined`)\n */\nexport class ElementError extends GOVUKFrontendError {\n name = 'ElementError'\n\n /**\n * @internal\n * @overload\n * @param {string} message - Element error message\n */\n\n /**\n * @internal\n * @overload\n * @param {ElementErrorOptions} options - Element error options\n */\n\n /**\n * @internal\n * @param {string | ElementErrorOptions} messageOrOptions - Element error message or options\n */\n constructor(messageOrOptions) {\n let message = typeof messageOrOptions === 'string' ? messageOrOptions : ''\n\n // Build message from options\n if (typeof messageOrOptions === 'object') {\n const { componentName, identifier, element, expectedType } =\n messageOrOptions\n\n // Add prefix and identifier\n message = `${componentName}: ${identifier}`\n\n // Append reason\n message += element\n ? ` is not of type ${expectedType ?? 'HTMLElement'}`\n : ' not found'\n }\n\n super(message)\n }\n}\n\n/**\n * Element error options\n *\n * @internal\n * @typedef {object} ElementErrorOptions\n * @property {string} componentName - The name of the component throwing the error\n * @property {string} identifier - An identifier that'll let the user understand which element has an error. This is whatever makes the most sense\n * @property {Element | null} [element] - The element in error\n * @property {string} [expectedType] - The type that was expected for the identifier\n */\n","import { normaliseString } from './normalise-string.mjs'\n\n/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n */\n\n/**\n * Config merging function\n *\n * Takes any number of objects and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @internal\n * @param {...{ [key: string]: unknown }} configObjects - Config objects to merge\n * @returns {{ [key: string]: unknown }} A merged config object\n */\nexport function mergeConfigs(...configObjects) {\n // Start with an empty object as our base\n /** @type {{ [key: string]: unknown }} */\n const formattedConfigObject = {}\n\n // Loop through each of the passed objects\n for (const configObject of configObjects) {\n for (const key of Object.keys(configObject)) {\n const option = formattedConfigObject[key]\n const override = configObject[key]\n\n // Push their keys one-by-one into formattedConfigObject. Any duplicate\n // keys with object values will be merged, otherwise the new value will\n // override the existing value.\n if (isObject(option) && isObject(override)) {\n // @ts-expect-error Index signature for type 'string' is missing\n formattedConfigObject[key] = mergeConfigs(option, override)\n } else {\n // Apply override\n formattedConfigObject[key] = override\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from dataset ('data-*')\n * object, removing the namespace in the process, normalising all values\n *\n * @internal\n * @param {{ schema: Schema }} Component - Component class\n * @param {DOMStringMap} dataset - The object to extract key-value pairs from\n * @param {string} namespace - The namespace to filter keys with\n * @returns {ObjectNested | undefined} Nested object with dot-separated key namespace removed\n */\nexport function extractConfigByNamespace(Component, dataset, namespace) {\n const property = Component.schema.properties[namespace]\n\n // Only extract configs for object schema properties\n if (property?.type !== 'object') {\n return\n }\n\n // Add default empty config\n const newObject = {\n [namespace]: /** @type {ObjectNested} */ ({})\n }\n\n for (const [key, value] of Object.entries(dataset)) {\n /** @type {ObjectNested | ObjectNested[NestedKey]} */\n let current = newObject\n\n // Split the key into parts, using . as our namespace separator\n const keyParts = key.split('.')\n\n /**\n * Create new level per part\n *\n * e.g. 'i18n.textareaDescription.other' becomes\n * `{ i18n: { textareaDescription: { other } } }`\n */\n for (const [index, name] of keyParts.entries()) {\n if (typeof current === 'object') {\n // Drop down to nested object until the last part\n if (index < keyParts.length - 1) {\n // New nested object (optionally) replaces existing value\n if (!isObject(current[name])) {\n current[name] = {}\n }\n\n // Drop down into new or existing nested object\n current = current[name]\n } else if (key !== namespace) {\n // Normalised value (optionally) replaces existing value\n current[name] = normaliseString(value)\n }\n }\n }\n }\n\n return newObject[namespace]\n}\n\n/**\n * Get hash fragment from URL\n *\n * Extract the hash fragment (everything after the hash) from a URL,\n * but not including the hash symbol\n *\n * @private\n * @param {string} url - URL\n * @returns {string | undefined} Fragment from URL, without the hash\n */\nexport function getFragmentFromUrl(url) {\n if (!url.includes('#')) {\n return undefined\n }\n\n return url.split('#').pop()\n}\n\n/**\n * Get GOV.UK Frontend breakpoint value from CSS custom property\n *\n * @private\n * @param {string} name - Breakpoint name\n * @returns {{ property: string, value?: string }} Breakpoint object\n */\nexport function getBreakpoint(name) {\n const property = `--govuk-frontend-breakpoint-${name}`\n\n // Get value from `<html>` with breakpoints on CSS :root\n const value = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(property)\n\n return {\n property,\n value: value || undefined\n }\n}\n\n/**\n * Move focus to element\n *\n * Sets tabindex to -1 to make the element programmatically focusable,\n * but removes it on blur as the element doesn't need to be focused again.\n *\n * @private\n * @template {HTMLElement} FocusElement\n * @param {FocusElement} $element - HTML element\n * @param {object} [options] - Handler options\n * @param {function(this: FocusElement): void} [options.onBeforeFocus] - Callback before focus\n * @param {function(this: FocusElement): void} [options.onBlur] - Callback on blur\n */\nexport function setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute('tabindex')\n\n if (!isFocusable) {\n $element.setAttribute('tabindex', '-1')\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener('blur', onBlur, { once: true })\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element)\n\n if (!isFocusable) {\n $element.removeAttribute('tabindex')\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener('focus', onFocus, { once: true })\n\n // Focus element\n options.onBeforeFocus?.call($element)\n $element.focus()\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @internal\n * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nexport function isSupported($scope = document.body) {\n if (!$scope) {\n return false\n }\n\n return $scope.classList.contains('govuk-frontend-supported')\n}\n\n/**\n * Validate component config by schema\n *\n * Follows limited examples in JSON schema for wider support in future\n *\n * {@link https://ajv.js.org/json-schema.html#compound-keywords}\n * {@link https://ajv.js.org/packages/ajv-errors.html#single-message}\n *\n * @internal\n * @param {Schema} schema - Config schema\n * @param {{ [key: string]: unknown }} config - Component config\n * @returns {string[]} List of validation errors\n */\nexport function validateConfig(schema, config) {\n const validationErrors = []\n\n // Check errors for each schema\n for (const [name, conditions] of Object.entries(schema)) {\n const errors = []\n\n // Check errors for each schema condition\n if (Array.isArray(conditions)) {\n for (const { required, errorMessage } of conditions) {\n if (!required.every((key) => !!config[key])) {\n errors.push(errorMessage) // Missing config key value\n }\n }\n\n // Check one condition passes or add errors\n if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n validationErrors.push(...errors)\n }\n }\n }\n\n return validationErrors\n}\n\n/**\n * Check for an array\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an array\n */\nfunction isArray(option) {\n return Array.isArray(option)\n}\n\n/**\n * Check for an object\n *\n * @internal\n * @param {unknown} option - Option to check\n * @returns {boolean} Whether the option is an object\n */\nfunction isObject(option) {\n return !!option && typeof option === 'object' && !isArray(option)\n}\n\n/**\n * Schema for component config\n *\n * @typedef {object} Schema\n * @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties\n * @property {SchemaCondition[]} [anyOf] - List of schema conditions\n */\n\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n\n/**\n * Schema condition for component config\n *\n * @typedef {object} SchemaCondition\n * @property {string[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n\n/**\n * @internal\n * @typedef {keyof ObjectNested} NestedKey\n * @typedef {{ [key: string]: string | boolean | number | ObjectNested | undefined }} ObjectNested\n */\n","import { isSupported } from './common/index.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Base Component class\n *\n * Centralises the behaviours shared by our components\n *\n * @internal\n * @abstract\n */\nexport class GOVUKFrontendComponent {\n /**\n * Constructs a new component, validating that GOV.UK Frontend is supported\n *\n * @internal\n */\n constructor() {\n this.checkSupport()\n }\n\n /**\n * Validates whether GOV.UK Frontend is supported\n *\n * @private\n * @throws {SupportError} when GOV.UK Frontend is not supported\n */\n checkSupport() {\n if (!isSupported()) {\n throw new SupportError()\n }\n }\n}\n","import { ElementError } from '../../errors/index.mjs'\nimport { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs'\n\n/**\n * Checkboxes component\n *\n * @preserve\n */\nexport class Checkboxes extends GOVUKFrontendComponent {\n /** @private */\n $module\n\n /** @private */\n $inputs\n\n /**\n * Checkboxes can be associated with a 'conditionally revealed' content block\n * – for example, a checkbox for 'Phone' could reveal an additional form field\n * for the user to enter their phone number.\n *\n * These associations are made using a `data-aria-controls` attribute, which\n * is promoted to an aria-controls attribute during initialisation.\n *\n * We also need to restore the state of any conditional reveals on the page\n * (for example if the user has navigated back), and set up event handlers to\n * keep the reveal in sync with the checkbox state.\n *\n * @param {Element | null} $module - HTML element to use for checkboxes\n */\n constructor($module) {\n super()\n\n if (!($module instanceof HTMLElement)) {\n throw new ElementError({\n componentName: 'Checkboxes',\n element: $module,\n identifier: 'Root element (`$module`)'\n })\n }\n\n const $inputs = $module.querySelectorAll('input[type=\"checkbox\"]')\n if (!$inputs.length) {\n throw new ElementError({\n componentName: 'Checkboxes',\n identifier: 'Form inputs (`<input type=\"checkbox\">`)'\n })\n }\n\n this.$module = $module\n this.$inputs = $inputs\n\n this.$inputs.forEach(($input) => {\n const targetId = $input.getAttribute('data-aria-controls')\n\n // Skip radios without data-aria-controls attributes\n if (!targetId) {\n return\n }\n\n // Throw if target conditional element does not exist.\n if (!document.getElementById(targetId)) {\n throw new ElementError({\n componentName: 'Checkboxes',\n identifier: `Conditional reveal (\\`id=\"${targetId}\"\\`)`\n })\n }\n\n // Promote the data-aria-controls attribute to a aria-controls attribute\n // so that the relationship is exposed in the AOM\n $input.setAttribute('aria-controls', targetId)\n $input.removeAttribute('data-aria-controls')\n })\n\n // When the page is restored after navigating 'back' in some browsers the\n // state of form controls is not restored until *after* the DOMContentLoaded\n // event is fired, so we need to sync after the pageshow event.\n window.addEventListener('pageshow', () => this.syncAllConditionalReveals())\n\n // Although we've set up handlers to sync state on the pageshow event, init\n // could be called after those events have fired, for example if they are\n // added to the page dynamically, so sync now too.\n this.syncAllConditionalReveals()\n\n // Handle events\n this.$module.addEventListener('click', (event) => this.handleClick(event))\n }\n\n /**\n * Sync the conditional reveal states for all checkboxes in this $module.\n *\n * @private\n */\n syncAllConditionalReveals() {\n this.$inputs.forEach(($input) =>\n this.syncConditionalRevealWithInputState($input)\n )\n }\n\n /**\n * Sync conditional reveal with the input state\n *\n * Synchronise the visibility of the conditional reveal, and its accessible\n * state, with the input's checked state.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n syncConditionalRevealWithInputState($input) {\n const targetId = $input.getAttribute('aria-controls')\n if (!targetId) {\n return\n }\n\n const $target = document.getElementById(targetId)\n if ($target?.classList.contains('govuk-checkboxes__conditional')) {\n const inputIsChecked = $input.checked\n\n $input.setAttribute('aria-expanded', inputIsChecked.toString())\n $target.classList.toggle(\n 'govuk-checkboxes__conditional--hidden',\n !inputIsChecked\n )\n }\n }\n\n /**\n * Uncheck other checkboxes\n *\n * Find any other checkbox inputs with the same name value, and uncheck them.\n * This is useful for when a “None of these\" checkbox is checked.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n unCheckAllInputsExcept($input) {\n const allInputsWithSameName = document.querySelectorAll(\n `input[type=\"checkbox\"][name=\"${$input.name}\"]`\n )\n\n allInputsWithSameName.forEach(($inputWithSameName) => {\n const hasSameFormOwner = $input.form === $inputWithSameName.form\n if (hasSameFormOwner && $inputWithSameName !== $input) {\n $inputWithSameName.checked = false\n this.syncConditionalRevealWithInputState($inputWithSameName)\n }\n })\n }\n\n /**\n * Uncheck exclusive checkboxes\n *\n * Find any checkbox inputs with the same name value and the 'exclusive'\n * behaviour, and uncheck them. This helps prevent someone checking both a\n * regular checkbox and a \"None of these\" checkbox in the same fieldset.\n *\n * @private\n * @param {HTMLInputElement} $input - Checkbox input\n */\n unCheckExclusiveInputs($input) {\n const allInputsWithSameNameAndExclusiveBehaviour =\n document.querySelectorAll(\n `input[data-behaviour=\"exclusive\"][type=\"checkbox\"][name=\"${$input.name}\"]`\n )\n\n allInputsWithSameNameAndExclusiveBehaviour.forEach(($exclusiveInput) => {\n const hasSameFormOwner = $input.form === $exclusiveInput.form\n if (hasSameFormOwner) {\n $exclusiveInput.checked = false\n this.syncConditionalRevealWithInputState($exclusiveInput)\n }\n })\n }\n\n /**\n * Click event handler\n *\n * Handle a click within the $module – if the click occurred on a checkbox,\n * sync the state of any associated conditional reveal with the checkbox\n * state.\n *\n * @private\n * @param {MouseEvent} event - Click event\n */\n handleClick(event) {\n const $clickedInput = event.target\n\n // Ignore clicks on things that aren't checkbox inputs\n if (\n !($clickedInput instanceof HTMLInputElement) ||\n $clickedInput.type !== 'checkbox'\n ) {\n return\n }\n\n // If the checkbox conditionally-reveals some content, sync the state\n const hasAriaControls = $clickedInput.getAttribute('aria-controls')\n if (hasAriaControls) {\n this.syncConditionalRevealWithInputState($clickedInput)\n }\n\n // No further behaviour needed for unchecking\n if (!$clickedInput.checked) {\n return\n }\n\n // Handle 'exclusive' checkbox behaviour (ie \"None of these\")\n const hasBehaviourExclusive =\n $clickedInput.getAttribute('data-behaviour') === 'exclusive'\n if (hasBehaviourExclusive) {\n this.unCheckAllInputsExcept($clickedInput)\n } else {\n this.unCheckExclusiveInputs($clickedInput)\n }\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'govuk-checkboxes'\n}\n"],"names":["GOVUKFrontendError","Error","constructor","args","name","SupportError","$scope","document","body","supportMessage","HTMLScriptElement","prototype","ElementError","messageOrOptions","message","componentName","identifier","element","expectedType","isSupported","classList","contains","GOVUKFrontendComponent","checkSupport","Checkboxes","$module","$inputs","HTMLElement","querySelectorAll","length","forEach","$input","targetId","getAttribute","getElementById","setAttribute","removeAttribute","window","addEventListener","syncAllConditionalReveals","event","handleClick","syncConditionalRevealWithInputState","$target","inputIsChecked","checked","toString","toggle","unCheckAllInputsExcept","allInputsWithSameName","$inputWithSameName","hasSameFormOwner","form","unCheckExclusiveInputs","allInputsWithSameNameAndExclusiveBehaviour","$exclusiveInput","$clickedInput","target","HTMLInputElement","type","hasAriaControls","hasBehaviourExclusive","moduleName"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ElementError } from '../../errors/index.mjs';
|
|
2
|
+
import { GOVUKFrontendComponent } from '../../govuk-frontend-component.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Checkboxes component
|
|
6
|
+
*
|
|
7
|
+
* @preserve
|
|
8
|
+
*/
|
|
9
|
+
class Checkboxes extends GOVUKFrontendComponent {
|
|
10
|
+
/**
|
|
11
|
+
* Checkboxes can be associated with a 'conditionally revealed' content block
|
|
12
|
+
* – for example, a checkbox for 'Phone' could reveal an additional form field
|
|
13
|
+
* for the user to enter their phone number.
|
|
14
|
+
*
|
|
15
|
+
* These associations are made using a `data-aria-controls` attribute, which
|
|
16
|
+
* is promoted to an aria-controls attribute during initialisation.
|
|
17
|
+
*
|
|
18
|
+
* We also need to restore the state of any conditional reveals on the page
|
|
19
|
+
* (for example if the user has navigated back), and set up event handlers to
|
|
20
|
+
* keep the reveal in sync with the checkbox state.
|
|
21
|
+
*
|
|
22
|
+
* @param {Element | null} $module - HTML element to use for checkboxes
|
|
23
|
+
*/
|
|
24
|
+
constructor($module) {
|
|
25
|
+
super();
|
|
26
|
+
this.$module = void 0;
|
|
27
|
+
this.$inputs = void 0;
|
|
28
|
+
if (!($module instanceof HTMLElement)) {
|
|
29
|
+
throw new ElementError({
|
|
30
|
+
componentName: 'Checkboxes',
|
|
31
|
+
element: $module,
|
|
32
|
+
identifier: 'Root element (`$module`)'
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const $inputs = $module.querySelectorAll('input[type="checkbox"]');
|
|
36
|
+
if (!$inputs.length) {
|
|
37
|
+
throw new ElementError({
|
|
38
|
+
componentName: 'Checkboxes',
|
|
39
|
+
identifier: 'Form inputs (`<input type="checkbox">`)'
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
this.$module = $module;
|
|
43
|
+
this.$inputs = $inputs;
|
|
44
|
+
this.$inputs.forEach($input => {
|
|
45
|
+
const targetId = $input.getAttribute('data-aria-controls');
|
|
46
|
+
if (!targetId) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (!document.getElementById(targetId)) {
|
|
50
|
+
throw new ElementError({
|
|
51
|
+
componentName: 'Checkboxes',
|
|
52
|
+
identifier: `Conditional reveal (\`id="${targetId}"\`)`
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
$input.setAttribute('aria-controls', targetId);
|
|
56
|
+
$input.removeAttribute('data-aria-controls');
|
|
57
|
+
});
|
|
58
|
+
window.addEventListener('pageshow', () => this.syncAllConditionalReveals());
|
|
59
|
+
this.syncAllConditionalReveals();
|
|
60
|
+
this.$module.addEventListener('click', event => this.handleClick(event));
|
|
61
|
+
}
|
|
62
|
+
syncAllConditionalReveals() {
|
|
63
|
+
this.$inputs.forEach($input => this.syncConditionalRevealWithInputState($input));
|
|
64
|
+
}
|
|
65
|
+
syncConditionalRevealWithInputState($input) {
|
|
66
|
+
const targetId = $input.getAttribute('aria-controls');
|
|
67
|
+
if (!targetId) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const $target = document.getElementById(targetId);
|
|
71
|
+
if ($target != null && $target.classList.contains('govuk-checkboxes__conditional')) {
|
|
72
|
+
const inputIsChecked = $input.checked;
|
|
73
|
+
$input.setAttribute('aria-expanded', inputIsChecked.toString());
|
|
74
|
+
$target.classList.toggle('govuk-checkboxes__conditional--hidden', !inputIsChecked);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
unCheckAllInputsExcept($input) {
|
|
78
|
+
const allInputsWithSameName = document.querySelectorAll(`input[type="checkbox"][name="${$input.name}"]`);
|
|
79
|
+
allInputsWithSameName.forEach($inputWithSameName => {
|
|
80
|
+
const hasSameFormOwner = $input.form === $inputWithSameName.form;
|
|
81
|
+
if (hasSameFormOwner && $inputWithSameName !== $input) {
|
|
82
|
+
$inputWithSameName.checked = false;
|
|
83
|
+
this.syncConditionalRevealWithInputState($inputWithSameName);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
unCheckExclusiveInputs($input) {
|
|
88
|
+
const allInputsWithSameNameAndExclusiveBehaviour = document.querySelectorAll(`input[data-behaviour="exclusive"][type="checkbox"][name="${$input.name}"]`);
|
|
89
|
+
allInputsWithSameNameAndExclusiveBehaviour.forEach($exclusiveInput => {
|
|
90
|
+
const hasSameFormOwner = $input.form === $exclusiveInput.form;
|
|
91
|
+
if (hasSameFormOwner) {
|
|
92
|
+
$exclusiveInput.checked = false;
|
|
93
|
+
this.syncConditionalRevealWithInputState($exclusiveInput);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
handleClick(event) {
|
|
98
|
+
const $clickedInput = event.target;
|
|
99
|
+
if (!($clickedInput instanceof HTMLInputElement) || $clickedInput.type !== 'checkbox') {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const hasAriaControls = $clickedInput.getAttribute('aria-controls');
|
|
103
|
+
if (hasAriaControls) {
|
|
104
|
+
this.syncConditionalRevealWithInputState($clickedInput);
|
|
105
|
+
}
|
|
106
|
+
if (!$clickedInput.checked) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const hasBehaviourExclusive = $clickedInput.getAttribute('data-behaviour') === 'exclusive';
|
|
110
|
+
if (hasBehaviourExclusive) {
|
|
111
|
+
this.unCheckAllInputsExcept($clickedInput);
|
|
112
|
+
} else {
|
|
113
|
+
this.unCheckExclusiveInputs($clickedInput);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
Checkboxes.moduleName = 'govuk-checkboxes';
|
|
118
|
+
|
|
119
|
+
export { Checkboxes };
|
|
120
|
+
//# sourceMappingURL=checkboxes.mjs.map
|