@ons/design-system 70.0.7 → 70.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/README.md +11 -17
  2. package/components/access-code/_macro.njk +31 -25
  3. package/components/access-code/_macro.spec.js +145 -145
  4. package/components/access-code/access-code.dom.js +5 -5
  5. package/components/access-code/access-code.js +16 -16
  6. package/components/access-code/access-code.scss +22 -22
  7. package/components/access-code/access-code.spec.js +17 -17
  8. package/components/access-code/example-access-code-error.njk +49 -37
  9. package/components/access-code/example-access-code.njk +40 -30
  10. package/components/accordion/_macro.njk +7 -6
  11. package/components/accordion/_macro.spec.js +154 -154
  12. package/components/accordion/accordion.dom.js +10 -10
  13. package/components/accordion/accordion.js +50 -50
  14. package/components/accordion/accordion.spec.js +104 -104
  15. package/components/accordion/example-accordion-open.njk +0 -1
  16. package/components/address-input/_macro.njk +23 -11
  17. package/components/address-input/_macro.spec.js +420 -420
  18. package/components/address-input/autosuggest.address.dom.js +5 -5
  19. package/components/address-input/autosuggest.address.error.js +77 -77
  20. package/components/address-input/autosuggest.address.js +354 -359
  21. package/components/address-input/autosuggest.address.setter.js +95 -95
  22. package/components/address-input/autosuggest.address.spec.js +668 -651
  23. package/components/address-input/example-address-input-editable.njk +52 -50
  24. package/components/address-input/example-address-input-manual.njk +23 -21
  25. package/components/address-input/example-address-input.njk +40 -38
  26. package/components/address-output/_address-output.scss +3 -3
  27. package/components/address-output/_macro.njk +6 -6
  28. package/components/address-output/_macro.spec.js +84 -84
  29. package/components/autosuggest/_autosuggest.scss +114 -114
  30. package/components/autosuggest/_macro.njk +57 -37
  31. package/components/autosuggest/_macro.spec.js +255 -255
  32. package/components/autosuggest/autosuggest.dom.js +5 -5
  33. package/components/autosuggest/autosuggest.helpers.js +11 -11
  34. package/components/autosuggest/autosuggest.helpers.spec.js +73 -73
  35. package/components/autosuggest/autosuggest.js +20 -20
  36. package/components/autosuggest/autosuggest.spec.js +542 -536
  37. package/components/autosuggest/autosuggest.ui.js +478 -475
  38. package/components/autosuggest/example-autosuggest-country-multiple.njk +26 -26
  39. package/components/autosuggest/example-autosuggest-country.njk +24 -24
  40. package/components/autosuggest/fuse-config.js +17 -17
  41. package/components/back-to-top/_back-to-top.scss +27 -27
  42. package/components/back-to-top/_macro.spec.js +49 -49
  43. package/components/back-to-top/back-to-top.dom.js +5 -5
  44. package/components/back-to-top/back-to-top.js +52 -52
  45. package/components/back-to-top/back-to-top.spec.js +106 -106
  46. package/components/back-to-top/example-back-to-top.njk +183 -6
  47. package/components/back-to-top/example-full-page-back-to-top.njk +135 -123
  48. package/components/breadcrumbs/_breadcrumbs.scss +63 -65
  49. package/components/breadcrumbs/_macro.njk +12 -4
  50. package/components/breadcrumbs/_macro.spec.js +91 -91
  51. package/components/browser-banner/_browser-banner.scss +23 -23
  52. package/components/browser-banner/_macro.njk +6 -3
  53. package/components/browser-banner/_macro.spec.js +92 -92
  54. package/components/button/_button.scss +525 -491
  55. package/components/button/_macro.njk +63 -62
  56. package/components/button/_macro.spec.js +363 -363
  57. package/components/button/button.dom.js +15 -15
  58. package/components/button/button.js +53 -53
  59. package/components/button/button.spec.js +248 -240
  60. package/components/button/example-button-ghost.njk +1 -0
  61. package/components/call-to-action/_call-to-action.scss +5 -5
  62. package/components/call-to-action/_macro.njk +7 -5
  63. package/components/call-to-action/_macro.spec.js +28 -28
  64. package/components/call-to-action/example-call-to-action-default.njk +3 -2
  65. package/components/card/_card.scss +23 -23
  66. package/components/card/_macro.njk +26 -10
  67. package/components/card/_macro.spec.js +180 -180
  68. package/components/card/example-card-set-with-images.njk +31 -29
  69. package/components/card/example-card-set-with-lists.njk +58 -56
  70. package/components/card/example-card-set.njk +28 -26
  71. package/components/card/example-card.njk +9 -7
  72. package/components/char-check-limit/_macro.njk +1 -3
  73. package/components/char-check-limit/_macro.spec.js +48 -48
  74. package/components/char-check-limit/character-check.js +58 -58
  75. package/components/char-check-limit/character-check.spec.js +173 -173
  76. package/components/char-check-limit/character-limit.js +40 -40
  77. package/components/checkboxes/_checkbox-macro.njk +19 -15
  78. package/components/checkboxes/_checkbox-macro.spec.js +355 -355
  79. package/components/checkboxes/_checkbox.scss +180 -180
  80. package/components/checkboxes/_checkboxes.scss +37 -27
  81. package/components/checkboxes/_macro.njk +81 -72
  82. package/components/checkboxes/_macro.spec.js +261 -261
  83. package/components/checkboxes/checkbox-with-autoselect.js +32 -32
  84. package/components/checkboxes/checkbox-with-fieldset.js +21 -21
  85. package/components/checkboxes/checkboxes-with-reveal.js +10 -10
  86. package/components/checkboxes/checkboxes.dom.js +27 -27
  87. package/components/checkboxes/checkboxes.spec.js +183 -183
  88. package/components/checkboxes/example-checkboxes-disabled.njk +30 -30
  89. package/components/checkboxes/example-checkboxes-error.njk +0 -1
  90. package/components/checkboxes/example-checkboxes-with-descriptions.njk +7 -5
  91. package/components/checkboxes/example-checkboxes-with-hidden-label.njk +162 -170
  92. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes-expanded.njk +81 -81
  93. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes.njk +79 -79
  94. package/components/checkboxes/example-checkboxes-with-revealed-select-expanded.njk +7 -5
  95. package/components/checkboxes/example-checkboxes-with-revealed-select.njk +7 -5
  96. package/components/checkboxes/example-checkboxes-with-revealed-text-input-expanded.njk +7 -5
  97. package/components/checkboxes/example-checkboxes-with-revealed-text-input.njk +7 -5
  98. package/components/checkboxes/example-checkboxes-with-select-all-button.njk +7 -5
  99. package/components/checkboxes/example-checkboxes-with-visible-text-input.njk +7 -5
  100. package/components/checkboxes/example-checkboxes.njk +7 -5
  101. package/components/content-pagination/_content-pagination.scss +41 -41
  102. package/components/content-pagination/_macro.njk +34 -32
  103. package/components/content-pagination/_macro.spec.js +159 -159
  104. package/components/content-pagination/example-content-pagination.njk +17 -17
  105. package/components/cookies-banner/_cookies-banner.scss +22 -22
  106. package/components/cookies-banner/_macro.njk +19 -6
  107. package/components/cookies-banner/_macro.spec.js +177 -177
  108. package/components/cookies-banner/cookies-banner.dom.js +7 -7
  109. package/components/cookies-banner/cookies-banner.js +76 -76
  110. package/components/cookies-banner/cookies-banner.spec.js +72 -68
  111. package/components/cookies-banner/example-cookies-banner-cymraeg.njk +2 -1
  112. package/components/cookies-banner/example-cookies-banner.njk +3 -4
  113. package/components/date-input/_macro.njk +71 -63
  114. package/components/date-input/_macro.spec.js +338 -338
  115. package/components/date-input/example-date-input-error-for-single-field.njk +0 -1
  116. package/components/date-input/example-date-input-error.njk +0 -1
  117. package/components/description-list/_description-list.scss +23 -23
  118. package/components/description-list/_macro.njk +20 -11
  119. package/components/description-list/_macro.spec.js +144 -144
  120. package/components/details/_details.scss +109 -109
  121. package/components/details/_macro.njk +18 -11
  122. package/components/details/_macro.spec.js +132 -132
  123. package/components/details/details.dom.js +6 -6
  124. package/components/details/details.js +60 -60
  125. package/components/details/details.spec.js +106 -106
  126. package/components/details/example-details-with-warning.njk +15 -10
  127. package/components/document-list/_macro.njk +102 -93
  128. package/components/document-list/_macro.spec.js +444 -444
  129. package/components/document-list/document-list.scss +145 -149
  130. package/components/document-list/example-document-list-article-featured.njk +27 -25
  131. package/components/document-list/example-document-list-articles.njk +55 -53
  132. package/components/document-list/example-document-list-downloads.njk +49 -47
  133. package/components/document-list/example-document-list-search-result-featured.njk +19 -17
  134. package/components/document-list/example-document-list-search-results.njk +60 -58
  135. package/components/download-resources/_download-resources.scss +109 -108
  136. package/components/download-resources/download-resources.js +907 -900
  137. package/components/download-resources/download-resources.spec.js +461 -461
  138. package/components/duration/_macro.njk +61 -55
  139. package/components/duration/_macro.spec.js +291 -291
  140. package/components/duration/example-duration-error-for-single-field.njk +28 -26
  141. package/components/duration/example-duration-single-field.njk +23 -19
  142. package/components/duration/example-duration.njk +33 -29
  143. package/components/error/_macro.njk +8 -6
  144. package/components/error/_macro.spec.js +72 -72
  145. package/components/external-link/_external-link.scss +19 -19
  146. package/components/external-link/_macro.njk +7 -5
  147. package/components/external-link/_macro.spec.js +68 -68
  148. package/components/external-link/example-external-link.njk +9 -6
  149. package/components/feedback/_feedback.scss +31 -31
  150. package/components/feedback/_macro.njk +7 -5
  151. package/components/feedback/_macro.spec.js +72 -72
  152. package/components/field/_field-group.scss +10 -10
  153. package/components/field/_field.scss +16 -16
  154. package/components/field/_macro.njk +2 -2
  155. package/components/field/_macro.spec.js +80 -80
  156. package/components/fieldset/_fieldset.scss +27 -27
  157. package/components/fieldset/_macro.njk +23 -16
  158. package/components/fieldset/_macro.spec.js +161 -161
  159. package/components/footer/_footer.scss +45 -45
  160. package/components/footer/_macro.njk +28 -21
  161. package/components/footer/_macro.spec.js +452 -452
  162. package/components/footer/example-footer-cymraeg.njk +2 -1
  163. package/components/footer/example-footer-default.njk +3 -4
  164. package/components/footer/example-footer-transactional.njk +2 -1
  165. package/components/footer/example-footer-warning.njk +2 -1
  166. package/components/footer/example-footer-with-alternative-organisation.njk +2 -1
  167. package/components/footer/example-footer-with-coat-of-arms.njk +2 -1
  168. package/components/footer/example-footer-with-copyright.njk +2 -1
  169. package/components/footer/example-footer.njk +2 -1
  170. package/components/header/_header.scss +207 -202
  171. package/components/header/_macro.njk +183 -141
  172. package/components/header/_macro.spec.js +833 -829
  173. package/components/header/example-header-default.njk +2 -1
  174. package/components/header/example-header-external-for-survey-with-description.njk +2 -1
  175. package/components/header/example-header-external-for-surveys.njk +2 -1
  176. package/components/header/example-header-external-welsh.njk +7 -7
  177. package/components/header/example-header-external-with-navigation-and-search.njk +3 -2
  178. package/components/header/example-header-external-with-navigation.njk +2 -1
  179. package/components/header/example-header-external-with-service-links.njk +2 -1
  180. package/components/header/example-header-external-with-sub-navigation-removed.njk +2 -1
  181. package/components/header/example-header-external-with-sub-navigation.njk +3 -2
  182. package/components/header/example-header-internal.njk +2 -1
  183. package/components/header/example-header-multiple-logos.njk +2 -1
  184. package/components/header/{example-header-neutral-for-multicoloured-logo.njk → example-header-neutral.njk} +2 -1
  185. package/components/helpers/_grid.scss +4 -4
  186. package/components/helpers/grid.njk +17 -16
  187. package/components/hero/_hero.scss +48 -48
  188. package/components/hero/_macro.njk +6 -11
  189. package/components/hero/_macro.spec.js +59 -59
  190. package/components/hero/example-hero-dark.njk +2 -1
  191. package/components/hero/example-hero-default.njk +2 -1
  192. package/components/icon/_icon.scss +44 -44
  193. package/components/icon/_macro.njk +601 -168
  194. package/components/icon/_macro.spec.js +110 -110
  195. package/components/image/_image.scss +11 -11
  196. package/components/image/_macro.njk +7 -5
  197. package/components/image/_macro.spec.js +81 -81
  198. package/components/input/_input-type.scss +86 -89
  199. package/components/input/_input.scss +123 -124
  200. package/components/input/_macro.njk +114 -95
  201. package/components/input/_macro.spec.js +604 -604
  202. package/components/input/character-check.dom.js +5 -5
  203. package/components/input/example-input-search-with-character-check.njk +1 -1
  204. package/components/input/example-input-search-with-placeholder.njk +1 -1
  205. package/components/input/example-input-search.njk +1 -1
  206. package/components/input/input.dom.js +5 -5
  207. package/components/input/input.js +10 -10
  208. package/components/input/input.spec.js +18 -18
  209. package/components/label/_label.scss +24 -24
  210. package/components/label/_macro.njk +32 -26
  211. package/components/label/_macro.spec.js +173 -170
  212. package/components/language-selector/_macro.njk +11 -2
  213. package/components/language-selector/_macro.spec.js +97 -97
  214. package/components/language-selector/language.scss +7 -7
  215. package/components/list/_list.scss +110 -97
  216. package/components/list/_macro.njk +93 -73
  217. package/components/list/_macro.spec.js +583 -583
  218. package/components/message/_macro.njk +20 -7
  219. package/components/message/_macro.spec.js +74 -74
  220. package/components/message/_message.scss +39 -39
  221. package/components/message-list/_macro.njk +26 -20
  222. package/components/message-list/_macro.spec.js +86 -86
  223. package/components/message-list/_message-list.scss +16 -16
  224. package/components/modal/_macro.njk +11 -12
  225. package/components/modal/_macro.spec.js +69 -69
  226. package/components/modal/_modal.scss +36 -36
  227. package/components/modal/modal.dom.js +6 -6
  228. package/components/modal/modal.js +89 -89
  229. package/components/modal/modal.spec.js +50 -50
  230. package/components/multiple-input-fields/_macro.njk +30 -28
  231. package/components/mutually-exclusive/_macro.njk +20 -13
  232. package/components/mutually-exclusive/_macro.spec.js +140 -140
  233. package/components/mutually-exclusive/example-mutually-exclusive-checkboxes.njk +6 -4
  234. package/components/mutually-exclusive/example-mutually-exclusive-date.njk +7 -5
  235. package/components/mutually-exclusive/example-mutually-exclusive-duration.njk +44 -40
  236. package/components/mutually-exclusive/example-mutually-exclusive-email.njk +7 -5
  237. package/components/mutually-exclusive/example-mutually-exclusive-multiple-options.njk +6 -4
  238. package/components/mutually-exclusive/example-mutually-exclusive-number.njk +6 -4
  239. package/components/mutually-exclusive/example-mutually-exclusive-textarea.njk +6 -4
  240. package/components/mutually-exclusive/mutually-exclusive.checkboxes.spec.js +188 -188
  241. package/components/mutually-exclusive/mutually-exclusive.date.spec.js +211 -211
  242. package/components/mutually-exclusive/mutually-exclusive.dom.js +5 -5
  243. package/components/mutually-exclusive/mutually-exclusive.duration.spec.js +210 -210
  244. package/components/mutually-exclusive/mutually-exclusive.email.spec.js +90 -90
  245. package/components/mutually-exclusive/mutually-exclusive.js +137 -137
  246. package/components/mutually-exclusive/mutually-exclusive.multiple-options.checkboxes.spec.js +197 -197
  247. package/components/mutually-exclusive/mutually-exclusive.number.spec.js +96 -96
  248. package/components/mutually-exclusive/mutually-exclusive.textarea.spec.js +102 -102
  249. package/components/navigation/_macro.njk +133 -67
  250. package/components/navigation/_macro.spec.js +360 -354
  251. package/components/navigation/_navigation.scss +112 -122
  252. package/components/navigation/navigation.dom.js +35 -35
  253. package/components/navigation/navigation.js +49 -49
  254. package/components/navigation/navigation.spec.js +249 -249
  255. package/components/pagination/_macro.njk +42 -20
  256. package/components/pagination/_macro.spec.js +342 -335
  257. package/components/pagination/_pagination.scss +58 -58
  258. package/components/panel/_macro.njk +27 -16
  259. package/components/panel/_macro.spec.js +372 -372
  260. package/components/panel/_panel.scss +200 -199
  261. package/components/panel/example-panel-bare.njk +6 -4
  262. package/components/panel/example-panel-with-announcement.njk +7 -4
  263. package/components/panel/example-panel-with-error-summary.njk +6 -4
  264. package/components/panel/example-panel-with-warning.njk +5 -3
  265. package/components/password/_macro.njk +7 -5
  266. package/components/password/_macro.spec.js +95 -95
  267. package/components/password/password.dom.js +5 -5
  268. package/components/password/password.js +10 -10
  269. package/components/password/password.spec.js +26 -26
  270. package/components/phase-banner/_macro.njk +3 -3
  271. package/components/phase-banner/_macro.spec.js +86 -86
  272. package/components/phase-banner/_phase-banner.scss +16 -16
  273. package/components/phase-banner/example-phase-banner-alpha.njk +2 -1
  274. package/components/phase-banner/example-phase-banner-beta.njk +4 -3
  275. package/components/question/_macro.njk +62 -47
  276. package/components/question/_macro.spec.js +235 -235
  277. package/components/question/_question.scss +24 -24
  278. package/components/question/example-question-ccs.njk +40 -35
  279. package/components/question/example-question-fieldset.njk +84 -80
  280. package/components/question/example-question-interviewer-note.njk +27 -24
  281. package/components/question/example-question-no-fieldset.njk +39 -33
  282. package/components/quote/_macro.njk +3 -1
  283. package/components/quote/_macro.spec.js +52 -52
  284. package/components/quote/_quote.scss +24 -24
  285. package/components/radios/_macro.njk +54 -36
  286. package/components/radios/_macro.spec.js +545 -524
  287. package/components/radios/_radio.scss +49 -48
  288. package/components/radios/_radios.scss +14 -20
  289. package/components/radios/check-radios.js +21 -21
  290. package/components/radios/clear-radios.js +45 -45
  291. package/components/radios/example-radios-with-clear-button-expanded.njk +6 -4
  292. package/components/radios/example-radios-with-clear-button.njk +6 -4
  293. package/components/radios/example-radios-with-descriptions.njk +7 -5
  294. package/components/radios/example-radios-with-revealed-select-expanded.njk +6 -4
  295. package/components/radios/example-radios-with-revealed-select.njk +6 -4
  296. package/components/radios/example-radios-with-revealed-text-area-expanded.njk +7 -5
  297. package/components/radios/example-radios-with-revealed-text-area.njk +7 -5
  298. package/components/radios/example-radios-with-revealed-text-input-expanded.njk +7 -5
  299. package/components/radios/example-radios-with-revealed-text-input.njk +7 -5
  300. package/components/radios/example-radios-with-separator.njk +6 -4
  301. package/components/radios/example-radios-with-visible-text-input.njk +7 -5
  302. package/components/radios/example-radios-without-border.njk +0 -1
  303. package/components/radios/example-radios.njk +7 -5
  304. package/components/radios/radio-with-fieldset.js +22 -22
  305. package/components/radios/radios.dom.js +32 -32
  306. package/components/radios/radios.spec.js +251 -251
  307. package/components/related-content/_macro.njk +10 -11
  308. package/components/related-content/_macro.spec.js +109 -109
  309. package/components/related-content/_related-content.scss +12 -12
  310. package/components/related-content/_section-macro.njk +7 -7
  311. package/components/related-content/_section-macro.spec.js +20 -20
  312. package/components/related-content/example-related-content-general.njk +5 -3
  313. package/components/related-content/example-related-content-multiple-rows-of-links.njk +51 -49
  314. package/components/related-content/example-related-content-social-media.njk +40 -38
  315. package/components/relationships/_macro.njk +10 -8
  316. package/components/relationships/_macro.spec.js +94 -94
  317. package/components/relationships/_relationships.scss +9 -9
  318. package/components/relationships/example-relationships-error.njk +176 -168
  319. package/components/relationships/example-relationships-you.njk +169 -163
  320. package/components/relationships/example-relationships.njk +167 -161
  321. package/components/relationships/relationships.dom.js +5 -5
  322. package/components/relationships/relationships.js +18 -18
  323. package/components/relationships/relationships.spec.js +71 -71
  324. package/components/reply/_macro.spec.js +47 -47
  325. package/components/reply/reply-input.js +15 -15
  326. package/components/reply/reply.dom.js +5 -5
  327. package/components/reply/reply.spec.js +57 -57
  328. package/components/section-navigation/_macro.njk +34 -12
  329. package/components/section-navigation/_macro.spec.js +210 -210
  330. package/components/section-navigation/_section-navigation.scss +76 -76
  331. package/components/select/_macro.njk +21 -18
  332. package/components/select/_macro.spec.js +166 -166
  333. package/components/share-page/_macro.njk +10 -5
  334. package/components/share-page/_macro.spec.js +68 -68
  335. package/components/skip-to-content/_macro.njk +1 -1
  336. package/components/skip-to-content/_macro.spec.js +54 -54
  337. package/components/skip-to-content/_skip.scss +30 -30
  338. package/components/skip-to-content/example-skip-to-content.njk +1 -0
  339. package/components/skip-to-content/skip-to-content.dom.js +6 -6
  340. package/components/skip-to-content/skip-to-content.js +7 -7
  341. package/components/skip-to-content/skip-to-content.spec.js +21 -21
  342. package/components/status/_macro.njk +1 -1
  343. package/components/status/_macro.spec.js +53 -53
  344. package/components/status/_status.scss +32 -32
  345. package/components/summary/_macro.njk +53 -23
  346. package/components/summary/_macro.spec.js +551 -535
  347. package/components/summary/_summary.scss +191 -195
  348. package/components/summary/example-summary-household-no-rows.njk +18 -16
  349. package/components/summary/example-summary-household.njk +75 -73
  350. package/components/summary/example-summary-hub-minimal.njk +74 -72
  351. package/components/summary/example-summary-hub.njk +169 -167
  352. package/components/table/_macro.njk +72 -45
  353. package/components/table/_macro.spec.js +499 -499
  354. package/components/table/_table.scss +204 -201
  355. package/components/table/scrollable-table.dom.js +5 -5
  356. package/components/table/scrollable-table.js +60 -60
  357. package/components/table/sortable-table.dom.js +5 -5
  358. package/components/table/sortable-table.js +135 -135
  359. package/components/table/table.spec.js +144 -140
  360. package/components/table-of-contents/_macro.njk +34 -32
  361. package/components/table-of-contents/_macro.spec.js +125 -125
  362. package/components/table-of-contents/_toc.scss +9 -9
  363. package/components/table-of-contents/example-table-of-contents-grouped.njk +1 -1
  364. package/components/table-of-contents/example-table-of-contents-single.njk +1 -1
  365. package/components/table-of-contents/example-table-of-contents-sticky-full-page.njk +79 -38
  366. package/components/table-of-contents/example-table-of-contents-sticky.njk +50 -13
  367. package/components/table-of-contents/toc.dom.js +5 -5
  368. package/components/table-of-contents/toc.js +30 -30
  369. package/components/table-of-contents/toc.spec.js +88 -88
  370. package/components/tabs/_macro.njk +12 -6
  371. package/components/tabs/_macro.spec.js +92 -92
  372. package/components/tabs/_tabs.scss +120 -115
  373. package/components/tabs/example-tabs-details.njk +5 -6
  374. package/components/tabs/tabs.dom.js +5 -5
  375. package/components/tabs/tabs.js +266 -266
  376. package/components/tabs/tabs.spec.js +268 -268
  377. package/components/text-indent/_macro.njk +1 -3
  378. package/components/text-indent/_macro.spec.js +33 -33
  379. package/components/text-indent/_text-indent.scss +3 -3
  380. package/components/textarea/_macro.njk +49 -46
  381. package/components/textarea/_macro.spec.js +227 -238
  382. package/components/textarea/textarea.dom.js +5 -5
  383. package/components/textarea/textarea.spec.js +78 -74
  384. package/components/timeline/_macro.njk +4 -6
  385. package/components/timeline/_macro.spec.js +83 -83
  386. package/components/timeline/_timeline.scss +26 -26
  387. package/components/timeout-modal/_macro.njk +21 -19
  388. package/components/timeout-modal/_macro.spec.js +47 -47
  389. package/components/timeout-modal/example-timeout-modal.njk +16 -14
  390. package/components/timeout-modal/timeout-modal.dom.js +9 -9
  391. package/components/timeout-modal/timeout-modal.js +66 -66
  392. package/components/timeout-modal/timeout-modal.spec.js +157 -157
  393. package/components/timeout-panel/_macro.njk +19 -17
  394. package/components/timeout-panel/_macro.spec.js +41 -41
  395. package/components/timeout-panel/example-panel-with-timeout-warning.njk +13 -11
  396. package/components/timeout-panel/timeout-panel.dom.js +8 -8
  397. package/components/timeout-panel/timeout-panel.spec.js +118 -118
  398. package/components/upload/_macro.njk +20 -16
  399. package/components/upload/_macro.spec.js +52 -52
  400. package/components/upload/_upload.scss +28 -28
  401. package/components/video/_macro.njk +16 -2
  402. package/components/video/_macro.spec.js +42 -42
  403. package/components/video/_video.scss +16 -16
  404. package/components/video/example-video.njk +2 -2
  405. package/components/video/video.dom.js +5 -5
  406. package/components/video/video.js +32 -32
  407. package/components/video/video.spec.js +103 -97
  408. package/css/main.css +1 -1
  409. package/favicons/manifest.json +25 -25
  410. package/js/abortable-fetch.js +23 -23
  411. package/js/analytics.js +53 -53
  412. package/js/cookies-functions.js +135 -135
  413. package/js/cookies-settings.dom.js +7 -7
  414. package/js/cookies-settings.js +77 -77
  415. package/js/cookies-settings.spec.js +106 -106
  416. package/js/domready.js +8 -8
  417. package/js/fetch.js +14 -14
  418. package/js/inpagelink.dom.js +5 -5
  419. package/js/inpagelink.js +19 -19
  420. package/js/polyfills.js +0 -1
  421. package/js/print-button.js +6 -6
  422. package/js/timeout.js +211 -211
  423. package/layout/_dsTemplate.njk +22 -20
  424. package/layout/_template.njk +63 -51
  425. package/package.json +132 -128
  426. package/scripts/main.es5.js +1 -1
  427. package/scripts/main.js +1 -1
  428. package/scss/base/_forms.scss +10 -10
  429. package/scss/base/_global.scss +45 -44
  430. package/scss/base/_typography.scss +20 -20
  431. package/scss/helpers/_functions.scss +18 -15
  432. package/scss/helpers/_mixins.scss +59 -53
  433. package/scss/helpers/_mq.scss +62 -65
  434. package/scss/objects/_container.scss +20 -20
  435. package/scss/objects/_page.scss +33 -33
  436. package/scss/objects/_spacing.scss +10 -10
  437. package/scss/overrides/hcm.scss +237 -237
  438. package/scss/overrides/rtl.scss +95 -95
  439. package/scss/print.scss +47 -47
  440. package/scss/utilities/_border.scss +7 -7
  441. package/scss/utilities/_colors.scss +6 -6
  442. package/scss/utilities/_display.scss +8 -8
  443. package/scss/utilities/_float.scss +7 -7
  444. package/scss/utilities/_grid.scss +144 -144
  445. package/scss/utilities/_highlight.scss +4 -4
  446. package/scss/utilities/_margin.scss +17 -17
  447. package/scss/utilities/_pad.scss +15 -15
  448. package/scss/utilities/_typography.scss +35 -33
  449. package/scss/utilities/_utilities.scss +8 -8
  450. package/scss/utilities/_visibility.scss +25 -25
  451. package/scss/vars/_colors.scss +116 -116
  452. package/scss/vars/_forms.scss +22 -22
  453. package/scss/vars/_grid.scss +11 -9
  454. package/scss/vars/_typography.scss +54 -54
