govuk_publishing_components 12.13.0 → 12.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/accessible-autocomplete.js +37 -0
  3. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +6 -5
  4. data/app/assets/javascripts/govuk_publishing_components/components/copy-to-clipboard.js +15 -15
  5. data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +2 -4
  6. data/app/assets/javascripts/govuk_publishing_components/components/initial-focus.js +8 -8
  7. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +3 -3
  8. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_accessible-autocomplete.scss +16 -0
  10. data/app/views/govuk_publishing_components/components/_accessible_autocomplete.html.erb +24 -0
  11. data/app/views/govuk_publishing_components/components/docs/accessible_autocomplete.yml +42 -0
  12. data/config/initializers/assets.rb +1 -0
  13. data/lib/govuk_publishing_components/version.rb +1 -1
  14. data/node_modules/accessible-autocomplete/CHANGELOG.md +269 -0
  15. data/node_modules/accessible-autocomplete/CONTRIBUTING.md +150 -0
  16. data/node_modules/accessible-autocomplete/LICENSE.txt +20 -0
  17. data/node_modules/accessible-autocomplete/Procfile +1 -0
  18. data/node_modules/accessible-autocomplete/README.md +416 -0
  19. data/node_modules/accessible-autocomplete/accessibility-criteria.md +42 -0
  20. data/node_modules/accessible-autocomplete/app.json +15 -0
  21. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css +1 -0
  22. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js +2 -0
  23. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map +1 -0
  24. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js +2 -0
  25. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map +1 -0
  26. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js +2 -0
  27. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map +1 -0
  28. data/node_modules/accessible-autocomplete/examples/form.html +671 -0
  29. data/node_modules/accessible-autocomplete/examples/index.html +616 -0
  30. data/node_modules/accessible-autocomplete/examples/preact/index.html +346 -0
  31. data/node_modules/accessible-autocomplete/examples/react/index.html +347 -0
  32. data/node_modules/accessible-autocomplete/package.json +192 -0
  33. data/node_modules/accessible-autocomplete/preact.js +1 -0
  34. data/node_modules/accessible-autocomplete/react.js +1 -0
  35. data/node_modules/accessible-autocomplete/scripts/check-staged.js +14 -0
  36. data/node_modules/accessible-autocomplete/src/autocomplete.css +141 -0
  37. data/node_modules/accessible-autocomplete/src/autocomplete.js +524 -0
  38. data/node_modules/accessible-autocomplete/src/dropdown-arrow-down.js +11 -0
  39. data/node_modules/accessible-autocomplete/src/status.js +80 -0
  40. data/node_modules/accessible-autocomplete/src/wrapper.js +60 -0
  41. data/node_modules/accessible-autocomplete/test/functional/dropdown-arrow-down.js +44 -0
  42. data/node_modules/accessible-autocomplete/test/functional/index.js +485 -0
  43. data/node_modules/accessible-autocomplete/test/functional/wrapper.js +267 -0
  44. data/node_modules/accessible-autocomplete/test/integration/index.js +188 -0
  45. data/node_modules/accessible-autocomplete/test/karma.config.js +42 -0
  46. data/node_modules/accessible-autocomplete/test/wdio.config.js +80 -0
  47. data/node_modules/accessible-autocomplete/webpack.config.babel.js +193 -0
  48. data/node_modules/preact/LICENSE +21 -0
  49. data/node_modules/preact/README.md +580 -0
  50. data/node_modules/preact/debug.js +112 -0
  51. data/node_modules/preact/debug.js.map +1 -0
  52. data/node_modules/preact/debug/index.js +121 -0
  53. data/node_modules/preact/devtools.js +403 -0
  54. data/node_modules/preact/devtools.js.map +1 -0
  55. data/node_modules/preact/devtools/devtools.js +395 -0
  56. data/node_modules/preact/devtools/index.js +4 -0
  57. data/node_modules/preact/dist/preact.d.ts +891 -0
  58. data/node_modules/preact/dist/preact.dev.js +718 -0
  59. data/node_modules/preact/dist/preact.dev.js.map +1 -0
  60. data/node_modules/preact/dist/preact.js +408 -0
  61. data/node_modules/preact/dist/preact.js.flow +13 -0
  62. data/node_modules/preact/dist/preact.js.map +1 -0
  63. data/node_modules/preact/dist/preact.min.js +2 -0
  64. data/node_modules/preact/dist/preact.min.js.map +1 -0
  65. data/node_modules/preact/dist/preact.mjs +715 -0
  66. data/node_modules/preact/dist/preact.mjs.map +1 -0
  67. data/node_modules/preact/package.json +218 -0
  68. data/node_modules/preact/src/clone-element.js +18 -0
  69. data/node_modules/preact/src/component.js +90 -0
  70. data/node_modules/preact/src/constants.js +17 -0
  71. data/node_modules/preact/src/dom/index.js +138 -0
  72. data/node_modules/preact/src/h.js +86 -0
  73. data/node_modules/preact/src/options.js +22 -0
  74. data/node_modules/preact/src/preact.d.ts +891 -0
  75. data/node_modules/preact/src/preact.js +26 -0
  76. data/node_modules/preact/src/preact.js.flow +13 -0
  77. data/node_modules/preact/src/render-queue.js +28 -0
  78. data/node_modules/preact/src/render.js +22 -0
  79. data/node_modules/preact/src/util.js +19 -0
  80. data/node_modules/preact/src/vdom/component-recycler.js +48 -0
  81. data/node_modules/preact/src/vdom/component.js +296 -0
  82. data/node_modules/preact/src/vdom/diff.js +336 -0
  83. data/node_modules/preact/src/vdom/index.js +54 -0
  84. data/node_modules/preact/src/vnode.js +9 -0
  85. data/node_modules/preact/typings.json +5 -0
  86. metadata +78 -2
