govuk_publishing_components 51.1.1 → 51.2.1
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/app/assets/javascripts/govuk_publishing_components/components/feedback.js +29 -34
- data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +7 -2
- 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 +2 -2
- 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/app/views/govuk_publishing_components/components/docs/feedback.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":"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"}
|
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.1
|
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-11 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;;;;"}
|