@@ -6,318 +6,318 @@ import axe from '../../tests/helpers/axe';
6
6
  import { renderComponent, templateFaker } from '../../tests/helpers/rendering';
7
7
 
8
8
  const EXAMPLE_QUESTION_BASIC = {
9
- id: 'example-question',
10
- title: 'Question title',
11
- description: 'Question description',
9
+ id: 'example-question',
10
+ title: 'Question title',
11
+ description: 'Question description',
12
12
  };
13
13
 
14
14
  const EXAMPLE_QUESTION_WARNING = {
15
- ...EXAMPLE_QUESTION_BASIC,
16
- warning: {
17
- id: 'warning-id',
18
- body: 'Warning content',
19
- },
15
+ ...EXAMPLE_QUESTION_BASIC,
16
+ warning: {
17
+ id: 'warning-id',
18
+ body: 'Warning content',
19
+ },
20
20
  };
21
21
 
22
22
  const EXAMPLE_QUESTION_DEFINITION = {
23
- ...EXAMPLE_QUESTION_BASIC,
24
- definition: {
25
- id: 'definition-id',
26
- title: 'Definition title',
27
- content: '<p>Definition content</p>',
28
- },
23
+ ...EXAMPLE_QUESTION_BASIC,
24
+ definition: {
25
+ id: 'definition-id',
26
+ title: 'Definition title',
27
+ content: '<p>Definition content</p>',
28
+ },
29
29
  };
