@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
@@ -29,14 +29,20 @@
29
29
  }
30
30
  ]
31
31
  })
32
- }}
32
+ -}}
33
33
  </div>
34
34
  <div class="ons-grid__col ons-col-7@m ons-push-1@m">
35
35
  <section id="section1">
36
36
  <h2>What is the census?</h2>
37
- <p>The census is a survey that happens every 10 years and gives us a picture of all the people and households in England and Wales.</p>
37
+ <p>
38
+ The census is a survey that happens every 10 years and gives us a picture of all the people and households in England
39
+ and Wales.
40
+ </p>
38
41
 
39
- <p>Your answers to the census questions will help organisations make decisions on planning and funding public services in your area, including transport, education and healthcare.</p>
42
+ <p>
43
+ Your answers to the census questions will help organisations make decisions on planning and funding public services in
44
+ your area, including transport, education and healthcare.
45
+ </p>
40
46
  </section>
41
47
  <section id="section2">
42
48
  <h2>The online census has now closed</h2>
@@ -46,30 +52,61 @@
46
52
  </section>
47
53
  <section id="section3">
48
54
  <h2>What happens after Census Day</h2>
49
- <p>Two follow-up surveys, the <a href="#0">Census Coverage Survey</a> and the <a href="#0">Census Quality Survey</a>, help to improve the quality and accuracy of the census results.</p>
55
+ <p>
56
+ Two follow-up surveys, the <a href="#0">Census Coverage Survey</a> and the <a href="#0">Census Quality Survey</a>, help
57
+ to improve the quality and accuracy of the census results.
58
+ </p>
50
59
 
51
- <p>Over the next year, we work hard to process the answers from all the census questionnaires. This is so that we can publish the initial Census 2021 findings one year after the census and the main releases two years after the census.</p>
60
+ <p>
61
+ Over the next year, we work hard to process the answers from all the census questionnaires. This is so that we can
62
+ publish the initial Census 2021 findings one year after the census and the main releases two years after the census.
63
+ </p>
52
64
 
53
- <p>To make sure the Census 2021 statistics we publish meet the needs of those who use them, we also run an outputs consultation.</p>
65
+ <p>
66
+ To make sure the Census 2021 statistics we publish meet the needs of those who use them, we also run an outputs
67
+ consultation.
68
+ </p>
54
69
  </section>
55
70
  <section id="section4">
56
71
  <h2>The census in Northern Ireland and Scotland</h2>
57
72
  <p>The Office for National Statistics (ONS) runs the census in England and Wales.</p>
58
73
 
59
- <p>If you live in Northern Ireland, visit the Northern Ireland Statistics Agency (NISRA) census website to find out about the census for Northern Ireland.</p>
74
+ <p>
75
+ If you live in Northern Ireland, visit the Northern Ireland Statistics Agency (NISRA) census website to find out about
76
+ the census for Northern Ireland.
77
+ </p>
60
78
 
61
- <p>If you live in Scotland, visit the National Records of Scotland census website to find out how to take part in the census for Scotland.</p>
79
+ <p>
80
+ If you live in Scotland, visit the National Records of Scotland census website to find out how to take part in the
81
+ census for Scotland.
82
+ </p>
62
83
  </section>
63
84
  <section id="section5">
64
85
  <h2>The last census</h2>
65
- <p>The last census took place in 2011. Many people and organisations used information from the 2011 Census in a variety of ways.</p>
86
+ <p>
87
+ The last census took place in 2011. Many people and organisations used information from the 2011 Census in a variety of
88
+ ways.
89
+ </p>
66
90
 
67
- <p>For example, Bristol City Council used it to inform decisions on how to fund local housing improvements. It was also essential for the charity Redbridge Council for Voluntary Services to help people from ethnic minority groups learn more about dementia.</p>
91
+ <p>
92
+ For example, Bristol City Council used it to inform decisions on how to fund local housing improvements. It was also
93
+ essential for the charity Redbridge Council for Voluntary Services to help people from ethnic minority groups learn more
94
+ about dementia.
95
+ </p>
68
96
 
