@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
@@ -1,532 +1,566 @@
1
1
  $button-shadow-size: 3px;
2
2
 
3
3
  .ons-btn {
4
- background: transparent;
5
- border: 0;
6
- border-radius: 0;
7
- cursor: pointer;
8
- display: inline-block;
9
- font-family: inherit;
10
- font-size: 1rem;
11
- font-weight: $font-weight-bold;
12
- line-height: 1.35;
13
- margin: 0;
14
- padding: 0;
15
- position: relative;
16
- text-align: center;
17
- text-decoration: none;
18
- text-rendering: optimizelegibility;
19
- vertical-align: top;
20
- white-space: nowrap;
21
-
22
- // Transparent border for IE11 High Contrast mode support due to 'border: 0' on buttons
23
- &::after {
24
- border: ems($button-shadow-size) solid transparent;
25
- inset: 0 0 - (ems($button-shadow-size)) 0; // makes sure button shadow is selectable
26
- content: '';
27
- position: absolute;
28
- }
29
-
30
- &--search {
31
- .ons-icon {
32
- @include mq(s, l) {
33
- margin-right: 0.5rem;
34
- }
35
- }
36
- }
37
-
38
- &__inner {
39
- background: var(--ons-color-button);
40
- border-radius: $input-radius;
41
- box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
42
- color: var(--ons-color-text-inverse);
43
- display: inherit;
44
- padding: 0.7em 1em 0.8em;
45
- // Required for Google Tag Manager
46
- pointer-events: none;
4
+ background: transparent;
5
+ border: 0;
6
+ border-radius: 0;
7
+ cursor: pointer;
8
+ display: inline-block;
9
+ font-family: inherit;
10
+ font-size: 1rem;
11
+ font-weight: $font-weight-bold;
12
+ line-height: 1.35;
13
+ margin: 0;
14
+ padding: 0;
47
15
  position: relative;
48
-
49
- .ons-icon {
50
- fill: var(--ons-color-text-inverse);
51
- height: 18px;
52
- margin-top: -$button-shadow-size;
53
- vertical-align: middle;
54
- width: 18px;
55
- }
56
- }
57
-
58
- // When preceded by another button (for example, in a group)
59
- & + & {
60
- margin-left: 0.5rem;
61
- }
62
-
63
- // When focused
64
- &:focus,
65
- &:focus-visible {
66
- // Add transparent outline because Windows High Contrast Mode doesn't show box-shadows
67
- outline: 3px solid transparent;
68
- outline-offset: 1px;
69
- }
70
-
71
- &:focus &__inner {
72
- background: var(--ons-color-focus);
73
- box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-text-link-focus);
74
- color: var(--ons-color-text-link-focus);
75
-
76
- .ons-icon {
77
- fill: var(--ons-color-text-link-focus);
78
- }
79
- }
80
-
81
- &:focus:hover:not(:active, .active) &__inner {
82
- background: var(--ons-color-focus-dark);
83
- }
84
-
85
- // When down
86
- &:active &,
87
- &:active:focus &,
88
- &.active &,
89
- &.active:focus & {
90
- &__inner {
91
- background: var(--ons-color-button);
92
- box-shadow: none;
93
- color: var(--ons-color-text-inverse);
94
-
95
- .ons-icon {
96
- fill: var(--ons-color-text-inverse);
97
- }
98
- }
99
- }
100
-
101
- &:active,
102
- &.active {
103
- top: ems($button-shadow-size);
104
- }
105
-
106
- // Small buttons
107
- &--small,
108
- &--mobile {
109
- font-size: 0.9rem;
110
- }
111
-
112
- &--small & {
113
- &__inner {
114
- padding: 0.5em 0.7em;
115
- .ons-icon {
116
- height: 16px;
117
- width: 16px;
118
- }
119
- }
120
- }
121
-
122
- &--small.ons-btn--ghost &,
123
- &--mobile & {
124
- &__inner {
125
- padding: 0.5em 0.7em;
126
- }
127
- }
128
-
129
- // Secondary button style
130
- &--secondary & {
131
- &__inner {
132
- box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-secondary-shadow);
133
- }
134
- }
135
-
136
- &--secondary &,
137
- &--secondary:active &,
138
- &--secondary.active &,
139
- &--secondary:active:focus &,
140
- &--secondary.active:focus & {
141
- &__inner {
142
- background: var(--ons-color-button-secondary);
143
- color: var(--ons-color-text);
144
- font-weight: $font-weight-regular;
145
-
146
- .ons-icon {
147
- fill: var(--ons-color-text);
148
- }
149
- }
150
- }
151
-
152
- // When hovered
153
- &:hover & {
154
- &__inner {
155
- background: var(--ons-color-button-hover);
156
- }
157
- }
158
-
159
- &--secondary:hover:not(&--disabled) & {
160
- &__inner {
161
- background: var(--ons-color-button-secondary-hover);
162
- }
163
- }
164
-
165
- &--disabled:not(&--secondary) &,
166
- &--loader.ons-is-loading:hover:not(&--secondary) & {
167
- &__inner {
168
- background: var(--ons-color-button);
169
- }
170
- }
171
-
172
- // Link button when hovered
173
- &--link:hover {
16
+ text-align: center;
174
17
  text-decoration: none;
175
- }
176
-
177
- &--link:focus:not(:active, .active, &--secondary) &,
178
- &--link:focus:hover:not(:active, .active, &--secondary) & {
179
- outline: inherit;
180
-
181
- &__inner {
182
- .ons-icon {
183
- fill: var(--ons-color-text);
184
- }
185
- }
186
- }
187
-
188
- &--text-link {
189
- vertical-align: baseline;
190
- }
191
-
192
- &--text-link & {
193
- &__inner {
194
- background: transparent;
195
- border: none;
196
- border-radius: 0;
197
- box-shadow: none;
198
- color: var(--ons-color-text-link);
199
- font-weight: $font-weight-regular;
200
- padding: 0;
201
- .ons-icon {
202
- fill: var(--ons-color-text-link);
203
- }
204
- }
205
- }
206
-
207
- &--text-link-inverse & {
208
- &__inner {
209
- color: var(--ons-color-text-inverse-link);
210
- .ons-icon {
211
- fill: var(--ons-color-text-inverse-link);
212
- }
213
- }
214
- }
215
-
216
- &--text-link:hover &,
217
- &--text-link:active &,
218
- &--text-link.active & {
219
- &__inner {
220
- background: none;
221
- color: var(--ons-color-text-link-hover);
222
- .ons-icon {
223
- fill: var(--ons-color-text-link-hover);
224
- }
225
- }
226
- }
227
-
228
- &--text-link-inverse:hover &,
229
- &--text-link-inverse:active &,
230
- &--text-link-inverse.active & {
231
- &__inner {
232
- color: var(--ons-color-text-inverse-link-hover);
233
- .ons-icon {
234
- fill: var(--ons-color-text-inverse-link-hover);
235
- }
236
- }
237
- }
238
-
239
- &--text-link:focus:hover & {
240
- &__inner {
241
- color: var(--ons-color-black);
242
- }
243
- }
244
-
245
- &--text-link:focus &,
246
- &--text-link:active:focus &,
247
- &--text-link.active:focus & {
248
- &__inner {
249
- background-color: var(--ons-color-focus);
250
- box-shadow: 0 -2px var(--ons-color-focus),
251
- 0 4px var(--ons-color-text-link-focus) !important;
252
- color: var(--ons-color-text-link-focus);
253
- .ons-icon {
254
- fill: var(--ons-color-text-link-focus);
255
- }
256
- }
257
- }
258
-
259
- &--ghost & {
260
- &__inner {
261
- background: transparent;
262
- border: 2px solid rgb(255 255 255 / 60%);
263
- box-shadow: none;
264
- color: var(--ons-color-text-inverse);
265
- .ons-icon {
266
- fill: var(--ons-color-text-inverse);
267
- }
18
+ text-rendering: optimizelegibility;
19
+ vertical-align: top;
20
+ white-space: nowrap;
21
+
22
+ // Transparent border for IE11 High Contrast mode support due to 'border: 0' on buttons
23
+ &::after {
24
+ border: ems($button-shadow-size) solid transparent;
25
+ inset: 0 0 - (ems($button-shadow-size)) 0; // Makes sure button shadow is selectable
26
+ content: '';
27
+ position: absolute;
268
28
  }
269
- }
270
29
 
271
- &--ghost-dark & {
272
- &__inner {
273
- background: transparent;
274
- border: 2px solid var(--ons-color-black);
275
- box-shadow: none;
276
- color: var(--ons-color-text);
277
- .ons-icon {
278
- fill: var(--ons-color-text);
279
- }
280
- }
281
- }
282
-
283
- &--ghost,
284
- &--ghost-dark,
285
- &--dropdown,
286
- &--text-link,
287
- &--disabled,
288
- &--loader.ons-is-loading {
289
- &:active,
290
- .active {
291
- top: 0 !important; // Override 'pressed' state for flat and non-selectable buttons
292
- }
293
- }
294
-
295
- &--ghost:active:focus,
296
- &--ghost.active:focus
297
- &--ghost-dark:active:focus
298
- &--ghost-dark.active:focus {
299
- box-shadow: none;
300
- outline: 3px solid transparent;
301
- }
302
-
303
- &--ghost:focus:hover,
304
- &--ghost-dark:focus:hover,
305
- &--dropdown:focus:hover,
306
- &--text-link:focus:hover {
307
- outline: none;
308
- }
309
-
310
- &--ghost-dark:focus:hover &,
311
- &--dropdown:focus:hover & {
312
- &__inner {
313
- color: var(--ons-color-text);
314
- .ons-icon {
315
- fill: var(--ons-color-text);
316
- }
30
+ &--search {
31
+ .ons-icon {
32
+ @include mq(s, l) {
33
+ margin-right: 0.5rem;
34
+ }
35
+ }
317
36
  }
318
- }
319
37
 
320
- &--ghost:hover & {
321
38
  &__inner {
322
- background: rgb(0 0 0 / 10%);
323
- border-color: var(--ons-color-white);
324
- }
325
- }
39
+ background: var(--ons-color-button);
40
+ border-radius: $input-radius;
41
+ box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
42
+ color: var(--ons-color-text-inverse);
43
+ display: inherit;
44
+ padding: 0.7em 1em 0.8em;
45
+ // Required for Google Tag Manager
46
+ pointer-events: none;
47
+ position: relative;
326
48
 
327
- &--ghost:active &,
328
- &--ghost:active:focus &,
329
- &--ghost.active & {
330
- &__inner {
331
- background: rgb(0 0 0 / 20%);
332
- border-color: rgb(255 255 255 / 60%);
333
- color: var(--ons-color-text-inverse);
334
- .ons-icon {
335
- fill: var(--ons-color-text-inverse);
336
- }
337
- }
338
- }
339
-
340
- &--ghost-dark:hover &,
341
- &--ghost-dark:active &,
342
- &--ghost-dark:active:focus &,
343
- &--ghost-dark.active & {
344
- &__inner {
345
- background: var(--ons-color-black);
346
- border-color: var(--ons-color-black);
347
- color: var(--ons-color-white);
348
- .ons-icon {
349
- fill: var(--ons-color-white);
350
- }
351
- }
352
- }
353
-
354
- &--ghost.active:focus &,
355
- &--ghost-dark.active:focus &,
356
- &--dropdown.active:focus & {
357
- &__inner {
358
- background: var(--ons-color-focus);
359
- color: var(--ons-color-text-link-focus);
360
- .ons-icon {
361
- fill: var(--ons-color-text-link-focus);
362
- }
49
+ .ons-icon {
50
+ fill: var(--ons-color-text-inverse);
51
+ height: 18px;
52
+ margin-top: -$button-shadow-size;
53
+ vertical-align: middle;
54
+ width: 18px;
55
+ }
363
56
  }
364
- }
365
57
 
366
- &--ghost:focus &,
367
- &--ghost-dark:focus &,
368
- &--dropdown:focus & {
369
- &__inner {
370
- border-color: var(--ons-color-text-link-focus);
371
- box-shadow: 0 0 0 1px var(--ons-color-text-link-focus);
372
- .ons-icon {
373
- fill: var(--ons-color-black);
374
- }
58
+ // When preceded by another button (for example, in a group)
59
+ & + & {
60
+ margin-left: 0.5rem;
375
61
  }
376
- }
377
62
 
378
- &--loader & {
379
- &__inner {
380
- position: relative;
381
- transition: color 0.3s ease-in-out;
382
- .ons-icon {
383
- height: 27px;
384
- left: 50%;
385
- margin: 0;
386
- opacity: 0;
387
- position: absolute;
388
- top: 50%;
389
- transform: translate(-50%, -50%);
390
- transition: opacity 0.3s ease-in-out;
391
- width: 27px;
392
- }
63
+ // When focused
64
+ &:focus,
65
+ &:focus-visible {
66
+ // Add transparent outline because Windows High Contrast Mode doesn't show box-shadows
67
+ outline: 3px solid transparent;
68
+ outline-offset: 1px;
393
69
  }
394
- }
395
70
 
396
- &--loader.ons-btn--small {
397
- .ons-icon {
398
- height: 24px;
399
- width: 24px;
400
- }
401
- }
71
+ &:focus &__inner {
72
+ background: var(--ons-color-focus);
73
+ box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-text-link-focus);
74
+ color: var(--ons-color-text-link-focus);
402
75
 
403
- &--loader.ons-is-loading & {
404
- &__inner {
405
- color: transparent;
406
- .ons-icon {
407
- margin-left: 0 !important;
408
- opacity: 1;
409
- }
76
+ .ons-icon {
77
+ fill: var(--ons-color-text-link-focus);
78
+ }
410
79
  }
411
- }
412
80
 
413
- &--loader.ons-is-loading:active &,
414
- &--loader.ons-is-loading.active & {
415
- &__inner {
416
- box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
81
+ &:focus:hover:not(:active, .active) &__inner {
82
+ background: var(--ons-color-focus-dark);
417
83
  }
418
- }
419
84
 
420
- &--loader.ons-is-loading:hover {
421
- cursor: not-allowed;
422
- }
85
+ // When down
86
+ &:active &,
87
+ &:active:focus &,
88
+ &.active &,
89
+ &.active:focus & {
90
+ &__inner {
91
+ background: var(--ons-color-button);
92
+ box-shadow: none;
93
+ color: var(--ons-color-text-inverse);
423
94
 
424
- &--dropdown:focus & {
425
- &__inner {
426
- box-shadow: inset 0 -4px 0 0 var(--ons-color-text-link-focus);
95
+ .ons-icon {
96
+ fill: var(--ons-color-text-inverse);
97
+ }
98
+ }
427
99
  }
428
- }
429
100
 
430
- &--mobile[aria-expanded='true'],
431
- &--text-link[aria-expanded='true'] {
432
- .ons-icon {
433
- transform: rotate(270deg);
434
- }
435
- }
436
-
437
- &--mobile,
438
- &--text-link {
439
- .ons-icon {
440
- transform: rotate(90deg);
101
+ &:active,
102
+ &.active {
103
+ top: ems($button-shadow-size);
441
104
  }
442
105
 
443
- @include mq(l) {
444
- display: none;
106
+ // Small buttons
107
+ &--small,
108
+ &--mobile {
109
+ font-size: 0.9rem;
445
110
  }
446
- }
447
111
 
448
- // Disabled buttons
449
- &--disabled & {
450
- &__inner {
451
- opacity: 0.4;
112
+ &--small & {
113
+ &__inner {
114
+ padding: 0.5em 0.7em;
115
+ .ons-icon {
116
+ height: 16px;
117
+ width: 16px;
118
+ }
119
+ }
452
120
  }
453
- }
454
-
455
- &--disabled:hover {
456
- cursor: not-allowed;
457
- }
458
121
 
459
- &--disabled:active &,
460
- &--disabled.active & {
461
- &__inner {
462
- box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
122
+ &--small.ons-btn--ghost &,
123
+ &--mobile & {
124
+ &__inner {
125
+ padding: 0.5em 0.7em;
126
+ }
463
127
  }
464
- }
465
-
466
- &--dropdown {
467
- @extend .ons-btn--mobile;
468
-
469
- width: 100%;
470
- }
471
128
 
472
- &--dropdown & {
473
- @extend .ons-btn--mobile;
129
+ // Secondary button style
130
+ &--secondary & {
131
+ &__inner {
132
+ box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-secondary-shadow);
133
+ }
134
+ }
135
+
136
+ &--secondary &,
137
+ &--secondary:active &,
138
+ &--secondary.active &,
139
+ &--secondary:active:focus &,
140
+ &--secondary.active:focus & {
141
+ &__inner {
142
+ background: var(--ons-color-button-secondary);
143
+ color: var(--ons-color-text);
144
+ font-weight: $font-weight-regular;
474
145
 
475
- width: 100%;
476
-
477
- &__inner {
478
- background: var(--ons-color-branded-tint);
479
- border: none;
480
- border-radius: 0;
481
- box-shadow: none;
482
- color: var(--ons-color-branded-text);
483
- display: block;
484
- font-size: 1rem;
485
- font-weight: $font-weight-regular;
486
- padding: 0.6rem 1rem;
487
- text-align: left;
488
-
489
- .ons-icon {
490
- fill: var(--ons-color-branded-text);
491
- float: right;
492
- margin-top: 3px;
493
- }
494
- }
495
- }
496
-
497
- &--dropdown:hover & {
498
- &__inner {
499
- background: var(--ons-color-branded-secondary);
500
- color: var(--ons-color-white);
501
- .ons-icon {
502
- fill: var(--ons-color-white);
503
- }
504
- }
505
- }
506
-
507
- &--dropdown:active &,
508
- &--dropdown.active &,
509
- &--dropdown:active:focus &,
510
- &--dropdown.active:focus & {
511
- &__inner {
512
- background: var(--ons-color-branded-secondary);
513
- color: var(--ons-color-white);
514
- .ons-icon {
515
- fill: var(--ons-color-white);
516
- }
146
+ .ons-icon {
147
+ fill: var(--ons-color-text);
148
+ }
149
+ }
150
+ }
151
+
152
+ // When hovered
153
+ &:hover & {
154
+ &__inner {
155
+ background: var(--ons-color-button-hover);
156
+ }
157
+ }
158
+
159
+ &--secondary:hover:not(&--disabled) & {
160
+ &__inner {
161
+ background: var(--ons-color-button-secondary-hover);
162
+ }
163
+ }
164
+
165
+ &--disabled:not(&--secondary) &,
166
+ &--loader.ons-is-loading:hover:not(&--secondary) & {
167
+ &__inner {
168
+ background: var(--ons-color-button);
169
+ }
170
+ }
171
+
172
+ // Link button when hovered
173
+ &--link:hover {
174
+ text-decoration: none;
175
+ }
176
+
177
+ &--link:focus:not(:active, .active, &--secondary) &,
178
+ &--link:focus:hover:not(:active, .active, &--secondary) & {
179
+ outline: inherit;
180
+
181
+ &__inner {
182
+ .ons-icon {
183
+ fill: var(--ons-color-text);
184
+ }
185
+ }
186
+ }
187
+
188
+ &--text-link {
189
+ vertical-align: baseline;
190
+ }
191
+
192
+ &--text-link & {
193
+ &__inner {
194
+ background: transparent;
195
+ border: 0;
196
+ border-radius: 0;
197
+ box-shadow: none;
198
+ color: var(--ons-color-text-link);
199
+ font-weight: $font-weight-regular;
200
+ padding: 0;
201
+ .ons-icon {
202
+ fill: var(--ons-color-text-link);
203
+ }
204
+ }
205
+ }
206
+
207
+ &--text-link-inverse & {
208
+ &__inner {
209
+ color: var(--ons-color-text-inverse-link);
210
+ .ons-icon {
211
+ fill: var(--ons-color-text-inverse-link);
212
+ }
213
+ }
214
+ }
215
+
216
+ &--text-link:hover &,
217
+ &--text-link:active &,
218
+ &--text-link.active & {
219
+ &__inner {
220
+ background: none;
221
+ color: var(--ons-color-text-link-hover);
222
+ .ons-icon {
223
+ fill: var(--ons-color-text-link-hover);
224
+ }
225
+ }
226
+ }
227
+
228
+ &--text-link-inverse:hover &,
229
+ &--text-link-inverse:active &,
230
+ &--text-link-inverse.active & {
231
+ &__inner {
232
+ color: var(--ons-color-text-inverse-link-hover);
233
+ .ons-icon {
234
+ fill: var(--ons-color-text-inverse-link-hover);
235
+ }
236
+ }
237
+ }
238
+
239
+ &--text-link:focus:hover & {
240
+ &__inner {
241
+ color: var(--ons-color-black);
242
+ }
243
+ }
244
+
245
+ &--text-link:focus &,
246
+ &--text-link:active:focus &,
247
+ &--text-link.active:focus & {
248
+ &__inner {
249
+ background-color: var(--ons-color-focus);
250
+ box-shadow:
251
+ 0 -2px var(--ons-color-focus),
252
+ 0 4px var(--ons-color-text-link-focus) !important;
253
+ color: var(--ons-color-text-link-focus);
254
+ .ons-icon {
255
+ fill: var(--ons-color-text-link-focus);
256
+ }
257
+ }
258
+ }
259
+
260
+ &--ghost & {
261
+ &__inner {
262
+ background: transparent;
263
+ border: 2px solid rgb(255 255 255 / 60%);
264
+ box-shadow: none;
265
+ color: var(--ons-color-text-inverse);
266
+ .ons-icon {
267
+ fill: var(--ons-color-text-inverse);
268
+ }
269
+ }
270
+ }
271
+
272
+ &--ghost-dark & {
273
+ &__inner {
274
+ background: transparent;
275
+ border: 2px solid var(--ons-color-black);
276
+ box-shadow: none;
277
+ color: var(--ons-color-text);
278
+ .ons-icon {
279
+ fill: var(--ons-color-text);
280
+ }
281
+ }
282
+ }
283
+
284
+ &--ghost,
285
+ &--ghost-dark,
286
+ &--dropdown,
287
+ &--text-link,
288
+ &--neutral,
289
+ &--disabled,
290
+ &--loader.ons-is-loading {
291
+ &:active,
292
+ .active {
293
+ top: 0 !important; // Override 'pressed' state for flat and non-selectable buttons
294
+ }
295
+ }
296
+
297
+ &--ghost:active:focus,
298
+ &--ghost.active:focus &--ghost-dark:active:focus &--ghost-dark.active:focus {
299
+ box-shadow: none;
300
+ outline: 3px solid transparent;
301
+ }
302
+
303
+ &--ghost:focus:hover,
304
+ &--ghost-dark:focus:hover,
305
+ &--dropdown:focus:hover,
306
+ &--text-link:focus:hover,
307
+ &--neutral:focus:hover {
308
+ outline: none;
309
+ }
310
+
311
+ &--ghost-dark:focus:hover &,
312
+ &--dropdown:focus:hover & {
313
+ &__inner {
314
+ color: var(--ons-color-text);
315
+ .ons-icon {
316
+ fill: var(--ons-color-text);
317
+ }
318
+ }
319
+ }
320
+
321
+ &--ghost:hover & {
322
+ &__inner {
323
+ background: rgb(0 0 0 / 10%);
324
+ border-color: var(--ons-color-white);
325
+ }
326
+ }
327
+
328
+ &--ghost:active &,
329
+ &--ghost:active:focus &,
330
+ &--ghost.active & {
331
+ &__inner {
332
+ background: rgb(0 0 0 / 20%);
333
+ border-color: rgb(255 255 255 / 60%);
334
+ color: var(--ons-color-text-inverse);
335
+ .ons-icon {
336
+ fill: var(--ons-color-text-inverse);
337
+ }
338
+ }
339
+ }
340
+
341
+ &--ghost-dark:hover &,
342
+ &--ghost-dark:active &,
343
+ &--ghost-dark:active:focus &,
344
+ &--ghost-dark.active & {
345
+ &__inner {
346
+ background: var(--ons-color-black);
347
+ border-color: var(--ons-color-black);
348
+ color: var(--ons-color-white);
349
+ .ons-icon {
350
+ fill: var(--ons-color-white);
351
+ }
352
+ }
353
+ }
354
+
355
+ &--ghost.active:focus &,
356
+ &--ghost-dark.active:focus &,
357
+ &--dropdown.active:focus & {
358
+ &__inner {
359
+ background: var(--ons-color-focus);
360
+ color: var(--ons-color-text-link-focus);
361
+ .ons-icon {
362
+ fill: var(--ons-color-text-link-focus);
363
+ }
364
+ }
365
+ }
366
+
367
+ &--ghost:focus &,
368
+ &--ghost-dark:focus &,
369
+ &--dropdown:focus & {
370
+ &__inner {
371
+ border-color: var(--ons-color-text-link-focus);
372
+ box-shadow: 0 0 0 1px var(--ons-color-text-link-focus);
373
+ .ons-icon {
374
+ fill: var(--ons-color-black);
375
+ }
376
+ }
377
+ }
378
+
379
+ &--loader & {
380
+ &__inner {
381
+ position: relative;
382
+ transition: color 0.3s ease-in-out;
383
+ .ons-icon {
384
+ height: 27px;
385
+ left: 50%;
386
+ margin: 0;
387
+ opacity: 0;
388
+ position: absolute;
389
+ top: 50%;
390
+ transform: translate(-50%, -50%);
391
+ transition: opacity 0.3s ease-in-out;
392
+ width: 27px;
393
+ }
394
+ }
395
+ }
396
+
397
+ &--loader.ons-btn--small {
398
+ .ons-icon {
399
+ height: 24px;
400
+ width: 24px;
401
+ }
402
+ }
403
+
404
+ &--loader.ons-is-loading & {
405
+ &__inner {
406
+ color: transparent;
407
+ .ons-icon {
408
+ margin-left: 0 !important;
409
+ opacity: 1;
410
+ }
411
+ }
412
+ }
413
+
414
+ &--loader.ons-is-loading:active &,
415
+ &--loader.ons-is-loading.active & {
416
+ &__inner {
417
+ box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
418
+ }
419
+ }
420
+
421
+ &--loader.ons-is-loading:hover {
422
+ cursor: not-allowed;
423
+ }
424
+
425
+ &--dropdown:focus & {
426
+ &__inner {
427
+ box-shadow: inset 0 -4px 0 0 var(--ons-color-text-link-focus);
428
+ }
429
+ }
430
+
431
+ &--mobile[aria-expanded='true'],
432
+ &--text-link[aria-expanded='true'] {
433
+ .ons-icon {
434
+ transform: rotate(270deg);
435
+ }
436
+ }
437
+
438
+ &--mobile,
439
+ &--text-link {
440
+ .ons-icon {
441
+ transform: rotate(90deg);
442
+ }
443
+
444
+ @include mq(l) {
445
+ display: none;
446
+ }
447
+ }
448
+
449
+ // Disabled buttons
450
+ &--disabled & {
451
+ &__inner {
452
+ opacity: 0.4;
453
+ }
454
+ }
455
+
456
+ &--disabled:hover {
457
+ cursor: not-allowed;
458
+ }
459
+
460
+ &--disabled:active &,
461
+ &--disabled.active & {
462
+ &__inner {
463
+ box-shadow: 0 ems($button-shadow-size) 0 var(--ons-color-button-shadow);
464
+ }
465
+ }
466
+
467
+ &--dropdown {
468
+ @extend .ons-btn--mobile;
469
+
470
+ width: 100%;
471
+ }
472
+
473
+ &--dropdown & {
474
+ @extend .ons-btn--mobile;
475
+
476
+ width: 100%;
477
+
478
+ &__inner {
479
+ background: var(--ons-color-branded-tint);
480
+ border: 0;
481
+ border-radius: 0;
482
+ box-shadow: none;
483
+ color: var(--ons-color-branded-text);
484
+ display: block;
485
+ font-size: 1rem;
486
+ font-weight: $font-weight-regular;
487
+ padding: 0.6rem 1rem;
488
+ text-align: left;
489
+
490
+ .ons-icon {
491
+ fill: var(--ons-color-branded-text);
492
+ float: right;
493
+ margin-top: 3px;
494
+ }
495
+ }
496
+ }
497
+
498
+ &--dropdown:hover & {
499
+ &__inner {
500
+ background: var(--ons-color-branded-secondary);
501
+ color: var(--ons-color-white);
502
+ .ons-icon {
503
+ fill: var(--ons-color-white);
504
+ }
505
+ }
506
+ }
507
+
508
+ &--dropdown:active &,
509
+ &--dropdown.active &,
510
+ &--dropdown:active:focus &,
511
+ &--dropdown.active:focus & {
512
+ &__inner {
513
+ background: var(--ons-color-branded-secondary);
514
+ color: var(--ons-color-white);
515
+ .ons-icon {
516
+ fill: var(--ons-color-white);
517
+ }
518
+ }
519
+ }
520
+
521
+ &--neutral &,
522
+ &--neutral:hover &,
523
+ &--neutral:active &,
524
+ &--neutral.active & {
525
+ &__inner {
526
+ background: transparent;
527
+ border: 0;
528
+ border-radius: 0;
529
+ box-shadow: none;
530
+ color: var(--ons-color-black);
531
+ font-weight: $font-weight-regular;
532
+ padding: 2px;
533
+ .ons-icon {
534
+ fill: var(--ons-color-black);
535
+ }
536
+ }
537
+ }
538
+
539
+ &--neutral:focus &,
540
+ &--neutral:active:focus &,
541
+ &--neutral.active:focus & {
542
+ &__inner {
543
+ background-color: var(--ons-color-focus);
544
+ box-shadow:
545
+ 0 -2px var(--ons-color-focus),
546
+ 0 4px var(--ons-color-text-link-focus) !important;
547
+ color: var(--ons-color-text-link-focus);
548
+ .ons-icon {
549
+ fill: var(--ons-color-text-link-focus);
550
+ }
551
+ }
517
552
  }
518
- }
519
553
  }
520
554
 
521
555
  .ons-btn-group {
522
- @extend .ons-u-mb-m;
556
+ @extend .ons-u-mb-m;
523
557
 
524
- align-items: baseline;
525
- display: flex;
526
- flex-flow: row wrap;
558
+ align-items: baseline;
559
+ display: flex;
560
+ flex-flow: row wrap;
527
561
 
528
- & .ons-btn,
529
- & a {
530
- margin: 0 1rem 1rem 0;
531
- }
562
+ .ons-btn,
563
+ a {
564
+ margin: 0 1rem 1rem 0;
565
+ }
532
566
  }