30
30
 
31
31
  const EXAMPLE_QUESTION_GUIDANCE = {
32
- ...EXAMPLE_QUESTION_BASIC,
33
- guidance: {
34
- content: '<span class="fake-content">Guidance content</span>',
35
- lists: [
36
- {
37
- listHeading: 'List heading 1',
38
- listLeadingLine: 'List leading line 1',
39
- itemsList: [{ text: 'Test item 1' }, { text: 'Test item 2' }],
40
- },
41
- ],
42
- },
32
+ ...EXAMPLE_QUESTION_BASIC,
33
+ guidance: {
34
+ content: '<span class="fake-content">Guidance content</span>',
35
+ lists: [
36
+ {
37
+ listHeading: 'List heading 1',
38
+ listLeadingLine: 'List leading line 1',
39
+ itemsList: [{ text: 'Test item 1' }, { text: 'Test item 2' }],
40
+ },
41
+ ],
42
+ },
43
43
  };
44
44
 
45
45
  const EXAMPLE_QUESTION_JUSTIFICATION = {
46
- ...EXAMPLE_QUESTION_BASIC,
47
- justification: {
48
- id: 'justification-id',
49
- title: 'Justification title',
50
- content: '<p>Justification content</p>',
51
- },
46
+ ...EXAMPLE_QUESTION_BASIC,
47
+ justification: {
48
+ id: 'justification-id',
49
+ title: 'Justification title',
50
+ content: '<p>Justification content</p>',
51
+ },
52
52
  };
