govuk_publishing_components 51.1.1 → 51.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/component_guide/application.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +1 -0
- data/app/models/govuk_publishing_components/audit_comparer.rb +3 -3
- data/app/views/govuk_publishing_components/components/_title.html.erb +2 -3
- data/app/views/govuk_publishing_components/components/docs/add_another.yml +1 -1
- data/lib/govuk_publishing_components/presenters/checkboxes_helper.rb +1 -1
- data/lib/govuk_publishing_components/presenters/shared_helper.rb +0 -11
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +217 -184
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +216 -184
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.mjs +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.scss +6 -0
- data/node_modules/govuk-frontend/dist/govuk/all.scss.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/common/configuration.mjs +164 -0
- data/node_modules/govuk-frontend/dist/govuk/common/configuration.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +1 -87
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +174 -140
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +173 -139
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +17 -16
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/macro-options.json +4 -4
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/macro-options.json +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +6 -8
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/input/macro-options.json +4 -4
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +6 -8
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro-options.json +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/macro-options.json +1 -1
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/init.mjs +17 -13
- data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +5 -10
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -1
- data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +1 -1
- data/node_modules/govuk-frontend/package.json +9 -9
- metadata +4 -6
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +0 -18
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map +0 -1
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +0 -31
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map +0 -1
@@ -54,11 +54,11 @@ function initAll(config) {
|
|
54
54
|
*
|
55
55
|
* Any component errors will be caught and logged to the console.
|
56
56
|
*
|
57
|
-
* @template {CompatibleClass}
|
58
|
-
* @param {
|
59
|
-
* @param {
|
60
|
-
* @param {OnErrorCallback<
|
61
|
-
* @returns {Array<InstanceType<
|
57
|
+
* @template {CompatibleClass} ComponentClass
|
58
|
+
* @param {ComponentClass} Component - class of the component to create
|
59
|
+
* @param {ComponentConfig<ComponentClass>} [config] - Config supplied to component
|
60
|
+
* @param {OnErrorCallback<ComponentClass> | Element | Document | CreateAllOptions<ComponentClass> } [createAllOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init
|
61
|
+
* @returns {Array<InstanceType<ComponentClass>>} - array of instantiated components
|
62
62
|
*/
|
63
63
|
function createAll(Component, config, createAllOptions) {
|
64
64
|
let $scope = document;
|
@@ -105,7 +105,7 @@ function createAll(Component, config, createAllOptions) {
|
|
105
105
|
}).filter(Boolean);
|
106
106
|
}
|
107
107
|
/**
|
108
|
-
* @typedef {{new (...args: any[]): any,
|
108
|
+
* @typedef {{new (...args: any[]): any, moduleName: string}} CompatibleClass
|
109
109
|
*/
|
110
110
|
/**
|
111
111
|
* Config for all components via `initAll()`
|
@@ -139,23 +139,27 @@ function createAll(Component, config, createAllOptions) {
|
|
139
139
|
* @typedef {keyof Config} ConfigKey
|
140
140
|
*/
|
141
141
|
/**
|
142
|
-
* @template {CompatibleClass}
|
142
|
+
* @template {CompatibleClass} ComponentClass
|
143
|
+
* @typedef {ConstructorParameters<ComponentClass>[1]} ComponentConfig
|
144
|
+
*/
|
145
|
+
/**
|
146
|
+
* @template {CompatibleClass} ComponentClass
|
143
147
|
* @typedef {object} ErrorContext
|
144
148
|
* @property {Element} [element] - Element used for component module initialisation
|
145
|
-
* @property {
|
146
|
-
* @property {
|
149
|
+
* @property {ComponentClass} [component] - Class of component
|
150
|
+
* @property {ComponentConfig<ComponentClass>} config - Config supplied to component
|
147
151
|
*/
|
148
152
|
/**
|
149
|
-
* @template {CompatibleClass}
|
153
|
+
* @template {CompatibleClass} ComponentClass
|
150
154
|
* @callback OnErrorCallback
|
151
155
|
* @param {unknown} error - Thrown error
|
152
|
-
* @param {ErrorContext<
|
156
|
+
* @param {ErrorContext<ComponentClass>} context - Object containing the element, component class and configuration
|
153
157
|
*/
|
154
158
|
/**
|
155
|
-
* @template {CompatibleClass}
|
159
|
+
* @template {CompatibleClass} ComponentClass
|
156
160
|
* @typedef {object} CreateAllOptions
|
157
161
|
* @property {Element | Document} [scope] - scope of the document to search within
|
158
|
-
* @property {OnErrorCallback<
|
162
|
+
* @property {OnErrorCallback<ComponentClass>} [onError] - callback function if error throw by component on init
|
159
163
|
*/
|
160
164
|
|
161
165
|
export { createAll, initAll };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init.mjs","sources":["../../src/govuk/init.mjs"],"sourcesContent":["import { isSupported } from './common/index.mjs'\nimport { Accordion } from './components/accordion/accordion.mjs'\nimport { Button } from './components/button/button.mjs'\nimport { CharacterCount } from './components/character-count/character-count.mjs'\nimport { Checkboxes } from './components/checkboxes/checkboxes.mjs'\nimport { ErrorSummary } from './components/error-summary/error-summary.mjs'\nimport { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs'\nimport { Header } from './components/header/header.mjs'\nimport { NotificationBanner } from './components/notification-banner/notification-banner.mjs'\nimport { PasswordInput } from './components/password-input/password-input.mjs'\nimport { Radios } from './components/radios/radios.mjs'\nimport { ServiceNavigation } from './components/service-navigation/service-navigation.mjs'\nimport { SkipLink } from './components/skip-link/skip-link.mjs'\nimport { Tabs } from './components/tabs/tabs.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Initialise all components\n *\n * Use the `data-module` attributes to find, instantiate and init all of the\n * components provided as part of GOV.UK Frontend.\n *\n * @param {Config & { scope?: Element, onError?: OnErrorCallback<CompatibleClass> }} [config] - Config for all components (with optional scope)\n */\nfunction initAll(config) {\n config = typeof config !== 'undefined' ? config : {}\n\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n if (config.onError) {\n config.onError(new SupportError(), {\n config\n })\n } else {\n console.log(new SupportError())\n }\n return\n }\n\n const components = /** @type {const} */ ([\n [Accordion, config.accordion],\n [Button, config.button],\n [CharacterCount, config.characterCount],\n [Checkboxes],\n [ErrorSummary, config.errorSummary],\n [ExitThisPage, config.exitThisPage],\n [Header],\n [NotificationBanner, config.notificationBanner],\n [PasswordInput, config.passwordInput],\n [Radios],\n [ServiceNavigation],\n [SkipLink],\n [Tabs]\n ])\n\n // Allow the user to initialise GOV.UK Frontend in only certain sections of the page\n // Defaults to the entire document if nothing is set.\n // const $scope = config.scope ?? document\n\n const options = {\n scope: config.scope ?? document,\n onError: config.onError\n }\n\n components.forEach(([Component, config]) => {\n createAll(Component, config, options)\n })\n}\n\n/**\n * Create all instances of a specific component on the page\n *\n * Uses the `data-module` attribute to find all elements matching the specified\n * component on the page, creating instances of the component object for each\n * of them.\n *\n * Any component errors will be caught and logged to the console.\n *\n * @template {CompatibleClass} T\n * @param {T} Component - class of the component to create\n * @param {T[\"defaults\"]} [config] - Config supplied to component\n * @param {OnErrorCallback<T> | Element | Document | CreateAllOptions<T> } [createAllOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init\n * @returns {Array<InstanceType<T>>} - array of instantiated components\n */\nfunction createAll(Component, config, createAllOptions) {\n let /** @type {Element | Document} */ $scope = document\n let /** @type {OnErrorCallback<Component> | undefined} */ onError\n\n if (typeof createAllOptions === 'object') {\n createAllOptions = /** @type {CreateAllOptions<Component>} */ (\n // eslint-disable-next-line no-self-assign\n createAllOptions\n )\n\n $scope = createAllOptions.scope ?? $scope\n onError = createAllOptions.onError\n }\n\n if (typeof createAllOptions === 'function') {\n onError = createAllOptions\n }\n\n if (createAllOptions instanceof HTMLElement) {\n $scope = createAllOptions\n }\n\n const $elements = $scope.querySelectorAll(\n `[data-module=\"${Component.moduleName}\"]`\n )\n\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n if (onError) {\n onError(new SupportError(), {\n component: Component,\n config\n })\n } else {\n console.log(new SupportError())\n }\n return []\n }\n\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-return --\n * We can't define CompatibleClass as `{new(): CompatibleClass, moduleName: string}`,\n * as when doing `typeof Accordion` (or any component), TypeScript doesn't seem\n * to acknowledge the static `moduleName` that's set in our component classes.\n * This means we have to set the constructor of `CompatibleClass` as `{new(): any}`,\n * leading to ESLint frowning that we're returning `any[]`.\n */\n return Array.from($elements)\n .map(($element) => {\n try {\n // Only pass config to components that accept it\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof config !== 'undefined'\n ? new Component($element, config)\n : new Component($element)\n } catch (error) {\n if (onError) {\n onError(error, {\n element: $element,\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return null\n }\n })\n .filter(Boolean) // Exclude components that errored\n}\n\nexport { initAll, createAll }\n\n/* eslint-disable jsdoc/valid-types --\n * `{new(...args: any[] ): object}` is not recognised as valid\n * https://github.com/gajus/eslint-plugin-jsdoc/issues/145#issuecomment-1308722878\n * https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131\n **/\n\n/**\n * @typedef {{new (...args: any[]): any, defaults?: object, moduleName: string}} CompatibleClass\n */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Config for all components via `initAll()`\n *\n * @typedef {object} Config\n * @property {AccordionConfig} [accordion] - Accordion config\n * @property {ButtonConfig} [button] - Button config\n * @property {CharacterCountConfig} [characterCount] - Character Count config\n * @property {ErrorSummaryConfig} [errorSummary] - Error Summary config\n * @property {ExitThisPageConfig} [exitThisPage] - Exit This Page config\n * @property {NotificationBannerConfig} [notificationBanner] - Notification Banner config\n * @property {PasswordInputConfig} [passwordInput] - Password input config\n */\n\n/**\n * Config for individual components\n *\n * @typedef {import('./components/accordion/accordion.mjs').AccordionConfig} AccordionConfig\n * @typedef {import('./components/accordion/accordion.mjs').AccordionTranslations} AccordionTranslations\n * @typedef {import('./components/button/button.mjs').ButtonConfig} ButtonConfig\n * @typedef {import('./components/character-count/character-count.mjs').CharacterCountConfig} CharacterCountConfig\n * @typedef {import('./components/character-count/character-count.mjs').CharacterCountTranslations} CharacterCountTranslations\n * @typedef {import('./components/error-summary/error-summary.mjs').ErrorSummaryConfig} ErrorSummaryConfig\n * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageConfig} ExitThisPageConfig\n * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageTranslations} ExitThisPageTranslations\n * @typedef {import('./components/notification-banner/notification-banner.mjs').NotificationBannerConfig} NotificationBannerConfig\n * @typedef {import('./components/password-input/password-input.mjs').PasswordInputConfig} PasswordInputConfig\n */\n\n/**\n * Component config keys, e.g. `accordion` and `characterCount`\n *\n * @typedef {keyof Config} ConfigKey\n */\n\n/**\n * @template {CompatibleClass} T\n * @typedef {object} ErrorContext\n * @property {Element} [element] - Element used for component module initialisation\n * @property {T} [component] - Class of component\n * @property {T[\"defaults\"]} config - Config supplied to component\n */\n\n/**\n * @template {CompatibleClass} T\n * @callback OnErrorCallback\n * @param {unknown} error - Thrown error\n * @param {ErrorContext<T>} context - Object containing the element, component class and configuration\n */\n\n/**\n * @template {CompatibleClass} T\n * @typedef {object} CreateAllOptions\n * @property {Element | Document} [scope] - scope of the document to search within\n * @property {OnErrorCallback<T>} [onError] - callback function if error throw by component on init\n */\n"],"names":["initAll","config","_config$scope","isSupported","onError","SupportError","console","log","components","Accordion","accordion","Button","button","CharacterCount","characterCount","Checkboxes","ErrorSummary","errorSummary","ExitThisPage","exitThisPage","Header","NotificationBanner","notificationBanner","PasswordInput","passwordInput","Radios","ServiceNavigation","SkipLink","Tabs","options","scope","document","forEach","Component","createAll","createAllOptions","$scope","_createAllOptions$sco","HTMLElement","$elements","querySelectorAll","moduleName","component","Array","from","map","$element","error","element","filter","Boolean"],"mappings":";;;;;;;;;;;;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAOA,CAACC,MAAM,EAAE;AAAA,EAAA,IAAAC,aAAA,CAAA;EACvBD,MAAM,GAAG,OAAOA,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAG,EAAE,CAAA;AAGpD,EAAA,IAAI,CAACE,WAAW,EAAE,EAAE;IAClB,IAAIF,MAAM,CAACG,OAAO,EAAE;AAClBH,MAAAA,MAAM,CAACG,OAAO,CAAC,IAAIC,YAAY,EAAE,EAAE;AACjCJ,QAAAA,MAAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;AACLK,MAAAA,OAAO,CAACC,GAAG,CAAC,IAAIF,YAAY,EAAE,CAAC,CAAA;AACjC,KAAA;AACA,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,MAAMG,UAAU,GAAyB,CACvC,CAACC,SAAS,EAAER,MAAM,CAACS,SAAS,CAAC,EAC7B,CAACC,MAAM,EAAEV,MAAM,CAACW,MAAM,CAAC,EACvB,CAACC,cAAc,EAAEZ,MAAM,CAACa,cAAc,CAAC,EACvC,CAACC,UAAU,CAAC,EACZ,CAACC,YAAY,EAAEf,MAAM,CAACgB,YAAY,CAAC,EACnC,CAACC,YAAY,EAAEjB,MAAM,CAACkB,YAAY,CAAC,EACnC,CAACC,MAAM,CAAC,EACR,CAACC,kBAAkB,EAAEpB,MAAM,CAACqB,kBAAkB,CAAC,EAC/C,CAACC,aAAa,EAAEtB,MAAM,CAACuB,aAAa,CAAC,EACrC,CAACC,MAAM,CAAC,EACR,CAACC,iBAAiB,CAAC,EACnB,CAACC,QAAQ,CAAC,EACV,CAACC,IAAI,CAAC,CACN,CAAA;AAMF,EAAA,MAAMC,OAAO,GAAG;IACdC,KAAK,EAAA,CAAA5B,aAAA,GAAED,MAAM,CAAC6B,KAAK,KAAA,IAAA,GAAA5B,aAAA,GAAI6B,QAAQ;IAC/B3B,OAAO,EAAEH,MAAM,CAACG,OAAAA;GACjB,CAAA;EAEDI,UAAU,CAACwB,OAAO,CAAC,CAAC,CAACC,SAAS,EAAEhC,MAAM,CAAC,KAAK;AAC1CiC,IAAAA,SAAS,CAACD,SAAS,EAAEhC,MAAM,EAAE4B,OAAO,CAAC,CAAA;AACvC,GAAC,CAAC,CAAA;AACJ,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,SAASA,CAACD,SAAS,EAAEhC,MAAM,EAAEkC,gBAAgB,EAAE;EACtD,IAAsCC,MAAM,GAAGL,QAAQ,CAAA;AACvD,EAAA,IAA0D3B,OAAO,CAAA;AAEjE,EAAA,IAAI,OAAO+B,gBAAgB,KAAK,QAAQ,EAAE;AAAA,IAAA,IAAAE,qBAAA,CAAA;AACxCF,IAAAA,gBAAgB,GAEdA,gBACD,CAAA;IAEDC,MAAM,GAAA,CAAAC,qBAAA,GAAGF,gBAAgB,CAACL,KAAK,KAAA,IAAA,GAAAO,qBAAA,GAAID,MAAM,CAAA;IACzChC,OAAO,GAAG+B,gBAAgB,CAAC/B,OAAO,CAAA;AACpC,GAAA;AAEA,EAAA,IAAI,OAAO+B,gBAAgB,KAAK,UAAU,EAAE;AAC1C/B,IAAAA,OAAO,GAAG+B,gBAAgB,CAAA;AAC5B,GAAA;EAEA,IAAIA,gBAAgB,YAAYG,WAAW,EAAE;AAC3CF,IAAAA,MAAM,GAAGD,gBAAgB,CAAA;AAC3B,GAAA;EAEA,MAAMI,SAAS,GAAGH,MAAM,CAACI,gBAAgB,CACvC,CAAA,cAAA,EAAiBP,SAAS,CAACQ,UAAU,CAAA,EAAA,CACvC,CAAC,CAAA;AAGD,EAAA,IAAI,CAACtC,WAAW,EAAE,EAAE;AAClB,IAAA,IAAIC,OAAO,EAAE;AACXA,MAAAA,OAAO,CAAC,IAAIC,YAAY,EAAE,EAAE;AAC1BqC,QAAAA,SAAS,EAAET,SAAS;AACpBhC,QAAAA,MAAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;AACLK,MAAAA,OAAO,CAACC,GAAG,CAAC,IAAIF,YAAY,EAAE,CAAC,CAAA;AACjC,KAAA;AACA,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EASA,OAAOsC,KAAK,CAACC,IAAI,CAACL,SAAS,CAAC,CACzBM,GAAG,CAAEC,QAAQ,IAAK;IACjB,IAAI;AAGF,MAAA,OAAO,OAAO7C,MAAM,KAAK,WAAW,GAChC,IAAIgC,SAAS,CAACa,QAAQ,EAAE7C,MAAM,CAAC,GAC/B,IAAIgC,SAAS,CAACa,QAAQ,CAAC,CAAA;KAC5B,CAAC,OAAOC,KAAK,EAAE;AACd,MAAA,IAAI3C,OAAO,EAAE;QACXA,OAAO,CAAC2C,KAAK,EAAE;AACbC,UAAAA,OAAO,EAAEF,QAAQ;AACjBJ,UAAAA,SAAS,EAAET,SAAS;AACpBhC,UAAAA,MAAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAC,MAAM;AACLK,QAAAA,OAAO,CAACC,GAAG,CAACwC,KAAK,CAAC,CAAA;AACpB,OAAA;AAEA,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAC,CAAC,CACDE,MAAM,CAACC,OAAO,CAAC,CAAA;AACpB,CAAA;AAUA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;"}
|
1
|
+
{"version":3,"file":"init.mjs","sources":["../../src/govuk/init.mjs"],"sourcesContent":["import { isSupported } from './common/index.mjs'\nimport { Accordion } from './components/accordion/accordion.mjs'\nimport { Button } from './components/button/button.mjs'\nimport { CharacterCount } from './components/character-count/character-count.mjs'\nimport { Checkboxes } from './components/checkboxes/checkboxes.mjs'\nimport { ErrorSummary } from './components/error-summary/error-summary.mjs'\nimport { ExitThisPage } from './components/exit-this-page/exit-this-page.mjs'\nimport { Header } from './components/header/header.mjs'\nimport { NotificationBanner } from './components/notification-banner/notification-banner.mjs'\nimport { PasswordInput } from './components/password-input/password-input.mjs'\nimport { Radios } from './components/radios/radios.mjs'\nimport { ServiceNavigation } from './components/service-navigation/service-navigation.mjs'\nimport { SkipLink } from './components/skip-link/skip-link.mjs'\nimport { Tabs } from './components/tabs/tabs.mjs'\nimport { SupportError } from './errors/index.mjs'\n\n/**\n * Initialise all components\n *\n * Use the `data-module` attributes to find, instantiate and init all of the\n * components provided as part of GOV.UK Frontend.\n *\n * @param {Config & { scope?: Element, onError?: OnErrorCallback<CompatibleClass> }} [config] - Config for all components (with optional scope)\n */\nfunction initAll(config) {\n config = typeof config !== 'undefined' ? config : {}\n\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n if (config.onError) {\n config.onError(new SupportError(), {\n config\n })\n } else {\n console.log(new SupportError())\n }\n return\n }\n\n const components = /** @type {const} */ ([\n [Accordion, config.accordion],\n [Button, config.button],\n [CharacterCount, config.characterCount],\n [Checkboxes],\n [ErrorSummary, config.errorSummary],\n [ExitThisPage, config.exitThisPage],\n [Header],\n [NotificationBanner, config.notificationBanner],\n [PasswordInput, config.passwordInput],\n [Radios],\n [ServiceNavigation],\n [SkipLink],\n [Tabs]\n ])\n\n // Allow the user to initialise GOV.UK Frontend in only certain sections of the page\n // Defaults to the entire document if nothing is set.\n // const $scope = config.scope ?? document\n\n const options = {\n scope: config.scope ?? document,\n onError: config.onError\n }\n\n components.forEach(([Component, config]) => {\n createAll(Component, config, options)\n })\n}\n\n/**\n * Create all instances of a specific component on the page\n *\n * Uses the `data-module` attribute to find all elements matching the specified\n * component on the page, creating instances of the component object for each\n * of them.\n *\n * Any component errors will be caught and logged to the console.\n *\n * @template {CompatibleClass} ComponentClass\n * @param {ComponentClass} Component - class of the component to create\n * @param {ComponentConfig<ComponentClass>} [config] - Config supplied to component\n * @param {OnErrorCallback<ComponentClass> | Element | Document | CreateAllOptions<ComponentClass> } [createAllOptions] - options for createAll including scope of the document to search within and callback function if error throw by component on init\n * @returns {Array<InstanceType<ComponentClass>>} - array of instantiated components\n */\nfunction createAll(Component, config, createAllOptions) {\n let /** @type {Element | Document} */ $scope = document\n let /** @type {OnErrorCallback<Component> | undefined} */ onError\n\n if (typeof createAllOptions === 'object') {\n createAllOptions = /** @type {CreateAllOptions<Component>} */ (\n // eslint-disable-next-line no-self-assign\n createAllOptions\n )\n\n $scope = createAllOptions.scope ?? $scope\n onError = createAllOptions.onError\n }\n\n if (typeof createAllOptions === 'function') {\n onError = createAllOptions\n }\n\n if (createAllOptions instanceof HTMLElement) {\n $scope = createAllOptions\n }\n\n const $elements = $scope.querySelectorAll(\n `[data-module=\"${Component.moduleName}\"]`\n )\n\n // Skip initialisation when GOV.UK Frontend is not supported\n if (!isSupported()) {\n if (onError) {\n onError(new SupportError(), {\n component: Component,\n config\n })\n } else {\n console.log(new SupportError())\n }\n return []\n }\n\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-return --\n * We can't define CompatibleClass as `{new(): CompatibleClass, moduleName: string}`,\n * as when doing `typeof Accordion` (or any component), TypeScript doesn't seem\n * to acknowledge the static `moduleName` that's set in our component classes.\n * This means we have to set the constructor of `CompatibleClass` as `{new(): any}`,\n * leading to ESLint frowning that we're returning `any[]`.\n */\n return Array.from($elements)\n .map(($element) => {\n try {\n // Only pass config to components that accept it\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof config !== 'undefined'\n ? new Component($element, config)\n : new Component($element)\n } catch (error) {\n if (onError) {\n onError(error, {\n element: $element,\n component: Component,\n config\n })\n } else {\n console.log(error)\n }\n\n return null\n }\n })\n .filter(Boolean) // Exclude components that errored\n}\n\nexport { initAll, createAll }\n\n/* eslint-disable jsdoc/valid-types --\n * `{new(...args: any[] ): object}` is not recognised as valid\n * https://github.com/gajus/eslint-plugin-jsdoc/issues/145#issuecomment-1308722878\n * https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131\n **/\n\n/**\n * @typedef {{new (...args: any[]): any, moduleName: string}} CompatibleClass\n */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Config for all components via `initAll()`\n *\n * @typedef {object} Config\n * @property {AccordionConfig} [accordion] - Accordion config\n * @property {ButtonConfig} [button] - Button config\n * @property {CharacterCountConfig} [characterCount] - Character Count config\n * @property {ErrorSummaryConfig} [errorSummary] - Error Summary config\n * @property {ExitThisPageConfig} [exitThisPage] - Exit This Page config\n * @property {NotificationBannerConfig} [notificationBanner] - Notification Banner config\n * @property {PasswordInputConfig} [passwordInput] - Password input config\n */\n\n/**\n * Config for individual components\n *\n * @typedef {import('./components/accordion/accordion.mjs').AccordionConfig} AccordionConfig\n * @typedef {import('./components/accordion/accordion.mjs').AccordionTranslations} AccordionTranslations\n * @typedef {import('./components/button/button.mjs').ButtonConfig} ButtonConfig\n * @typedef {import('./components/character-count/character-count.mjs').CharacterCountConfig} CharacterCountConfig\n * @typedef {import('./components/character-count/character-count.mjs').CharacterCountTranslations} CharacterCountTranslations\n * @typedef {import('./components/error-summary/error-summary.mjs').ErrorSummaryConfig} ErrorSummaryConfig\n * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageConfig} ExitThisPageConfig\n * @typedef {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageTranslations} ExitThisPageTranslations\n * @typedef {import('./components/notification-banner/notification-banner.mjs').NotificationBannerConfig} NotificationBannerConfig\n * @typedef {import('./components/password-input/password-input.mjs').PasswordInputConfig} PasswordInputConfig\n */\n\n/**\n * Component config keys, e.g. `accordion` and `characterCount`\n *\n * @typedef {keyof Config} ConfigKey\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {ConstructorParameters<ComponentClass>[1]} ComponentConfig\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} ErrorContext\n * @property {Element} [element] - Element used for component module initialisation\n * @property {ComponentClass} [component] - Class of component\n * @property {ComponentConfig<ComponentClass>} config - Config supplied to component\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @callback OnErrorCallback\n * @param {unknown} error - Thrown error\n * @param {ErrorContext<ComponentClass>} context - Object containing the element, component class and configuration\n */\n\n/**\n * @template {CompatibleClass} ComponentClass\n * @typedef {object} CreateAllOptions\n * @property {Element | Document} [scope] - scope of the document to search within\n * @property {OnErrorCallback<ComponentClass>} [onError] - callback function if error throw by component on init\n */\n"],"names":["initAll","config","_config$scope","isSupported","onError","SupportError","console","log","components","Accordion","accordion","Button","button","CharacterCount","characterCount","Checkboxes","ErrorSummary","errorSummary","ExitThisPage","exitThisPage","Header","NotificationBanner","notificationBanner","PasswordInput","passwordInput","Radios","ServiceNavigation","SkipLink","Tabs","options","scope","document","forEach","Component","createAll","createAllOptions","$scope","_createAllOptions$sco","HTMLElement","$elements","querySelectorAll","moduleName","component","Array","from","map","$element","error","element","filter","Boolean"],"mappings":"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"}
|
@@ -216,8 +216,7 @@ $_govuk-typography-scale-modern: (
|
|
216
216
|
),
|
217
217
|
27: (
|
218
218
|
// Made same as 24 on mobile (consider deprecating this size)
|
219
|
-
null:
|
220
|
-
(
|
219
|
+
null: (
|
221
220
|
font-size: 21px,
|
222
221
|
line-height: 25px
|
223
222
|
),
|
@@ -232,8 +231,7 @@ $_govuk-typography-scale-modern: (
|
|
232
231
|
),
|
233
232
|
24: (
|
234
233
|
// Bump up mobile size from 18/20 to 21/25
|
235
|
-
null:
|
236
|
-
(
|
234
|
+
null: (
|
237
235
|
font-size: 21px,
|
238
236
|
line-height: 25px
|
239
237
|
),
|
@@ -248,8 +246,7 @@ $_govuk-typography-scale-modern: (
|
|
248
246
|
),
|
249
247
|
19: (
|
250
248
|
// Stay at 19/25 at all sizes
|
251
|
-
null:
|
252
|
-
(
|
249
|
+
null: (
|
253
250
|
font-size: 19px,
|
254
251
|
line-height: 25px
|
255
252
|
),
|
@@ -260,8 +257,7 @@ $_govuk-typography-scale-modern: (
|
|
260
257
|
),
|
261
258
|
16: (
|
262
259
|
// Stay at 16/20 at all sizes
|
263
|
-
null:
|
264
|
-
(
|
260
|
+
null: (
|
265
261
|
font-size: 16px,
|
266
262
|
line-height: 20px
|
267
263
|
),
|
@@ -272,8 +268,7 @@ $_govuk-typography-scale-modern: (
|
|
272
268
|
),
|
273
269
|
14: (
|
274
270
|
// Stay at 14/20 at all sizes (consider deprecating this size)
|
275
|
-
null:
|
276
|
-
(
|
271
|
+
null: (
|
277
272
|
font-size: 14px,
|
278
273
|
line-height: 20px
|
279
274
|
),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/govuk/settings/_typography-responsive.scss"],"names":[],"mappings":"AAAA,GAAG;AACH,6BAA6B;AAC7B,GAAG;;AAEH,iBAAiB;AACjB,EAAE;AACF,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,yBAAyB;AACzB,EAAE;AACF,eAAe;AACf,iBAAiB;;AAEjB,oCAAoC;;AAEpC,wCAAwC;AACxC,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,yBAAyB;AACzB,EAAE;AACF,4BAA4B;AAC5B,EAAE;AACF,gBAAgB;AAChB,iBAAiB;;AAEjB,2CAA2C;;AAE3C,4CAA4C;AAC5C,EAAE;AACF,YAAY;AACZ,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,+EAA+E;AAC/E,mFAAmF;AACnF,EAAE;AACF,kBAAkB;;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHC;;AAED,4CAA4C;AAC5C,EAAE;AACF,YAAY;AACZ,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,+EAA+E;AAC/E,mFAAmF;AACnF,EAAE;AACF,kBAAkB;;AAElB
|
1
|
+
{"version":3,"sources":["../../../src/govuk/settings/_typography-responsive.scss"],"names":[],"mappings":"AAAA,GAAG;AACH,6BAA6B;AAC7B,GAAG;;AAEH,iBAAiB;AACjB,EAAE;AACF,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,yBAAyB;AACzB,EAAE;AACF,eAAe;AACf,iBAAiB;;AAEjB,oCAAoC;;AAEpC,wCAAwC;AACxC,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,yBAAyB;AACzB,EAAE;AACF,4BAA4B;AAC5B,EAAE;AACF,gBAAgB;AAChB,iBAAiB;;AAEjB,2CAA2C;;AAE3C,4CAA4C;AAC5C,EAAE;AACF,YAAY;AACZ,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,+EAA+E;AAC/E,mFAAmF;AACnF,EAAE;AACF,kBAAkB;;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHC;;AAED,4CAA4C;AAC5C,EAAE;AACF,YAAY;AACZ,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,+EAA+E;AAC/E,mFAAmF;AACnF,EAAE;AACF,kBAAkB;;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GC;;AAED,iCAAiC;AACjC,EAAE;AACF,8EAA8E;AAC9E,eAAe;AACf,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,UAAU;AACV,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,6EAA6E;AAC7E,EAAE;AACF,YAAY;AACZ,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,+EAA+E;AAC/E,mFAAmF;AACnF,EAAE;AACF,iBAAiB;;AAEjB;;;;UAIU","file":"_typography-responsive.scss","sourcesContent":["////\n/// @group settings/typography\n////\n\n/// Root font size\n///\n/// This is used to calculate rem sizes for the typography, and should match the\n/// _effective_ font-size of your root (or html) element.\n///\n/// Ideally you should not be setting the font-size on the html or root element\n/// in order to allow it to scale with user-preference, in which case this\n/// should be set to 16px.\n///\n/// @type Number\n/// @access public\n\n$govuk-root-font-size: 16px !default;\n\n/// Feature flag for new typography scale\n///\n/// When set to true, $govuk-typography-scale will use the new font map instead\n/// of the current/old one as well as apply changes in components to account\n/// for the updated scale.\n///\n/// Should be removed in 6.0.\n///\n/// @type Boolean\n/// @access public\n\n$govuk-new-typography-scale: false !default;\n\n/// The font map for the old typography scale\n///\n/// @type Map\n///\n/// @prop {Number} $point.$breakpoint.font-size - Font size for `$point` at `$breakpoint`\n/// @prop {Number} $point.$breakpoint.line-height - Line height for `$point` at `$breakpoint`\n/// @prop {Number} $point.print.font-size - Font size for `$point` when printing\n/// @prop {Number} $point.print.line-height - Line height for `$point` when printing\n///\n/// @access private\n\n$_govuk-typography-scale-legacy: (\n 80: (\n null: (\n font-size: 53px,\n line-height: 55px\n ),\n tablet: (\n font-size: 80px,\n line-height: 80px\n ),\n print: (\n font-size: 53pt,\n line-height: 1.1\n )\n ),\n 48: (\n null: (\n font-size: 32px,\n line-height: 35px\n ),\n tablet: (\n font-size: 48px,\n line-height: 50px\n ),\n print: (\n font-size: 32pt,\n line-height: 1.15\n )\n ),\n 36: (\n null: (\n font-size: 24px,\n line-height: 25px\n ),\n tablet: (\n font-size: 36px,\n line-height: 40px\n ),\n print: (\n font-size: 24pt,\n line-height: 1.05\n )\n ),\n 27: (\n null: (\n font-size: 18px,\n line-height: 20px\n ),\n tablet: (\n font-size: 27px,\n line-height: 30px\n ),\n print: (\n font-size: 18pt,\n line-height: 1.15\n )\n ),\n 24: (\n null: (\n font-size: 18px,\n line-height: 20px\n ),\n tablet: (\n font-size: 24px,\n line-height: 30px\n ),\n print: (\n font-size: 18pt,\n line-height: 1.15\n )\n ),\n 19: (\n null: (\n font-size: 16px,\n line-height: 20px\n ),\n tablet: (\n font-size: 19px,\n line-height: 25px\n ),\n print: (\n font-size: 14pt,\n line-height: 1.15\n )\n ),\n 16: (\n null: (\n font-size: 14px,\n line-height: 16px\n ),\n tablet: (\n font-size: 16px,\n line-height: 20px\n ),\n print: (\n font-size: 14pt,\n line-height: 1.2\n )\n ),\n 14: (\n null: (\n font-size: 12px,\n line-height: 15px\n ),\n tablet: (\n font-size: 14px,\n line-height: 20px\n ),\n print: (\n font-size: 12pt,\n line-height: 1.2\n ),\n deprecation: (\n key: \"govuk-typography-scale-14\",\n message: \"14 on the type scale is deprecated and will be removed as \" +\n \"a possible option in the next major version.\"\n )\n )\n);\n\n/// The font map for the new typography scale\n///\n/// @type Map\n///\n/// @prop {Number} $point.$breakpoint.font-size - Font size for `$point` at `$breakpoint`\n/// @prop {Number} $point.$breakpoint.line-height - Line height for `$point` at `$breakpoint`\n/// @prop {Number} $point.print.font-size - Font size for `$point` when printing\n/// @prop {Number} $point.print.line-height - Line height for `$point` when printing\n///\n/// @access private\n\n$_govuk-typography-scale-modern: (\n 80: (\n null: (\n font-size: 53px,\n line-height: 55px\n ),\n tablet: (\n font-size: 80px,\n line-height: 80px\n ),\n print: (\n font-size: 53pt,\n line-height: 1.1\n )\n ),\n 48: (\n null: (\n font-size: 32px,\n line-height: 35px\n ),\n tablet: (\n font-size: 48px,\n line-height: 50px\n ),\n print: (\n font-size: 32pt,\n line-height: 1.15\n )\n ),\n 36: (\n null: (\n font-size: 27px,\n line-height: 30px\n ),\n tablet: (\n font-size: 36px,\n line-height: 40px\n ),\n print: (\n font-size: 24pt,\n line-height: 1.05\n )\n ),\n 27: (\n // Made same as 24 on mobile (consider deprecating this size)\n null: (\n font-size: 21px,\n line-height: 25px\n ),\n tablet: (\n font-size: 27px,\n line-height: 30px\n ),\n print: (\n font-size: 18pt,\n line-height: 1.15\n )\n ),\n 24: (\n // Bump up mobile size from 18/20 to 21/25\n null: (\n font-size: 21px,\n line-height: 25px\n ),\n tablet: (\n font-size: 24px,\n line-height: 30px\n ),\n print: (\n font-size: 18pt,\n line-height: 1.15\n )\n ),\n 19: (\n // Stay at 19/25 at all sizes\n null: (\n font-size: 19px,\n line-height: 25px\n ),\n print: (\n font-size: 14pt,\n line-height: 1.15\n )\n ),\n 16: (\n // Stay at 16/20 at all sizes\n null: (\n font-size: 16px,\n line-height: 20px\n ),\n print: (\n font-size: 14pt,\n line-height: 1.2\n )\n ),\n 14: (\n // Stay at 14/20 at all sizes (consider deprecating this size)\n null: (\n font-size: 14px,\n line-height: 20px\n ),\n print: (\n font-size: 12pt,\n line-height: 1.2\n ),\n deprecation: (\n key: \"govuk-typography-scale-14\",\n message: \"14 on the type scale is deprecated and will be removed as \" +\n \"a possible option in the next major version.\"\n )\n )\n);\n\n/// Responsive typography font map\n///\n/// This is used to generate responsive typography that adapts according to the\n/// breakpoints.\n///\n/// Font size and font weight can be defined for each breakpoint. You can define\n/// different behaviour on tablet and desktop. The 'null' breakpoint is for\n/// mobile.\n///\n/// Line-heights will automatically be converted from pixel measurements into\n/// relative values. For example, with a font-size of 16px and a line-height of\n/// 24px, the line-height will be converted to 1.5 before output.\n///\n/// You can also specify a separate font size and line height for print media.\n///\n/// @type Map\n///\n/// @prop {Number} $point.$breakpoint.font-size - Font size for `$point` at `$breakpoint`\n/// @prop {Number} $point.$breakpoint.line-height - Line height for `$point` at `$breakpoint`\n/// @prop {Number} $point.print.font-size - Font size for `$point` when printing\n/// @prop {Number} $point.print.line-height - Line height for `$point` when printing\n///\n/// @access public\n\n$govuk-typography-scale: if(\n $govuk-new-typography-scale,\n $_govuk-typography-scale-modern,\n $_govuk-typography-scale-legacy\n) !default;\n"]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
"description": "GOV.UK Frontend contains the code you need to start building a user interface for government platforms and services.",
|
4
4
|
"urls": {
|
5
5
|
"documentation": "https://design-system.service.gov.uk/",
|
6
|
-
"releaseNotes": "https://github.com/alphagov/govuk-frontend/releases/tag/v5.
|
6
|
+
"releaseNotes": "https://github.com/alphagov/govuk-frontend/releases/tag/v5.8.0",
|
7
7
|
"versionHistory": "https://github.com/alphagov/govuk-frontend/releases"
|
8
8
|
}
|
9
9
|
},
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"name": "govuk-frontend",
|
3
3
|
"description": "GOV.UK Frontend contains the code you need to start building a user interface for government platforms and services.",
|
4
|
-
"version": "5.
|
4
|
+
"version": "5.8.0",
|
5
5
|
"main": "dist/govuk/all.bundle.js",
|
6
6
|
"module": "dist/govuk/all.mjs",
|
7
|
-
"sass": "dist/govuk/
|
7
|
+
"sass": "dist/govuk/index.scss",
|
8
8
|
"files": [
|
9
9
|
"dist",
|
10
10
|
"govuk-prototype-kit.config.json",
|
@@ -13,7 +13,7 @@
|
|
13
13
|
],
|
14
14
|
"exports": {
|
15
15
|
".": {
|
16
|
-
"sass": "./dist/govuk/
|
16
|
+
"sass": "./dist/govuk/index.scss",
|
17
17
|
"import": "./dist/govuk/all.mjs",
|
18
18
|
"require": "./dist/govuk/all.bundle.js",
|
19
19
|
"default": "./dist/govuk/all.bundle.js"
|
@@ -62,8 +62,8 @@
|
|
62
62
|
"version": "echo $npm_package_version"
|
63
63
|
},
|
64
64
|
"devDependencies": {
|
65
|
-
"@babel/core": "^7.
|
66
|
-
"@babel/preset-env": "^7.
|
65
|
+
"@babel/core": "^7.26.0",
|
66
|
+
"@babel/preset-env": "^7.26.0",
|
67
67
|
"@govuk-frontend/config": "*",
|
68
68
|
"@govuk-frontend/helpers": "*",
|
69
69
|
"@govuk-frontend/lib": "*",
|
@@ -77,15 +77,15 @@
|
|
77
77
|
"govuk-prototype-kit": "^13.16.2",
|
78
78
|
"gulp": "^5.0.0",
|
79
79
|
"gulp-cli": "^3.0.0",
|
80
|
-
"html-validate": "8.
|
80
|
+
"html-validate": "8.27.0",
|
81
81
|
"nunjucks": "^3.2.4",
|
82
82
|
"outdent": "^0.8.0",
|
83
|
-
"postcss": "^8.4.
|
83
|
+
"postcss": "^8.4.49",
|
84
84
|
"postcss-scss": "^4.0.9",
|
85
|
-
"puppeteer": "^23.
|
85
|
+
"puppeteer": "^23.6.0",
|
86
86
|
"rollup": "^4.19.1",
|
87
87
|
"sass-color-helpers": "^2.1.1",
|
88
|
-
"sass-embedded": "^1.
|
88
|
+
"sass-embedded": "^1.81.0",
|
89
89
|
"sassdoc": "^2.7.4",
|
90
90
|
"slash": "^5.1.0"
|
91
91
|
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_publishing_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 51.
|
4
|
+
version: 51.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-02-
|
10
|
+
date: 2025-02-06 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: govuk_app_config
|
@@ -1081,14 +1081,12 @@ files:
|
|
1081
1081
|
- node_modules/govuk-frontend/dist/govuk/assets/manifest.json
|
1082
1082
|
- node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs
|
1083
1083
|
- node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs.map
|
1084
|
+
- node_modules/govuk-frontend/dist/govuk/common/configuration.mjs
|
1085
|
+
- node_modules/govuk-frontend/dist/govuk/common/configuration.mjs.map
|
1084
1086
|
- node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs
|
1085
1087
|
- node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs.map
|
1086
1088
|
- node_modules/govuk-frontend/dist/govuk/common/index.mjs
|
1087
1089
|
- node_modules/govuk-frontend/dist/govuk/common/index.mjs.map
|
1088
|
-
- node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs
|
1089
|
-
- node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map
|
1090
|
-
- node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs
|
1091
|
-
- node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map
|
1092
1090
|
- node_modules/govuk-frontend/dist/govuk/components/_all.scss
|
1093
1091
|
- node_modules/govuk-frontend/dist/govuk/components/_all.scss.map
|
1094
1092
|
- node_modules/govuk-frontend/dist/govuk/components/_index.scss
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { extractConfigByNamespace } from './index.mjs';
|
2
|
-
import { normaliseString } from './normalise-string.mjs';
|
3
|
-
|
4
|
-
function normaliseDataset(Component, dataset) {
|
5
|
-
const out = {};
|
6
|
-
for (const [field, property] of Object.entries(Component.schema.properties)) {
|
7
|
-
if (field in dataset) {
|
8
|
-
out[field] = normaliseString(dataset[field], property);
|
9
|
-
}
|
10
|
-
if ((property == null ? void 0 : property.type) === 'object') {
|
11
|
-
out[field] = extractConfigByNamespace(Component, dataset, field);
|
12
|
-
}
|
13
|
-
}
|
14
|
-
return out;
|
15
|
-
}
|
16
|
-
|
17
|
-
export { normaliseDataset };
|
18
|
-
//# sourceMappingURL=normalise-dataset.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"normalise-dataset.mjs","sources":["../../../src/govuk/common/normalise-dataset.mjs"],"sourcesContent":["import { extractConfigByNamespace } from './index.mjs'\nimport { normaliseString } from './normalise-string.mjs'\n\n/**\n * Normalise dataset\n *\n * Loop over an object and normalise each value using {@link normaliseString},\n * optionally expanding nested `i18n.field`\n *\n * @internal\n * @param {{ schema: Schema }} Component - Component class\n * @param {DOMStringMap} dataset - HTML element dataset\n * @returns {ObjectNested} Normalised dataset\n */\nexport function normaliseDataset(Component, dataset) {\n const out = /** @type {ReturnType<typeof normaliseDataset>} */ ({})\n\n // Normalise top-level dataset ('data-*') values using schema types\n for (const [field, property] of Object.entries(Component.schema.properties)) {\n if (field in dataset) {\n out[field] = normaliseString(dataset[field], property)\n }\n\n /**\n * Extract and normalise nested object values automatically using\n * {@link normaliseString} but only schema object types are allowed\n */\n if (property?.type === 'object') {\n out[field] = extractConfigByNamespace(Component, dataset, field)\n }\n }\n\n return out\n}\n\n/**\n * @internal\n * @typedef {import('./index.mjs').ObjectNested} ObjectNested\n * @typedef {import('./index.mjs').Schema} Schema\n */\n"],"names":["normaliseDataset","Component","dataset","out","field","property","Object","entries","schema","properties","normaliseString","type","extractConfigByNamespace"],"mappings":";;;AAcO,SAASA,gBAAgBA,CAACC,SAAS,EAAEC,OAAO,EAAE;EACnD,MAAMC,GAAG,GAAuD,EAAG,CAAA;AAGnE,EAAA,KAAK,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,SAAS,CAACO,MAAM,CAACC,UAAU,CAAC,EAAE;IAC3E,IAAIL,KAAK,IAAIF,OAAO,EAAE;AACpBC,MAAAA,GAAG,CAACC,KAAK,CAAC,GAAGM,eAAe,CAACR,OAAO,CAACE,KAAK,CAAC,EAAEC,QAAQ,CAAC,CAAA;AACxD,KAAA;IAMA,IAAI,CAAAA,QAAQ,IAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEM,IAAI,MAAK,QAAQ,EAAE;MAC/BR,GAAG,CAACC,KAAK,CAAC,GAAGQ,wBAAwB,CAACX,SAAS,EAAEC,OAAO,EAAEE,KAAK,CAAC,CAAA;AAClE,KAAA;AACF,GAAA;AAEA,EAAA,OAAOD,GAAG,CAAA;AACZ;;;;"}
|
@@ -1,31 +0,0 @@
|
|
1
|
-
function normaliseString(value, property) {
|
2
|
-
const trimmedValue = value ? value.trim() : '';
|
3
|
-
let output;
|
4
|
-
let outputType = property == null ? void 0 : property.type;
|
5
|
-
if (!outputType) {
|
6
|
-
if (['true', 'false'].includes(trimmedValue)) {
|
7
|
-
outputType = 'boolean';
|
8
|
-
}
|
9
|
-
if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {
|
10
|
-
outputType = 'number';
|
11
|
-
}
|
12
|
-
}
|
13
|
-
switch (outputType) {
|
14
|
-
case 'boolean':
|
15
|
-
output = trimmedValue === 'true';
|
16
|
-
break;
|
17
|
-
case 'number':
|
18
|
-
output = Number(trimmedValue);
|
19
|
-
break;
|
20
|
-
default:
|
21
|
-
output = value;
|
22
|
-
}
|
23
|
-
return output;
|
24
|
-
}
|
25
|
-
|
26
|
-
/**
|
27
|
-
* @typedef {import('./index.mjs').SchemaProperty} SchemaProperty
|
28
|
-
*/
|
29
|
-
|
30
|
-
export { normaliseString };
|
31
|
-
//# sourceMappingURL=normalise-string.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"normalise-string.mjs","sources":["../../../src/govuk/common/normalise-string.mjs"],"sourcesContent":["/**\n * Normalise string\n *\n * 'If it looks like a duck, and it quacks like a duck…' 🦆\n *\n * If the passed value looks like a boolean or a number, convert it to a boolean\n * or number.\n *\n * Designed to be used to convert config passed via data attributes (which are\n * always strings) into something sensible.\n *\n * @internal\n * @param {DOMStringMap[string]} value - The value to normalise\n * @param {SchemaProperty} [property] - Component schema property\n * @returns {string | boolean | number | undefined} Normalised data\n */\nexport function normaliseString(value, property) {\n const trimmedValue = value ? value.trim() : ''\n\n let output\n let outputType = property?.type\n\n // No schema type set? Determine automatically\n if (!outputType) {\n if (['true', 'false'].includes(trimmedValue)) {\n outputType = 'boolean'\n }\n\n // Empty / whitespace-only strings are considered finite so we need to check\n // the length of the trimmed string as well\n if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {\n outputType = 'number'\n }\n }\n\n switch (outputType) {\n case 'boolean':\n output = trimmedValue === 'true'\n break\n\n case 'number':\n output = Number(trimmedValue)\n break\n\n default:\n output = value\n }\n\n return output\n}\n\n/**\n * @typedef {import('./index.mjs').SchemaProperty} SchemaProperty\n */\n"],"names":["normaliseString","value","property","trimmedValue","trim","output","outputType","type","includes","length","isFinite","Number"],"mappings":"AAgBO,SAASA,eAAeA,CAACC,KAAK,EAAEC,QAAQ,EAAE;EAC/C,MAAMC,YAAY,GAAGF,KAAK,GAAGA,KAAK,CAACG,IAAI,EAAE,GAAG,EAAE,CAAA;AAE9C,EAAA,IAAIC,MAAM,CAAA;AACV,EAAA,IAAIC,UAAU,GAAGJ,QAAQ,IAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEK,IAAI,CAAA;EAG/B,IAAI,CAACD,UAAU,EAAE;IACf,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAACE,QAAQ,CAACL,YAAY,CAAC,EAAE;AAC5CG,MAAAA,UAAU,GAAG,SAAS,CAAA;AACxB,KAAA;AAIA,IAAA,IAAIH,YAAY,CAACM,MAAM,GAAG,CAAC,IAAIC,QAAQ,CAACC,MAAM,CAACR,YAAY,CAAC,CAAC,EAAE;AAC7DG,MAAAA,UAAU,GAAG,QAAQ,CAAA;AACvB,KAAA;AACF,GAAA;AAEA,EAAA,QAAQA,UAAU;AAChB,IAAA,KAAK,SAAS;MACZD,MAAM,GAAGF,YAAY,KAAK,MAAM,CAAA;AAChC,MAAA,MAAA;AAEF,IAAA,KAAK,QAAQ;AACXE,MAAAA,MAAM,GAAGM,MAAM,CAACR,YAAY,CAAC,CAAA;AAC7B,MAAA,MAAA;AAEF,IAAA;AACEE,MAAAA,MAAM,GAAGJ,KAAK,CAAA;AAClB,GAAA;AAEA,EAAA,OAAOI,MAAM,CAAA;AACf,CAAA;;AAEA;AACA;AACA;;;;"}
|