@comicrelief/component-library 7.24.0 → 7.24.2

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 (278) hide show
  1. package/.github/workflows/main.yml +22 -24
  2. package/dist/components/Atoms/Button/Button.js +21 -15
  3. package/dist/components/Atoms/Button/Button.test.js +3 -3
  4. package/dist/components/Atoms/ButtonWithStates/ButtonWithStates.js +19 -22
  5. package/dist/components/Atoms/Checkbox/Checkbox.js +42 -26
  6. package/dist/components/Atoms/Checkbox/Checkbox.test.js +3 -3
  7. package/dist/components/Atoms/Confetti/Confetti.js +20 -23
  8. package/dist/components/Atoms/Confetti/_TriggerConfetti.js +4 -11
  9. package/dist/components/Atoms/ErrorText/ErrorText.js +15 -11
  10. package/dist/components/Atoms/ErrorText/ErrorText.test.js +3 -3
  11. package/dist/components/Atoms/Icons/Arrow.js +16 -15
  12. package/dist/components/Atoms/Icons/AtSign.js +9 -9
  13. package/dist/components/Atoms/Icons/Chevron.js +16 -15
  14. package/dist/components/Atoms/Icons/Curve.js +16 -18
  15. package/dist/components/Atoms/Icons/Download.js +8 -8
  16. package/dist/components/Atoms/Icons/External.js +8 -8
  17. package/dist/components/Atoms/Icons/Favourite.js +8 -8
  18. package/dist/components/Atoms/Icons/Internal.js +8 -8
  19. package/dist/components/Atoms/Icons/index.js +8 -8
  20. package/dist/components/Atoms/Input/Input.js +38 -33
  21. package/dist/components/Atoms/Input/input.test.js +3 -3
  22. package/dist/components/Atoms/Label/Label.js +28 -23
  23. package/dist/components/Atoms/Link/Link.js +24 -29
  24. package/dist/components/Atoms/Link/Link.style.js +51 -40
  25. package/dist/components/Atoms/Link/Link.test.js +9 -9
  26. package/dist/components/Atoms/Logo/Logo.js +16 -18
  27. package/dist/components/Atoms/Logo/Logo.test.js +3 -3
  28. package/dist/components/Atoms/Pagination/Item/Item.js +7 -7
  29. package/dist/components/Atoms/Pagination/Item/Item.style.js +35 -28
  30. package/dist/components/Atoms/Pagination/List/List.js +21 -19
  31. package/dist/components/Atoms/Pagination/Pagination.js +41 -49
  32. package/dist/components/Atoms/Pagination/Pagination.test.js +54 -108
  33. package/dist/components/Atoms/Pagination/Utils/PaginationCalculator.js +15 -15
  34. package/dist/components/Atoms/Picture/Picture.js +34 -44
  35. package/dist/components/Atoms/Picture/Picture.test.js +5 -5
  36. package/dist/components/Atoms/RadioButton/RadioButton.js +35 -23
  37. package/dist/components/Atoms/RadioButton/RadioButton.test.js +3 -3
  38. package/dist/components/Atoms/RichText/RichText.js +9 -11
  39. package/dist/components/Atoms/RichText/RichText.test.js +4 -4
  40. package/dist/components/Atoms/Select/Select.js +56 -49
  41. package/dist/components/Atoms/Select/Select.test.js +3 -3
  42. package/dist/components/Atoms/SocialIcons/Icon/Icon.js +13 -13
  43. package/dist/components/Atoms/SocialIcons/SocialIcons.js +25 -23
  44. package/dist/components/Atoms/SocialIcons/SocialIcons.test.js +7 -7
  45. package/dist/components/Atoms/SocialIcons/Utils/Icons.js +3 -3
  46. package/dist/components/Atoms/SocialIcons/Utils/Links.js +19 -20
  47. package/dist/components/Atoms/SocialIcons/assets/X-white-Subtract.svg +3 -0
  48. package/dist/components/Atoms/Text/Text.js +62 -41
  49. package/dist/components/Atoms/Text/Text.test.js +11 -11
  50. package/dist/components/Atoms/TextArea/TextArea.js +18 -17
  51. package/dist/components/Atoms/TextArea/TextArea.test.js +3 -3
  52. package/dist/components/Atoms/TextInputWithDropdown/TextInputWithDropdown.js +69 -86
  53. package/dist/components/Atoms/TextInputWithDropdown/TextInputWithDropdown.style.js +23 -15
  54. package/dist/components/Atoms/TextInputWithDropdown/TextInputWithDropdown.test.js +15 -19
  55. package/dist/components/Molecules/Accordion/Accordion.js +35 -32
  56. package/dist/components/Molecules/Accordion/Accordion.test.js +3 -3
  57. package/dist/components/Molecules/ArticleTeaser/ArticleTeaser.js +81 -52
  58. package/dist/components/Molecules/ArticleTeaser/ArticleTeaser.test.js +5 -5
  59. package/dist/components/Molecules/Banner/Banner.js +21 -13
  60. package/dist/components/Molecules/Banner/Banner.test.js +3 -3
  61. package/dist/components/Molecules/Box/Box.js +33 -27
  62. package/dist/components/Molecules/Box/Box.test.js +5 -5
  63. package/dist/components/Molecules/Card/Card.js +22 -22
  64. package/dist/components/Molecules/Card/Card.test.js +5 -5
  65. package/dist/components/Molecules/CardDs/CardDs.js +80 -55
  66. package/dist/components/Molecules/CardDs/CardDs.test.js +3 -3
  67. package/dist/components/Molecules/Chip/Chip.js +8 -6
  68. package/dist/components/Molecules/Chip/Chip.style.js +48 -28
  69. package/dist/components/Molecules/Chip/Chip.test.js +4 -6
  70. package/dist/components/Molecules/Countdown/Countdown.js +28 -36
  71. package/dist/components/Molecules/Countdown/Countdown.style.js +3 -3
  72. package/dist/components/Molecules/Descriptor/Descriptor.js +32 -26
  73. package/dist/components/Molecules/Descriptor/Descriptor.test.js +5 -5
  74. package/dist/components/Molecules/DoubleCopy/DoubleCopy.js +6 -4
  75. package/dist/components/Molecules/DoubleCopy/DoubleCopy.style.js +7 -5
  76. package/dist/components/Molecules/DoubleCopy/DoubleCopy.test.js +4 -4
  77. package/dist/components/Molecules/HeroBanner/HeroBanner.js +13 -17
  78. package/dist/components/Molecules/InfoBanner/InfoBanner.js +22 -18
  79. package/dist/components/Molecules/InfoBanner/InfoBanner.test.js +10 -10
  80. package/dist/components/Molecules/Logos/Logos.js +26 -14
  81. package/dist/components/Molecules/Logos/Logos.md +5 -0
  82. package/dist/components/Molecules/Lookup/Lookup.js +49 -84
  83. package/dist/components/Molecules/PartnerLink/PartnerLink.js +10 -11
  84. package/dist/components/Molecules/PartnerLink/PartnerLink.style.js +15 -9
  85. package/dist/components/Molecules/PartnerLink/PartnerLink.test.js +3 -3
  86. package/dist/components/Molecules/Promo/Promo.js +30 -36
  87. package/dist/components/Molecules/Promo/Promo.style.js +44 -31
  88. package/dist/components/Molecules/Promo/Promo.test.js +6 -6
  89. package/dist/components/Molecules/Promo/_ProgressRing.js +13 -19
  90. package/dist/components/Molecules/Promo/_PromoVideo.js +25 -34
  91. package/dist/components/Molecules/Promo/_PromoVideoButton.js +7 -7
  92. package/dist/components/Molecules/Promo/_PromoVideoButton.style.js +68 -41
  93. package/dist/components/Molecules/SchoolLookup/SchoolLookup.js +29 -52
  94. package/dist/components/Molecules/SchoolLookup/SchoolLookup.test.js +4 -4
  95. package/dist/components/Molecules/SearchInput/SearchInput.js +8 -8
  96. package/dist/components/Molecules/SearchInput/SearchInput.style.js +22 -14
  97. package/dist/components/Molecules/SearchInput/SearchInput.test.js +4 -4
  98. package/dist/components/Molecules/SearchResult/SearchResult.js +43 -29
  99. package/dist/components/Molecules/SearchResult/SearchResult.test.js +9 -9
  100. package/dist/components/Molecules/ShareButton/ShareButton.js +22 -26
  101. package/dist/components/Molecules/ShareButton/ShareButton.style.js +5 -5
  102. package/dist/components/Molecules/ShareButton/ShareButton.test.js +3 -3
  103. package/dist/components/Molecules/ShareButton/assets/ShareIcons.js +2 -2
  104. package/dist/components/Molecules/SimpleSchoolLookup/SimpleSchoolLookup.js +28 -55
  105. package/dist/components/Molecules/SingleMessage/SingleMessage.js +99 -123
  106. package/dist/components/Molecules/SingleMessage/SingleMessage.style.js +132 -81
  107. package/dist/components/Molecules/SingleMessage/SingleMessage.test.js +13 -13
  108. package/dist/components/Molecules/SingleMessageDS/SingleMessageDs.js +31 -40
  109. package/dist/components/Molecules/SingleMessageDS/SingleMessageDs.style.js +85 -49
  110. package/dist/components/Molecules/SingleMessageDS/SingleMessageDs.test.js +3 -3
  111. package/dist/components/Molecules/Typeahead/Typeahead.js +47 -84
  112. package/dist/components/Molecules/Typeahead/Typeahead.test.js +12 -35
  113. package/dist/components/Molecules/VideoBanner/VideoBanner.js +20 -25
  114. package/dist/components/Molecules/VideoBanner/VideoBanner.test.js +4 -4
  115. package/dist/components/Organisms/CookieBanner/CookieBanner.js +7 -5
  116. package/dist/components/Organisms/CookieBanner/CookieBanner.style.js +21 -13
  117. package/dist/components/Organisms/CookieBanner/CookieBanner.test.js +5 -5
  118. package/dist/components/Organisms/Donate/Donate.js +34 -37
  119. package/dist/components/Organisms/Donate/Donate.style.js +85 -53
  120. package/dist/components/Organisms/Donate/Donate.test.js +10 -10
  121. package/dist/components/Organisms/Donate/Form/Form.js +53 -78
  122. package/dist/components/Organisms/Donate/Form/PopUpComponent.js +25 -30
  123. package/dist/components/Organisms/Donate/GivingSelector/GivingSelector.js +11 -13
  124. package/dist/components/Organisms/Donate/GivingSelector/GivingSelector.style.js +38 -22
  125. package/dist/components/Organisms/Donate/MoneyBuy/MoneyBuy.js +47 -30
  126. package/dist/components/Organisms/EmailSignUp/EmailSignUp.style.js +63 -37
  127. package/dist/components/Organisms/EmailSignUp/EmailSignUp.test.js +12 -12
  128. package/dist/components/Organisms/EmailSignUp/EmailSignUpForm.js +23 -43
  129. package/dist/components/Organisms/EmailSignUp/_EmailSignUp.js +25 -21
  130. package/dist/components/Organisms/EmailSignUp/_EmailSignUpConfig.js +10 -9
  131. package/dist/components/Organisms/EmailSignUp/_TextInput.js +20 -18
  132. package/dist/components/Organisms/Footer/Footer.js +10 -10
  133. package/dist/components/Organisms/Footer/Footer.style.js +27 -21
  134. package/dist/components/Organisms/Footer/Footer.test.js +3 -3
  135. package/dist/components/Organisms/Footer/Nav/Nav.js +59 -70
  136. package/dist/components/Organisms/Footer/Nav/Nav.style.js +77 -43
  137. package/dist/components/Organisms/Header/Burger/BurgerMenu.js +6 -4
  138. package/dist/components/Organisms/Header/Burger/BurgerMenu.style.js +37 -21
  139. package/dist/components/Organisms/Header/Header.js +8 -8
  140. package/dist/components/Organisms/Header/Header.style.js +27 -19
  141. package/dist/components/Organisms/Header/Nav/Nav.js +39 -50
  142. package/dist/components/Organisms/Header/Nav/Nav.style.js +103 -57
  143. package/dist/components/Organisms/Header/header.test.js +1 -1
  144. package/dist/components/Organisms/ImpactSlider/ImpactMoneybuys.style.js +32 -29
  145. package/dist/components/Organisms/ImpactSlider/ImpactSlider.js +19 -22
  146. package/dist/components/Organisms/ImpactSlider/ImpactSlider.style.js +38 -24
  147. package/dist/components/Organisms/ImpactSlider/Slider.style.js +8 -14
  148. package/dist/components/Organisms/ImpactSlider/_ImpactMoneybuys.js +11 -11
  149. package/dist/components/Organisms/ImpactSlider/_Slider.js +9 -7
  150. package/dist/components/Organisms/ImpactSlider/_utils.js +11 -11
  151. package/dist/components/Organisms/MarketingPreferencesDS/MarketingPreferencesDS.style.js +61 -38
  152. package/dist/components/Organisms/MarketingPreferencesDS/MarketingPreferencesDSForm.js +24 -16
  153. package/dist/components/Organisms/MarketingPreferencesDS/_AssociatedFields.js +1 -1
  154. package/dist/components/Organisms/MarketingPreferencesDS/_CheckAnswer.js +20 -16
  155. package/dist/components/Organisms/MarketingPreferencesDS/_DefaultCopy.js +3 -3
  156. package/dist/components/Organisms/MarketingPreferencesDS/_MarketingPreferencesDS.js +46 -36
  157. package/dist/components/Organisms/MarketingPreferencesDS/_MarketingPrefsConfig.js +21 -34
  158. package/dist/components/Organisms/MarketingPreferencesDS/_TextInput.js +20 -18
  159. package/dist/components/Organisms/Membership/Form/Form.js +48 -81
  160. package/dist/components/Organisms/Membership/Membership.js +17 -15
  161. package/dist/components/Organisms/Membership/Membership.style.js +81 -51
  162. package/dist/components/Organisms/Membership/Membership.test.js +4 -4
  163. package/dist/components/Organisms/Membership/MoneyBox/MoneyBox.js +37 -26
  164. package/dist/hoc/shallowWithTheme.js +1 -1
  165. package/dist/index.js +67 -67
  166. package/dist/styleguide/CRLogo.js +2 -2
  167. package/dist/styleguide/StyleGuideRenderer.js +9 -7
  168. package/dist/styleguide/ThemeWrapper.js +5 -3
  169. package/dist/styleguide/data/data.js +3 -3
  170. package/dist/theme/crTheme/buttonColors.js +6 -5
  171. package/dist/theme/crTheme/colors.js +4 -3
  172. package/dist/theme/crTheme/fontSizes.js +4 -3
  173. package/dist/theme/crTheme/linkStyles.js +6 -5
  174. package/dist/theme/crTheme/theme.js +1 -1
  175. package/dist/theme/shared/breakpoint.js +4 -3
  176. package/dist/theme/shared/fontFamilies.js +5 -4
  177. package/dist/theme/shared/hideVisually.js +1 -1
  178. package/dist/theme/shared/size.js +4 -3
  179. package/dist/theme/shared/spacing.js +2 -2
  180. package/dist/theme/shared/zIndex.js +3 -3
  181. package/dist/theme/srTheme/buttonColors.js +6 -5
  182. package/dist/theme/srTheme/colors.js +4 -3
  183. package/dist/theme/srTheme/fontSizes.js +4 -3
  184. package/dist/theme/srTheme/linkStyles.js +6 -5
  185. package/dist/theme/srTheme/theme.js +1 -1
  186. package/dist/utils/Membership.js +30 -27
  187. package/dist/utils/ShareButton/sharePopUpHelper.js +8 -8
  188. package/dist/utils/ShareButton/shareTracking.js +1 -1
  189. package/dist/utils/ShareButton/shareUrlHelper.js +3 -3
  190. package/dist/utils/allowListed.js +3 -5
  191. package/dist/utils/allowListed.test.js +3 -3
  192. package/dist/utils/internalLinkHelper.js +8 -10
  193. package/dist/utils/navHelper.js +2 -2
  194. package/package.json +12 -9
  195. package/playwright/components/atoms/checkbox.spec.js +64 -0
  196. package/playwright/components/atoms/input.spec.js +158 -0
  197. package/playwright/components/atoms/label.spec.js +29 -0
  198. package/playwright/components/atoms/link.spec.js +48 -0
  199. package/playwright/components/atoms/radioButton.spec.js +30 -0
  200. package/playwright/components/atoms/select.spec.js +36 -0
  201. package/playwright/components/atoms/textArea.spec.js +39 -0
  202. package/playwright/components/atoms/textInputWithDropdown.spec.js +23 -0
  203. package/playwright/components/molecules/accordian.spec.js +20 -0
  204. package/playwright/components/molecules/schoolLookup.spec.js +26 -0
  205. package/playwright/components/molecules/searchInput.spec.js +24 -0
  206. package/playwright/components/molecules/shareButton.spec.js +32 -0
  207. package/playwright/components/molecules/simpleSchoolLookUp.spec.js +35 -0
  208. package/playwright/components/molecules/typeahead.spec.js +27 -0
  209. package/playwright/components/organisms/donate.spec.js +293 -0
  210. package/playwright/components/organisms/emailSignUpForm.spec.js +109 -0
  211. package/playwright/components/organisms/footer.spec.js +67 -0
  212. package/playwright/components/organisms/header.spec.js +82 -0
  213. package/playwright/components/organisms/impactSlider.spec.js +292 -0
  214. package/playwright/components/organisms/marketingPreferences.spec.js +220 -0
  215. package/playwright/components/organisms/membership.spec.js +47 -0
  216. package/playwright.config.js +49 -0
  217. package/src/components/Atoms/SocialIcons/Utils/Icons.js +1 -1
  218. package/src/components/Atoms/SocialIcons/assets/X-white-Subtract.svg +3 -0
  219. package/src/components/Molecules/Logos/Logos.js +18 -6
  220. package/src/components/Molecules/Logos/Logos.md +5 -0
  221. package/src/components/Organisms/ImpactSlider/_ImpactMoneybuys.js +3 -4
  222. package/src/components/Organisms/Membership/Membership.test.js +1 -1
  223. package/cypress/e2e/components/atoms/button.cy.js +0 -102
  224. package/cypress/e2e/components/atoms/buttonWithStates.cy.js +0 -47
  225. package/cypress/e2e/components/atoms/checkbox.cy.js +0 -70
  226. package/cypress/e2e/components/atoms/confetti.cy.js +0 -46
  227. package/cypress/e2e/components/atoms/errorText.cy.js +0 -45
  228. package/cypress/e2e/components/atoms/input.cy.js +0 -157
  229. package/cypress/e2e/components/atoms/label.cy.js +0 -93
  230. package/cypress/e2e/components/atoms/link.cy.js +0 -190
  231. package/cypress/e2e/components/atoms/logo.cy.js +0 -132
  232. package/cypress/e2e/components/atoms/pagination.cy.js +0 -191
  233. package/cypress/e2e/components/atoms/picture.cy.js +0 -130
  234. package/cypress/e2e/components/atoms/radioButton.cy.js +0 -76
  235. package/cypress/e2e/components/atoms/richText.cy.js +0 -70
  236. package/cypress/e2e/components/atoms/select.cy.js +0 -84
  237. package/cypress/e2e/components/atoms/socialIcons.cy.js +0 -162
  238. package/cypress/e2e/components/atoms/text.cy.js +0 -169
  239. package/cypress/e2e/components/atoms/textArea.cy.js +0 -89
  240. package/cypress/e2e/components/atoms/textInputWithDrop.cy.js +0 -76
  241. package/cypress/e2e/components/molecules/accordion.cy.js +0 -67
  242. package/cypress/e2e/components/molecules/articleTeaser.cy.js +0 -105
  243. package/cypress/e2e/components/molecules/banner.cy.js +0 -67
  244. package/cypress/e2e/components/molecules/box.cy.js +0 -104
  245. package/cypress/e2e/components/molecules/card.cy.js +0 -105
  246. package/cypress/e2e/components/molecules/cardDs.cy.js +0 -198
  247. package/cypress/e2e/components/molecules/chip.cy.js +0 -68
  248. package/cypress/e2e/components/molecules/countdown.cy.js +0 -71
  249. package/cypress/e2e/components/molecules/descriptor.cy.js +0 -142
  250. package/cypress/e2e/components/molecules/doubleCopy.cy.js +0 -79
  251. package/cypress/e2e/components/molecules/heroBanner.cy.js +0 -69
  252. package/cypress/e2e/components/molecules/infoBanner.cy.js +0 -69
  253. package/cypress/e2e/components/molecules/partnerLink.cy.js +0 -68
  254. package/cypress/e2e/components/molecules/promo.cy.js +0 -74
  255. package/cypress/e2e/components/molecules/schoolLookup.cy.js +0 -83
  256. package/cypress/e2e/components/molecules/searchInput.cy.js +0 -72
  257. package/cypress/e2e/components/molecules/searchResult.cy.js +0 -191
  258. package/cypress/e2e/components/molecules/shareButton.cy.js +0 -76
  259. package/cypress/e2e/components/molecules/simpleSchoolLookup.cy.js +0 -83
  260. package/cypress/e2e/components/molecules/singleMessage.cy.js +0 -502
  261. package/cypress/e2e/components/molecules/singleMessageDs.cy.js +0 -234
  262. package/cypress/e2e/components/molecules/typeahead.cy.js +0 -97
  263. package/cypress/e2e/components/molecules/videoBanner.cy.js +0 -132
  264. package/cypress/e2e/components/organisms/cookieBanner.cy.js +0 -80
  265. package/cypress/e2e/components/organisms/donate.cy.js +0 -284
  266. package/cypress/e2e/components/organisms/emailSignUp.cy.js +0 -54
  267. package/cypress/e2e/components/organisms/footer.cy.js +0 -168
  268. package/cypress/e2e/components/organisms/header.cy.js +0 -138
  269. package/cypress/e2e/components/organisms/impactSlider.cy.js +0 -72
  270. package/cypress/e2e/components/organisms/marketingPreferencesDSForm.cy.js +0 -589
  271. package/cypress/e2e/components/organisms/membership.cy.js +0 -122
  272. package/cypress/fixtures/example.json +0 -5
  273. package/cypress/plugins/index.js +0 -21
  274. package/cypress/support/commands.js +0 -25
  275. package/cypress/support/e2e.js +0 -36
  276. package/cypress.config.js +0 -15
  277. package/dist/components/Atoms/SocialIcons/assets/x-logo.svg +0 -3
  278. package/src/components/Atoms/SocialIcons/assets/x-logo.svg +0 -3