53
53
 
54
54
  const EXAMPLE_QUESTION_BUTTON = {
55
- ...EXAMPLE_QUESTION_BASIC,
56
- submitButton: {
57
- id: 'button-id',
58
- variants: 'timer',
59
- text: 'Button text',
60
- },
55
+ ...EXAMPLE_QUESTION_BASIC,
56
+ submitButton: {
57
+ id: 'button-id',
58
+ variants: 'timer',
59
+ text: 'Button text',
60
+ },
61
61
  };
62
62
 
63
63
  const EXAMPLE_QUESTION_INSTRUCTION = {
64
- ...EXAMPLE_QUESTION_BASIC,
65
- instruction: 'Instruction text',
64
+ ...EXAMPLE_QUESTION_BASIC,
65
+ instruction: 'Instruction text',
66
66
  };
67
67
 
68
68
  const EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE = {
69
- ...EXAMPLE_QUESTION_BASIC,
70
- legendIsQuestionTitle: true,
69
+ ...EXAMPLE_QUESTION_BASIC,
70
+ legendIsQuestionTitle: true,
71
71
  };
72
72
 
73
73
  const EXAMPLE_QUESTION_DESCRIPTION_FIRST = {
74
- ...EXAMPLE_QUESTION_BASIC,
75
- readDescriptionFirst: true,
74
+ ...EXAMPLE_QUESTION_BASIC,
75
+ readDescriptionFirst: true,
76
76
  };
