govuk_publishing_components 17.21.0 → 18.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/all_components.js +1 -1
  3. data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +1 -1
  4. data/app/assets/javascripts/govuk_publishing_components/components/character-count.js +1 -1
  5. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +1 -1
  6. data/app/assets/javascripts/govuk_publishing_components/components/error-summary.js +1 -1
  7. data/app/assets/javascripts/govuk_publishing_components/components/radio.js +1 -1
  8. data/app/assets/javascripts/govuk_publishing_components/lib/header-navigation.js +1 -1
  9. data/app/assets/stylesheets/component_guide/application.scss +5 -7
  10. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -2
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +1 -1
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_attachment.scss +1 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss +1 -1
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +5 -1
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_button.scss +3 -15
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_character-count.scss +1 -1
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +2 -2
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_contents-list.scss +28 -9
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_date-input.scss +1 -1
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_details.scss +1 -1
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +2 -2
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_error-message.scss +1 -1
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_error-summary.scss +1 -1
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +1 -13
  25. data/app/assets/stylesheets/govuk_publishing_components/components/_fieldset.scss +1 -1
  26. data/app/assets/stylesheets/govuk_publishing_components/components/_file-upload.scss +1 -1
  27. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +3 -3
  28. data/app/assets/stylesheets/govuk_publishing_components/components/_highlight-boxes.scss +3 -3
  29. data/app/assets/stylesheets/govuk_publishing_components/components/_hint.scss +1 -1
  30. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +18 -7
  31. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
  32. data/app/assets/stylesheets/govuk_publishing_components/components/_inset-text.scss +1 -1
  33. data/app/assets/stylesheets/govuk_publishing_components/components/_label.scss +1 -1
  34. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +1 -1
  35. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-admin.scss +1 -1
  36. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +6 -6
  37. data/app/assets/stylesheets/govuk_publishing_components/components/_modal-dialogue.scss +8 -3
  38. data/app/assets/stylesheets/govuk_publishing_components/components/_panel.scss +1 -1
  39. data/app/assets/stylesheets/govuk_publishing_components/components/_phase-banner.scss +1 -1
  40. data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +6 -3
  41. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +1 -1
  42. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +1 -1
  43. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +10 -3
  44. data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +1 -1
  45. data/app/assets/stylesheets/govuk_publishing_components/components/_skip-link.scss +1 -1
  46. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +3 -3
  47. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +17 -1
  48. data/app/assets/stylesheets/govuk_publishing_components/components/_subscription-links.scss +1 -1
  49. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +8 -6
  50. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +1 -1
  51. data/app/assets/stylesheets/govuk_publishing_components/components/_textarea.scss +1 -1
  52. data/app/assets/stylesheets/govuk_publishing_components/components/_title.scss +5 -5
  53. data/app/assets/stylesheets/govuk_publishing_components/components/_warning-text.scss +1 -1
  54. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss +1 -1
  55. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +2 -2
  56. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -1
  57. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_call-to-action.scss +2 -2
  58. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +2 -2
  59. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +2 -2
  60. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_example.scss +2 -2
  61. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +2 -2
  62. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_fraction.scss +2 -2
  63. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +2 -2
  64. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_information-callout.scss +2 -2
  65. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_legislative-list.scss +1 -1
  66. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_media-player.scss +1 -1
  67. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
  68. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_stat-headline.scss +1 -1
  69. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +2 -2
  70. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +4 -4
  71. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -1
  72. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss +2 -2
  73. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_govuk-frontend-settings.scss +0 -4
  74. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +4 -1
  75. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_variables.scss +1 -1
  76. data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +1 -1
  77. data/app/views/govuk_publishing_components/component_guide/index.html.erb +14 -12
  78. data/app/views/govuk_publishing_components/components/_accordion.html.erb +1 -1
  79. data/app/views/govuk_publishing_components/components/_button.html.erb +16 -2
  80. data/app/views/govuk_publishing_components/components/_character_count.html.erb +1 -1
  81. data/app/views/govuk_publishing_components/components/_checkboxes.html.erb +1 -1
  82. data/app/views/govuk_publishing_components/components/_contents_list.html.erb +5 -1
  83. data/app/views/govuk_publishing_components/components/_details.html.erb +3 -1
  84. data/app/views/govuk_publishing_components/components/_error_summary.html.erb +1 -1
  85. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +2 -2
  86. data/app/views/govuk_publishing_components/components/_radio.html.erb +1 -1
  87. data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +2 -2
  88. data/app/views/govuk_publishing_components/components/_tabs.html.erb +1 -1
  89. data/app/views/govuk_publishing_components/components/_textarea.html.erb +1 -1
  90. data/app/views/govuk_publishing_components/components/_title.html.erb +1 -1
  91. data/app/views/govuk_publishing_components/components/docs/button.yml +1 -1
  92. data/app/views/govuk_publishing_components/components/docs/contents_list.yml +12 -0
  93. data/app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml +1 -1
  94. data/app/views/govuk_publishing_components/components/docs/fieldset.yml +1 -1
  95. data/app/views/govuk_publishing_components/components/docs/label.yml +4 -1
  96. data/app/views/govuk_publishing_components/components/docs/table.yml +1 -0
  97. data/app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb +2 -2
  98. data/app/views/govuk_publishing_components/components/feedback/_survey_signup_form.html.erb +2 -2
  99. data/config/initializers/assets.rb +3 -3
  100. data/config/locales/en.yml +0 -2
  101. data/lib/govuk_publishing_components/version.rb +1 -1
  102. data/node_modules/govuk-frontend/README.md +4 -9
  103. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +4 -5
  104. data/node_modules/govuk-frontend/{all-ie8.scss → govuk/all-ie8.scss} +0 -0
  105. data/node_modules/govuk-frontend/{all.js → govuk/all.js} +116 -63
  106. data/node_modules/govuk-frontend/{all.scss → govuk/all.scss} +0 -0
  107. data/node_modules/govuk-frontend/govuk/assets/fonts/bold-affa96571d-v2.woff +0 -0
  108. data/node_modules/govuk-frontend/govuk/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  109. data/node_modules/govuk-frontend/govuk/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  110. data/node_modules/govuk-frontend/govuk/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  111. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/favicon.ico +0 -0
  112. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-152x152.png +0 -0
  113. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-167x167.png +0 -0
  114. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon-180x180.png +0 -0
  115. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-apple-touch-icon.png +0 -0
  116. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-crest-2x.png +0 -0
  117. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-crest.png +0 -0
  118. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-logotype-crown.png +0 -0
  119. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-mask-icon.svg +0 -0
  120. data/node_modules/govuk-frontend/{assets → govuk/assets}/images/govuk-opengraph-image.png +0 -0
  121. data/node_modules/govuk-frontend/{common.js → govuk/common.js} +0 -0
  122. data/node_modules/govuk-frontend/{components → govuk/components}/_all.scss +0 -0
  123. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/README.md +0 -0
  124. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/_accordion.scss +48 -28
  125. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/accordion.js +0 -0
  126. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/macro-options.json +8 -2
  127. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/macro.njk +0 -0
  128. data/node_modules/govuk-frontend/{components → govuk/components}/accordion/template.njk +1 -3
  129. data/node_modules/govuk-frontend/{components → govuk/components}/back-link/README.md +0 -0
  130. data/node_modules/govuk-frontend/{components → govuk/components}/back-link/_back-link.scss +17 -9
  131. data/node_modules/govuk-frontend/{components → govuk/components}/back-link/macro-options.json +0 -0
  132. data/node_modules/govuk-frontend/{components → govuk/components}/back-link/macro.njk +0 -0
  133. data/node_modules/govuk-frontend/{components → govuk/components}/back-link/template.njk +0 -0
  134. data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/README.md +0 -0
  135. data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/_breadcrumbs.scss +10 -11
  136. data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/macro-options.json +0 -0
  137. data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/macro.njk +0 -0
  138. data/node_modules/govuk-frontend/{components → govuk/components}/breadcrumbs/template.njk +0 -0
  139. data/node_modules/govuk-frontend/{components → govuk/components}/button/README.md +0 -0
  140. data/node_modules/govuk-frontend/{components → govuk/components}/button/_button.scss +76 -46
  141. data/node_modules/govuk-frontend/{components → govuk/components}/button/button.js +168 -17
  142. data/node_modules/govuk-frontend/{components → govuk/components}/button/macro-options.json +0 -0
  143. data/node_modules/govuk-frontend/{components → govuk/components}/button/macro.njk +0 -0
  144. data/node_modules/govuk-frontend/govuk/components/button/template.njk +60 -0
  145. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/README.md +0 -0
  146. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/_character-count.scss +0 -0
  147. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/character-count.js +5 -1
  148. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/macro-options.json +0 -0
  149. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/macro.njk +0 -0
  150. data/node_modules/govuk-frontend/{components → govuk/components}/character-count/template.njk +2 -2
  151. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/README.md +0 -0
  152. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/_checkboxes.scss +4 -6
  153. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/checkboxes.js +0 -0
  154. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/macro-options.json +6 -0
  155. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/macro.njk +0 -0
  156. data/node_modules/govuk-frontend/{components → govuk/components}/checkboxes/template.njk +18 -5
  157. data/node_modules/govuk-frontend/{components → govuk/components}/date-input/README.md +0 -0
  158. data/node_modules/govuk-frontend/{components → govuk/components}/date-input/_date-input.scss +0 -0
  159. data/node_modules/govuk-frontend/{components → govuk/components}/date-input/macro-options.json +0 -0
  160. data/node_modules/govuk-frontend/{components → govuk/components}/date-input/macro.njk +0 -0
  161. data/node_modules/govuk-frontend/{components → govuk/components}/date-input/template.njk +1 -1
  162. data/node_modules/govuk-frontend/{components → govuk/components}/details/README.md +0 -0
  163. data/node_modules/govuk-frontend/{components → govuk/components}/details/_details.scss +12 -13
  164. data/node_modules/govuk-frontend/{components → govuk/components}/details/details.js +3 -4
  165. data/node_modules/govuk-frontend/{components → govuk/components}/details/implementation.md +0 -0
  166. data/node_modules/govuk-frontend/{components → govuk/components}/details/macro-options.json +0 -0
  167. data/node_modules/govuk-frontend/{components → govuk/components}/details/macro.njk +0 -0
  168. data/node_modules/govuk-frontend/{components → govuk/components}/details/template.njk +1 -1
  169. data/node_modules/govuk-frontend/{components → govuk/components}/error-message/README.md +0 -0
  170. data/node_modules/govuk-frontend/{components → govuk/components}/error-message/_error-message.scss +0 -0
  171. data/node_modules/govuk-frontend/{components → govuk/components}/error-message/macro-options.json +0 -0
  172. data/node_modules/govuk-frontend/{components → govuk/components}/error-message/macro.njk +0 -0
  173. data/node_modules/govuk-frontend/{components → govuk/components}/error-message/template.njk +0 -0
  174. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/README.md +0 -0
  175. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/_error-summary.scss +4 -17
  176. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/error-summary.js +0 -10
  177. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/macro-options.json +0 -0
  178. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/macro.njk +0 -0
  179. data/node_modules/govuk-frontend/{components → govuk/components}/error-summary/template.njk +1 -1
  180. data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/README.md +0 -0
  181. data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/_fieldset.scss +0 -0
  182. data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/macro-options.json +1 -1
  183. data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/macro.njk +0 -0
  184. data/node_modules/govuk-frontend/{components → govuk/components}/fieldset/template.njk +0 -0
  185. data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/README.md +0 -0
  186. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +81 -0
  187. data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/macro-options.json +6 -0
  188. data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/macro.njk +0 -0
  189. data/node_modules/govuk-frontend/{components → govuk/components}/file-upload/template.njk +1 -1
  190. data/node_modules/govuk-frontend/{components → govuk/components}/footer/README.md +0 -0
  191. data/node_modules/govuk-frontend/{components → govuk/components}/footer/_footer.scss +47 -16
  192. data/node_modules/govuk-frontend/{components → govuk/components}/footer/macro-options.json +5 -0
  193. data/node_modules/govuk-frontend/{components → govuk/components}/footer/macro.njk +0 -0
  194. data/node_modules/govuk-frontend/{components → govuk/components}/footer/template.njk +1 -1
  195. data/node_modules/govuk-frontend/{components → govuk/components}/header/README.md +0 -0
  196. data/node_modules/govuk-frontend/{components → govuk/components}/header/_header.scss +34 -21
  197. data/node_modules/govuk-frontend/{components → govuk/components}/header/header.js +1 -1
  198. data/node_modules/govuk-frontend/{components → govuk/components}/header/macro-options.json +2 -2
  199. data/node_modules/govuk-frontend/{components → govuk/components}/header/macro.njk +0 -0
  200. data/node_modules/govuk-frontend/{components → govuk/components}/header/template.njk +6 -9
  201. data/node_modules/govuk-frontend/{components → govuk/components}/hint/README.md +0 -0
  202. data/node_modules/govuk-frontend/{components → govuk/components}/hint/_hint.scss +0 -0
  203. data/node_modules/govuk-frontend/{components → govuk/components}/hint/macro-options.json +0 -0
  204. data/node_modules/govuk-frontend/{components → govuk/components}/hint/macro.njk +0 -0
  205. data/node_modules/govuk-frontend/{components → govuk/components}/hint/template.njk +0 -0
  206. data/node_modules/govuk-frontend/{components → govuk/components}/input/README.md +0 -0
  207. data/node_modules/govuk-frontend/{components → govuk/components}/input/_input.scss +24 -1
  208. data/node_modules/govuk-frontend/{components → govuk/components}/input/macro-options.json +6 -0
  209. data/node_modules/govuk-frontend/{components → govuk/components}/input/macro.njk +0 -0
  210. data/node_modules/govuk-frontend/{components → govuk/components}/input/template.njk +1 -1
  211. data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/README.md +0 -0
  212. data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/_inset-text.scss +0 -0
  213. data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/macro-options.json +0 -0
  214. data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/macro.njk +0 -0
  215. data/node_modules/govuk-frontend/{components → govuk/components}/inset-text/template.njk +0 -0
  216. data/node_modules/govuk-frontend/{components → govuk/components}/label/README.md +0 -0
  217. data/node_modules/govuk-frontend/{components → govuk/components}/label/_label.scss +0 -0
  218. data/node_modules/govuk-frontend/{components → govuk/components}/label/macro-options.json +0 -0
  219. data/node_modules/govuk-frontend/{components → govuk/components}/label/macro.njk +0 -0
  220. data/node_modules/govuk-frontend/{components → govuk/components}/label/template.njk +0 -0
  221. data/node_modules/govuk-frontend/{components → govuk/components}/panel/README.md +0 -0
  222. data/node_modules/govuk-frontend/{components → govuk/components}/panel/_panel.scss +1 -1
  223. data/node_modules/govuk-frontend/{components → govuk/components}/panel/macro-options.json +0 -0
  224. data/node_modules/govuk-frontend/{components → govuk/components}/panel/macro.njk +0 -0
  225. data/node_modules/govuk-frontend/{components → govuk/components}/panel/template.njk +0 -0
  226. data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/README.md +0 -0
  227. data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/_phase-banner.scss +0 -0
  228. data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/macro-options.json +0 -0
  229. data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/macro.njk +0 -0
  230. data/node_modules/govuk-frontend/{components → govuk/components}/phase-banner/template.njk +5 -7
  231. data/node_modules/govuk-frontend/{components → govuk/components}/radios/README.md +0 -0
  232. data/node_modules/govuk-frontend/{components → govuk/components}/radios/_radios.scss +7 -9
  233. data/node_modules/govuk-frontend/{components → govuk/components}/radios/macro-options.json +0 -0
  234. data/node_modules/govuk-frontend/{components → govuk/components}/radios/macro.njk +0 -0
  235. data/node_modules/govuk-frontend/{components → govuk/components}/radios/radios.js +24 -11
  236. data/node_modules/govuk-frontend/{components → govuk/components}/radios/template.njk +15 -5
  237. data/node_modules/govuk-frontend/{components → govuk/components}/select/README.md +0 -0
  238. data/node_modules/govuk-frontend/{components → govuk/components}/select/_select.scss +23 -1
  239. data/node_modules/govuk-frontend/{components → govuk/components}/select/macro-options.json +6 -0
  240. data/node_modules/govuk-frontend/{components → govuk/components}/select/macro.njk +0 -0
  241. data/node_modules/govuk-frontend/{components → govuk/components}/select/template.njk +1 -1
  242. data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/README.md +0 -0
  243. data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/_skip-link.scss +6 -1
  244. data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/macro-options.json +0 -0
  245. data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/macro.njk +0 -0
  246. data/node_modules/govuk-frontend/{components → govuk/components}/skip-link/template.njk +0 -0
  247. data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/README.md +0 -0
  248. data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/_summary-list.scss +0 -0
  249. data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/macro-options.json +7 -1
  250. data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/macro.njk +0 -0
  251. data/node_modules/govuk-frontend/{components → govuk/components}/summary-list/template.njk +1 -1
  252. data/node_modules/govuk-frontend/{components → govuk/components}/table/README.md +0 -0
  253. data/node_modules/govuk-frontend/{components → govuk/components}/table/_table.scss +1 -0
  254. data/node_modules/govuk-frontend/{components → govuk/components}/table/macro-options.json +0 -0
  255. data/node_modules/govuk-frontend/{components → govuk/components}/table/macro.njk +0 -0
  256. data/node_modules/govuk-frontend/{components → govuk/components}/table/template.njk +14 -14
  257. data/node_modules/govuk-frontend/{components → govuk/components}/tabs/README.md +0 -0
  258. data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +142 -0
  259. data/node_modules/govuk-frontend/{components → govuk/components}/tabs/macro-options.json +0 -0
  260. data/node_modules/govuk-frontend/{components → govuk/components}/tabs/macro.njk +0 -0
  261. data/node_modules/govuk-frontend/{components → govuk/components}/tabs/tabs.js +59 -5
  262. data/node_modules/govuk-frontend/{components → govuk/components}/tabs/template.njk +4 -6
  263. data/node_modules/govuk-frontend/{components → govuk/components}/tag/README.md +0 -0
  264. data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +44 -0
  265. data/node_modules/govuk-frontend/{components → govuk/components}/tag/macro-options.json +0 -0
  266. data/node_modules/govuk-frontend/{components → govuk/components}/tag/macro.njk +0 -0
  267. data/node_modules/govuk-frontend/{components → govuk/components}/tag/template.njk +0 -0
  268. data/node_modules/govuk-frontend/{components → govuk/components}/textarea/README.md +0 -0
  269. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +55 -0
  270. data/node_modules/govuk-frontend/{components → govuk/components}/textarea/macro-options.json +6 -0
  271. data/node_modules/govuk-frontend/{components → govuk/components}/textarea/macro.njk +0 -0
  272. data/node_modules/govuk-frontend/{components → govuk/components}/textarea/template.njk +1 -1
  273. data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/README.md +0 -0
  274. data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/_warning-text.scss +0 -0
  275. data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/macro-options.json +0 -0
  276. data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/macro.njk +0 -0
  277. data/node_modules/govuk-frontend/{components → govuk/components}/warning-text/template.njk +0 -0
  278. data/node_modules/govuk-frontend/{core → govuk/core}/_all.scss +0 -0
  279. data/node_modules/govuk-frontend/{core → govuk/core}/_global-styles.scss +0 -0
  280. data/node_modules/govuk-frontend/{core → govuk/core}/_links.scss +0 -0
  281. data/node_modules/govuk-frontend/{core → govuk/core}/_lists.scss +0 -0
  282. data/node_modules/govuk-frontend/{core → govuk/core}/_section-break.scss +0 -0
  283. data/node_modules/govuk-frontend/{core → govuk/core}/_template.scss +0 -0
  284. data/node_modules/govuk-frontend/{core → govuk/core}/_typography.scss +0 -0
  285. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_all.scss +1 -1
  286. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_clearfix.scss +0 -0
  287. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_colour.scss +23 -1
  288. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_device-pixels.scss +0 -0
  289. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +28 -0
  290. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +41 -0
  291. data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +60 -0
  292. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_links.scss +15 -1
  293. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_media-queries.scss +0 -0
  294. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_shape-arrow.scss +0 -0
  295. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_spacing.scss +0 -0
  296. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_typography.scss +23 -5
  297. data/node_modules/govuk-frontend/{helpers → govuk/helpers}/_visually-hidden.scss +4 -2
  298. data/node_modules/govuk-frontend/{objects → govuk/objects}/_all.scss +0 -0
  299. data/node_modules/govuk-frontend/{objects → govuk/objects}/_form-group.scss +0 -0
  300. data/node_modules/govuk-frontend/{objects → govuk/objects}/_grid.scss +2 -2
  301. data/node_modules/govuk-frontend/{objects → govuk/objects}/_main-wrapper.scss +15 -1
  302. data/node_modules/govuk-frontend/{objects → govuk/objects}/_width-container.scss +0 -0
  303. data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_all.scss +0 -0
  304. data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_display.scss +0 -0
  305. data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_spacing.scss +0 -0
  306. data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_typography.scss +0 -0
  307. data/node_modules/govuk-frontend/{overrides → govuk/overrides}/_width.scss +0 -0
  308. data/node_modules/govuk-frontend/{settings → govuk/settings}/_all.scss +0 -0
  309. data/node_modules/govuk-frontend/{settings → govuk/settings}/_assets.scss +0 -0
  310. data/node_modules/govuk-frontend/{settings → govuk/settings}/_colours-applied.scss +9 -8
  311. data/node_modules/govuk-frontend/{settings → govuk/settings}/_colours-organisations.scss +1 -1
  312. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +101 -0
  313. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +75 -0
  314. data/node_modules/govuk-frontend/{settings → govuk/settings}/_global-styles.scss +0 -0
  315. data/node_modules/govuk-frontend/{settings → govuk/settings}/_ie8.scss +0 -0
  316. data/node_modules/govuk-frontend/{settings → govuk/settings}/_measurements.scss +2 -2
  317. data/node_modules/govuk-frontend/{settings → govuk/settings}/_media-queries.scss +0 -0
  318. data/node_modules/govuk-frontend/{settings → govuk/settings}/_spacing.scss +0 -0
  319. data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-font-families.scss +11 -1
  320. data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-font.scss +27 -7
  321. data/node_modules/govuk-frontend/{settings → govuk/settings}/_typography-responsive.scss +9 -10
  322. data/node_modules/govuk-frontend/{template.njk → govuk/template.njk} +0 -0
  323. data/node_modules/govuk-frontend/{tools → govuk/tools}/_all.scss +0 -0
  324. data/node_modules/govuk-frontend/{tools → govuk/tools}/_compatibility.scss +0 -0
  325. data/node_modules/govuk-frontend/{tools → govuk/tools}/_exports.scss +0 -0
  326. data/node_modules/govuk-frontend/{tools → govuk/tools}/_font-url.scss +0 -0
  327. data/node_modules/govuk-frontend/{tools → govuk/tools}/_ie8.scss +0 -0
  328. data/node_modules/govuk-frontend/{tools → govuk/tools}/_iff.scss +0 -0
  329. data/node_modules/govuk-frontend/{tools → govuk/tools}/_image-url.scss +0 -0
  330. data/node_modules/govuk-frontend/{tools → govuk/tools}/_px-to-em.scss +0 -0
  331. data/node_modules/govuk-frontend/{tools → govuk/tools}/_px-to-rem.scss +0 -0
  332. data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_all.scss +0 -0
  333. data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_clearfix.scss +0 -0
  334. data/node_modules/govuk-frontend/{utilities → govuk/utilities}/_visually-hidden.scss +0 -0
  335. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/_sass-mq.scss +0 -0
  336. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/DOMTokenList.js +0 -0
  337. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Document.js +0 -0
  338. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element.js +0 -0
  339. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/classList.js +0 -0
  340. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/closest.js +0 -0
  341. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Element/prototype/matches.js +0 -0
  342. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +259 -0
  343. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +257 -0
  344. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Event.js +0 -0
  345. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Function/prototype/bind.js +0 -0
  346. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Object/defineProperty.js +0 -0
  347. data/node_modules/govuk-frontend/{vendor → govuk/vendor}/polyfills/Window.js +0 -0
  348. data/node_modules/govuk-frontend/package.json +21 -21
  349. data/node_modules/react-is/README.md +2 -12
  350. data/node_modules/react-is/build-info.json +5 -5
  351. data/node_modules/react-is/cjs/react-is.development.js +7 -2
  352. data/node_modules/react-is/cjs/react-is.production.min.js +6 -6
  353. data/node_modules/react-is/package.json +13 -13
  354. data/node_modules/react-is/umd/react-is.development.js +7 -2
  355. data/node_modules/react-is/umd/react-is.production.min.js +5 -5
  356. data/node_modules/type/CHANGELOG.md +62 -50
  357. data/node_modules/type/LICENSE +15 -0
  358. data/node_modules/type/README.md +19 -19
  359. data/node_modules/type/error/is.js +28 -7
  360. data/node_modules/type/package.json +36 -22
  361. data/node_modules/type/test/error/is.js +13 -5
  362. metadata +247 -344
  363. data/app/assets/javascripts/govuk_publishing_components/components/accessible-autocomplete.js +0 -79
  364. data/app/assets/stylesheets/govuk_publishing_components/components/_accessible-autocomplete.scss +0 -41
  365. data/app/views/govuk_publishing_components/components/_accessible_autocomplete.html.erb +0 -35
  366. data/app/views/govuk_publishing_components/components/docs/accessible_autocomplete.yml +0 -49
  367. data/node_modules/accessible-autocomplete/CHANGELOG.md +0 -269
  368. data/node_modules/accessible-autocomplete/CONTRIBUTING.md +0 -150
  369. data/node_modules/accessible-autocomplete/LICENSE.txt +0 -20
  370. data/node_modules/accessible-autocomplete/Procfile +0 -1
  371. data/node_modules/accessible-autocomplete/README.md +0 -416
  372. data/node_modules/accessible-autocomplete/accessibility-criteria.md +0 -42
  373. data/node_modules/accessible-autocomplete/app.json +0 -15
  374. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css +0 -1
  375. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js +0 -2
  376. data/node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map +0 -1
  377. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js +0 -2
  378. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.preact.min.js.map +0 -1
  379. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js +0 -2
  380. data/node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js.map +0 -1
  381. data/node_modules/accessible-autocomplete/examples/form.html +0 -671
  382. data/node_modules/accessible-autocomplete/examples/index.html +0 -665
  383. data/node_modules/accessible-autocomplete/examples/multiselect.html +0 -134
  384. data/node_modules/accessible-autocomplete/examples/preact/index.html +0 -346
  385. data/node_modules/accessible-autocomplete/examples/react/index.html +0 -347
  386. data/node_modules/accessible-autocomplete/package-lock.json +0 -14491
  387. data/node_modules/accessible-autocomplete/package.json +0 -173
  388. data/node_modules/accessible-autocomplete/preact.js +0 -1
  389. data/node_modules/accessible-autocomplete/react.js +0 -1
  390. data/node_modules/accessible-autocomplete/scripts/check-staged.js +0 -14
  391. data/node_modules/accessible-autocomplete/src/autocomplete.css +0 -192
  392. data/node_modules/accessible-autocomplete/src/autocomplete.js +0 -618
  393. data/node_modules/accessible-autocomplete/src/dropdown-arrow-down.js +0 -11
  394. data/node_modules/accessible-autocomplete/src/status.js +0 -80
  395. data/node_modules/accessible-autocomplete/src/wrapper.js +0 -76
  396. data/node_modules/accessible-autocomplete/test/functional/dropdown-arrow-down.js +0 -44
  397. data/node_modules/accessible-autocomplete/test/functional/index.js +0 -485
  398. data/node_modules/accessible-autocomplete/test/functional/wrapper.js +0 -318
  399. data/node_modules/accessible-autocomplete/test/integration/index.js +0 -188
  400. data/node_modules/accessible-autocomplete/test/karma.config.js +0 -42
  401. data/node_modules/accessible-autocomplete/test/wdio.config.js +0 -80
  402. data/node_modules/accessible-autocomplete/webpack.config.babel.js +0 -193
  403. data/node_modules/govuk-frontend/assets/fonts/bold-a2452cb66f-v1.woff2 +0 -0
  404. data/node_modules/govuk-frontend/assets/fonts/bold-f38c792ac2-v1.woff +0 -0
  405. data/node_modules/govuk-frontend/assets/fonts/bold-fb2676462a-v1.eot +0 -0
  406. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-357fdfbcc3-v1.eot +0 -0
  407. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-784c21afb8-v1.woff +0 -0
  408. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-b89238d840-v1.woff2 +0 -0
  409. data/node_modules/govuk-frontend/assets/fonts/light-2c037cf7e1-v1.eot +0 -0
  410. data/node_modules/govuk-frontend/assets/fonts/light-458f8ea81c-v1.woff +0 -0
  411. data/node_modules/govuk-frontend/assets/fonts/light-f38ad40456-v1.woff2 +0 -0
  412. data/node_modules/govuk-frontend/assets/fonts/light-tabular-498ea8ffe2-v1.eot +0 -0
  413. data/node_modules/govuk-frontend/assets/fonts/light-tabular-62cc6f0a28-v1.woff +0 -0
  414. data/node_modules/govuk-frontend/assets/fonts/light-tabular-851b10ccdd-v1.woff2 +0 -0
  415. data/node_modules/govuk-frontend/assets/images/icon-arrow-left.png +0 -0
  416. data/node_modules/govuk-frontend/assets/images/icon-important.png +0 -0
  417. data/node_modules/govuk-frontend/assets/images/icon-pointer-2x.png +0 -0
  418. data/node_modules/govuk-frontend/assets/images/icon-pointer.png +0 -0
  419. data/node_modules/govuk-frontend/components/button/template.njk +0 -35
  420. data/node_modules/govuk-frontend/components/file-upload/_file-upload.scss +0 -19
  421. data/node_modules/govuk-frontend/components/tabs/_tabs.scss +0 -130
  422. data/node_modules/govuk-frontend/components/tag/_tag.scss +0 -33
  423. data/node_modules/govuk-frontend/components/textarea/_textarea.scss +0 -32
  424. data/node_modules/govuk-frontend/helpers/_focusable.scss +0 -34
  425. data/node_modules/govuk-frontend/helpers/_font-faces.scss +0 -67
  426. data/node_modules/govuk-frontend/helpers/_grid.scss +0 -107
  427. data/node_modules/govuk-frontend/settings/_colours-palette.scss +0 -37
  428. data/node_modules/govuk-frontend/settings/_compatibility.scss +0 -51
  429. data/node_modules/preact/LICENSE +0 -21
  430. data/node_modules/preact/README.md +0 -592
  431. data/node_modules/preact/debug.js +0 -740
  432. data/node_modules/preact/debug.js.map +0 -1
  433. data/node_modules/preact/debug/dist/debug.js +0 -2
  434. data/node_modules/preact/debug/dist/debug.js.map +0 -1
  435. data/node_modules/preact/debug/dist/debug.mjs +0 -681
  436. data/node_modules/preact/debug/dist/debug.mjs.map +0 -1
  437. data/node_modules/preact/debug/dist/debug.module.js +0 -2
  438. data/node_modules/preact/debug/dist/debug.module.js.map +0 -1
  439. data/node_modules/preact/debug/dist/debug.umd.js +0 -2
  440. data/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
  441. data/node_modules/preact/debug/index.js +0 -122
  442. data/node_modules/preact/devtools.js +0 -403
  443. data/node_modules/preact/devtools.js.map +0 -1
  444. data/node_modules/preact/devtools/devtools.js +0 -395
  445. data/node_modules/preact/devtools/index.js +0 -4
  446. data/node_modules/preact/dist/preact.d.ts +0 -1712
  447. data/node_modules/preact/dist/preact.dev.js +0 -727
  448. data/node_modules/preact/dist/preact.dev.js.map +0 -1
  449. data/node_modules/preact/dist/preact.js +0 -414
  450. data/node_modules/preact/dist/preact.js.flow +0 -25
  451. data/node_modules/preact/dist/preact.js.map +0 -1
  452. data/node_modules/preact/dist/preact.min.js +0 -2
  453. data/node_modules/preact/dist/preact.min.js.map +0 -1
  454. data/node_modules/preact/dist/preact.mjs +0 -724
  455. data/node_modules/preact/dist/preact.mjs.map +0 -1
  456. data/node_modules/preact/dist/preact.umd.js +0 -751
  457. data/node_modules/preact/dist/preact.umd.js.map +0 -1
  458. data/node_modules/preact/package.json +0 -226
  459. data/node_modules/preact/src/clone-element.js +0 -18
  460. data/node_modules/preact/src/component.js +0 -90
  461. data/node_modules/preact/src/constants.js +0 -17
  462. data/node_modules/preact/src/dom/index.js +0 -139
  463. data/node_modules/preact/src/h.js +0 -86
  464. data/node_modules/preact/src/options.js +0 -22
  465. data/node_modules/preact/src/preact.d.ts +0 -1712
  466. data/node_modules/preact/src/preact.js +0 -32
  467. data/node_modules/preact/src/preact.js.flow +0 -25
  468. data/node_modules/preact/src/render-queue.js +0 -27
  469. data/node_modules/preact/src/render.js +0 -22
  470. data/node_modules/preact/src/util.js +0 -30
  471. data/node_modules/preact/src/vdom/component-recycler.js +0 -48
  472. data/node_modules/preact/src/vdom/component.js +0 -296
  473. data/node_modules/preact/src/vdom/diff.js +0 -337
  474. data/node_modules/preact/src/vdom/index.js +0 -54
  475. data/node_modules/preact/src/vnode.js +0 -9
  476. data/node_modules/preact/typings.json +0 -5