@@ -1,17 +1,26 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import styled from 'styled-components';
3
4
 
4
5
  import Logo from '../../Atoms/Logo/Logo';
5
6
 
7
+ const TitleLabel = styled.span`
8
+ line-height: 0;
9
+ font-size: 0;
10
+ color: transparent;
11
+ `;
12
+
6
13
  const Logos = ({ campaign }) => {
7
14
  if (campaign === 'Sport Relief Gameon') {
8
15
  return (
9
16
  <>
10
17
  <a href="/" title="Go to Comic Relief homepage">
11
- <Logo rotate sizeSm="50px" sizeMd="60px" campaign="Comic Relief" />
18
+ <Logo rotate sizeSm="50px" sizeMd="60px" campaign="Comic Relief" title="Go to Comic Relief homepage" />
19
+ <TitleLabel>Go to Comic Relief homepage</TitleLabel>
12
20
  </a>
13
21
  <a href="/sportrelief/" title="Go to Sport Relief homepage">
14
- <Logo sizeSm="100px" sizeMd="120px" campaign="Sport Relief Gameon" />
22
+ <Logo sizeSm="100px" sizeMd="120px" campaign="Sport Relief Gameon" title="Go to Sport Relief homepage" />
23
+ <TitleLabel>Go to Sport Relief homepage</TitleLabel>
15
24
  </a>
16
25
  </>
17
26
  );
@@ -19,8 +28,9 @@ const Logos = ({ campaign }) => {
19
28
 
20
29
  if (campaign === 'Sport Relief') {
21
30
  return (
22
- <a href="/sportrelief" title="Sport Relief in homepage">
23
- <Logo rotate={false} campaign="Sport Relief" />
31
+ <a href="/sportrelief" title="Go to Sport Relief homepage">
32
+ <Logo rotate={false} campaign="Sport Relief" title="Sport Relief in homepage" />
33
+ <TitleLabel>Go to Sport Relief homepage</TitleLabel>
24
34
  </a>
25
35
  );
26
36
  }
@@ -28,14 +38,16 @@ const Logos = ({ campaign }) => {
28
38
  if (campaign === 'Pride') {
29
39
  return (
30
40
  <a href="/" title="Go to Comic Relief homepage">
31
- <Logo rotate={false} campaign="Pride" />
41
+ <Logo rotate={false} campaign="Pride" title="Go to Comic Relief homepage" />
42
+ <TitleLabel>Go to Comic Relief homepage</TitleLabel>
32
43
  </a>
33
44
  );
34
45
  }
35
46
 
36
47
  return (
37
48
  <a href="/" title="Go to Comic Relief homepage">
38
- <Logo rotate={false} campaign="Comic Relief" />
49
+ <Logo rotate={false} campaign="Comic Relief" title="Go to Comic Relief homepage" />
50
+ <TitleLabel>Go to Comic Relief homepage</TitleLabel>
39
51
  </a>
40
52
  );
41
53
  };
@@ -0,0 +1,5 @@
1
+ # Comic Relief Logo
2
+
3
+ ```js
4
+ <Logos rotate={false} sizeSm="50px" sizeMd="60px" />
5
+ ```
@@ -8,12 +8,11 @@ import {
8
8
  const Moneybuys = ({ items, currentAmount, opacityAnimation }) => (
9
9
  <MoneybuyWrapper>
10
10
  {items.map((item, index) => {
11
- const roundedPerPound = Math.floor(item.poundsPerItem);
12
- const thisAmount = Math.floor(currentAmount / roundedPerPound);
13
- const isInactive = !(!opacityAnimation || currentAmount >= roundedPerPound);
11
+ const thisAmount = Math.floor(currentAmount / item.poundsPerItem);
12
+ const isInactive = !(!opacityAnimation || currentAmount >= item.poundsPerItem);
14
13
 
15
14
  return (
16
- <Fragment key={roundedPerPound}>
15
+ <Fragment key={item.poundsPerItem}>
17
16
  <Moneybuy isInactive={isInactive} data-testid={`impact-slider--moneybuy-${index + 1}`}>
18
17
  <MoneybuyImage imageURL={item.imageURL} />
19
18
  <MoneybuyAmount tag="p" family="Anton" uppercase weight="normal" size="xl" data-testid="moneybuy-amount">{thisAmount}</MoneybuyAmount>
@@ -227,7 +227,7 @@ it("renders correctly", () => {
227
227
  border: none;
228
228
  }
229
229
 
230
- .c10 >:not(:last-child):not(legend) {
230
+ .c10 > :not(:last-child):not(legend) {
231
231
  margin-bottom: 2rem;
232
232
  }
233
233
 
@@ -1,102 +0,0 @@
1
- describe('Button component', () => {
2
- before(() => {
3
- // go to button component
4
- cy.visit('/#button');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#button');
10
- cy.get('[data-testid="Button-container"] button[name="rsg-usage"]')
11
- .contains('Props & methods')
12
- .as('propsBtn');
13
-
14
- cy.get('@propsBtn')
15
- .closest('[class^=rsg--tabs]')
16
- .as('container');
17
- });
18
-
19
- it('is present', () => {
20
- cy.get('@propsBtn').should('exist');
21
- });
22
-
23
- it('does not show table initially', () => {
24
- cy.get('@container')
25
- .find('table')
26
- .should('not.exist');
27
- });
28
-
29
- it('shows the table on button click', () => {
30
- cy.get('@propsBtn').click();
31
- cy.get('@container')
32
- .find('table')
33
- .should('contain', 'Prop name');
34
- });
35
- });
36
-
37
- describe('Plain Button: Button-example-0', () => {
38
- beforeEach(() => {
39
- cy.visit('/#button');
40
- cy.get('[data-testid="Button-example-0"')
41
- .as('container')
42
- .find('[class^=rsg--preview]')
43
- .as('preview');
44
-
45
- cy.get('@container')
46
- .find('button')
47
- .contains('View Code')
48
- .as('viewCodeBtn');
49
- });
50
-
51
- it('renders button as a span', () => {
52
- //verify button as a span
53
- cy.get('[data-testid="Button-example-0"]')
54
- .contains('My button')
55
- .should('exist');
56
- });
57
-
58
- it('has view code button', () => {
59
- cy.get('@viewCodeBtn').should('exist');
60
- });
61
-
62
- it('shows code on click', () => {
63
- cy.get('@viewCodeBtn').click();
64
- cy.get('@container')
65
- .find('textarea')
66
- .should('exist');
67
- });
68
- });
69
-
70
- describe('Button as a span: Button-example-1', () => {
71
- beforeEach(() => {
72
- cy.visit('/#button');
73
- cy.get('[data-testid="Button-example-1"]')
74
- .as('container')
75
- .find('[class^=rsg--preview]')
76
- .as('preview');
77
-
78
- cy.get('@container')
79
- .find('button')
80
- .contains('View Code')
81
- .as('viewCodeBtn');
82
- });
83
-
84
- it('renders button as a span', () => {
85
- // verify button as a span
86
- cy.get('[data-testid="Button-example-1"]')
87
- .contains('My button as a span')
88
- .should('exist');
89
- });
90
-
91
- it('has view code button', () => {
92
- cy.get('@viewCodeBtn').should('exist');
93
- });
94
-
95
- it('shows code on click', () => {
96
- cy.get('@viewCodeBtn').click();
97
- cy.get('@container')
98
- .find('textarea')
99
- .should('exist');
100
- });
101
- });
102
- });
@@ -1,47 +0,0 @@
1
- describe('Button With States component', () => {
2
- before(() => {
3
- // go to Button With States component
4
- cy.visit('/#button');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#button');
10
- cy.get('[data-testid="ButtonWithStates-container"]')
11
- .as('container')
12
- .find('[class^=rsg--preview]')
13
- .as('preview');
14
-
15
- cy.get('@container')
16
- .find('button')
17
- .contains('View Code')
18
- .as('viewCodeBtn');
19
- });
20
-
21
- // button with Disabled and loading
22
- it('renders button with states', () => {
23
- cy.get('[data-testid="ButtonWithStates-examples"]')
24
- .find('h2')
25
- .contains('Disabled and loading')
26
- .should('exist');
27
- });
28
-
29
- it('renders button as disabled', () => {
30
- // verify button as a span
31
- cy.get('[data-testid="ButtonWithStates-example-1"]')
32
- .contains('Loading')
33
- .should('be.disabled');
34
- });
35
-
36
- it('has view code button', () => {
37
- cy.get('@viewCodeBtn').should('exist');
38
- });
39
-
40
- it('shows code on click', () => {
41
- cy.get('@viewCodeBtn').click();
42
- cy.get('@container')
43
- .find('textarea')
44
- .should('exist');
45
- });
46
- });
47
- });
@@ -1,70 +0,0 @@
1
- describe('Checkbox component', () => {
2
- before(() => {
3
- // go to checkbox component
4
- cy.visit('/#checkbox');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#checkbox');
10
- cy.get('[data-testid="Checkbox-container"] button[name="rsg-usage"]')
11
- .contains('Props & methods')
12
- .as('propsBtn');
13
-
14
- cy.get('@propsBtn')
15
- .closest('[class^=rsg--tabs]')
16
- .as('container');
17
- });
18
-
19
- it('is present', () => {
20
- cy.get('@propsBtn').should('exist');
21
- });
22
-
23
- it('does not show table initially', () => {
24
- cy.get('@container')
25
- .find('table')
26
- .should('not.exist');
27
- });
28
-
29
- it('shows the table on button click', () => {
30
- cy.get('@propsBtn').click();
31
- cy.get('@container')
32
- .find('table')
33
- .should('contain', 'Prop name');
34
- });
35
- });
36
-
37
- describe('Checkbox section', () => {
38
- beforeEach(() => {
39
- cy.visit('/#checkbox');
40
- cy.get('[data-preview="Checkbox"]')
41
- .as('preview');
42
- });
43
-
44
- it('should click checkboxes', () => {
45
- cy.get('[data-preview="Checkbox"] p').contains('List of checkboxes');
46
- cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(2)')
47
- .contains('Tennis')
48
- .click();
49
- cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(3)')
50
- .contains('Basketball')
51
- .click();
52
- cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(4)')
53
- .contains('Cycling')
54
- .click();
55
- cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(5)')
56
- .contains('Football')
57
- .click();
58
- });
59
-
60
- it('has view code button', () => {
61
- cy.get('[data-testid="Checkbox-examples"] [name="rsg-code-editor"]').should('exist');
62
- });
63
-
64
- it('shows code on click', () => {
65
- cy.get('[data-testid="Checkbox-examples"] [name="rsg-code-editor"]').contains('View Code')
66
- .click();
67
- cy.get('[data-testid="Checkbox-examples"] div > textarea').should('be.visible');
68
- });
69
- });
70
- });
@@ -1,46 +0,0 @@
1
- describe('Confetti component', () => {
2
- before(() => {
3
- // go to confetti component
4
- cy.visit('/#confetti');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#confetti');
10
- cy.get('[data-testid="Confetti-container"]')
11
- .as('container')
12
- .find('[class^=rsg--preview]')
13
- .as('preview');
14
-
15
- cy.get('@container')
16
- .find('button')
17
- .contains('View Code')
18
- .as('viewCodeBtn');
19
- });
20
-
21
- it('renders button with states', () => {
22
- cy.get('[data-testid="Confetti-examples"]')
23
- .find('h1')
24
- .contains('Confetti')
25
- .should('exist');
26
- });
27
-
28
- it('renders confetti when "trigger confetti" is clicked', () => {
29
- // verify button as a span
30
- cy.get('[data-testid="Confetti-example-1"]')
31
- .contains('trigger confetti')
32
- .click()
33
- });
34
-
35
- it('has view code button', () => {
36
- cy.get('@viewCodeBtn').should('exist');
37
- });
38
-
39
- it('shows code on click', () => {
40
- cy.get('@viewCodeBtn').click();
41
- cy.get('@container')
42
- .find('textarea')
43
- .should('exist');
44
- });
45
- });
46
- });
@@ -1,45 +0,0 @@
1
- describe('ErrorText component', () => {
2
- before(() => {
3
- // go to errortext component
4
- cy.visit('/#errortext');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#errortext');
10
- cy.get('[data-testid="ErrorText-container"]')
11
- .as('container')
12
- .find('[class^=rsg--preview]')
13
- .as('preview');
14
-
15
- cy.get('@container')
16
- .find('button')
17
- .contains('View Code')
18
- .as('viewCodeBtn');
19
- });
20
-
21
- it('error message should exist', () => {
22
- cy.get('[data-testid="ErrorText-examples"]')
23
- .find('h1')
24
- .contains('ErrorText')
25
- .should('exist');
26
- });
27
-
28
- it('displays error message', () => {
29
- cy.get('[data-testid="ErrorText-example-1"] span')
30
- .contains('This is an error')
31
- .should('exist');
32
- });
33
-
34
- it('has view code button', () => {
35
- cy.get('@viewCodeBtn').should('exist');
36
- });
37
-
38
- it('shows code on click', () => {
39
- cy.get('@viewCodeBtn').click();
40
- cy.get('@container')
41
- .find('textarea')
42
- .should('exist');
43
- });
44
- });
45
- });
@@ -1,157 +0,0 @@
1
- describe('Input component', () => {
2
- before(() => {
3
- // go to input component
4
- cy.visit('/#input');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#input');
10
- cy.get('[data-testid="Input-container"] button[name="rsg-usage"]')
11
- .contains('Props & methods')
12
- .as('propsBtn');
13
-
14
- cy.get('@propsBtn')
15
- .closest('[class^=rsg--tabs]')
16
- .as('container');
17
- });
18
-
19
- it('is present', () => {
20
- cy.get('@propsBtn').should('exist');
21
- });
22
-
23
- it('does not show table initially', () => {
24
- cy.get('@container')
25
- .find('table')
26
- .should('not.exist');
27
- });
28
-
29
- it('shows the table on button click', () => {
30
- cy.get('@propsBtn').click();
31
- cy.get('@container')
32
- .find('table')
33
- .should('contain', 'Prop name');
34
- });
35
- });
36
-
37
- describe('Input preview section: required with label and hint', () => {
38
- beforeEach(() => {
39
- cy.visit('/#input');
40
- cy.get('[data-testid="Input-example-0"]')
41
- .as('container')
42
- .find('[class^=rsg--preview]')
43
- .as('preview');
44
-
45
- cy.get('@container')
46
- .find('button')
47
- .contains('View Code')
48
- .as('viewCodeBtn');
49
- });
50
-
51
- it('renders Input field required with label and hint', () => {
52
- cy.get('[data-testid="Input-examples"]')
53
- .should('exist');
54
-
55
- // Input required with label and hint
56
- cy.get('@container')
57
- .find('h4')
58
- .contains('Input required with label and hint')
59
- .should('exist');
60
- cy.get('[data-testid="Input-example-0"] [data-preview="Input"] input')
61
- .type('test input field');
62
- });
63
-
64
- it('has view code button', () => {
65
- cy.get('@viewCodeBtn').should('exist');
66
- });
67
-
68
- it('shows code on click', () => {
69
- cy.get('@viewCodeBtn').click();
70
- cy.get('@container')
71
- .find('textarea')
72
- .should('exist');
73
- });
74
- });
75
-
76
- describe('Input preview section: with error message', () => {
77
- beforeEach(() => {
78
- cy.visit('/#input');
79
- cy.get('[data-testid="Input-example-1"]')
80
- .as('container')
81
- .find('[data-preview="Input"]')
82
- .as('preview');
83
-
84
- cy.get('@container')
85
- .find('button')
86
- .contains('View Code')
87
- .as('viewCodeBtn');
88
- });
89
-
90
- it('renders Input field with error message', () => {
91
- // Input with error message
92
- cy.get('[data-testid="Input-example-1"] div > h4')
93
- .contains('Input with error message')
94
- .should('exist');
95
- cy.get('[data-testid="Input-example-1"] [data-preview="Input"] input')
96
- .type('test error input field');
97
- });
98
-
99
- it('shows error message', () => {
100
- cy.get('@container')
101
- .find('[data-test="error-message"]')
102
- .should('exist');
103
- });
104
-
105
- it('has view code button', () => {
106
- cy.get('@viewCodeBtn').should('exist');
107
- });
108
-
109
- it('does not show code initially', () => {
110
- cy.get('@container')
111
- .find('textarea')
112
- .should('not.exist');
113
- });
114
-
115
- it('shows code on click', () => {
116
- cy.get('@viewCodeBtn').click();
117
- cy.get('@container')
118
- .find('textarea')
119
- .should('exist');
120
- });
121
- });
122
-
123
- describe('Input preview section: with simple input(optional)', () => {
124
- beforeEach(() => {
125
- cy.visit('/#input');
126
- cy.get('[data-testid="Input-example-2"]')
127
- .as('container')
128
- .find('[class^=rsg--preview]')
129
- .as('preview');
130
-
131
- cy.get('@container')
132
- .find('button')
133
- .contains('View Code')
134
- .as('viewCodeBtn');
135
- });
136
-
137
- it('renders Input field with simple input', () => {
138
- // Input with simple input
139
- cy.get('[data-testid="Input-example-2"] div > h4')
140
- .contains('Simple input (optional)')
141
- .should('exist');
142
- cy.get('[data-testid="Input-example-2"] [data-preview="Input"] input')
143
- .type('test simple input field');
144
- });
145
-
146
- it('has view code button', () => {
147
- cy.get('@viewCodeBtn').should('exist');
148
- });
149
-
150
- it('shows code on click', () => {
151
- cy.get('@viewCodeBtn').click();
152
- cy.get('@container')
153
- .find('textarea')
154
- .should('exist');
155
- });
156
- });
157
- });
@@ -1,93 +0,0 @@
1
- describe('Label component', () => {
2
- before(() => {
3
- // go to label component
4
- cy.visit('/#label');
5
- });
6
-
7
- describe('props and methods section', () => {
8
- beforeEach(() => {
9
- cy.visit('/#label');
10
- cy.get('[data-testid="Label-container"]')
11
- .as('container')
12
- .find('[class^=rsg--preview]')
13
- .as('preview');
14
-
15
- cy.get('@container')
16
- .find('button')
17
- .contains('View Code')
18
- .as('viewCodeBtn');
19
- });
20
-
21
- it('label should exist', () => {
22
- cy.get('[data-testid="Label-examples"]')
23
- .find('label')
24
- .should('exist');
25
- });
26
- });
27
-
28
- describe('Wrapping a basic text input: Label-example-0', () => {
29
- beforeEach(() => {
30
- cy.visit('/#label');
31
- cy.get('[data-testid="Label-example-0"')
32
- .as('container')
33
- .find('[class^=rsg--preview]')
34
- .as('preview');
35
-
36
- cy.get('@container')
37
- .find('button')
38
- .contains('View Code')
39
- .as('viewCodeBtn');
40
- });
41
-
42
- it('renders label Wrapping a basic text input', () => {
43
- cy.get('[data-testid="Label-example-0"]')
44
- .find('label')
45
- .contains('Wrapping a basic text input')
46
- .should('exist');
47
- });
48
-
49
- it('has view code button', () => {
50
- cy.get('@viewCodeBtn').should('exist');
51
- });
52
-
53
- it('shows code on click', () => {
54
- cy.get('@viewCodeBtn').click();
55
- cy.get('@container')
56
- .find('textarea')
57
- .should('exist');
58
- });
59
- });
60
-
61
- describe('Wrapping a styled input: Label-example-1', () => {
62
- beforeEach(() => {
63
- cy.visit('/#label');
64
- cy.get('[data-testid="Label-example-1"]')
65
- .as('container')
66
- .find('[class^=rsg--preview]')
67
- .as('preview');
68
-
69
- cy.get('@container')
70
- .find('button')
71
- .contains('View Code')
72
- .as('viewCodeBtn');
73
- });
74
-
75
- it('renders label wrapping a styled input', () => {
76
- cy.get('[data-testid="Label-example-1"]')
77
- .find('label')
78
- .contains('Wrapping a styled input')
79
- .should('exist');
80
- });
81
-
82
- it('has view code button', () => {
83
- cy.get('@viewCodeBtn').should('exist');
84
- });
85
-
86
- it('shows code on click', () => {
87
- cy.get('@viewCodeBtn').click();
88
- cy.get('@container')
89
- .find('textarea')
90
- .should('exist');
91
- });
92
- });
93
- });