69
- <p>To read more about the benefits that information from the 2011 Census helped to create, visit the Office for National Statistics (ONS) website.</p>
70
- <p>The Census Coverage Survey (CCS) was a short, separate survey that we at the Office for National Statistics (ONS) started six to eight weeks after Census Day.</p>
97
+ <p>
98
+ To read more about the benefits that information from the 2011 Census helped to create, visit the Office for National
99
+ Statistics (ONS) website.
100
+ </p>
101
+ <p>
102
+ The Census Coverage Survey (CCS) was a short, separate survey that we at the Office for National Statistics (ONS)
103
+ started six to eight weeks after Census Day.
104
+ </p>
71
105
 
72
- <p>The CCS helps make sure everyone is counted and our census results are as accurate as possible. It asked similar questions to the main census, just fewer of them, at addresses in a selection of postcodes across England and Wales.</p>
106
+ <p>
107
+ The CCS helps make sure everyone is counted and our census results are as accurate as possible. It asked similar
108
+ questions to the main census, just fewer of them, at addresses in a selection of postcodes across England and Wales.
109
+ </p>
73
110
 
74
111
  <p>The CCS has now closed.</p>
75
112
  </section>
@@ -1,13 +1,13 @@
1
1
  import domready from '../../js/domready';
2
2
 
3
3
  async function toc() {
4
- const toc = [...document.querySelectorAll('.ons-js-toc-container')];
4
+ const toc = [...document.querySelectorAll('.ons-js-toc-container')];
5
5
 
6
- if (toc.length) {
7
- const Toc = (await import('./toc')).default;
6
+ if (toc.length) {
7
+ const Toc = (await import('./toc')).default;
8
8
 
9
- toc.forEach((component) => new Toc(component));
10
- }
9
+ toc.forEach((component) => new Toc(component));
10
+ }
11
11
  }
12
12
 
13
13
  domready(toc);
