govuk_tech_docs 5.2.2 → 6.0.0.beta
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/.ruby-version +1 -0
- data/CHANGELOG.md +15 -0
- data/README.md +11 -3
- data/example/config/tech-docs.yml +1 -1
- data/govuk_tech_docs.gemspec +1 -1
- data/lib/assets/stylesheets/_core.scss +1 -0
- data/lib/assets/stylesheets/_govuk_tech_docs.scss +13 -15
- data/lib/assets/stylesheets/modules/_app-pane.scss +3 -3
- data/lib/assets/stylesheets/modules/_page-review.scss +4 -4
- data/lib/assets/stylesheets/modules/_search.scss +3 -3
- data/lib/assets/stylesheets/modules/_service-navigation.scss +5 -0
- data/lib/assets/stylesheets/modules/_technical-documentation.scss +7 -7
- data/lib/assets/stylesheets/modules/_toc.scss +13 -13
- data/lib/assets/stylesheets/palette/_syntax-highlighting.scss +9 -7
- data/lib/govuk_tech_docs/meta_tags.rb +1 -1
- data/lib/govuk_tech_docs/version.rb +1 -1
- data/lib/source/layouts/_header.erb +2 -16
- data/lib/source/layouts/_service_navigation.erb +27 -0
- data/lib/source/layouts/core.erb +7 -7
- data/node_modules/govuk-frontend/dist/govuk/_base.scss +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +87 -229
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +88 -229
- data/node_modules/govuk-frontend/dist/govuk/all.mjs +0 -1
- data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.ico +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -1
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/_index.scss +18 -15
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/back-link/_index.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_index.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/button/_index.scss +18 -21
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/_index.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +20 -135
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +20 -135
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +19 -9
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_index.scss +7 -6
- data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_index.scss +2 -5
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/_index.scss +5 -0
- data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +6 -4
- data/node_modules/govuk-frontend/dist/govuk/components/error-message/_index.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_index.scss +4 -2
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_index.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_index.scss +30 -38
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.js +36 -132
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.mjs +36 -132
- data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs +35 -6
- data/node_modules/govuk-frontend/dist/govuk/components/footer/_index.scss +30 -27
- data/node_modules/govuk-frontend/dist/govuk/components/header/_index.scss +89 -449
- data/node_modules/govuk-frontend/dist/govuk/components/hint/_index.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/input/_index.scss +14 -20
- data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_index.scss +2 -1
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_index.scss +10 -8
- data/node_modules/govuk-frontend/dist/govuk/components/pagination/_index.scss +12 -11
- data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +4 -4
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +1 -126
- data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_index.scss +12 -6
- data/node_modules/govuk-frontend/dist/govuk/components/radios/_index.scss +8 -7
- data/node_modules/govuk-frontend/dist/govuk/components/select/_index.scss +6 -11
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +55 -76
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +30 -2
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +30 -2
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.mjs +30 -2
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_index.scss +7 -2
- data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_index.scss +25 -21
- data/node_modules/govuk-frontend/dist/govuk/components/table/_index.scss +7 -8
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/_index.scss +9 -6
- data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +66 -31
- data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +7 -5
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/_index.scss +5 -10
- data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_index.scss +5 -4
- data/node_modules/govuk-frontend/dist/govuk/core/_index.scss +0 -1
- data/node_modules/govuk-frontend/dist/govuk/core/_lists.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/core/_section-break.scss +2 -1
- data/node_modules/govuk-frontend/dist/govuk/core/_typography.scss +6 -20
- data/node_modules/govuk-frontend/dist/govuk/custom-properties/_breakpoints.scss +17 -0
- data/node_modules/govuk-frontend/dist/govuk/custom-properties/_frontend-version.scss +15 -0
- data/node_modules/govuk-frontend/dist/govuk/custom-properties/_functional-colours.scss +17 -0
- data/node_modules/govuk-frontend/dist/govuk/custom-properties/_index.scss +5 -0
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
- data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +168 -82
- data/node_modules/govuk-frontend/dist/govuk/helpers/_focused.scss +41 -6
- data/node_modules/govuk-frontend/dist/govuk/helpers/_grid.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +24 -40
- data/node_modules/govuk-frontend/dist/govuk/helpers/_media-queries.scss +172 -33
- data/node_modules/govuk-frontend/dist/govuk/helpers/_spacing.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +6 -30
- data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +1 -126
- data/node_modules/govuk-frontend/dist/govuk/init.mjs +1 -2
- data/node_modules/govuk-frontend/dist/govuk/objects/_button-group.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/objects/_form-group.scss +2 -1
- data/node_modules/govuk-frontend/dist/govuk/objects/_main-wrapper.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/objects/_template.scss +3 -7
- data/node_modules/govuk-frontend/dist/govuk/objects/_width-container.scss +2 -2
- data/node_modules/govuk-frontend/dist/govuk/overrides/_display.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +0 -2
- data/node_modules/govuk-frontend/dist/govuk/overrides/_width.scss +5 -5
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-applied.scss +3 -188
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-functional.scss +366 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +9 -255
- data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +117 -25
- data/node_modules/govuk-frontend/dist/govuk/settings/_custom-properties.scss +18 -0
- data/node_modules/govuk-frontend/dist/govuk/settings/_index.scss +3 -14
- data/node_modules/govuk-frontend/dist/govuk/settings/_media-queries.scss +0 -9
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +12 -189
- data/node_modules/govuk-frontend/dist/govuk/tools/_index.scss +0 -1
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-em.scss +4 -2
- data/node_modules/govuk-frontend/dist/govuk/tools/_px-to-rem.scss +2 -0
- data/package-lock.json +3228 -4
- data/package.json +1 -1
- metadata +10 -26
- data/node_modules/govuk-frontend/dist/govuk/all.scss +0 -9
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/favicon.ico +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/favicon.svg +0 -1
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-crest.svg +0 -1
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-180.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-192.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-512.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-icon-mask.svg +0 -1
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/images/govuk-opengraph-image.png +0 -0
- data/node_modules/govuk-frontend/dist/govuk/assets/rebrand/manifest.json +0 -39
- data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +0 -238
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +0 -230
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +0 -89
- data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +0 -15
- data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +0 -9
- data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/tools/_rebrand.scss +0 -65
- data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +0 -10
- data/node_modules/govuk-frontend/dist/govuk/vendor/_sass-mq.scss +0 -349
- data/node_modules/govuk-frontend/dist/govuk-prototype-kit/functions.js +0 -25
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
function getBreakpoint(name) {
|
|
2
|
-
const property = `--govuk-breakpoint-${name}`;
|
|
3
|
-
const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);
|
|
4
|
-
return {
|
|
5
|
-
property,
|
|
6
|
-
value: value || undefined
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
function isInitialised($root, moduleName) {
|
|
10
|
-
return $root instanceof HTMLElement && $root.hasAttribute(`data-${moduleName}-init`);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Checks if GOV.UK Frontend is supported on this page
|
|
15
|
-
*
|
|
16
|
-
* Some browsers will load and run our JavaScript but GOV.UK Frontend
|
|
17
|
-
* won't be supported.
|
|
18
|
-
*
|
|
19
|
-
* @param {HTMLElement | null} [$scope] - (internal) `<body>` HTML element checked for browser support
|
|
20
|
-
* @returns {boolean} Whether GOV.UK Frontend is supported on this page
|
|
21
|
-
*/
|
|
22
|
-
function isSupported($scope = document.body) {
|
|
23
|
-
if (!$scope) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
return $scope.classList.contains('govuk-frontend-supported');
|
|
27
|
-
}
|
|
28
|
-
function isArray(option) {
|
|
29
|
-
return Array.isArray(option);
|
|
30
|
-
}
|
|
31
|
-
function isObject(option) {
|
|
32
|
-
return !!option && typeof option === 'object' && !isArray(option);
|
|
33
|
-
}
|
|
34
|
-
function formatErrorMessage(Component, message) {
|
|
35
|
-
return `${Component.moduleName}: ${message}`;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @typedef ComponentWithModuleName
|
|
39
|
-
* @property {string} moduleName - Name of the component
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
class GOVUKFrontendError extends Error {
|
|
43
|
-
constructor(...args) {
|
|
44
|
-
super(...args);
|
|
45
|
-
this.name = 'GOVUKFrontendError';
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
class SupportError extends GOVUKFrontendError {
|
|
49
|
-
/**
|
|
50
|
-
* Checks if GOV.UK Frontend is supported on this page
|
|
51
|
-
*
|
|
52
|
-
* @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support
|
|
53
|
-
*/
|
|
54
|
-
constructor($scope = document.body) {
|
|
55
|
-
const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';
|
|
56
|
-
super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type="module">`');
|
|
57
|
-
this.name = 'SupportError';
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
class ElementError extends GOVUKFrontendError {
|
|
61
|
-
constructor(messageOrOptions) {
|
|
62
|
-
let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
|
|
63
|
-
if (isObject(messageOrOptions)) {
|
|
64
|
-
const {
|
|
65
|
-
component,
|
|
66
|
-
identifier,
|
|
67
|
-
element,
|
|
68
|
-
expectedType
|
|
69
|
-
} = messageOrOptions;
|
|
70
|
-
message = identifier;
|
|
71
|
-
message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';
|
|
72
|
-
if (component) {
|
|
73
|
-
message = formatErrorMessage(component, message);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
super(message);
|
|
77
|
-
this.name = 'ElementError';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
class InitError extends GOVUKFrontendError {
|
|
81
|
-
constructor(componentOrMessage) {
|
|
82
|
-
const message = typeof componentOrMessage === 'string' ? componentOrMessage : formatErrorMessage(componentOrMessage, `Root element (\`$root\`) already initialised`);
|
|
83
|
-
super(message);
|
|
84
|
-
this.name = 'InitError';
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* @import { ComponentWithModuleName } from '../common/index.mjs'
|
|
89
|
-
*/
|
|
90
|
-
|
|
91
|
-
class Component {
|
|
92
|
-
/**
|
|
93
|
-
* Returns the root element of the component
|
|
94
|
-
*
|
|
95
|
-
* @protected
|
|
96
|
-
* @returns {RootElementType} - the root element of component
|
|
97
|
-
*/
|
|
98
|
-
get $root() {
|
|
99
|
-
return this._$root;
|
|
100
|
-
}
|
|
101
|
-
constructor($root) {
|
|
102
|
-
this._$root = void 0;
|
|
103
|
-
const childConstructor = this.constructor;
|
|
104
|
-
if (typeof childConstructor.moduleName !== 'string') {
|
|
105
|
-
throw new InitError(`\`moduleName\` not defined in component`);
|
|
106
|
-
}
|
|
107
|
-
if (!($root instanceof childConstructor.elementType)) {
|
|
108
|
-
throw new ElementError({
|
|
109
|
-
element: $root,
|
|
110
|
-
component: childConstructor,
|
|
111
|
-
identifier: 'Root element (`$root`)',
|
|
112
|
-
expectedType: childConstructor.elementType.name
|
|
113
|
-
});
|
|
114
|
-
} else {
|
|
115
|
-
this._$root = $root;
|
|
116
|
-
}
|
|
117
|
-
childConstructor.checkSupport();
|
|
118
|
-
this.checkInitialised();
|
|
119
|
-
const moduleName = childConstructor.moduleName;
|
|
120
|
-
this.$root.setAttribute(`data-${moduleName}-init`, '');
|
|
121
|
-
}
|
|
122
|
-
checkInitialised() {
|
|
123
|
-
const constructor = this.constructor;
|
|
124
|
-
const moduleName = constructor.moduleName;
|
|
125
|
-
if (moduleName && isInitialised(this.$root, moduleName)) {
|
|
126
|
-
throw new InitError(constructor);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
static checkSupport() {
|
|
130
|
-
if (!isSupported()) {
|
|
131
|
-
throw new SupportError();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* @typedef ChildClass
|
|
138
|
-
* @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component
|
|
139
|
-
*/
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* @typedef {typeof Component & ChildClass} ChildClassConstructor
|
|
143
|
-
*/
|
|
144
|
-
Component.elementType = HTMLElement;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Header component
|
|
148
|
-
*
|
|
149
|
-
* @preserve
|
|
150
|
-
*/
|
|
151
|
-
class Header extends Component {
|
|
152
|
-
/**
|
|
153
|
-
* Apply a matchMedia for desktop which will trigger a state sync if the
|
|
154
|
-
* browser viewport moves between states.
|
|
155
|
-
*
|
|
156
|
-
* @param {Element | null} $root - HTML element to use for header
|
|
157
|
-
*/
|
|
158
|
-
constructor($root) {
|
|
159
|
-
super($root);
|
|
160
|
-
this.$menuButton = void 0;
|
|
161
|
-
this.$menu = void 0;
|
|
162
|
-
this.menuIsOpen = false;
|
|
163
|
-
this.mql = null;
|
|
164
|
-
const $menuButton = this.$root.querySelector('.govuk-js-header-toggle');
|
|
165
|
-
if (!$menuButton) {
|
|
166
|
-
return this;
|
|
167
|
-
}
|
|
168
|
-
this.$root.classList.add('govuk-header--with-js-navigation');
|
|
169
|
-
const menuId = $menuButton.getAttribute('aria-controls');
|
|
170
|
-
if (!menuId) {
|
|
171
|
-
throw new ElementError({
|
|
172
|
-
component: Header,
|
|
173
|
-
identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
const $menu = document.getElementById(menuId);
|
|
177
|
-
if (!$menu) {
|
|
178
|
-
throw new ElementError({
|
|
179
|
-
component: Header,
|
|
180
|
-
element: $menu,
|
|
181
|
-
identifier: `Navigation (\`<ul id="${menuId}">\`)`
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
this.$menu = $menu;
|
|
185
|
-
this.$menuButton = $menuButton;
|
|
186
|
-
this.setupResponsiveChecks();
|
|
187
|
-
this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
|
|
188
|
-
}
|
|
189
|
-
setupResponsiveChecks() {
|
|
190
|
-
const breakpoint = getBreakpoint('desktop');
|
|
191
|
-
if (!breakpoint.value) {
|
|
192
|
-
throw new ElementError({
|
|
193
|
-
component: Header,
|
|
194
|
-
identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
|
|
198
|
-
if ('addEventListener' in this.mql) {
|
|
199
|
-
this.mql.addEventListener('change', () => this.checkMode());
|
|
200
|
-
} else {
|
|
201
|
-
this.mql.addListener(() => this.checkMode());
|
|
202
|
-
}
|
|
203
|
-
this.checkMode();
|
|
204
|
-
}
|
|
205
|
-
checkMode() {
|
|
206
|
-
if (!this.mql || !this.$menu || !this.$menuButton) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
if (this.mql.matches) {
|
|
210
|
-
this.$menu.removeAttribute('hidden');
|
|
211
|
-
this.$menuButton.setAttribute('hidden', '');
|
|
212
|
-
} else {
|
|
213
|
-
this.$menuButton.removeAttribute('hidden');
|
|
214
|
-
this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
|
|
215
|
-
if (this.menuIsOpen) {
|
|
216
|
-
this.$menu.removeAttribute('hidden');
|
|
217
|
-
} else {
|
|
218
|
-
this.$menu.setAttribute('hidden', '');
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
handleMenuButtonClick() {
|
|
223
|
-
this.menuIsOpen = !this.menuIsOpen;
|
|
224
|
-
this.checkMode();
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
Header.moduleName = 'govuk-header';
|
|
228
|
-
|
|
229
|
-
export { Header };
|
|
230
|
-
//# sourceMappingURL=header.bundle.mjs.map
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { getBreakpoint } from '../../common/index.mjs';
|
|
2
|
-
import { Component } from '../../component.mjs';
|
|
3
|
-
import { ElementError } from '../../errors/index.mjs';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Header component
|
|
7
|
-
*
|
|
8
|
-
* @preserve
|
|
9
|
-
*/
|
|
10
|
-
class Header extends Component {
|
|
11
|
-
/**
|
|
12
|
-
* Apply a matchMedia for desktop which will trigger a state sync if the
|
|
13
|
-
* browser viewport moves between states.
|
|
14
|
-
*
|
|
15
|
-
* @param {Element | null} $root - HTML element to use for header
|
|
16
|
-
*/
|
|
17
|
-
constructor($root) {
|
|
18
|
-
super($root);
|
|
19
|
-
this.$menuButton = void 0;
|
|
20
|
-
this.$menu = void 0;
|
|
21
|
-
this.menuIsOpen = false;
|
|
22
|
-
this.mql = null;
|
|
23
|
-
const $menuButton = this.$root.querySelector('.govuk-js-header-toggle');
|
|
24
|
-
if (!$menuButton) {
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
this.$root.classList.add('govuk-header--with-js-navigation');
|
|
28
|
-
const menuId = $menuButton.getAttribute('aria-controls');
|
|
29
|
-
if (!menuId) {
|
|
30
|
-
throw new ElementError({
|
|
31
|
-
component: Header,
|
|
32
|
-
identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
const $menu = document.getElementById(menuId);
|
|
36
|
-
if (!$menu) {
|
|
37
|
-
throw new ElementError({
|
|
38
|
-
component: Header,
|
|
39
|
-
element: $menu,
|
|
40
|
-
identifier: `Navigation (\`<ul id="${menuId}">\`)`
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
this.$menu = $menu;
|
|
44
|
-
this.$menuButton = $menuButton;
|
|
45
|
-
this.setupResponsiveChecks();
|
|
46
|
-
this.$menuButton.addEventListener('click', () => this.handleMenuButtonClick());
|
|
47
|
-
}
|
|
48
|
-
setupResponsiveChecks() {
|
|
49
|
-
const breakpoint = getBreakpoint('desktop');
|
|
50
|
-
if (!breakpoint.value) {
|
|
51
|
-
throw new ElementError({
|
|
52
|
-
component: Header,
|
|
53
|
-
identifier: `CSS custom property (\`${breakpoint.property}\`) on pseudo-class \`:root\``
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
this.mql = window.matchMedia(`(min-width: ${breakpoint.value})`);
|
|
57
|
-
if ('addEventListener' in this.mql) {
|
|
58
|
-
this.mql.addEventListener('change', () => this.checkMode());
|
|
59
|
-
} else {
|
|
60
|
-
this.mql.addListener(() => this.checkMode());
|
|
61
|
-
}
|
|
62
|
-
this.checkMode();
|
|
63
|
-
}
|
|
64
|
-
checkMode() {
|
|
65
|
-
if (!this.mql || !this.$menu || !this.$menuButton) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (this.mql.matches) {
|
|
69
|
-
this.$menu.removeAttribute('hidden');
|
|
70
|
-
this.$menuButton.setAttribute('hidden', '');
|
|
71
|
-
} else {
|
|
72
|
-
this.$menuButton.removeAttribute('hidden');
|
|
73
|
-
this.$menuButton.setAttribute('aria-expanded', this.menuIsOpen.toString());
|
|
74
|
-
if (this.menuIsOpen) {
|
|
75
|
-
this.$menu.removeAttribute('hidden');
|
|
76
|
-
} else {
|
|
77
|
-
this.$menu.setAttribute('hidden', '');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
handleMenuButtonClick() {
|
|
82
|
-
this.menuIsOpen = !this.menuIsOpen;
|
|
83
|
-
this.checkMode();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
Header.moduleName = 'govuk-header';
|
|
87
|
-
|
|
88
|
-
export { Header };
|
|
89
|
-
//# sourceMappingURL=header.mjs.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/core/all' is deprecated. Update your import statement to import 'govuk/core/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
// This variable is automatically overwritten during builds and releases.
|
|
3
|
-
// It doesn't need to be updated manually.
|
|
4
|
-
--govuk-frontend-version: "5.11.2";
|
|
5
|
-
|
|
6
|
-
// CSS custom property for each breakpoint
|
|
7
|
-
@each $name, $value in $govuk-breakpoints {
|
|
8
|
-
--govuk-breakpoint-#{$name}: #{govuk-px-to-rem($value)};
|
|
9
|
-
|
|
10
|
-
// Deprecated, use `--govuk-breakpoint-[name]` instead
|
|
11
|
-
--govuk-frontend-breakpoint-#{$name}: var(--govuk-breakpoint-#{$name});
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/*# sourceMappingURL=_govuk-frontend-properties.scss.map */
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/helpers/all' is deprecated. Update your import statement to import 'govuk/helpers/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/objects/all' is deprecated. Update your import statement to import 'govuk/objects/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/settings/all' is deprecated. Update your import statement to import 'govuk/settings/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/tools/all' is deprecated. Update your import statement to import 'govuk/tools/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
////
|
|
2
|
-
/// @group tools
|
|
3
|
-
////
|
|
4
|
-
|
|
5
|
-
/// Wraps rebranded properties in the feature flag selector
|
|
6
|
-
///
|
|
7
|
-
/// @example scss - Wrap a block of multiple properties
|
|
8
|
-
/// .foo {
|
|
9
|
-
/// border-width: 1px;
|
|
10
|
-
/// border-colour: #fff;
|
|
11
|
-
///
|
|
12
|
-
/// @include _govuk-rebrand() {
|
|
13
|
-
/// border-width: 10px;
|
|
14
|
-
/// border-colour: #000;
|
|
15
|
-
/// }
|
|
16
|
-
/// }
|
|
17
|
-
///
|
|
18
|
-
/// @example scss - Wrap a single property
|
|
19
|
-
/// .foo {
|
|
20
|
-
/// @include _govuk-rebrand("background-color", $from: #fff, $to: #000)
|
|
21
|
-
/// }
|
|
22
|
-
///
|
|
23
|
-
///
|
|
24
|
-
/// @param {String} $property - The name of the property being rebranded
|
|
25
|
-
/// @param {String} $from - The original value of the property
|
|
26
|
-
/// @param {String} $to - The rebranded value of the property
|
|
27
|
-
/// @throw if `$property` is set but `$from` or `$to` are missing
|
|
28
|
-
/// @access private
|
|
29
|
-
@mixin _govuk-rebrand($property: null, $from: null, $to: null) {
|
|
30
|
-
@if $property {
|
|
31
|
-
@if not $from {
|
|
32
|
-
@error "`_govuk-rebrand` needs the original value, `$from`";
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@if not $to {
|
|
36
|
-
@error "`_govuk-rebrand` needs the rebranded value, `$to`";
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
#{$property}: #{$from};
|
|
40
|
-
|
|
41
|
-
@include _govuk-rebrand-wrapper {
|
|
42
|
-
#{$property}: #{$to};
|
|
43
|
-
}
|
|
44
|
-
} @else {
|
|
45
|
-
@include _govuk-rebrand-wrapper {
|
|
46
|
-
@content;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@mixin _govuk-rebrand-wrapper() {
|
|
52
|
-
$selector: "#{&}";
|
|
53
|
-
|
|
54
|
-
@if $selector == ".govuk-template" {
|
|
55
|
-
@at-root .govuk-template--rebranded {
|
|
56
|
-
@content;
|
|
57
|
-
}
|
|
58
|
-
} @else {
|
|
59
|
-
.govuk-template--rebranded & {
|
|
60
|
-
@content;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/*# sourceMappingURL=_rebrand.scss.map */
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
@import "../settings/warnings";
|
|
2
|
-
@import "index";
|
|
3
|
-
|
|
4
|
-
@include _warning(
|
|
5
|
-
"import-using-all",
|
|
6
|
-
"Importing using 'govuk/utilities/all' is deprecated. Update your import statement to import 'govuk/utilities/index'.",
|
|
7
|
-
$silence-further-warnings: false
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
/*# sourceMappingURL=_all.scss.map */
|