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