@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.
- package/.github/workflows/main.yml +1 -1
- package/dist/components/Molecules/CTA/CTAMultiCard/CTAMultiCard.md +1 -0
- package/dist/components/Molecules/CTA/CTAMultiCard/__snapshots__/CTAMultiCard.test.js.snap +280 -232
- package/dist/components/Molecules/CTA/CTASingleCard/__snapshots__/CTASingleCard.test.js.snap +68 -28
- package/dist/components/Molecules/CTA/shared/CTACard.js +1 -1
- package/dist/components/Molecules/CTA/shared/CTACard.style.js +11 -7
- package/dist/components/Organisms/Donate/Donate.js +3 -0
- package/dist/components/Organisms/Donate/Form/Form.js +0 -1
- package/dist/components/Organisms/DonateBanner/DonateBanner.js +132 -0
- package/dist/components/Organisms/DonateBanner/DonateBanner.md +168 -0
- package/dist/components/Organisms/DonateBanner/DonateBanner.style.js +291 -0
- package/dist/components/Organisms/DonateBanner/DonateBanner.test.js +134 -0
- package/dist/components/Organisms/DonateBanner/Form/Form.js +214 -0
- package/dist/components/Organisms/DonateBanner/Form/PopUpComponent.js +70 -0
- package/dist/components/Organisms/DonateBanner/GivingSelector/GivingSelector.js +50 -0
- package/dist/components/Organisms/DonateBanner/GivingSelector/GivingSelector.style.js +73 -0
- package/dist/components/Organisms/DonateBanner/MoneyBuy/MoneyBuy.js +83 -0
- package/dist/components/Organisms/DonateBanner/__snapshots__/DonateBanner.test.js.snap +3170 -0
- package/dist/components/Organisms/DonateBanner/_utils.js +41 -0
- package/dist/components/Organisms/DonateBanner/assets/close.svg +3 -0
- package/dist/components/Organisms/DonateBanner/dev-data/data-high-value.js +33 -0
- package/dist/components/Organisms/DonateBanner/dev-data/data-monthly.js +22 -0
- package/dist/components/Organisms/DonateBanner/dev-data/data-single.js +22 -0
- package/dist/components/Organisms/DonateBanner/dev-data/data.js +33 -0
- package/dist/index.js +7 -0
- package/package.json +1 -1
- package/src/components/Molecules/CTA/CTAMultiCard/CTAMultiCard.md +1 -0
- package/src/components/Molecules/CTA/CTAMultiCard/__snapshots__/CTAMultiCard.test.js.snap +280 -232
- package/src/components/Molecules/CTA/CTASingleCard/__snapshots__/CTASingleCard.test.js.snap +68 -28
- package/src/components/Molecules/CTA/shared/CTACard.js +6 -3
- package/src/components/Molecules/CTA/shared/CTACard.style.js +8 -0
- package/src/components/Organisms/Donate/Donate.js +5 -0
- package/src/components/Organisms/Donate/Form/Form.js +0 -1
- package/src/components/Organisms/DonateBanner/DonateBanner.js +210 -0
- package/src/components/Organisms/DonateBanner/DonateBanner.md +168 -0
- package/src/components/Organisms/DonateBanner/DonateBanner.style.js +320 -0
- package/src/components/Organisms/DonateBanner/DonateBanner.test.js +151 -0
- package/src/components/Organisms/DonateBanner/Form/Form.js +332 -0
- package/src/components/Organisms/DonateBanner/Form/PopUpComponent.js +110 -0
- package/src/components/Organisms/DonateBanner/GivingSelector/GivingSelector.js +61 -0
- package/src/components/Organisms/DonateBanner/GivingSelector/GivingSelector.style.js +71 -0
- package/src/components/Organisms/DonateBanner/MoneyBuy/MoneyBuy.js +58 -0
- package/src/components/Organisms/DonateBanner/__snapshots__/DonateBanner.test.js.snap +3170 -0
- package/src/components/Organisms/DonateBanner/_utils.js +34 -0
- package/src/components/Organisms/DonateBanner/assets/close.svg +3 -0
- package/src/components/Organisms/DonateBanner/dev-data/data-high-value.js +41 -0
- package/src/components/Organisms/DonateBanner/dev-data/data-monthly.js +23 -0
- package/src/components/Organisms/DonateBanner/dev-data/data-single.js +23 -0
- package/src/components/Organisms/DonateBanner/dev-data/data.js +41 -0
- 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;
|