@comicrelief/component-library 8.52.2 → 8.53.0

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 (50) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/dist/components/Molecules/CTA/CTAMultiCard/CTAMultiCard.md +1 -0
  3. package/dist/components/Molecules/CTA/CTAMultiCard/__snapshots__/CTAMultiCard.test.js.snap +280 -232
  4. package/dist/components/Molecules/CTA/CTASingleCard/__snapshots__/CTASingleCard.test.js.snap +68 -28
  5. package/dist/components/Molecules/CTA/shared/CTACard.js +1 -1
  6. package/dist/components/Molecules/CTA/shared/CTACard.style.js +11 -7
  7. package/dist/components/Organisms/Donate/Donate.js +3 -0
  8. package/dist/components/Organisms/Donate/Form/Form.js +0 -1
  9. package/dist/components/Organisms/DonateBanner/DonateBanner.js +132 -0
  10. package/dist/components/Organisms/DonateBanner/DonateBanner.md +168 -0
  11. package/dist/components/Organisms/DonateBanner/DonateBanner.style.js +291 -0
  12. package/dist/components/Organisms/DonateBanner/DonateBanner.test.js +134 -0
  13. package/dist/components/Organisms/DonateBanner/Form/Form.js +214 -0
  14. package/dist/components/Organisms/DonateBanner/Form/PopUpComponent.js +70 -0
  15. package/dist/components/Organisms/DonateBanner/GivingSelector/GivingSelector.js +50 -0
  16. package/dist/components/Organisms/DonateBanner/GivingSelector/GivingSelector.style.js +73 -0
  17. package/dist/components/Organisms/DonateBanner/MoneyBuy/MoneyBuy.js +83 -0
  18. package/dist/components/Organisms/DonateBanner/__snapshots__/DonateBanner.test.js.snap +3170 -0
  19. package/dist/components/Organisms/DonateBanner/_utils.js +41 -0
  20. package/dist/components/Organisms/DonateBanner/assets/close.svg +3 -0
  21. package/dist/components/Organisms/DonateBanner/dev-data/data-high-value.js +33 -0
  22. package/dist/components/Organisms/DonateBanner/dev-data/data-monthly.js +22 -0
  23. package/dist/components/Organisms/DonateBanner/dev-data/data-single.js +22 -0
  24. package/dist/components/Organisms/DonateBanner/dev-data/data.js +33 -0
  25. package/dist/index.js +7 -0
  26. package/package.json +1 -1
  27. package/src/components/Molecules/CTA/CTAMultiCard/CTAMultiCard.md +1 -0
  28. package/src/components/Molecules/CTA/CTAMultiCard/__snapshots__/CTAMultiCard.test.js.snap +280 -232
  29. package/src/components/Molecules/CTA/CTASingleCard/__snapshots__/CTASingleCard.test.js.snap +68 -28
  30. package/src/components/Molecules/CTA/shared/CTACard.js +6 -3
  31. package/src/components/Molecules/CTA/shared/CTACard.style.js +8 -0
  32. package/src/components/Organisms/Donate/Donate.js +5 -0
  33. package/src/components/Organisms/Donate/Form/Form.js +0 -1
  34. package/src/components/Organisms/DonateBanner/DonateBanner.js +210 -0
  35. package/src/components/Organisms/DonateBanner/DonateBanner.md +168 -0
  36. package/src/components/Organisms/DonateBanner/DonateBanner.style.js +320 -0
  37. package/src/components/Organisms/DonateBanner/DonateBanner.test.js +151 -0
  38. package/src/components/Organisms/DonateBanner/Form/Form.js +332 -0
  39. package/src/components/Organisms/DonateBanner/Form/PopUpComponent.js +110 -0
  40. package/src/components/Organisms/DonateBanner/GivingSelector/GivingSelector.js +61 -0
  41. package/src/components/Organisms/DonateBanner/GivingSelector/GivingSelector.style.js +71 -0
  42. package/src/components/Organisms/DonateBanner/MoneyBuy/MoneyBuy.js +58 -0
  43. package/src/components/Organisms/DonateBanner/__snapshots__/DonateBanner.test.js.snap +3170 -0
  44. package/src/components/Organisms/DonateBanner/_utils.js +34 -0
  45. package/src/components/Organisms/DonateBanner/assets/close.svg +3 -0
  46. package/src/components/Organisms/DonateBanner/dev-data/data-high-value.js +41 -0
  47. package/src/components/Organisms/DonateBanner/dev-data/data-monthly.js +23 -0
  48. package/src/components/Organisms/DonateBanner/dev-data/data-single.js +23 -0
  49. package/src/components/Organisms/DonateBanner/dev-data/data.js +41 -0
  50. package/src/index.js +1 -0
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
11
+ var _Text = _interopRequireDefault(require("../../../Atoms/Text/Text"));
12
+ var _close = _interopRequireDefault(require("../assets/close.svg"));
13
+ const closeDuration = 0.6;
14
+ const fadeClose = (0, _styledComponents.keyframes)(["0%{opacity:1;max-height:350px;}100%{opacity:0;max-height:0px;display:none;margin-top:-16px;}"]);
15
+ const fadeOpen = (0, _styledComponents.keyframes)(["0%{opacity:0;max-height:0px;display:none;margin-top:-16px;}100%{opacity:1;max-height:350px;}"]);
16
+ const StyledPopUp = _styledComponents.default.div.withConfig({
17
+ displayName: "PopUpComponent__StyledPopUp",
18
+ componentId: "sc-1yo8hql-0"
19
+ })(["display:grid;overflow:hidden;max-height:350px;opacity:1;animation:0.4s ", " ease;", " background-color:", ";box-shadow:0px 0px 16px rgba(0,0,0,0.15);border-radius:0.5rem;@media ", "{width:450px;margin-right:auto;margin-left:auto;}"], props => props.fadeOpen, props => props.isClosed && (0, _styledComponents.css)(["animation:", "s ", " ease forwards;"], closeDuration, props.fadeClose), _ref => {
20
+ let {
21
+ theme
22
+ } = _ref;
23
+ return theme.color('blue_light');
24
+ }, _ref2 => {
25
+ let {
26
+ theme
27
+ } = _ref2;
28
+ return theme.allBreakpoints('M');
29
+ });
30
+ const TextWrapper = _styledComponents.default.div.withConfig({
31
+ displayName: "PopUpComponent__TextWrapper",
32
+ componentId: "sc-1yo8hql-1"
33
+ })(["margin:0 32px 32px;"]);
34
+ const Button = _styledComponents.default.button.withConfig({
35
+ displayName: "PopUpComponent__Button",
36
+ componentId: "sc-1yo8hql-2"
37
+ })(["justify-self:end;background-color:transparent;border:0;cursor:pointer;width:30px;height:30px;margin:3px;:active,:focus,:hover{outline:none;border:1px solid ", ";}img{width:15px;height:15px;vertical-align:middle;}"], _ref3 => {
38
+ let {
39
+ theme
40
+ } = _ref3;
41
+ return theme.color('grey');
42
+ });
43
+ const PopUpComponent = _ref4 => {
44
+ let {
45
+ popUpText,
46
+ setPopOpen
47
+ } = _ref4;
48
+ const [isClosed, setIsClosed] = (0, _react.useState)(false);
49
+
50
+ // Only update centralised state - which renders
51
+ // this component - once the closing animation is complete
52
+ const handleCloser = () => {
53
+ setIsClosed(true);
54
+ setTimeout(() => {
55
+ setPopOpen(false);
56
+ }, closeDuration * 1000);
57
+ };
58
+ return /*#__PURE__*/_react.default.createElement(StyledPopUp, {
59
+ isClosed: isClosed,
60
+ fadeOpen: fadeOpen,
61
+ fadeClose: fadeClose
62
+ }, /*#__PURE__*/_react.default.createElement(Button, {
63
+ onClick: () => handleCloser(),
64
+ "aria-label": "Close"
65
+ }, /*#__PURE__*/_react.default.createElement("img", {
66
+ src: _close.default,
67
+ alt: "Close cross icon"
68
+ })), /*#__PURE__*/_react.default.createElement(TextWrapper, null, /*#__PURE__*/_react.default.createElement(_Text.default, null, popUpText)));
69
+ };
70
+ var _default = exports.default = PopUpComponent;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _GivingSelector = require("./GivingSelector.style");
10
+ const GivingSelector = _ref => {
11
+ let {
12
+ givingType = null,
13
+ changeGivingType,
14
+ setPopOpen,
15
+ mbshipID
16
+ } = _ref;
17
+ // Only updates giving type and popup status when appropriate
18
+ const handleGivingTypeChange = (thisButtonType, currentGivingType) => {
19
+ if (currentGivingType !== thisButtonType) {
20
+ changeGivingType(thisButtonType);
21
+ setPopOpen(thisButtonType === 'single');
22
+ }
23
+ };
24
+ return /*#__PURE__*/_react.default.createElement(_GivingSelector.Wrapper, null, /*#__PURE__*/_react.default.createElement(_GivingSelector.MoneyBox, null, /*#__PURE__*/_react.default.createElement("input", {
25
+ className: "give-once",
26
+ "aria-label": "Single",
27
+ id: `give-once--${mbshipID}`,
28
+ value: "Single",
29
+ type: "radio",
30
+ label: "",
31
+ checked: givingType === 'single',
32
+ onChange: () => handleGivingTypeChange('single', givingType)
33
+ }), /*#__PURE__*/_react.default.createElement(_GivingSelector.Label, {
34
+ active: givingType === 'single',
35
+ htmlFor: `give-once--${mbshipID}`
36
+ }, "Single"), /*#__PURE__*/_react.default.createElement("input", {
37
+ className: "give-monthly",
38
+ "aria-label": "Monthly",
39
+ id: `give-monthly--${mbshipID}`,
40
+ value: "Monthly",
41
+ type: "radio",
42
+ label: "",
43
+ checked: givingType === 'monthly',
44
+ onChange: () => handleGivingTypeChange('monthly', givingType)
45
+ }), /*#__PURE__*/_react.default.createElement(_GivingSelector.Label, {
46
+ active: givingType === 'monthly',
47
+ htmlFor: `give-monthly--${mbshipID}`
48
+ }, "Monthly"), /*#__PURE__*/_react.default.createElement(_GivingSelector.Switch, null)));
49
+ };
50
+ var _default = exports.default = GivingSelector;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Wrapper = exports.Switch = exports.MoneyBox = exports.Label = void 0;
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _spacing = _interopRequireDefault(require("../../../../theme/shared/spacing"));
10
+ var _zIndex = _interopRequireDefault(require("../../../../theme/shared/zIndex"));
11
+ var _hideVisually = _interopRequireDefault(require("../../../../theme/shared/hideVisually"));
12
+ const Switch = exports.Switch = _styledComponents.default.span.withConfig({
13
+ displayName: "GivingSelectorstyle__Switch",
14
+ componentId: "sc-bcwmru-0"
15
+ })(["width:50%;height:48px;", ";display:block;position:absolute;transition:left 0.15s ease-out;background-color:", ";"], (0, _zIndex.default)('low'), _ref => {
16
+ let {
17
+ theme
18
+ } = _ref;
19
+ return theme.color('red');
20
+ });
21
+ const Wrapper = exports.Wrapper = _styledComponents.default.div.withConfig({
22
+ displayName: "GivingSelectorstyle__Wrapper",
23
+ componentId: "sc-bcwmru-1"
24
+ })(["display:flex;margin:", " 0;"], (0, _spacing.default)('md'));
25
+ const MoneyBox = exports.MoneyBox = _styledComponents.default.div.withConfig({
26
+ displayName: "GivingSelectorstyle__MoneyBox",
27
+ componentId: "sc-bcwmru-2"
28
+ })(["width:100%;position:relative;display:flex;flex-direction:row;margin:", " 0;overflow:hidden;border-radius:0.5rem;border:1px solid ", ";background:", ";@media ", "{margin:0 auto;}.give-monthly:checked ~ ", "{left:calc(50%);}input{", "}"], (0, _spacing.default)('sm'), _ref2 => {
29
+ let {
30
+ theme
31
+ } = _ref2;
32
+ return theme.color('grey');
33
+ }, _ref3 => {
34
+ let {
35
+ theme
36
+ } = _ref3;
37
+ return theme.color('white');
38
+ }, _ref4 => {
39
+ let {
40
+ theme
41
+ } = _ref4;
42
+ return theme.allBreakpoints('M');
43
+ }, Switch, _hideVisually.default);
44
+ const Label = exports.Label = _styledComponents.default.label.withConfig({
45
+ displayName: "GivingSelectorstyle__Label",
46
+ componentId: "sc-bcwmru-3"
47
+ })(["font-size:", ";font-family:", ";font-weight:bold;min-height:48px;align-items:center;justify-content:center;display:flex;flex-basis:50%;border:none;transition:color 0.15s ease-out;", ";cursor:", ";border-radius:2rem;color:", ";&:active:focus{box-shadow:none;}&:focus{border:none;outline:none;box-shadow:inset 0 0 0 4px ", ";}"], _ref5 => {
48
+ let {
49
+ theme
50
+ } = _ref5;
51
+ return theme.fontSize('s');
52
+ }, _ref6 => {
53
+ let {
54
+ theme
55
+ } = _ref6;
56
+ return theme.fontFamilies('Montserrat');
57
+ }, (0, _zIndex.default)('medium'), _ref7 => {
58
+ let {
59
+ active
60
+ } = _ref7;
61
+ return active === true ? 'default' : 'pointer';
62
+ }, _ref8 => {
63
+ let {
64
+ active,
65
+ theme
66
+ } = _ref8;
67
+ return active === true ? theme.color('white') : theme.color('black');
68
+ }, _ref9 => {
69
+ let {
70
+ theme
71
+ } = _ref9;
72
+ return theme.color('red');
73
+ });
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
11
+ var _Input = _interopRequireDefault(require("../../../Atoms/Input/Input"));
12
+ const MoneyBuyButton = (0, _styledComponents.default)(_Input.default).withConfig({
13
+ displayName: "MoneyBuy__MoneyBuyButton",
14
+ componentId: "sc-1ggxiga-0"
15
+ })(["display:block;input{border:none;background-color:", ";color:", ";font-size:", ";font-family:", ";font-weight:normal;border-radius:0.5rem;height:4rem;border:1px solid ", ";&:focus{border:1px solid ", ";}", "}"], _ref => {
16
+ let {
17
+ theme
18
+ } = _ref;
19
+ return theme.color('white');
20
+ }, _ref2 => {
21
+ let {
22
+ theme
23
+ } = _ref2;
24
+ return theme.color('black');
25
+ }, _ref3 => {
26
+ let {
27
+ theme
28
+ } = _ref3;
29
+ return theme.fontSize('l');
30
+ }, _ref4 => {
31
+ let {
32
+ theme
33
+ } = _ref4;
34
+ return theme.fontFamilies('Anton');
35
+ }, _ref5 => {
36
+ let {
37
+ theme
38
+ } = _ref5;
39
+ return theme.color('grey');
40
+ }, _ref6 => {
41
+ let {
42
+ theme
43
+ } = _ref6;
44
+ return theme.color('red');
45
+ }, _ref7 => {
46
+ let {
47
+ isSelected
48
+ } = _ref7;
49
+ return isSelected && (0, _styledComponents.css)(["background-color:", ";border:1px solid ", ";color:", ";"], _ref8 => {
50
+ let {
51
+ theme
52
+ } = _ref8;
53
+ return theme.color('red');
54
+ }, _ref9 => {
55
+ let {
56
+ theme
57
+ } = _ref9;
58
+ return theme.color('red');
59
+ }, _ref10 => {
60
+ let {
61
+ theme
62
+ } = _ref10;
63
+ return theme.color('white');
64
+ });
65
+ });
66
+ const MoneyBuy = _ref11 => {
67
+ let {
68
+ setOtherAmount,
69
+ amount = '10',
70
+ currency = '£',
71
+ description = 'description',
72
+ ...rest
73
+ } = _ref11;
74
+ return /*#__PURE__*/_react.default.createElement(MoneyBuyButton, Object.assign({}, rest, {
75
+ label: description,
76
+ showLabel: false,
77
+ value: `${currency} ${amount}`,
78
+ type: "button",
79
+ errorMsg: "",
80
+ onClick: setOtherAmount
81
+ }));
82
+ };
83
+ var _default = exports.default = MoneyBuy;