77
77
 
78
78
  describe('macro: question', () => {
79
- describe.each([
80
- ['with basic parameters', EXAMPLE_QUESTION_BASIC],
81
- ['with warning', EXAMPLE_QUESTION_WARNING],
82
- ['with definition', EXAMPLE_QUESTION_DEFINITION],
83
- ['with guidance', EXAMPLE_QUESTION_GUIDANCE],
84
- ['with justification', EXAMPLE_QUESTION_JUSTIFICATION],
85
- ['with button', EXAMPLE_QUESTION_BUTTON],
86
- ['with instruction', EXAMPLE_QUESTION_INSTRUCTION],
87
- ['with `legendIsQuestionTitle`', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE],
88
- ['with `readDescriptionFirst`', EXAMPLE_QUESTION_DESCRIPTION_FIRST],
89
- [
90
- 'with all options combined',
91
- {
92
- ...EXAMPLE_QUESTION_WARNING,
93
- ...EXAMPLE_QUESTION_DEFINITION,
94
- ...EXAMPLE_QUESTION_GUIDANCE,
95
- ...EXAMPLE_QUESTION_JUSTIFICATION,
96
- ...EXAMPLE_QUESTION_BUTTON,
97
- ...EXAMPLE_QUESTION_INSTRUCTION,
98
- ...EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE,
99
- ...EXAMPLE_QUESTION_DESCRIPTION_FIRST,
100
- },
101
- ],
102
- ])('mode: %s', (_, params) => {
103
- it('passes jest-axe checks with', async () => {
104
- const $ = cheerio.load(renderComponent('question', params));
105
-
106
- const results = await axe($.html());
107
- expect(results).toHaveNoViolations();
79
+ describe.each([
80
+ ['with basic parameters', EXAMPLE_QUESTION_BASIC],
81
+ ['with warning', EXAMPLE_QUESTION_WARNING],
82
+ ['with definition', EXAMPLE_QUESTION_DEFINITION],
83
+ ['with guidance', EXAMPLE_QUESTION_GUIDANCE],
84
+ ['with justification', EXAMPLE_QUESTION_JUSTIFICATION],
85
+ ['with button', EXAMPLE_QUESTION_BUTTON],
86
+ ['with instruction', EXAMPLE_QUESTION_INSTRUCTION],
87
+ ['with `legendIsQuestionTitle`', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE],
88
+ ['with `readDescriptionFirst`', EXAMPLE_QUESTION_DESCRIPTION_FIRST],
89
+ [
90
+ 'with all options combined',
91
+ {
92
+ ...EXAMPLE_QUESTION_WARNING,
93
+ ...EXAMPLE_QUESTION_DEFINITION,
94
+ ...EXAMPLE_QUESTION_GUIDANCE,
95
+ ...EXAMPLE_QUESTION_JUSTIFICATION,
96
+ ...EXAMPLE_QUESTION_BUTTON,
97
+ ...EXAMPLE_QUESTION_INSTRUCTION,
98
+ ...EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE,
99
+ ...EXAMPLE_QUESTION_DESCRIPTION_FIRST,
100
+ },
101
+ ],
102
+ ])('mode: %s', (_, params) => {
103
+ it('passes jest-axe checks with', async () => {
104
+ const $ = cheerio.load(renderComponent('question', params));
105
+
106
+ const results = await axe($.html());
107
+ expect(results).toHaveNoViolations();
108
+ });
108
109
  });
109
- });
110
110
 
111
- describe('mode: with basic parameters', () => {
112
- it('has the `title` text', () => {
113
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
114
-
115
- expect($('.ons-question__title').text().trim()).toBe('Question title');
111
+ describe('mode: with basic parameters', () => {
112
+ it('has the `title` text', () => {
113
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
114
+
115
+ expect($('.ons-question__title').text().trim()).toBe('Question title');
116
+ });
117
+
118
+ it('has the provided `id` attribute', () => {
119
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
120
+
121
+ expect($('.ons-question').attr('id')).toBe('example-question');
122
+ });
123
+
124
+ it('has additionally provided `attributes`', () => {
125
+ const $ = cheerio.load(
126
+ renderComponent('question', {
127
+ ...EXAMPLE_QUESTION_BASIC,
128
+ attributes: {
129
+ a: 123,
130
+ b: 456,
131
+ },
132
+ }),
133
+ );
134
+
135
+ expect($('.ons-question').attr('a')).toBe('123');
136
+ expect($('.ons-question').attr('b')).toBe('456');
137
+ });
138
+
139
+ it('has additionally provided style classes', () => {
140
+ const $ = cheerio.load(
141
+ renderComponent('question', {
142
+ ...EXAMPLE_QUESTION_BASIC,
143
+ classes: 'extra-class another-extra-class',
144
+ }),
145
+ );
146
+
147
+ expect($('.ons-question').hasClass('extra-class')).toBe(true);
148
+ expect($('.ons-question').hasClass('another-extra-class')).toBe(true);
149
+ });
150
+
151
+ it('has the `description` text', () => {
152
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
153
+
154
+ expect($('.ons-question__description').text().trim()).toBe('Question description');
155
+ });
156
+
157
+ it('calls with content', () => {
158
+ const $ = cheerio.load(renderComponent('question', { EXAMPLE_QUESTION_BASIC }, 'Example content...'));
159
+
160
+ const content = $('.ons-question__answer').text().trim();
161
+ expect(content).toEqual(expect.stringContaining('Example content...'));
162
+ });
116
163
  });
117
164
 
118
- it('has the provided `id` attribute', () => {
119
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
165
+ describe('mode: with warning', () => {
166
+ it('outputs the expected panel', () => {
167
+ const faker = templateFaker();
168
+ const panelSpy = faker.spy('panel');
120
169
 
121
- expect($('.ons-question').attr('id')).toBe('example-question');
122
- });
170
+ faker.renderComponent('question', EXAMPLE_QUESTION_WARNING);
123
171
 
124
- it('has additionally provided `attributes`', () => {
125
- const $ = cheerio.load(
126
- renderComponent('question', {
127
- ...EXAMPLE_QUESTION_BASIC,
128
- attributes: {
129
- a: 123,
130
- b: 456,
131
- },
132
- }),
133
- );
134
-
135
- expect($('.ons-question').attr('a')).toBe('123');
136
- expect($('.ons-question').attr('b')).toBe('456');
137
- });
172
+ expect(panelSpy.occurrences[0]).toHaveProperty('id', 'warning-id');
173
+ expect(panelSpy.occurrences[0]).toHaveProperty('variant', 'warn');
174
+ });
138
175
 
139
- it('has additionally provided style classes', () => {
140
- const $ = cheerio.load(
141
- renderComponent('question', {
142
- ...EXAMPLE_QUESTION_BASIC,
143
- classes: 'extra-class another-extra-class',
144
- }),
145
- );
176
+ it('outputs the expected panel content', () => {
177
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_WARNING));
146
178
 
147
- expect($('.ons-question').hasClass('extra-class')).toBe(true);
148
- expect($('.ons-question').hasClass('another-extra-class')).toBe(true);
179
+ expect($('.ons-panel__body > p').text()).toBe('Warning content');
180
+ });
149
181
  });
150
182
 
151
- it('has the `description` text', () => {
152
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_BASIC));
183
+ describe('mode: with definition', () => {
184
+ it('outputs the expected details', () => {
185
+ const faker = templateFaker();
186
+ const detailsSpy = faker.spy('details');
153
187
 
154
- expect($('.ons-question__description').text().trim()).toBe('Question description');
155
- });
156
-
157
- it('calls with content', () => {
158
- const $ = cheerio.load(renderComponent('question', { EXAMPLE_QUESTION_BASIC }, 'Example content...'));
188
+ faker.renderComponent('question', EXAMPLE_QUESTION_DEFINITION);
159
189
 
160
- const content = $('.ons-question__answer').text().trim();
161
- expect(content).toEqual(expect.stringContaining('Example content...'));
162
- });
163
- });
190
+ expect(detailsSpy.occurrences[0]).toHaveProperty('classes', 'ons-u-mb-m');
191
+ expect(detailsSpy.occurrences[0]).toHaveProperty('id', 'definition-id');
192
+ expect(detailsSpy.occurrences[0]).toHaveProperty('title', 'Definition title');
193
+ });
164
194
 
165
- describe('mode: with warning', () => {
166
- it('outputs the expected panel', () => {
167
- const faker = templateFaker();
168
- const panelSpy = faker.spy('panel');
195
+ it('outputs the expected details call content', () => {
196
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DEFINITION));
169
197
 
170
- faker.renderComponent('question', EXAMPLE_QUESTION_WARNING);
171
-
172
- expect(panelSpy.occurrences[0]).toHaveProperty('id', 'warning-id');
173
- expect(panelSpy.occurrences[0]).toHaveProperty('variant', 'warn');
198
+ expect($('.ons-details__content > p').text()).toBe('Definition content');
199
+ });
174
200
  });
175
201
 
176
- it('outputs the expected panel content', () => {
177
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_WARNING));
202
+ describe('mode: with guidance', () => {
203
+ it('outputs the expected panel', () => {
204
+ const faker = templateFaker();
205
+ const panelSpy = faker.spy('panel');
178
206
 
179
- expect($('.ons-panel__body > p').text()).toBe('Warning content');
180
- });
181
- });
207
+ faker.renderComponent('question', EXAMPLE_QUESTION_GUIDANCE);
182
208
 
183
- describe('mode: with definition', () => {
184
- it('outputs the expected details', () => {
185
- const faker = templateFaker();
186
- const detailsSpy = faker.spy('details');
209
+ expect(panelSpy.occurrences[0]).toHaveProperty('classes', 'ons-question-guidance ons-u-mb-m');
210
+ });
187
211
 
188
- faker.renderComponent('question', EXAMPLE_QUESTION_DEFINITION);
212
+ it('outputs the expected panel call content', () => {
213
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
189
214
 
190
- expect(detailsSpy.occurrences[0]).toHaveProperty('classes', 'ons-u-mb-m');
191
- expect(detailsSpy.occurrences[0]).toHaveProperty('id', 'definition-id');
192
- expect(detailsSpy.occurrences[0]).toHaveProperty('title', 'Definition title');
193
- });
215
+ expect($('.ons-panel__body .fake-content').text()).toBe('Guidance content');
216
+ });
194
217
 
195
- it('outputs the expected details call content', () => {
196
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DEFINITION));
218
+ it('outputs the expected `listHeading`', () => {
219
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
197
220
 
198
- expect($('.ons-details__content > p').text()).toBe('Definition content');
199
- });
200
- });
221
+ expect($('.ons-question-guidance__list-heading').text()).toBe('List heading 1');
222
+ });
201
223
 
202
- describe('mode: with guidance', () => {
203
- it('outputs the expected panel', () => {
204
- const faker = templateFaker();
205
- const panelSpy = faker.spy('panel');
224
+ it('outputs the expected `listLeadingLine`', () => {
225
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
206
226
 
207
- faker.renderComponent('question', EXAMPLE_QUESTION_GUIDANCE);
227
+ expect($('.ons-question-guidance__list-leading-line').text()).toBe('List leading line 1');
228
+ });
208
229
 
209
- expect(panelSpy.occurrences[0]).toHaveProperty('classes', 'ons-question-guidance ons-u-mb-m');
210
- });
230
+ it('outputs the expected list', () => {
231
+ const faker = templateFaker();
232
+ const listSpy = faker.spy('list');
211
233
 
212
- it('outputs the expected panel call content', () => {
213
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
234
+ faker.renderComponent('question', EXAMPLE_QUESTION_GUIDANCE);
214
235
 
215
- expect($('.ons-panel__body .fake-content').text()).toBe('Guidance content');
236
+ expect(listSpy.occurrences[0].itemsList).toEqual([
237
+ {
238
+ text: 'Test item 1',
239
+ },
240
+ {
241
+ text: 'Test item 2',
242
+ },
243
+ ]);
244
+ });
216
245
  });
217
246
 
218
- it('outputs the expected `listHeading`', () => {
219
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
247
+ describe('mode: with justification', () => {
248
+ it('outputs the expected details', () => {
249
+ const faker = templateFaker();
250
+ const detailsSpy = faker.spy('details');
220
251
 
221
- expect($('.ons-question-guidance__list-heading').text()).toBe('List heading 1');
222
- });
223
-
224
- it('outputs the expected `listLeadingLine`', () => {
225
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_GUIDANCE));
252
+ faker.renderComponent('question', EXAMPLE_QUESTION_JUSTIFICATION);
226
253
 
227
- expect($('.ons-question-guidance__list-leading-line').text()).toBe('List leading line 1');
228
- });
254
+ expect(detailsSpy.occurrences[0]).toHaveProperty('classes', 'ons-u-mb-m');
255
+ expect(detailsSpy.occurrences[0]).toHaveProperty('id', 'justification-id');
256
+ expect(detailsSpy.occurrences[0]).toHaveProperty('title', 'Justification title');
257
+ });
229
258
 
230
- it('outputs the expected list', () => {
231
- const faker = templateFaker();
232
- const listSpy = faker.spy('list');
259
+ it('outputs the expected details call content', () => {
260
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_JUSTIFICATION));
233
261
 
234
- faker.renderComponent('question', EXAMPLE_QUESTION_GUIDANCE);
235
-
236
- expect(listSpy.occurrences[0].itemsList).toEqual([
237
- {
238
- text: 'Test item 1',
239
- },
240
- {
241
- text: 'Test item 2',
242
- },
243
- ]);
262
+ expect($('.ons-details__content > p').text()).toBe('Justification content');
263
+ });
244
264
  });
245
- });
246
265
 