@@ -0,0 +1,336 @@
1
+ import { ATTR_KEY } from '../constants';
2
+ import { isSameNodeType, isNamedNode } from './index';
3
+ import { buildComponentFromVNode } from './component';
4
+ import { createNode, setAccessor } from '../dom/index';
5
+ import { unmountComponent } from './component';
6
+ import options from '../options';
7
+ import { removeNode } from '../dom/index';
8
+
9
+ /**
10
+ * Queue of components that have been mounted and are awaiting componentDidMount
11
+ * @type {Array<import('../component').Component>}
12
+ */
13
+ export const mounts = [];
14
+
15
+ /** Diff recursion count, used to track the end of the diff cycle. */
16
+ export let diffLevel = 0;
17
+
18
+ /** Global flag indicating if the diff is currently within an SVG */
19
+ let isSvgMode = false;
20
+
21
+ /** Global flag indicating if the diff is performing hydration */
22
+ let hydrating = false;
23
+
24
+ /** Invoke queued componentDidMount lifecycle methods */
25
+ export function flushMounts() {
26
+ let c;
27
+ while ((c=mounts.pop())) {
28
+ if (options.afterMount) options.afterMount(c);
29
+ if (c.componentDidMount) c.componentDidMount();
30
+ }
31
+ }
32
+
33
+
34
+ /**
35
+ * Apply differences in a given vnode (and it's deep children) to a real DOM Node.
36
+ * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`
37
+ * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing
38
+ * the desired DOM structure
39
+ * @param {object} context The current context
40
+ * @param {boolean} mountAll Whether or not to immediately mount all components
41
+ * @param {Element} parent ?
42
+ * @param {boolean} componentRoot ?
43
+ * @returns {import('../dom').PreactElement} The created/mutated element
44
+ * @private
45
+ */
46
+ export function diff(dom, vnode, context, mountAll, parent, componentRoot) {
47
+ // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)
48
+ if (!diffLevel++) {
49
+ // when first starting the diff, check if we're diffing an SVG or within an SVG
50
+ isSvgMode = parent!=null && parent.ownerSVGElement!==undefined;
51
+
52
+ // hydration is indicated by the existing element to be diffed not having a prop cache
53
+ hydrating = dom!=null && !(ATTR_KEY in dom);
54
+ }
55
+
56
+ let ret = idiff(dom, vnode, context, mountAll, componentRoot);
57
+
58
+ // append the element if its a new parent
59
+ if (parent && ret.parentNode!==parent) parent.appendChild(ret);
60
+
61
+ // diffLevel being reduced to 0 means we're exiting the diff
62
+ if (!--diffLevel) {
63
+ hydrating = false;
64
+ // invoke queued componentDidMount lifecycle methods
65
+ if (!componentRoot) flushMounts();
66
+ }
67
+
68
+ return ret;
69
+ }
70
+
71
+
72
+ /**
73
+ * Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing.
74
+ * @param {import('../dom').PreactElement} dom A DOM node to mutate into the shape of a `vnode`
75
+ * @param {import('../vnode').VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure
76
+ * @param {object} context The current context
77
+ * @param {boolean} mountAll Whether or not to immediately mount all components
78
+ * @param {boolean} [componentRoot] ?
79
+ * @private
80
+ */
81
+ function idiff(dom, vnode, context, mountAll, componentRoot) {
82
+ let out = dom,
83
+ prevSvgMode = isSvgMode;
84
+
85
+ // empty values (null, undefined, booleans) render as empty Text nodes
86
+ if (vnode==null || typeof vnode==='boolean') vnode = '';
87
+
88
+
89
+ // Fast case: Strings & Numbers create/update Text nodes.
90
+ if (typeof vnode==='string' || typeof vnode==='number') {
91
+
92
+ // update if it's already a Text node:
93
+ if (dom && dom.splitText!==undefined && dom.parentNode && (!dom._component || componentRoot)) {
94
+ /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */
95
+ if (dom.nodeValue!=vnode) {
96
+ dom.nodeValue = vnode;
97
+ }
98
+ }
99
+ else {
100
+ // it wasn't a Text node: replace it with one and recycle the old Element
101
+ out = document.createTextNode(vnode);
102
+ if (dom) {
103
+ if (dom.parentNode) dom.parentNode.replaceChild(out, dom);
104
+ recollectNodeTree(dom, true);
105
+ }
106
+ }
107
+
108
+ out[ATTR_KEY] = true;
109
+
110
+ return out;
111
+ }
112
+
113
+
114
+ // If the VNode represents a Component, perform a component diff:
115
+ let vnodeName = vnode.nodeName;
116
+ if (typeof vnodeName==='function') {
117
+ return buildComponentFromVNode(dom, vnode, context, mountAll);
118
+ }
119
+
120
+
121
+ // Tracks entering and exiting SVG namespace when descending through the tree.
122
+ isSvgMode = vnodeName==='svg' ? true : vnodeName==='foreignObject' ? false : isSvgMode;
123
+
124
+
125
+ // If there's no existing element or it's the wrong type, create a new one:
126
+ vnodeName = String(vnodeName);
127
+ if (!dom || !isNamedNode(dom, vnodeName)) {
128
+ out = createNode(vnodeName, isSvgMode);
129
+
130
+ if (dom) {
131
+ // move children into the replacement node
132
+ while (dom.firstChild) out.appendChild(dom.firstChild);
133
+
134
+ // if the previous Element was mounted into the DOM, replace it inline
135
+ if (dom.parentNode) dom.parentNode.replaceChild(out, dom);
136
+
137
+ // recycle the old element (skips non-Element node types)
138
+ recollectNodeTree(dom, true);
139
+ }
140
+ }
141
+
142
+
143
+ let fc = out.firstChild,
144
+ props = out[ATTR_KEY],
145
+ vchildren = vnode.children;
146
+
147
+ if (props==null) {
148
+ props = out[ATTR_KEY] = {};
149
+ for (let a=out.attributes, i=a.length; i--; ) props[a[i].name] = a[i].value;
150
+ }
151
+
152
+ // Optimization: fast-path for elements containing a single TextNode:
153
+ if (!hydrating && vchildren && vchildren.length===1 && typeof vchildren[0]==='string' && fc!=null && fc.splitText!==undefined && fc.nextSibling==null) {
154
+ if (fc.nodeValue!=vchildren[0]) {
155
+ fc.nodeValue = vchildren[0];
156
+ }
157
+ }
158
+ // otherwise, if there are existing or new children, diff them:
159
+ else if (vchildren && vchildren.length || fc!=null) {
160
+ innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML!=null);
161
+ }
162
+
163
+
164
+ // Apply attributes/props from VNode to the DOM Element:
165
+ diffAttributes(out, vnode.attributes, props);
166
+
167
+
168
+ // restore previous SVG mode: (in case we're exiting an SVG namespace)
169
+ isSvgMode = prevSvgMode;
170
+
171
+ return out;
172
+ }
173
+
174
+
175
+ /**
176
+ * Apply child and attribute changes between a VNode and a DOM Node to the DOM.
177
+ * @param {import('../dom').PreactElement} dom Element whose children should be compared & mutated
178
+ * @param {Array<import('../vnode').VNode>} vchildren Array of VNodes to compare to `dom.childNodes`
179
+ * @param {object} context Implicitly descendant context object (from most
180
+ * recent `getChildContext()`)
181
+ * @param {boolean} mountAll Whether or not to immediately mount all components
182
+ * @param {boolean} isHydrating if `true`, consumes externally created elements
183
+ * similar to hydration
184
+ */
185
+ function innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {
186
+ let originalChildren = dom.childNodes,
187
+ children = [],
188
+ keyed = {},
189
+ keyedLen = 0,
190
+ min = 0,
191
+ len = originalChildren.length,
192
+ childrenLen = 0,
193
+ vlen = vchildren ? vchildren.length : 0,
194
+ j, c, f, vchild, child;
195
+
196
+ // Build up a map of keyed children and an Array of unkeyed children:
197
+ if (len!==0) {
198
+ for (let i=0; i<len; i++) {
199
+ let child = originalChildren[i],
200
+ props = child[ATTR_KEY],
201
+ key = vlen && props ? child._component ? child._component.__key : props.key : null;
202
+ if (key!=null) {
203
+ keyedLen++;
204
+ keyed[key] = child;
205
+ }
206
+ else if (props || (child.splitText!==undefined ? (isHydrating ? child.nodeValue.trim() : true) : isHydrating)) {
207
+ children[childrenLen++] = child;
208
+ }
209
+ }
210
+ }
211
+
212
+ if (vlen!==0) {
213
+ for (let i=0; i<vlen; i++) {
214
+ vchild = vchildren[i];
215
+ child = null;
216
+
217
+ // attempt to find a node based on key matching
218
+ let key = vchild.key;
219
+ if (key!=null) {
220
+ if (keyedLen && keyed[key]!==undefined) {
221
+ child = keyed[key];
222
+ keyed[key] = undefined;
223
+ keyedLen--;
224
+ }
225
+ }
226
+ // attempt to pluck a node of the same type from the existing children
227
+ else if (min<childrenLen) {
228
+ for (j=min; j<childrenLen; j++) {
229
+ if (children[j]!==undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {
230
+ child = c;
231
+ children[j] = undefined;
232
+ if (j===childrenLen-1) childrenLen--;
233
+ if (j===min) min++;
234
+ break;
235
+ }
236
+ }
237
+ }
238
+
239
+ // morph the matched/found/created DOM child to match vchild (deep)
240
+ child = idiff(child, vchild, context, mountAll);
241
+
242
+ f = originalChildren[i];
243
+ if (child && child!==dom && child!==f) {
244
+ if (f==null) {
245
+ dom.appendChild(child);
246
+ }
247
+ else if (child===f.nextSibling) {
248
+ removeNode(f);
249
+ }
250
+ else {
251
+ dom.insertBefore(child, f);
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+
258
+ // remove unused keyed children:
259
+ if (keyedLen) {
260
+ for (let i in keyed) if (keyed[i]!==undefined) recollectNodeTree(keyed[i], false);
261
+ }
262
+
263
+ // remove orphaned unkeyed children:
264
+ while (min<=childrenLen) {
265
+ if ((child = children[childrenLen--])!==undefined) recollectNodeTree(child, false);
266
+ }
267
+ }
268
+
269
+
270
+
271
+ /**
272
+ * Recursively recycle (or just unmount) a node and its descendants.
273
+ * @param {import('../dom').PreactElement} node DOM node to start
274
+ * unmount/removal from
275
+ * @param {boolean} [unmountOnly=false] If `true`, only triggers unmount
276
+ * lifecycle, skips removal
277
+ */
278
+ export function recollectNodeTree(node, unmountOnly) {
279
+ let component = node._component;
280
+ if (component) {
281
+ // if node is owned by a Component, unmount that component (ends up recursing back here)
282
+ unmountComponent(component);
283
+ }
284
+ else {
285
+ // If the node's VNode had a ref function, invoke it with null here.
286
+ // (this is part of the React spec, and smart for unsetting references)
287
+ if (node[ATTR_KEY]!=null && node[ATTR_KEY].ref) node[ATTR_KEY].ref(null);
288
+
289
+ if (unmountOnly===false || node[ATTR_KEY]==null) {
290
+ removeNode(node);
291
+ }
292
+
293
+ removeChildren(node);
294
+ }
295
+ }
296
+
297
+
298
+ /**
299
+ * Recollect/unmount all children.
300
+ * - we use .lastChild here because it causes less reflow than .firstChild
301
+ * - it's also cheaper than accessing the .childNodes Live NodeList
302
+ */
303
+ export function removeChildren(node) {
304
+ node = node.lastChild;
305
+ while (node) {
306
+ let next = node.previousSibling;
307
+ recollectNodeTree(node, true);
308
+ node = next;
309
+ }
310
+ }
311
+
312
+
313
+ /**
314
+ * Apply differences in attributes from a VNode to the given DOM Element.
315
+ * @param {import('../dom').PreactElement} dom Element with attributes to diff `attrs` against
316
+ * @param {object} attrs The desired end-state key-value attribute pairs
317
+ * @param {object} old Current/previous attributes (from previous VNode or
318
+ * element's prop cache)
319
+ */
320
+ function diffAttributes(dom, attrs, old) {
321
+ let name;
322
+
323
+ // remove attributes no longer present on the vnode by setting them to undefined
324
+ for (name in old) {
325
+ if (!(attrs && attrs[name]!=null) && old[name]!=null) {
326
+ setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);
327
+ }
328
+ }
329
+
330
+ // add new & update changed attributes
331
+ for (name in attrs) {
332
+ if (name!=='children' && name!=='innerHTML' && (!(name in old) || attrs[name]!==(name==='value' || name==='checked' ? dom[name] : old[name]))) {
333
+ setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);
334
+ }
335
+ }
336
+ }
@@ -0,0 +1,54 @@
1
+ import { extend } from '../util';
2
+
3
+
4
+ /**
5
+ * Check if two nodes are equivalent.
6
+ * @param {import('../dom').PreactElement} node DOM Node to compare
7
+ * @param {import('../vnode').VNode} vnode Virtual DOM node to compare
8
+ * @param {boolean} [hydrating=false] If true, ignores component constructors
9
+ * when comparing.
10
+ * @private
11
+ */
12
+ export function isSameNodeType(node, vnode, hydrating) {
13
+ if (typeof vnode==='string' || typeof vnode==='number') {
14
+ return node.splitText!==undefined;
15
+ }
16
+ if (typeof vnode.nodeName==='string') {
17
+ return !node._componentConstructor && isNamedNode(node, vnode.nodeName);
18
+ }
19
+ return hydrating || node._componentConstructor===vnode.nodeName;
20
+ }
21
+
22
+
23
+ /**
24
+ * Check if an Element has a given nodeName, case-insensitively.
25
+ * @param {import('../dom').PreactElement} node A DOM Element to inspect the name of.
26
+ * @param {string} nodeName Unnormalized name to compare against.
27
+ */
28
+ export function isNamedNode(node, nodeName) {
29
+ return node.normalizedNodeName===nodeName || node.nodeName.toLowerCase()===nodeName.toLowerCase();
30
+ }
31
+
32
+
33
+ /**
34
+ * Reconstruct Component-style `props` from a VNode.
35
+ * Ensures default/fallback values from `defaultProps`:
36
+ * Own-properties of `defaultProps` not present in `vnode.attributes` are added.
37
+ * @param {import('../vnode').VNode} vnode The VNode to get props for
38
+ * @returns {object} The props to use for this VNode
39
+ */
40
+ export function getNodeProps(vnode) {
41
+ let props = extend({}, vnode.attributes);
42
+ props.children = vnode.children;
43
+
44
+ let defaultProps = vnode.nodeName.defaultProps;
45
+ if (defaultProps!==undefined) {
46
+ for (let i in defaultProps) {
47
+ if (props[i]===undefined) {
48
+ props[i] = defaultProps[i];
49
+ }
50
+ }
51
+ }
52
+
53
+ return props;
54
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Virtual DOM Node
3
+ * @typedef VNode
4
+ * @property {string | function} nodeName The string of the DOM node to create or Component constructor to render
5
+ * @property {Array<VNode | string>} children The children of node
6
+ * @property {string | number | undefined} key The key used to identify this VNode in a list
7
+ * @property {object} attributes The properties of this VNode
8
+ */
9
+ export const VNode = function VNode() {};
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "preact",
3
+ "main": "src/preact.d.ts",
4
+ "version": false
5
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.13.0
4
+ version: 12.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-22 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govspeak
@@ -308,6 +308,7 @@ files:
308
308
  - app/assets/javascripts/component_guide/vendor/matches-polyfill.min.js
309
309
  - app/assets/javascripts/component_guide/visual-regression.js
310
310
  - app/assets/javascripts/govuk_publishing_components/all_components.js
311
+ - app/assets/javascripts/govuk_publishing_components/components/accessible-autocomplete.js
311
312
  - app/assets/javascripts/govuk_publishing_components/components/character-count.js
312
313
  - app/assets/javascripts/govuk_publishing_components/components/checkboxes.js
313
314
  - app/assets/javascripts/govuk_publishing_components/components/copy-to-clipboard.js
@@ -324,6 +325,7 @@ files:
324
325
  - app/assets/stylesheets/component_guide/application.scss
325
326
  - app/assets/stylesheets/govuk_publishing_components/_all_components.scss
326
327
  - app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss
328
+ - app/assets/stylesheets/govuk_publishing_components/components/_accessible-autocomplete.scss
327
329
  - app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss
328
330
  - app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss
329
331
  - app/assets/stylesheets/govuk_publishing_components/components/_button.scss
@@ -433,6 +435,7 @@ files:
433
435
  - app/views/govuk_publishing_components/component_guide/index.html.erb
434
436
  - app/views/govuk_publishing_components/component_guide/preview.html.erb
435
437
  - app/views/govuk_publishing_components/component_guide/show.html.erb
438
+ - app/views/govuk_publishing_components/components/_accessible_autocomplete.html.erb
436
439
  - app/views/govuk_publishing_components/components/_admin_analytics.html.erb
437
440
  - app/views/govuk_publishing_components/components/_back_link.html.erb
438
441
  - app/views/govuk_publishing_components/components/_breadcrumbs.html.erb
@@ -495,6 +498,7 @@ files:
495
498
  - app/views/govuk_publishing_components/components/_title.html.erb
496
499
  - app/views/govuk_publishing_components/components/_translation-nav.html.erb
497
500
  - app/views/govuk_publishing_components/components/_warning_text.html.erb
501
+ - app/views/govuk_publishing_components/components/docs/accessible_autocomplete.yml
498
502
  - app/views/govuk_publishing_components/components/docs/admin_analytics.yml
499
503
  - app/views/govuk_publishing_components/components/docs/back_link.yml
500
504
  - app/views/govuk_publishing_components/components/docs/breadcrumbs.yml
@@ -609,6 +613,40 @@ files:
609
613
  - lib/govuk_publishing_components/presenters/translation_nav_helper.rb
610
614
  - lib/govuk_publishing_components/version.rb
611
615
  - lib/tasks/govuk_publishing_components_tasks.rake
616
+ - node_modules/accessible-autocomplete/CHANGELOG.md
617
+ - node_modules/accessible-autocomplete/CONTRIBUTING.md
618
+ - node_modules/accessible-autocomplete/LICENSE.txt
619
+ - node_modules/accessible-autocomplete/Procfile
620
+ - node_modules/accessible-autocomplete/README.md
621
+ - node_modules/accessible-autocomplete/accessibility-criteria.md
622
+ - node_modules/accessible-autocomplete/app.json
623
+ - node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css
624
+ - node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js
625
+ - node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map
626
+ - node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js
627
+ - node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map
628
+ - node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js
629
+ - node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map
630
+ - node_modules/accessible-autocomplete/examples/form.html
631
+ - node_modules/accessible-autocomplete/examples/index.html
632
+ - node_modules/accessible-autocomplete/examples/preact/index.html
633
+ - node_modules/accessible-autocomplete/examples/react/index.html
634
+ - node_modules/accessible-autocomplete/package.json
635
+ - node_modules/accessible-autocomplete/preact.js
636
+ - node_modules/accessible-autocomplete/react.js
637
+ - node_modules/accessible-autocomplete/scripts/check-staged.js
638
+ - node_modules/accessible-autocomplete/src/autocomplete.css
639
+ - node_modules/accessible-autocomplete/src/autocomplete.js
640
+ - node_modules/accessible-autocomplete/src/dropdown-arrow-down.js
641
+ - node_modules/accessible-autocomplete/src/status.js
642
+ - node_modules/accessible-autocomplete/src/wrapper.js
643
+ - node_modules/accessible-autocomplete/test/functional/dropdown-arrow-down.js
644
+ - node_modules/accessible-autocomplete/test/functional/index.js
645
+ - node_modules/accessible-autocomplete/test/functional/wrapper.js
646
+ - node_modules/accessible-autocomplete/test/integration/index.js
647
+ - node_modules/accessible-autocomplete/test/karma.config.js
648
+ - node_modules/accessible-autocomplete/test/wdio.config.js
649
+ - node_modules/accessible-autocomplete/webpack.config.babel.js
612
650
  - node_modules/govuk-frontend/README.md
613
651
  - node_modules/govuk-frontend/all-ie8.scss
614
652
  - node_modules/govuk-frontend/all.js
@@ -961,6 +999,44 @@ files:
961
999
  - node_modules/jquery/src/var/support.js
962
1000
  - node_modules/jquery/src/var/toString.js
963
1001
  - node_modules/jquery/src/wrap.js
1002
+ - node_modules/preact/LICENSE
1003
+ - node_modules/preact/README.md
1004
+ - node_modules/preact/debug.js
1005
+ - node_modules/preact/debug.js.map
1006
+ - node_modules/preact/debug/index.js
1007
+ - node_modules/preact/devtools.js
1008
+ - node_modules/preact/devtools.js.map
1009
+ - node_modules/preact/devtools/devtools.js
1010
+ - node_modules/preact/devtools/index.js
1011
+ - node_modules/preact/dist/preact.d.ts
1012
+ - node_modules/preact/dist/preact.dev.js
1013
+ - node_modules/preact/dist/preact.dev.js.map
1014
+ - node_modules/preact/dist/preact.js
1015
+ - node_modules/preact/dist/preact.js.flow
1016
+ - node_modules/preact/dist/preact.js.map
1017
+ - node_modules/preact/dist/preact.min.js
1018
+ - node_modules/preact/dist/preact.min.js.map
1019
+ - node_modules/preact/dist/preact.mjs
1020
+ - node_modules/preact/dist/preact.mjs.map
1021
+ - node_modules/preact/package.json
1022
+ - node_modules/preact/src/clone-element.js
1023
+ - node_modules/preact/src/component.js
1024
+ - node_modules/preact/src/constants.js
1025
+ - node_modules/preact/src/dom/index.js
1026
+ - node_modules/preact/src/h.js
1027
+ - node_modules/preact/src/options.js
1028
+ - node_modules/preact/src/preact.d.ts
1029
+ - node_modules/preact/src/preact.js
1030
+ - node_modules/preact/src/preact.js.flow
1031
+ - node_modules/preact/src/render-queue.js
1032
+ - node_modules/preact/src/render.js
1033
+ - node_modules/preact/src/util.js
1034
+ - node_modules/preact/src/vdom/component-recycler.js
1035
+ - node_modules/preact/src/vdom/component.js
1036
+ - node_modules/preact/src/vdom/diff.js
1037
+ - node_modules/preact/src/vdom/index.js
1038
+ - node_modules/preact/src/vnode.js
1039
+ - node_modules/preact/typings.json
964
1040
  homepage: https://github.com/alphagov/govuk_publishing_components
965
1041
  licenses:
966
1042
  - MIT