@@ -1,11 +0,0 @@
1
- import { createElement } from 'preact' /** @jsx createElement */
2
-
3
- const DropdownArrowDown = ({ className }) => (
4
- <svg version='1.1' xmlns='http://www.w3.org/2000/svg' className={className} focusable='false'>
5
- <g stroke='none' fill='none' fill-rule='evenodd'>
6
- <polygon fill='#000000' points='0 0 22 0 11 17' />
7
- </g>
8
- </svg>
9
- )
10
-
11
- export default DropdownArrowDown
@@ -1,80 +0,0 @@
1
- import { createElement, Component } from 'preact' /** @jsx createElement */
2
-
3
- export default class Status extends Component {
4
- static defaultProps = {
5
- tQueryTooShort: (minQueryLength) => `Type in ${minQueryLength} or more characters for results.`,
6
- tNoResults: () => 'No search results.',
7
- tSelectedOption: (selectedOption, length, index) => `${selectedOption} (${index + 1} of ${length}) is selected.`,
8
- tResults: (length, contentSelectedOption) => {
9
- const words = {
10
- result: (length === 1) ? 'result' : 'results',
11
- is: (length === 1) ? 'is' : 'are'
12
- }
13
-
14
- return `${length} ${words.result} ${words.is} available. ${contentSelectedOption}`
15
- }
16
- };
17
-
18
- state = {
19
- bump: false
20
- }
21
-
22
- componentWillReceiveProps ({ queryLength }) {
23
- const hasChanged = queryLength !== this.props.queryLength
24
- if (hasChanged) {
25
- this.setState(({ bump }) => ({ bump: !bump }))
26
- }
27
- }
28
-
29
- render () {
30
- const {
31
- length,
32
- queryLength,
33
- minQueryLength,
34
- selectedOption,
35
- selectedOptionIndex,
36
- tQueryTooShort,
37
- tNoResults,
38
- tSelectedOption,
39
- tResults
40
- } = this.props
41
- const { bump } = this.state
42
-
43
- const queryTooShort = queryLength < minQueryLength
44
- const noResults = length === 0
45
-
46
- const contentSelectedOption = selectedOption
47
- ? tSelectedOption(selectedOption, length, selectedOptionIndex)
48
- : ''
49
-
50
- let content = null
51
- if (queryTooShort) {
52
- content = tQueryTooShort(minQueryLength)
53
- } else if (noResults) {
54
- content = tNoResults()
55
- } else {
56
- content = tResults(length, contentSelectedOption)
57
- }
58
-
59
- return <div
60
- aria-atomic='true'
61
- aria-live='polite'
62
- role='status'
63
- style={{
64
- border: '0',
65
- clip: 'rect(0 0 0 0)',
66
- height: '1px',
67
- marginBottom: '-1px',
68
- marginRight: '-1px',
69
- overflow: 'hidden',
70
- padding: '0',
71
- position: 'absolute',
72
- whiteSpace: 'nowrap',
73
- width: '1px'
74
- }}
75
- >
76
- {content}
77
- <span>{bump ? ',' : ',,'}</span>
78
- </div>
79
- }
80
- }
@@ -1,76 +0,0 @@
1
- import { createElement, render } from 'preact' /** @jsx createElement */
2
- import Autocomplete from './autocomplete'
3
-
4
- function accessibleAutocomplete (options) {
5
- if (!options.element) { throw new Error('element is not defined') }
6
- if (!options.id) { throw new Error('id is not defined') }
7
- if (!options.source) { throw new Error('source is not defined') }
8
- if (Array.isArray(options.source)) {
9
- options.source = createSimpleEngine(options.source)
10
- }
11
- render(<Autocomplete {...options} />, options.element)
12
- }
13
-
14
- const createSimpleEngine = (values) => (query, syncResults) => {
15
- var matches = values.filter(r => r.toLowerCase().indexOf(query.toLowerCase()) !== -1)
16
- syncResults(matches)
17
- }
18
-
19
- accessibleAutocomplete.enhanceSelectElement = (configurationOptions) => {
20
- if (!configurationOptions.selectElement) { throw new Error('selectElement is not defined') }
21
-
22
- // Set defaults.
23
- if (!configurationOptions.source) {
24
- let availableOptions = [].filter.call(configurationOptions.selectElement.options, option => (option.value || configurationOptions.preserveNullOptions))
25
- configurationOptions.source = availableOptions.map(option => option.textContent || option.innerText)
26
-
27
- // Store selected options
28
- if (configurationOptions.selectElement.multiple) {
29
- configurationOptions.multiple = true
30
- configurationOptions.confirmOnBlur = false
31
- configurationOptions.showNoOptionsFound = false
32
- configurationOptions.selectedOptions = availableOptions.filter(option => option.selected)
33
- }
34
- }
35
- configurationOptions.onConfirm = configurationOptions.onConfirm || (query => {
36
- const requestedOption = [].filter.call(configurationOptions.selectElement.options, option => (option.textContent || option.innerText) === query)[0]
37
- if (requestedOption) {
38
- requestedOption.selected = true
39
- } else {
40
- configurationOptions.selectElement.options[0].selected = true
41
- }
42
- })
43
-
44
- if (configurationOptions.selectElement.value || configurationOptions.defaultValue === undefined) {
45
- const option = configurationOptions.selectElement.options[configurationOptions.selectElement.options.selectedIndex]
46
- if (configurationOptions.selectElement.multiple) {
47
- configurationOptions.defaultValue = ''
48
- } else if (option.textContent || option.innerText) {
49
- configurationOptions.defaultValue = option.textContent || option.innerText
50
- }
51
- }
52
-
53
- if (configurationOptions.name === undefined) configurationOptions.name = ''
54
- if (configurationOptions.id === undefined) {
55
- if (configurationOptions.selectElement.id === undefined) {
56
- configurationOptions.id = ''
57
- } else {
58
- configurationOptions.id = configurationOptions.selectElement.id
59
- }
60
- }
61
- if (configurationOptions.autoselect === undefined) configurationOptions.autoselect = true
62
-
63
- const element = document.createElement('span')
64
-
65
- configurationOptions.selectElement.parentNode.insertBefore(element, configurationOptions.selectElement)
66
-
67
- accessibleAutocomplete({
68
- ...configurationOptions,
69
- element: element
70
- })
71
-
72
- configurationOptions.selectElement.style.display = 'none'
73
- configurationOptions.selectElement.id = configurationOptions.selectElement.id + '-select'
74
- }
75
-
76
- export default accessibleAutocomplete
@@ -1,44 +0,0 @@
1
- /* global before, beforeEach, after, describe, expect, it */
2
- import { createElement, render } from 'preact' /** @jsx createElement */
3
- import DropdownArrowDown from '../../src/dropdown-arrow-down'
4
-
5
- describe('DropdownArrowDown', () => {
6
- describe('rendering', () => {
7
- let scratch
8
-
9
- before(() => {
10
- scratch = document.createElement('div');
11
- (document.body || document.documentElement).appendChild(scratch)
12
- })
13
-
14
- beforeEach(() => {
15
- scratch.innerHTML = ''
16
- })
17
-
18
- after(() => {
19
- scratch.parentNode.removeChild(scratch)
20
- scratch = null
21
- })
22
-
23
- describe('basic usage', () => {
24
- it('renders an svg', () => {
25
- render(<DropdownArrowDown />, scratch)
26
-
27
- expect(scratch.innerHTML).to.contain('svg')
28
- })
29
-
30
- it('renders with a given custom class', () => {
31
- render(<DropdownArrowDown className='foo' />, scratch)
32
-
33
- expect(scratch.innerHTML).to.contain('class="foo"')
34
- })
35
-
36
- // IE issue so the dropdown svg is not focusable (tabindex won't work for this)
37
- it('renders an svg where focusable attribute is false', () => {
38
- render(<DropdownArrowDown />, scratch)
39
-
40
- expect(scratch.innerHTML).to.contain('focusable="false"')
41
- })
42
- })
43
- })
44
- })
@@ -1,485 +0,0 @@
1
- /* global after, describe, before, beforeEach, expect, it */
2
- import { createElement, render } from 'preact' /** @jsx createElement */
3
- import Autocomplete from '../../src/autocomplete'
4
-
5
- function suggest (query, syncResults) {
6
- var results = [
7
- 'France',
8
- 'Germany',
9
- 'United Kingdom'
10
- ]
11
- syncResults(query
12
- ? results.filter(function (result) {
13
- return result.toLowerCase().indexOf(query.toLowerCase()) !== -1
14
- })
15
- : []
16
- )
17
- }
18
-
19
- describe('Autocomplete', () => {
20
- describe('rendering', () => {
21
- let scratch
22
-
23
- before(() => {
24
- scratch = document.createElement('div');
25
- (document.body || document.documentElement).appendChild(scratch)
26
- })
27
-
28
- beforeEach(() => {
29
- scratch.innerHTML = ''
30
- })
31
-
32
- after(() => {
33
- scratch.parentNode.removeChild(scratch)
34
- scratch = null
35
- })
36
-
37
- describe('basic usage', () => {
38
- it('renders an input', () => {
39
- render(<Autocomplete />, scratch)
40
-
41
- expect(scratch.innerHTML).to.contain('input')
42
- expect(scratch.innerHTML).to.contain('class="autocomplete__input')
43
- expect(scratch.innerHTML).to.contain('class="autocomplete__menu')
44
- expect(scratch.innerHTML).to.contain('name="input-autocomplete"')
45
- })
46
-
47
- it('renders an input with a required attribute', () => {
48
- render(<Autocomplete required />, scratch)
49
-
50
- expect(scratch.innerHTML).to.contain('required')
51
- })
52
-
53
- it('renders an input without a required attribute', () => {
54
- render(<Autocomplete required={false} />, scratch)
55
-
56
- expect(scratch.innerHTML).to.not.contain('required')
57
- })
58
-
59
- it('renders an input with a name attribute', () => {
60
- render(<Autocomplete name='bob' />, scratch)
61
-
62
- expect(scratch.innerHTML).to.contain('name="bob"')
63
- })
64
-
65
- it('renders an input with a custom CSS namespace', () => {
66
- render(<Autocomplete cssNamespace='bob' />, scratch)
67
-
68
- expect(scratch.innerHTML).to.contain('class="bob__input')
69
- expect(scratch.innerHTML).to.contain('class="bob__menu')
70
- })
71
-
72
- it('renders with the correct aria attributes', () => {
73
- render(<Autocomplete required />, scratch)
74
-
75
- let wrapperElement = scratch.getElementsByClassName('autocomplete__wrapper')[0]
76
-
77
- expect(wrapperElement.getAttribute('aria-expanded')).to.equal('false')
78
- })
79
-
80
- it('renders with the correct roles', () => {
81
- render(<Autocomplete required />, scratch)
82
-
83
- let wrapperElement = scratch.getElementsByClassName('autocomplete__wrapper')[0]
84
- let inputElement = wrapperElement.getElementsByTagName('input')[0]
85
- let dropdownElement = wrapperElement.getElementsByTagName('ul')[0]
86
-
87
- expect(inputElement.getAttribute('role')).to.equal('textbox', 'input should have textbox role')
88
- expect(dropdownElement.getAttribute('role')).to.equal('listbox', 'menu should have listbox role')
89
- })
90
- })
91
- })
92
-
93
- describe('behaviour', () => {
94
- let autocomplete, autoselectAutocomplete, onConfirmAutocomplete, onConfirmTriggered,
95
- autoselectOnSelectAutocomplete, confirmOnBlurAutocomplete
96
-
97
- beforeEach(() => {
98
- autocomplete = new Autocomplete({
99
- ...Autocomplete.defaultProps,
100
- id: 'test',
101
- source: suggest
102
- })
103
-
104
- autoselectAutocomplete = new Autocomplete({
105
- ...Autocomplete.defaultProps,
106
- autoselect: true,
107
- id: 'test2',
108
- source: suggest
109
- })
110
-
111
- onConfirmTriggered = false
112
- onConfirmAutocomplete = new Autocomplete({
113
- ...Autocomplete.defaultProps,
114
- id: 'test3',
115
- onConfirm: () => { onConfirmTriggered = true },
116
- source: suggest
117
- })
118
-
119
- autoselectOnSelectAutocomplete = new Autocomplete({
120
- ...Autocomplete.defaultProps,
121
- autoselect: true,
122
- id: 'test4',
123
- onConfirm: () => { onConfirmTriggered = true },
124
- source: suggest
125
- })
126
-
127
- confirmOnBlurAutocomplete = new Autocomplete({
128
- ...Autocomplete.defaultProps,
129
- id: 'test5',
130
- onConfirm: () => { onConfirmTriggered = true },
131
- confirmOnBlur: false,
132
- source: suggest
133
- })
134
- })
135
-
136
- describe('typing', () => {
137
- it('searches for options', () => {
138
- autocomplete.handleInputChange({ target: { value: 'f' } })
139
- expect(autocomplete.state.menuOpen).to.equal(true)
140
- expect(autocomplete.state.options).to.contain('France')
141
- })
142
-
143
- it('hides menu when no options are available', () => {
144
- autocomplete.handleInputChange({ target: { value: 'aa' } })
145
- expect(autocomplete.state.menuOpen).to.equal(false)
146
- expect(autocomplete.state.options.length).to.equal(0)
147
- })
148
-
149
- it('hides menu when query becomes empty', () => {
150
- autocomplete.setState({ query: 'f', options: ['France'], menuOpen: true })
151
- autocomplete.handleInputChange({ target: { value: '' } })
152
- expect(autocomplete.state.menuOpen).to.equal(false)
153
- })
154
-
155
- describe('with minLength', () => {
156
- beforeEach(() => {
157
- autocomplete = new Autocomplete({
158
- ...Autocomplete.defaultProps,
159
- id: 'test',
160
- source: suggest,
161
- minLength: 2
162
- })
163
- })
164
-
165
- it('doesn\'t search when under limit', () => {
166
- autocomplete.handleInputChange({ target: { value: 'f' } })
167
- expect(autocomplete.state.menuOpen).to.equal(false)
168
- expect(autocomplete.state.options.length).to.equal(0)
169
- })
170
-
171
- it('does search when over limit', () => {
172
- autocomplete.handleInputChange({ target: { value: 'fra' } })
173
- expect(autocomplete.state.menuOpen).to.equal(true)
174
- expect(autocomplete.state.options).to.contain('France')
175
- })
176
-
177
- it('hides results when going under limit', () => {
178
- autocomplete.setState({ menuOpen: true, query: 'fr', options: ['France'] })
179
- autocomplete.handleInputChange({ target: { value: 'f' } })
180
- expect(autocomplete.state.menuOpen).to.equal(false)
181
- expect(autocomplete.state.options.length).to.equal(0)
182
- })
183
- })
184
- })
185
-
186
- describe('focusing input', () => {
187
- it('does not display menu when something is typed in', () => {
188
- autocomplete.setState({ query: 'f' })
189
- autocomplete.handleInputFocus()
190
- expect(autocomplete.state.menuOpen).to.equal(false)
191
- expect(autocomplete.state.focused).to.equal(-1)
192
- })
193
-
194
- it('hides menu when query is empty', () => {
195
- autocomplete.setState({ query: '' })
196
- autocomplete.handleInputFocus()
197
- expect(autocomplete.state.menuOpen).to.equal(false)
198
- expect(autocomplete.state.focused).to.equal(-1)
199
- })
200
-
201
- describe('with option selected', () => {
202
- it('leaves menu open, does not change query', () => {
203
- autocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: 0, selected: 0 })
204
- autocomplete.handleInputFocus()
205
- expect(autocomplete.state.focused).to.equal(-1)
206
- expect(autocomplete.state.menuOpen).to.equal(true)
207
- expect(autocomplete.state.query).to.equal('fr')
208
- })
209
- })
210
-
211
- describe('with defaultValue', () => {
212
- beforeEach(() => {
213
- autocomplete = new Autocomplete({
214
- ...Autocomplete.defaultProps,
215
- defaultValue: 'France',
216
- id: 'test',
217
- source: suggest
218
- })
219
- })
220
-
221
- it('is prefilled', () => {
222
- expect(autocomplete.state.options.length).to.equal(1)
223
- expect(autocomplete.state.options[0]).to.equal('France')
224
- expect(autocomplete.state.query).to.equal('France')
225
- })
226
- })
227
- })
228
-
229
- describe('blurring input', () => {
230
- it('unfocuses component', (done) => {
231
- autocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: -1, selected: -1 })
232
- autocomplete.handleInputBlur({ relatedTarget: null })
233
- // Using setTimeouts here since changes in values take a while to reflect in lists
234
- setTimeout(() => {
235
- expect(autocomplete.state.focused).to.equal(null)
236
- expect(autocomplete.state.menuOpen).to.equal(false)
237
- expect(autocomplete.state.query).to.equal('fr')
238
- done()
239
- }, 250)
240
- })
241
-
242
- describe('with autoselect and onConfirm', () => {
243
- it('unfocuses component, updates query, triggers onConfirm', (done) => {
244
- autoselectOnSelectAutocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: -1, selected: 0 })
245
- autoselectOnSelectAutocomplete.handleInputBlur({ target: 'mock', relatedTarget: 'relatedMock' }, 0)
246
- // Using setTimeouts here since changes in values take a while to reflect in lists
247
- setTimeout(() => {
248
- expect(autoselectOnSelectAutocomplete.state.focused).to.equal(null)
249
- expect(autoselectOnSelectAutocomplete.state.menuOpen).to.equal(false)
250
- expect(autoselectOnSelectAutocomplete.state.query).to.equal('France')
251
- expect(onConfirmTriggered).to.equal(true)
252
- done()
253
- }, 250)
254
- })
255
- })
256
-
257
- describe('with confirmOnBlur false', () => {
258
- it('unfocuses component, does not touch query, does not trigger onConfirm', (done) => {
259
- confirmOnBlurAutocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: -1, selected: 0 })
260
- confirmOnBlurAutocomplete.handleInputBlur({ target: 'mock', relatedTarget: 'relatedMock' }, 0)
261
- setTimeout(() => {
262
- expect(confirmOnBlurAutocomplete.state.focused).to.equal(null)
263
- expect(confirmOnBlurAutocomplete.state.menuOpen).to.equal(false)
264
- expect(confirmOnBlurAutocomplete.state.query).to.equal('fr')
265
- expect(onConfirmTriggered).to.equal(false)
266
- done()
267
- }, 250)
268
- })
269
- })
270
- })
271
-
272
- describe('focusing option', () => {
273
- it('sets the option as focused', () => {
274
- autocomplete.setState({ options: ['France'] })
275
- autocomplete.handleOptionFocus(0)
276
- expect(autocomplete.state.focused).to.equal(0)
277
- })
278
- })
279
-
280
- describe('focusing out option', () => {
281
- describe('with input selected', () => {
282
- it('unfocuses component, does not change query', () => {
283
- autocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: 0, selected: -1 })
284
- autocomplete.handleOptionBlur({ target: 'mock', relatedTarget: 'relatedMock' }, 0)
285
- expect(autocomplete.state.focused).to.equal(null)
286
- expect(autocomplete.state.menuOpen).to.equal(false)
287
- expect(autocomplete.state.query).to.equal('fr')
288
- })
289
- })
290
-
291
- describe('with option selected', () => {
292
- describe('with confirmOnBlur true', () => {
293
- it('unfocuses component, updates query', () => {
294
- autocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: 0, selected: 0 })
295
- autocomplete.handleOptionBlur({ target: 'mock', relatedTarget: 'relatedMock' }, 0)
296
- expect(autocomplete.state.focused).to.equal(null)
297
- expect(autocomplete.state.menuOpen).to.equal(false)
298
- expect(autocomplete.state.query).to.equal('France')
299
- })
300
- })
301
- describe('with confirmOnBlur false', () => {
302
- it('unfocuses component, does not update query', () => {
303
- confirmOnBlurAutocomplete.setState({ menuOpen: true, options: ['France'], query: 'fr', focused: 0, selected: 0 })
304
- confirmOnBlurAutocomplete.handleOptionBlur({ target: 'mock', relatedTarget: 'relatedMock' }, 0)
305
- expect(confirmOnBlurAutocomplete.state.focused).to.equal(null)
306
- expect(confirmOnBlurAutocomplete.state.menuOpen).to.equal(false)
307
- expect(confirmOnBlurAutocomplete.state.query).to.equal('fr')
308
- })
309
- })
310
- })
311
- })
312
-
313
- describe('hovering option', () => {
314
- it('sets the option as hovered, does not change focused, does not change selected', () => {
315
- autocomplete.setState({ options: ['France'], hovered: null, focused: -1, selected: -1 })
316
- autocomplete.handleOptionMouseEnter({}, 0)
317
- expect(autocomplete.state.hovered).to.equal(0)
318
- expect(autocomplete.state.focused).to.equal(-1)
319
- expect(autocomplete.state.selected).to.equal(-1)
320
- })
321
- })
322
-
323
- describe('hovering out option', () => {
324
- it('sets focus back on selected, sets hovered to null', () => {
325
- autocomplete.setState({ options: ['France'], hovered: 0, focused: -1, selected: -1 })
326
- autocomplete.handleListMouseLeave({ toElement: 'mock' }, 0)
327
- expect(autocomplete.state.hovered).to.equal(null)
328
- expect(autocomplete.state.focused).to.equal(-1)
329
- expect(autocomplete.state.selected).to.equal(-1)
330
- })
331
- })
332
-
333
- describe('up key', () => {
334
- it('focuses previous element', () => {
335
- autocomplete.setState({ menuOpen: true, options: ['France'], focused: 0 })
336
- autocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 38 })
337
- expect(autocomplete.state.focused).to.equal(-1)
338
- })
339
- })
340
-
341
- describe('down key', () => {
342
- describe('0 options available', () => {
343
- it('does nothing', () => {
344
- autocomplete.setState({ menuOpen: false, options: [], focused: -1 })
345
- const stateBefore = autocomplete.state
346
- autocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
347
- expect(autocomplete.state).to.equal(stateBefore)
348
- })
349
- })
350
-
351
- describe('1 option available', () => {
352
- it('focuses next element', () => {
353
- autocomplete.setState({ menuOpen: true, options: ['France'], focused: -1, selected: -1 })
354
- autocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
355
- expect(autocomplete.state.focused).to.equal(0)
356
- expect(autocomplete.state.selected).to.equal(0)
357
- })
358
- })
359
-
360
- describe('2 or more option available', () => {
361
- it('focuses next element', () => {
362
- autocomplete.setState({ menuOpen: true, options: ['France', 'Germany'], focused: 0, selected: 0 })
363
- autocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
364
- expect(autocomplete.state.focused).to.equal(1)
365
- expect(autocomplete.state.selected).to.equal(1)
366
- })
367
- })
368
-
369
- describe('autoselect', () => {
370
- describe('0 options available', () => {
371
- it('does nothing', () => {
372
- autoselectAutocomplete.setState({ menuOpen: false, options: [], focused: -1, selected: -1 })
373
- const stateBefore = autoselectAutocomplete.state
374
- autoselectAutocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
375
- expect(autoselectAutocomplete.state).to.equal(stateBefore)
376
- })
377
- })
378
-
379
- describe('1 option available', () => {
380
- it('does nothing', () => {
381
- autoselectAutocomplete.setState({ menuOpen: true, options: ['France'], focused: -1, selected: 0 })
382
- const stateBefore = autoselectAutocomplete.state
383
- autoselectAutocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
384
- expect(autoselectAutocomplete.state).to.equal(stateBefore)
385
- })
386
- })
387
-
388
- describe('2 or more option available', () => {
389
- it('on input, focuses second element', () => {
390
- autoselectAutocomplete.setState({ menuOpen: true, options: ['France', 'Germany'], focused: -1, selected: 0 })
391
- autoselectAutocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 40 })
392
- expect(autoselectAutocomplete.state.focused).to.equal(1)
393
- expect(autoselectAutocomplete.state.selected).to.equal(1)
394
- })
395
- })
396
- })
397
- })
398
-
399
- describe('escape key', () => {
400
- it('unfocuses component', () => {
401
- autocomplete.setState({ menuOpen: true, options: ['France'], focused: -1 })
402
- autocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 27 })
403
- expect(autocomplete.state.menuOpen).to.equal(false)
404
- expect(autocomplete.state.focused).to.equal(null)
405
- })
406
- })
407
-
408
- describe('enter key', () => {
409
- describe('on an option', () => {
410
- it('prevents default, closes the menu, sets the query, focuses the input, triggers onConfirm', () => {
411
- let preventedDefault = false
412
- onConfirmAutocomplete.setState({ menuOpen: true, options: ['France'], focused: 0, selected: 0 })
413
- onConfirmAutocomplete.handleKeyDown({ preventDefault: () => { preventedDefault = true }, keyCode: 13 })
414
- expect(onConfirmAutocomplete.state.menuOpen).to.equal(false)
415
- expect(onConfirmAutocomplete.state.query).to.equal('France')
416
- expect(onConfirmAutocomplete.state.focused).to.equal(-1)
417
- expect(onConfirmAutocomplete.state.selected).to.equal(-1)
418
- expect(preventedDefault).to.equal(true)
419
- expect(onConfirmTriggered).to.equal(true)
420
- })
421
- })
422
-
423
- describe('on the input', () => {
424
- describe('with menu opened', () => {
425
- it('prevents default, does nothing', () => {
426
- let preventedDefault = false
427
- autocomplete.setState({ menuOpen: true, options: [], query: 'asd', focused: -1, selected: -1 })
428
- const stateBefore = autocomplete.state
429
- autocomplete.handleKeyDown({ preventDefault: () => { preventedDefault = true }, keyCode: 13 })
430
- expect(autocomplete.state).to.equal(stateBefore)
431
- expect(preventedDefault).to.equal(true)
432
- })
433
- })
434
-
435
- describe('with menu closed', () => {
436
- it('bubbles, does not prevent default', () => {
437
- let preventedDefault = false
438
- autocomplete.setState({ menuOpen: false, options: ['France'], focused: -1, selected: -1 })
439
- const stateBefore = autocomplete.state
440
- autocomplete.handleKeyDown({ preventDefault: () => { preventedDefault = true }, keyCode: 13 })
441
- expect(autocomplete.state).to.equal(stateBefore)
442
- expect(preventedDefault).to.equal(false)
443
- })
444
- })
445
-
446
- describe('autoselect', () => {
447
- it('closes the menu, selects the first option, keeps input focused', () => {
448
- autoselectAutocomplete.setState({ menuOpen: true, options: ['France'], focused: -1, selected: 0 })
449
- autoselectAutocomplete.handleKeyDown({ preventDefault: () => {}, keyCode: 13 })
450
- expect(autoselectAutocomplete.state.menuOpen).to.equal(false)
451
- expect(autoselectAutocomplete.state.query).to.equal('France')
452
- expect(autoselectAutocomplete.state.focused).to.equal(-1)
453
- expect(autoselectAutocomplete.state.selected).to.equal(-1)
454
- })
455
- })
456
- })
457
- })
458
-
459
- describe('space key', () => {
460
- describe('on an option', () => {
461
- it('prevents default, closes the menu, sets the query, focuses the input, triggers onConfirm', () => {
462
- let preventedDefault = false
463
- onConfirmAutocomplete.setState({ menuOpen: true, options: ['France'], focused: 0, selected: 0 })
464
- onConfirmAutocomplete.handleKeyDown({ preventDefault: () => { preventedDefault = true }, keyCode: 32 })
465
- expect(onConfirmAutocomplete.state.menuOpen).to.equal(false)
466
- expect(onConfirmAutocomplete.state.query).to.equal('France')
467
- expect(onConfirmAutocomplete.state.focused).to.equal(-1)
468
- expect(onConfirmAutocomplete.state.selected).to.equal(-1)
469
- expect(preventedDefault).to.equal(true)
470
- expect(onConfirmTriggered).to.equal(true)
471
- })
472
- })
473
- })
474
-
475
- describe('an unrecognised key', () => {
476
- it('does nothing', () => {
477
- autocomplete.setState({ menuOpen: true, options: ['France'], focused: 0, selected: 0 })
478
- autocomplete.elementReferences[-1] = 'input element'
479
- autocomplete.handleKeyDown({ target: 'not the input element', keyCode: 4242 })
480
- expect(autocomplete.state.focused).to.equal(0)
481
- expect(autocomplete.state.selected).to.equal(0)
482
- })
483
- })
484
- })
485
- })