247
- describe('mode: with justification', () => {
248
- it('outputs the expected details', () => {
249
- const faker = templateFaker();
250
- const detailsSpy = faker.spy('details');
266
+ describe('mode: with button', () => {
267
+ it('outputs the expected button', () => {
268
+ const faker = templateFaker();
269
+ const buttonSpy = faker.spy('button');
251
270
 
252
- faker.renderComponent('question', EXAMPLE_QUESTION_JUSTIFICATION);
271
+ faker.renderComponent('question', EXAMPLE_QUESTION_BUTTON);
253
272
 
254
- expect(detailsSpy.occurrences[0]).toHaveProperty('classes', 'ons-u-mb-m');
255
- expect(detailsSpy.occurrences[0]).toHaveProperty('id', 'justification-id');
256
- expect(detailsSpy.occurrences[0]).toHaveProperty('title', 'Justification title');
273
+ expect(buttonSpy.occurrences[0]).toHaveProperty('variants', 'timer');
274
+ expect(buttonSpy.occurrences[0]).toHaveProperty('id', 'button-id');
275
+ expect(buttonSpy.occurrences[0]).toHaveProperty('text', 'Button text');
276
+ });
257
277
  });
258
278
 
259
- it('outputs the expected details call content', () => {
260
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_JUSTIFICATION));
279
+ describe('mode: with instruction', () => {
280
+ it('has the instruction text', () => {
281
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_INSTRUCTION));
261
282
 
262
- expect($('.ons-details__content > p').text()).toBe('Justification content');
283
+ expect($('.ons-question__instruction').text()).toBe('Instruction text');
284
+ });
263
285
  });
264
- });
265
-
266
- describe('mode: with button', () => {
267
- it('outputs the expected button', () => {
268
- const faker = templateFaker();
269
- const buttonSpy = faker.spy('button');
270
286
 
271
- faker.renderComponent('question', EXAMPLE_QUESTION_BUTTON);
287
+ describe('mode: with `legendIsQuestionTitle`', () => {
288
+ it('has the expected `fieldset` output', () => {
289
+ const faker = templateFaker();
290
+ const fieldsetSpy = faker.spy('fieldset');
272
291
 
273
- expect(buttonSpy.occurrences[0]).toHaveProperty('variants', 'timer');
274
- expect(buttonSpy.occurrences[0]).toHaveProperty('id', 'button-id');
275
- expect(buttonSpy.occurrences[0]).toHaveProperty('text', 'Button text');
276
- });
277
- });
292
+ faker.renderComponent('question', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE);
278
293
 
279
- describe('mode: with instruction', () => {
280
- it('has the instruction text', () => {
281
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_INSTRUCTION));
294
+ expect(fieldsetSpy.occurrences[0]).toEqual({
295
+ legendIsQuestionTitle: true,
296
+ legend: 'Question title',
297
+ description: 'Question description',
298
+ legendClasses: undefined,
299
+ legendTitleClasses: undefined,
300
+ });
301
+ });
282
302
 
283
- expect($('.ons-question__instruction').text()).toBe('Instruction text');
284
- });
285
- });
286
-
287
- describe('mode: with `legendIsQuestionTitle`', () => {
288
- it('has the expected `fieldset` output', () => {
289
- const faker = templateFaker();
290
- const fieldsetSpy = faker.spy('fieldset');
291
-
292
- faker.renderComponent('question', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE);
293
-
294
- expect(fieldsetSpy.occurrences[0]).toEqual({
295
- legendIsQuestionTitle: true,
296
- legend: 'Question title',
297
- description: 'Question description',
298
- legendClasses: undefined,
299
- legendTitleClasses: undefined,
300
- });
301
- });
303
+ it('does not add the description style class', () => {
304
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE));
302
305
 
303
- it('does not add the description style class', () => {
304
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_LEGENDISQUESTIONTITLE));
305
-
306
- expect($('.ons-question__description').length).toBe(0);
306
+ expect($('.ons-question__description').length).toBe(0);
307
+ });
307
308
  });