@@ -1,39 +1,39 @@
1
1
  export default class Toc {
2
- constructor(component) {
3
- this.component = component;
4
- this.sections = [...this.component.querySelectorAll('section[id]')];
5
- this.refreshIntervalId = setInterval(() => this.setCurrent(), 100);
6
- this.setCurrent();
7
- }
2
+ constructor(component) {
3
+ this.component = component;
4
+ this.sections = [...this.component.querySelectorAll('section[id]')];
5
+ this.refreshIntervalId = setInterval(() => this.setCurrent(), 100);
6
+ this.setCurrent();
7
+ }
8
8
 
9
- setCurrent() {
10
- let activeSection = this.sections[0];
11
- for (let section of this.sections) {
12
- const top = section.getBoundingClientRect().top;
13
- if (top > 100) {
14
- break;
15
- }
9
+ setCurrent() {
10
+ let activeSection = this.sections[0];
11
+ for (let section of this.sections) {
12
+ const top = section.getBoundingClientRect().top;
13
+ if (top > 100) {
14
+ break;
15
+ }
16
16
 
17
- activeSection = section;
17
+ activeSection = section;
18
18
 
19
- if (top >= 0 && top <= 100) {
20
- break;
21
- }
22
- }
19
+ if (top >= 0 && top <= 100) {
20
+ break;
21
+ }
22
+ }
23
23
 
24
- if (activeSection === this.activeSection) {
25
- return;
26
- }
24
+ if (activeSection === this.activeSection) {
25
+ return;
26
+ }
27
27
 
28
- this.activeSection = activeSection;
28
+ this.activeSection = activeSection;
29
29
 
30
- for (let section of this.sections) {
31
- const tocItem = document.querySelector(`.ons-toc .ons-list__link[href="#${section.id}"]`);
32
- if (section === activeSection) {
33
- tocItem.classList.add('ons-toc__link-active');
34
- } else {
35
- tocItem.classList.remove('ons-toc__link-active');
36
- }
30
+ for (let section of this.sections) {
31
+ const tocItem = document.querySelector(`.ons-toc .ons-list__link[href="#${section.id}"]`);
32
+ if (section === activeSection) {
33
+ tocItem.classList.add('ons-toc__link-active');
34
+ } else {
35
+ tocItem.classList.remove('ons-toc__link-active');
36
+ }
37
+ }
37
38
  }
38
- }
39
39
  }
@@ -1,31 +1,31 @@
1
1
  import { renderComponent, setTestPage } from '../../tests/helpers/rendering';
2
2
 
3
3
  describe('script: table-of-contents', () => {
4
- beforeEach(async () => {
5
- await setTestPage(
6
- '/test',
7
- /* eslint-disable indent */
8
- `
4
+ beforeEach(async () => {
5
+ await setTestPage(
6
+ '/test',
7
+ /* eslint-disable indent */
8
+ `
9
9
  <div class="ons-page__container ons-container">
10
10
  <div class="ons-grid ons-js-toc-container">
11
11
  <div class="ons-grid__col ons-grid__col--sticky@m ons-col-4@m">
12
12
  ${renderComponent('table-of-contents', {
13
- title: 'Contents',
14
- ariaLabel: 'Sections in this page',
15
- itemsList: [
16
- {
17
- url: '#section1',
18
- text: 'First section',
19
- },
20
- {
21
- url: '#section2',
22
- text: 'Second section',
23
- },
24
- {
25
- url: '#section3',
26
- text: 'Third section',
27
- },
28
- ],
13
+ title: 'Contents',
14
+ ariaLabel: 'Sections in this page',
15
+ itemsList: [
16
+ {
17
+ url: '#section1',
18
+ text: 'First section',
19
+ },
20
+ {
21
+ url: '#section2',
22
+ text: 'Second section',
23
+ },
24
+ {
25
+ url: '#section3',
26
+ text: 'Third section',
27
+ },
28
+ ],
29
29
  })}
30
30
  </div>
31
31
  <div class="ons-grid__col ons-col-7@m ons-push-1@m">
@@ -45,57 +45,57 @@ describe('script: table-of-contents', () => {
45
45
  </div>
46
46
  </div>
47
47
  `,
48
- /* eslint-enable indent */
49
- );
50
- });
51
-
52
- it.each([
53
- ['section1', 'First section'],
54
- ['section2', 'Second section'],
55
- ['section3', 'Third section'],
56
- ])('marks "%s" as the current section', async (sectionId, sectionTitle) => {
57
- await page.$eval(`#${sectionId}`, (node) => node.scrollIntoView());
58
- await page.waitForTimeout(250);
59
-
60
- const activeSection = await page.$eval('.ons-toc__link-active', (node) => node.innerText.trim());
61
- expect(activeSection).toBe(sectionTitle);
62
- });
48
+ /* eslint-enable indent */
49
+ );
50
+ });
51
+
52
+ it.each([
53
+ ['section1', 'First section'],
54
+ ['section2', 'Second section'],
55
+ ['section3', 'Third section'],
56
+ ])('marks "%s" as the current section', async (sectionId, sectionTitle) => {
57
+ await page.$eval(`#${sectionId}`, (node) => node.scrollIntoView());
58
+ await page.waitForTimeout(250);
59
+
60
+ const activeSection = await page.$eval('.ons-toc__link-active', (node) => node.innerText.trim());
61
+ expect(activeSection).toBe(sectionTitle);
62
+ });
63
63
  });
64
64
 
65
65
  describe('script: table-of-contents-fixed-position', () => {
66
- beforeEach(async () => {
67
- await setTestPage(
68
- '/test',
69
- /* eslint-disable indent */
70
- `
66
+ beforeEach(async () => {
67
+ await setTestPage(
68
+ '/test',
69
+ /* eslint-disable indent */
70
+ `
71
71
  <div class="ons-page__container ons-container">
72
72
  <div class="ons-grid ons-js-toc-container">
73
73
  <div id="sticky-container" class="ons-grid__col ons-grid__col--sticky@m ons-col-4@m">
74
74
  ${renderComponent('table-of-contents', {
75
- title: 'Contents',
76
- ariaLabel: 'Sections in this page',
77
- itemsList: [
78
- {
79
- url: '#section1',
80
- text: 'What is the census?',
81
- },
82
- {
83
- url: '#section2',
84
- text: 'The online census has now closed',
85
- },
86
- {
87
- url: '#section3',
88
- text: 'What happens after Census Day',
89
- },
90
- {
91
- url: '#section4',
92
- text: 'The census in Northern Ireland and Scotland',
93
- },
94
- {
95
- url: '#section5',
96
- text: 'The last census',
97
- },
98
- ],
75
+ title: 'Contents',
76
+ ariaLabel: 'Sections in this page',
77
+ itemsList: [
78
+ {
79
+ url: '#section1',
80
+ text: 'What is the census?',
81
+ },
82
+ {
83
+ url: '#section2',
84
+ text: 'The online census has now closed',
85
+ },
86
+ {
87
+ url: '#section3',
88
+ text: 'What happens after Census Day',
89
+ },
90
+ {
91
+ url: '#section4',
92
+ text: 'The census in Northern Ireland and Scotland',
93
+ },
94
+ {
95
+ url: '#section5',
96
+ text: 'The last census',
97
+ },
98
+ ],
99
99
  })}
100
100
  </div>
101
101
  <div class="ons-grid__col ons-col-7@m ons-push-1@m">
@@ -144,32 +144,32 @@ describe('script: table-of-contents-fixed-position', () => {
144
144
  </div>
145
145
  </div>
146
146
  `,
147
- /* eslint-enable indent */
148
- 'main',
149
- );
150
- });
151
-
152
- it('when the "ons-grid__col--sticky" class is used, then the ToC stays in a fixed position while scrolling', async () => {
153
- await page.evaluate(() => {
154
- window.scrollTo(0, 1000);
147
+ /* eslint-enable indent */
148
+ 'main',
149
+ );
155
150
  });
156
151
 
157
- await page.waitForTimeout(250);
158
- const leftColumn = await page.$('#sticky-container');
159
- const boundingBox = await leftColumn.boundingBox();
152
+ it('when the "ons-grid__col--sticky" class is used, then the ToC stays in a fixed position while scrolling', async () => {
153
+ await page.evaluate(() => {
154
+ window.scrollTo(0, 1000);
155
+ });
156
+
157
+ await page.waitForTimeout(250);
158
+ const leftColumn = await page.$('#sticky-container');
159
+ const boundingBox = await leftColumn.boundingBox();
160
160
 
161
- const viewport = await page.evaluate(() => ({
162
- width: window.innerWidth,
163
- height: window.innerHeight,
164
- }));
161
+ const viewport = await page.evaluate(() => ({
162
+ width: window.innerWidth,
163
+ height: window.innerHeight,
164
+ }));
165
165
 
166
- const isInViewport =
167
- boundingBox &&
168
- boundingBox.x < viewport.width &&
169
- boundingBox.y < viewport.height &&
170
- boundingBox.x + boundingBox.width > 0 &&
171
- boundingBox.y + boundingBox.height > 0;
166
+ const isInViewport =
167
+ boundingBox &&
168
+ boundingBox.x < viewport.width &&
169
+ boundingBox.y < viewport.height &&
170
+ boundingBox.x + boundingBox.width > 0 &&
171
+ boundingBox.y + boundingBox.height > 0;
172
172
 
173
- expect(isInViewport).toBeTruthy();
174
- });
173
+ expect(isInViewport).toBeTruthy();
174
+ });
175
175
  });
@@ -7,21 +7,27 @@
7
7
  {% endfor %}
8
8
  {% endset %}
9
9
 
10
- <section class="{{ classes }}"
11
- {% if params.noInitialActiveTab %}data-no-initial-active-tab="true"{% endif %}
12
- >
10
+ <section class="{{ classes }}" {% if params.noInitialActiveTab %}data-no-initial-active-tab="true"{% endif %}>
13
11
  {% set titleTag = params.titleTag | default("h2") %}
14
- <{{ titleTag }} class="ons-tabs__title ons-u-fs-r--b ons-u-mt-no{% if params.titleClasses %} {{ params.titleClasses }}{% endif %}">{{ params.title }}</{{ titleTag }}>
12
+ {% set openingTag = "<" + titleTag %}
13
+ {% set closingTag = "</" + titleTag + ">" %}
14
+ {{ openingTag | safe }}
15
+ class="ons-tabs__title ons-u-fs-r--b
16
+ ons-u-mt-no{{ ' ' + params.titleClasses if params.titleClasses else '' }}">{{ params.title }}{{ closingTag | safe }}
15
17
  <div>
16
18
  <ul class="ons-tabs__list">
19
+ <!-- prettier-ignore-start -->
17
20
  {%- for tab in params.tabs -%}
18
- <li class="ons-tab__list-item"><a href="#{{ tab.id if tab.id else tab.title|trim|replace(' ','-')|lower}}" class="ons-tab"{% if tab.attributes %}{% for attribute, value in (tab.attributes.items() if tab.attributes is mapping and tab.attributes.items else tab.attributes) %} {{ attribute }}{% if value %}="{{ value }}"{% endif %} {% endfor %}{% endif %}>{{ tab.title }}{% if tab.hiddenSpan %}<span class='ons-u-vh'>{{tab.hiddenSpan}}</span>{% endif %}</a></li>
21
+ <li class="ons-tab__list-item"><a href="#{{ tab.id if tab.id else tab.title|trim|replace(' ','-')|lower }}" class="ons-tab"{% if tab.attributes %}{% for attribute, value in (tab.attributes.items() if tab.attributes is mapping and tab.attributes.items else tab.attributes) %}{{ ' ' }}{{ attribute }}{% if value %}="{{ value }}"{% endif %}{% endfor %}{% endif %}>{{ tab.title }}{% if tab.hiddenSpan %}<span class="ons-u-vh">{{ tab.hiddenSpan }}</span>{% endif %}</a></li>
19
22
  {%- endfor -%}
23
+ <!-- prettier-ignore-end -->
20
24
  </ul>
21
25
  </div>
22
26
  {% for tab in params.tabs %}
23
27
  <section id="{{ tab.id if tab.id else tab.title|trim|replace(' ','-')|lower }}" class="ons-tabs__panel">
24
- {% if tab.showTitle %}<h2 id="{{ tab.title|trim|replace(' ','-')|lower + '-content-title' }}" class="ons-u-vh">{{ tab.title }}</h2>{% endif %}
28
+ {% if tab.showTitle %}
29
+ <h2 id="{{ tab.title|trim|replace(' ','-')|lower + '-content-title' }}" class="ons-u-vh">{{ tab.title }}</h2>
30
+ {% endif %}
25
31
  {{ tab.content | safe }}
26
32
  </section>
27
33
  {% endfor %}
@@ -6,122 +6,122 @@ import axe from '../../tests/helpers/axe';
6
6
  import { renderComponent } from '../../tests/helpers/rendering';
7
7
 
8
8
  const EXAMPLE_TABS = {
9
- title: 'Example tabs',
10
- tabs: [
11
- {
12
- id: 'first-tab',
13
- title: 'Tab 1',
14
- content: 'Example content...',
15
- hiddenSpan: 'for Example',
16
- },
17
- {
18
- id: 'second-tab',
19
- title: 'Tab 2',
20
- content: 'Some nested <strong>strong element</strong>...',
21
- },
22
- ],
9
+ title: 'Example tabs',
10
+ tabs: [
11
+ {
12
+ id: 'first-tab',
13
+ title: 'Tab 1',
14
+ content: 'Example content...',
15
+ hiddenSpan: 'for Example',
16
+ },
17
+ {
18
+ id: 'second-tab',
19
+ title: 'Tab 2',
20
+ content: 'Some nested <strong>strong element</strong>...',
21
+ },
22
+ ],
23
23
  };
24
24
 
25
25
  const EXAMPLE_TABS_WITH_SHOWTITLE = {
26
- title: 'Example tabs',
27
- tabs: [
28
- {
29
- id: 'first-tab',
30
- title: 'Tab 1',
31
- showTitle: true,
32
- content: 'Example content...',
33
- },
34
- {
35
- id: 'second-tab',
36
- title: 'Tab 2',
37
- content: 'Some nested <strong>strong element</strong>...',
38
- },
39
- ],
26
+ title: 'Example tabs',
27
+ tabs: [
28
+ {
29
+ id: 'first-tab',
30
+ title: 'Tab 1',
31
+ showTitle: true,
32
+ content: 'Example content...',
33
+ },
34
+ {
35
+ id: 'second-tab',
36
+ title: 'Tab 2',
37
+ content: 'Some nested <strong>strong element</strong>...',
38
+ },
39
+ ],
40
40
  };
41
41
 
42
42
  const EXAMPLE_TABS_WITHOUT_TAB_IDS = {
43
- title: 'Example tabs',
44
- tabs: [
45
- {
46
- title: 'Tab 1',
47
- content: 'Example content...',
48
- },
49
- {
50
- title: 'Tab 2',
51
- content: 'Some nested <strong>strong element</strong>...',
52
- },
53
- ],
43
+ title: 'Example tabs',
44
+ tabs: [
45
+ {
46
+ title: 'Tab 1',
47
+ content: 'Example content...',
48
+ },
49
+ {
50
+ title: 'Tab 2',
51
+ content: 'Some nested <strong>strong element</strong>...',
52
+ },
53
+ ],
54
54
  };
55
55
 
56
56
  describe('macro: tabs', () => {
57
- it('passes jest-axe checks', async () => {
58
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
57
+ it('passes jest-axe checks', async () => {
58
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
59
59
 
60
- const results = await axe($.html());
61
- expect(results).toHaveNoViolations();
62
- });
60
+ const results = await axe($.html());
61
+ expect(results).toHaveNoViolations();
62
+ });
63
63
 
64
- it('has the provided variant classes', () => {
65
- const $ = cheerio.load(
66
- renderComponent('tabs', {
67
- ...EXAMPLE_TABS,
68
- variants: ['details', 'example-variant'],
69
- }),
70
- );
64
+ it('has the provided variant classes', () => {
65
+ const $ = cheerio.load(
66
+ renderComponent('tabs', {
67
+ ...EXAMPLE_TABS,
68
+ variants: ['details', 'example-variant'],
69
+ }),
70
+ );
71
71
 
72
- expect($('.ons-tabs').hasClass('ons-tabs--details')).toBe(true);
73
- expect($('.ons-tabs').hasClass('ons-tabs--example-variant')).toBe(true);
74
- });
72
+ expect($('.ons-tabs').hasClass('ons-tabs--details')).toBe(true);
73
+ expect($('.ons-tabs').hasClass('ons-tabs--example-variant')).toBe(true);
74
+ });
75
75
 
76
- it('has the provided `title`', () => {
77
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
76
+ it('has the provided `title`', () => {
77
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
78
78
 
79
- expect($('.ons-tabs__title').text().trim()).toBe('Example tabs');
80
- });
79
+ expect($('.ons-tabs__title').text().trim()).toBe('Example tabs');
80
+ });
81
81
 
82
- it('has title with provided tag override', () => {
83
- const $ = cheerio.load(
84
- renderComponent('tabs', {
85
- ...EXAMPLE_TABS,
86
- titleTag: 'h4',
87
- }),
88
- );
82
+ it('has title with provided tag override', () => {
83
+ const $ = cheerio.load(
84
+ renderComponent('tabs', {
85
+ ...EXAMPLE_TABS,
86
+ titleTag: 'h4',
87
+ }),
88
+ );
89
89
 
90
- const titleTag = $('.ons-tabs__title')[0].tagName;
91
- expect(titleTag).toBe('h4');
92
- });
90
+ const titleTag = $('.ons-tabs__title')[0].tagName;
91
+ expect(titleTag).toBe('h4');
92
+ });
93
93
 
94
- it('has the provided tab id attributes', () => {
95
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
94
+ it('has the provided tab id attributes', () => {
95
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
96
96
 
97
- expect($('.ons-tabs__panel:first').attr('id')).toBe('first-tab');
98
- expect($('.ons-tabs__panel:last').attr('id')).toBe('second-tab');
99
- });
97
+ expect($('.ons-tabs__panel:first').attr('id')).toBe('first-tab');
98
+ expect($('.ons-tabs__panel:last').attr('id')).toBe('second-tab');
99
+ });
100
100
 
101
- it('has default tab id attribute values when identifiers are not provided', () => {
102
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS_WITHOUT_TAB_IDS));
101
+ it('has default tab id attribute values when identifiers are not provided', () => {
102
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS_WITHOUT_TAB_IDS));
103
103
 
104
- expect($('.ons-tabs__panel:first').attr('id')).toBe('tab-1');
105
- expect($('.ons-tabs__panel:last').attr('id')).toBe('tab-2');
106
- });
104
+ expect($('.ons-tabs__panel:first').attr('id')).toBe('tab-1');
105
+ expect($('.ons-tabs__panel:last').attr('id')).toBe('tab-2');
106
+ });
107
107
 
108
- it('has expected label text in tab links and visually hidden span in tab 1', () => {
109
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
108
+ it('has expected label text in tab links and visually hidden span in tab 1', () => {
109
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
110
110
 
111
- expect($('.ons-tab:first').html()).toBe('Tab 1<span class="ons-u-vh">for Example</span>');
112
- expect($('.ons-tab:last').text().trim()).toBe('Tab 2');
113
- });
111
+ expect($('.ons-tab:first').html()).toBe('Tab 1<span class="ons-u-vh">for Example</span>');
112
+ expect($('.ons-tab:last').text().trim()).toBe('Tab 2');
113
+ });
114
114
 
115
- it('has expected content in tab panels', () => {
116
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
115
+ it('has expected content in tab panels', () => {
116
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS));
117
117
 
118
- expect($('.ons-tabs__panel:first').html().trim()).toBe('Example content...');
119
- expect($('.ons-tabs__panel:last').html().trim()).toBe('Some nested <strong>strong element</strong>...');
120
- });
118
+ expect($('.ons-tabs__panel:first').html().trim()).toBe('Example content...');
119
+ expect($('.ons-tabs__panel:last').html().trim()).toBe('Some nested <strong>strong element</strong>...');
120
+ });
121
121
 
122
- it('displays a h2 when showTitle set to true', () => {
123
- const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS_WITH_SHOWTITLE));
122
+ it('displays a h2 when showTitle set to true', () => {
123
+ const $ = cheerio.load(renderComponent('tabs', EXAMPLE_TABS_WITH_SHOWTITLE));
124
124
 
125
- expect($('.ons-tabs__panel:first').find('h2').length).toBe(1);
126
- });
125
+ expect($('.ons-tabs__panel:first').find('h2').length).toBe(1);
126
+ });
127
127
  });