308
- });
309
309
 
310
- describe('mode: with `readDescriptionFirst`', () => {
311
- it('has a description element visually hidden before the title', () => {
312
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DESCRIPTION_FIRST));
310
+ describe('mode: with `readDescriptionFirst`', () => {
311
+ it('has a description element visually hidden before the title', () => {
312
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DESCRIPTION_FIRST));
313
313
 
314
- expect($('.ons-question__title').text().trim()).toBe('Question description Question title');
315
- });
314
+ expect($('.ons-question__title').text().trim()).toBe('Question description Question title');
315
+ });
316
316
 
317
- it('has the visible description element with aria-hidden attribute', () => {
318
- const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DESCRIPTION_FIRST));
317
+ it('has the visible description element with aria-hidden attribute', () => {
318
+ const $ = cheerio.load(renderComponent('question', EXAMPLE_QUESTION_DESCRIPTION_FIRST));
319
319
 
320
- expect($('.ons-question__description--aria-hidden').attr('aria-hidden')).toBe('true');
320
+ expect($('.ons-question__description--aria-hidden').attr('aria-hidden')).toBe('true');
321
+ });
321
322
  });
322
- });
323
323
  });
@@ -1,34 +1,34 @@
1
1
  .ons-question {
2
- margin: 1rem 0 0;
2
+ margin: 1rem 0 0;
3
3
 
4
- &__title {
5
- @extend .ons-u-mb-m;
4
+ &__title {
5
+ @extend .ons-u-mb-m;
6
6
 
7
- mark,
8
- .ons-instruction {
9
- background-color: var(--ons-color-instruction);
10
- color: var(--ons-color-text-inverse);
11
- margin-right: 0.5rem;
12
- padding: 0 0.5rem;
13
- box-shadow: none;
7
+ mark,
8
+ .ons-instruction {
9
+ background-color: var(--ons-color-instruction);
10
+ color: var(--ons-color-text-inverse);
11
+ margin-right: 0.5rem;
12
+ padding: 0 0.5rem;
13
+ box-shadow: none;
14
+ }
14
15
  }
15
- }
16
16
 
17
- &__description {
18
- p:last-of-type {
19
- margin-bottom: 0 !important;
17
+ &__description {
18
+ p:last-of-type {
19
+ margin-bottom: 0 !important;
20
+ }
20
21
  }
21
- }
22
22
 
23
- &__instruction {
24
- background-color: var(--ons-color-instruction-tint);
25
- border: 5px solid var(--ons-color-instruction);
26
- display: block;
27
- font-weight: $font-weight-regular;
28
- padding: 1rem;
23
+ &__instruction {
24
+ background-color: var(--ons-color-instruction-tint);
25
+ border: 5px solid var(--ons-color-instruction);
26
+ display: block;
27
+ font-weight: $font-weight-regular;
28
+ padding: 1rem;
29
29
 
30
- p:last-of-type {
31
- margin-bottom: 0;
30
+ p:last-of-type {
31
+ margin-bottom: 0;
32
+ }
32
33
  }
33
- }
34
34
  }