@comicrelief/component-library 5.4.0 → 5.7.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 (85) hide show
  1. package/.circleci/config.yml +1 -1
  2. package/dist/components/Atoms/Button/Button.js +3 -1
  3. package/dist/components/Atoms/ButtonWithStates/ButtonWithStates.js +91 -0
  4. package/dist/components/Atoms/ButtonWithStates/ButtonWithStates.md +13 -0
  5. package/dist/components/Atoms/Checkbox/Checkbox.js +5 -3
  6. package/dist/components/Atoms/ErrorText/ErrorText.js +3 -1
  7. package/dist/components/Atoms/Icons/Arrow.js +3 -1
  8. package/dist/components/Atoms/Icons/AtSign.js +2 -1
  9. package/dist/components/Atoms/Icons/Chevron.js +3 -1
  10. package/dist/components/Atoms/Icons/Download.js +3 -1
  11. package/dist/components/Atoms/Icons/External.js +3 -1
  12. package/dist/components/Atoms/Icons/Favourite.js +3 -1
  13. package/dist/components/Atoms/Icons/Internal.js +3 -1
  14. package/dist/components/Atoms/Input/Input.js +6 -4
  15. package/dist/components/Atoms/Label/Label.js +5 -2
  16. package/dist/components/Atoms/Link/Link.js +31 -6
  17. package/dist/components/Atoms/Link/Link.style.js +3 -3
  18. package/dist/components/Atoms/Pagination/Item/Item.js +3 -1
  19. package/dist/components/Atoms/Pagination/List/List.js +5 -3
  20. package/dist/components/Atoms/Pagination/Pagination.js +3 -1
  21. package/dist/components/Atoms/Picture/Picture.js +3 -1
  22. package/dist/components/Atoms/RadioButton/RadioButton.js +3 -1
  23. package/dist/components/Atoms/RichText/RichText.js +4 -2
  24. package/dist/components/Atoms/Select/Select.js +3 -1
  25. package/dist/components/Atoms/SocialIcons/Icon/Icon.js +6 -4
  26. package/dist/components/Atoms/SocialIcons/SocialIcons.js +5 -3
  27. package/dist/components/Atoms/Text/Text.js +3 -1
  28. package/dist/components/Atoms/TextArea/TextArea.js +3 -1
  29. package/dist/components/Atoms/TextInputWithDropdown/TextInputWithDropdown.js +5 -2
  30. package/dist/components/Molecules/Accordion/Accordion.js +3 -1
  31. package/dist/components/Molecules/Box/Box.js +3 -1
  32. package/dist/components/Molecules/Card/Card.js +3 -1
  33. package/dist/components/Molecules/CardDs/CardDs.js +8 -6
  34. package/dist/components/Molecules/Countdown/Countdown.style.js +2 -2
  35. package/dist/components/Molecules/HeroBanner/HeroBanner.js +3 -3
  36. package/dist/components/Molecules/Lookup/Lookup.js +201 -0
  37. package/dist/components/Molecules/PartnerLink/PartnerLink.js +3 -1
  38. package/dist/components/Molecules/Promo/Promo.style.js +4 -4
  39. package/dist/components/Molecules/SchoolLookup/SchoolLookup.js +3 -1
  40. package/dist/components/Molecules/SearchInput/SearchInput.js +3 -1
  41. package/dist/components/Molecules/SearchResult/SearchResult.js +5 -5
  42. package/dist/components/Molecules/ShareButton/ShareButton.js +3 -1
  43. package/dist/components/Molecules/SimpleSchoolLookup/SimpleSchoolLookup.js +112 -0
  44. package/dist/components/Molecules/SimpleSchoolLookup/SimpleSchoolLookup.md +7 -0
  45. package/dist/components/Molecules/SingleMessage/SingleMessage.js +1 -1
  46. package/dist/components/Molecules/SingleMessage/__snapshots__/SingleMessage.test.js.snap +8 -0
  47. package/dist/components/Molecules/SingleMessageDS/SingleMessageDs.js +3 -1
  48. package/dist/components/Molecules/SingleMessageDS/SingleMessageDs.style.js +9 -9
  49. package/dist/components/Molecules/Typeahead/Typeahead.js +3 -1
  50. package/dist/components/Molecules/VideoBanner/VideoBanner.js +1 -1
  51. package/dist/components/Organisms/CookieBanner/CookieBanner.style.js +4 -4
  52. package/dist/components/Organisms/Donate/Form/Form.js +3 -1
  53. package/dist/components/Organisms/Donate/GivingSelector/GivingSelector.js +4 -4
  54. package/dist/components/Organisms/Donate/MoneyBox/MoneyBox.js +3 -1
  55. package/dist/components/Organisms/EmailSignUp/EmailSignUp.js +3 -1
  56. package/dist/components/Organisms/EmailSignUp/EmailSignUp.style.js +7 -7
  57. package/dist/components/Organisms/Footer/Footer.js +7 -4
  58. package/dist/components/Organisms/Footer/Footer.md +8 -1
  59. package/dist/components/Organisms/Footer/Nav/Nav.js +12 -7
  60. package/dist/components/Organisms/Footer/Nav/Nav.style.js +8 -8
  61. package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +31 -6
  62. package/dist/components/Organisms/Header/Burger/BurgerMenu.style.js +3 -3
  63. package/dist/components/Organisms/Header/Header.js +3 -1
  64. package/dist/components/Organisms/Header/Nav/Nav.js +3 -3
  65. package/dist/components/Organisms/MarketingPreferencesDS/_TextInput.js +3 -1
  66. package/dist/components/Organisms/Membership/Form/Form.js +3 -1
  67. package/dist/components/Organisms/Membership/MoneyBox/MoneyBox.js +3 -1
  68. package/dist/index.js +24 -0
  69. package/dist/utils/internalLinkHelper.js +27 -5
  70. package/package.json +14 -13
  71. package/src/components/Atoms/ButtonWithStates/ButtonWithStates.js +64 -0
  72. package/src/components/Atoms/ButtonWithStates/ButtonWithStates.md +13 -0
  73. package/src/components/Atoms/Link/Link.js +23 -8
  74. package/src/components/Molecules/Lookup/Lookup.js +148 -0
  75. package/src/components/Molecules/SimpleSchoolLookup/SimpleSchoolLookup.js +63 -0
  76. package/src/components/Molecules/SimpleSchoolLookup/SimpleSchoolLookup.md +7 -0
  77. package/src/components/Molecules/SingleMessage/SingleMessage.js +1 -1
  78. package/src/components/Molecules/SingleMessage/__snapshots__/SingleMessage.test.js.snap +8 -0
  79. package/src/components/Organisms/Footer/Footer.js +5 -3
  80. package/src/components/Organisms/Footer/Footer.md +8 -1
  81. package/src/components/Organisms/Footer/Nav/Nav.js +4 -3
  82. package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +31 -6
  83. package/src/components/Organisms/Header/Nav/Nav.js +1 -1
  84. package/src/index.js +3 -0
  85. package/src/utils/internalLinkHelper.js +23 -5
@@ -8,7 +8,7 @@ jobs:
8
8
  docker:
9
9
 
10
10
  # See https://github.com/cypress-io/cypress-docker-images
11
- - image: cypress/browsers:node12.18.0-chrome83-ff77
11
+ - image: cypress/browsers:node14.16.0-chrome89-ff77
12
12
  environment:
13
13
  TERM: xterm
14
14
  NODE_OPTIONS: --max_old_space_size=4096
@@ -19,6 +19,8 @@ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
19
19
 
20
20
  var _breakpoint = _interopRequireDefault(require("../../../theme/shared/breakpoint"));
21
21
 
22
+ var _excluded = ["children", "wrapper"];
23
+
22
24
  var StyledButton = _styledComponents.default.button.withConfig({
23
25
  displayName: "Button__StyledButton",
24
26
  componentId: "sc-1gm5vj0-0"
@@ -37,7 +39,7 @@ var StyledButton = _styledComponents.default.button.withConfig({
37
39
  var Button = /*#__PURE__*/_react.default.forwardRef(function (_ref4, ref) {
38
40
  var children = _ref4.children,
39
41
  wrapper = _ref4.wrapper,
40
- rest = (0, _objectWithoutProperties2.default)(_ref4, ["children", "wrapper"]);
42
+ rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
41
43
  return /*#__PURE__*/_react.default.createElement(StyledButton, Object.assign({}, rest, {
42
44
  as: wrapper ? 'span' : 'button',
43
45
  ref: ref
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
18
+ var _ScaleLoader = _interopRequireDefault(require("react-spinners/ScaleLoader"));
19
+
20
+ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
21
+
22
+ var _Button = _interopRequireDefault(require("../Button/Button"));
23
+
24
+ var _excluded = ["children", "loadingText", "loading", "disabled"];
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ var ButtonWithDisabledState = (0, _styledComponents.default)(_Button.default).withConfig({
31
+ displayName: "ButtonWithStates__ButtonWithDisabledState",
32
+ componentId: "sc-7gb81g-0"
33
+ })(["&:disabled{cursor:not-allowed;opacity:0.75;}"]);
34
+
35
+ var LoaderContainer = _styledComponents.default.div.withConfig({
36
+ displayName: "ButtonWithStates__LoaderContainer",
37
+ componentId: "sc-7gb81g-1"
38
+ })(["", ""], function (_ref) {
39
+ var withMargin = _ref.withMargin;
40
+ return withMargin ? "\n margin-top: ".concat((0, _spacing.default)('xsm'), ";\n margin-left: ").concat((0, _spacing.default)('md'), ";\n") : '';
41
+ }); // A button with loading and disabled states.
42
+
43
+
44
+ var ButtonWithStates = /*#__PURE__*/_react.default.forwardRef(function (_ref2, ref) {
45
+ var children = _ref2.children,
46
+ loadingText = _ref2.loadingText,
47
+ loading = _ref2.loading,
48
+ disabled = _ref2.disabled,
49
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
50
+
51
+ var _useState = (0, _react.useState)(null),
52
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
53
+ loaderColour = _useState2[0],
54
+ setLoaderColour = _useState2[1]; // Can't see a simpler way to get the button's text colour, without reading the value
55
+ // via JavaScript.
56
+ // (e.g. the `theme.buttonColours` helper returns a CSS string split into an array -
57
+ // don't really want to be parsing that.)
58
+ // (And can't use inherit because ScaleLoader's color prop is actually setting its
59
+ // background color.)
60
+
61
+
62
+ var getLoaderColour = (0, _react.useCallback)(function (node) {
63
+ if (node && typeof window.getComputedStyle === 'function') {
64
+ var textColour = window.getComputedStyle(node).color;
65
+
66
+ if (textColour) {
67
+ setLoaderColour(textColour);
68
+ }
69
+ }
70
+ }, []);
71
+ return /*#__PURE__*/_react.default.createElement(ButtonWithDisabledState, Object.assign({
72
+ ref: ref,
73
+ disabled: disabled
74
+ }, rest), loading ? loadingText : children, /*#__PURE__*/_react.default.createElement(LoaderContainer, {
75
+ ref: getLoaderColour,
76
+ withMargin: loading
77
+ }, /*#__PURE__*/_react.default.createElement(_ScaleLoader.default, {
78
+ height: 16,
79
+ width: 2,
80
+ loading: loading,
81
+ color: loaderColour
82
+ })));
83
+ });
84
+
85
+ ButtonWithStates.defaultProps = {
86
+ loading: false,
87
+ disabled: false,
88
+ loadingText: 'Loading'
89
+ };
90
+ var _default = ButtonWithStates;
91
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ ## Disabled and loading
2
+
3
+ ```js
4
+ import ButtonWithStates from './ButtonWithStates';
5
+
6
+ <ButtonWithStates
7
+ type="submit"
8
+ loading
9
+ disabled
10
+ >
11
+ Enter prize draw
12
+ </ButtonWithStates>
13
+ ```
@@ -19,11 +19,13 @@ var _Text = _interopRequireDefault(require("../Text/Text"));
19
19
 
20
20
  var _tick = _interopRequireDefault(require("./assets/tick.svg"));
21
21
 
22
+ var _excluded = ["label", "value", "children"];
23
+
22
24
  var StyledCheckboxInput = _styledComponents.default.input.attrs({
23
25
  type: 'checkbox'
24
26
  }).withConfig({
25
27
  displayName: "Checkbox__StyledCheckboxInput",
26
- componentId: "ngak0-0"
28
+ componentId: "sc-ngak0-0"
27
29
  })(["font-size:", ";display:block;box-sizing:border-box;opacity:0;position:absolute;left:0px;width:24px;height:24px;margin:0;border:1px solid ", ";+ span{margin-right:12px;width:24px;height:24px;border-radius:4px;background-color:", ";border:1px solid ", ";float:left;}:checked + span{background:url(", ") no-repeat center;background-color:", ";border-color:", ";background-size:contain;}:focus + span{border-color:", ";border-width:1px;}"], function (_ref) {
28
30
  var theme = _ref.theme;
29
31
  return theme.fontSize('sm');
@@ -49,7 +51,7 @@ var StyledCheckboxInput = _styledComponents.default.input.attrs({
49
51
 
50
52
  var Label = _styledComponents.default.label.withConfig({
51
53
  displayName: "Checkbox__Label",
52
- componentId: "ngak0-1"
54
+ componentId: "sc-ngak0-1"
53
55
  })(["display:flex;", " margin-bottom:8px;"], function (_ref8) {
54
56
  var hasLabelAsString = _ref8.hasLabelAsString;
55
57
  return hasLabelAsString && 'align-items: center;';
@@ -59,7 +61,7 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (_ref9, ref) {
59
61
  var label = _ref9.label,
60
62
  value = _ref9.value,
61
63
  children = _ref9.children,
62
- rest = (0, _objectWithoutProperties2.default)(_ref9, ["label", "value", "children"]);
64
+ rest = (0, _objectWithoutProperties2.default)(_ref9, _excluded);
63
65
  return /*#__PURE__*/_react.default.createElement(Label, {
64
66
  hasLabelAsString: !!label
65
67
  }, /*#__PURE__*/_react.default.createElement(StyledCheckboxInput, Object.assign({}, rest, {
@@ -19,6 +19,8 @@ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
19
19
 
20
20
  var _CR_ErrorRed = _interopRequireDefault(require("../Input/assets/CR_Error--red.svg"));
21
21
 
22
+ var _excluded = ["children"];
23
+
22
24
  var ErrorIcon = _styledComponents.default.span.withConfig({
23
25
  displayName: "ErrorText__ErrorIcon",
24
26
  componentId: "sc-19bj17r-0"
@@ -32,7 +34,7 @@ var ErrorIcon = _styledComponents.default.span.withConfig({
32
34
 
33
35
  var ErrorText = function ErrorText(_ref3) {
34
36
  var children = _ref3.children,
35
- rest = (0, _objectWithoutProperties2.default)(_ref3, ["children"]);
37
+ rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
36
38
  return /*#__PURE__*/_react.default.createElement(_Text.default, Object.assign({}, rest, {
37
39
  color: "red"
38
40
  }), /*#__PURE__*/_react.default.createElement(ErrorIcon, null, children));
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
15
 
16
+ var _excluded = ["colour", "theme", "size", "direction"];
17
+
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
19
 
18
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -37,7 +39,7 @@ var Arrow = function Arrow(_ref2) {
37
39
  theme = _ref2.theme,
38
40
  size = _ref2.size,
39
41
  direction = _ref2.direction,
40
- rest = (0, _objectWithoutProperties2.default)(_ref2, ["colour", "theme", "size", "direction"]);
42
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
41
43
  return /*#__PURE__*/_react.default.createElement(Icon, Object.assign({
42
44
  direction: direction,
43
45
  width: size,
@@ -13,13 +13,14 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = require("styled-components");
15
15
 
16
+ var _excluded = ["theme", "size", "colour"];
16
17
  var PATH_DATA = 'M40.811,9.307C36.607,4.664,30.48,2,24,2C11.458,2,2,11.458,2,24s9.458,22,22,22c10.221,0,14.032-3.779,15.29-5.031 c0.197-0.115,0.379-0.265,0.533-0.451c0.707-0.849,0.592-2.11-0.257-2.817c-0.438-0.362-1.61-1.049-3.093,0.427 C35.512,39.086,32.585,42,24,42C13.738,42,6,34.262,6,24S13.738,6,24,6c5.353,0,10.398,2.184,13.845,5.991 c3.162,3.495,4.642,8.044,4.165,12.81c-0.364,3.641-1.958,6.013-4.487,6.677c-1.853,0.487-3.658-0.145-4.269-1.011 c-1.001-1.422-0.753-4.747,0.009-8.237c1.035-3.375,2.104-6.939,2.177-7.179c0.308-1.027-0.249-2.114-1.263-2.465 c-1.012-0.349-2.122,0.161-2.515,1.159c-0.097,0.247-0.191,0.491-0.282,0.732c-1.427-1.455-3.424-2.421-5.724-2.66 c-3.983-0.41-9.547,1.602-12.107,8.643c-1.334,3.667-1.19,7.467,0.384,10.163c1.241,2.126,3.291,3.482,5.929,3.921 c4.299,0.714,7.438-0.837,9.464-3.098c0.254,0.695,0.516,1.122,0.659,1.325c1.66,2.358,5.257,3.443,8.555,2.576 c1.987-0.522,6.691-2.557,7.451-10.147C46.581,19.295,44.741,13.651,40.811,9.307z M37.871,41.195 c-0.149-0.03-0.3-0.081-0.448-0.152C37.567,41.112,37.718,41.163,37.871,41.195z M29.195,21.849 c-0.554,1.799-1.07,3.451-1.379,4.375c-0.413,1.243-2.174,5.229-7.297,4.374c-1.468-0.245-2.493-0.896-3.133-1.993 c-0.967-1.657-0.997-4.254-0.078-6.779c1.633-4.492,4.727-6.064,7.296-6.064c0.217,0,0.431,0.011,0.639,0.033 c1.952,0.203,4.068,1.433,4.396,3.726c0.01,0.074,0.024,0.146,0.043,0.217C29.49,20.479,29.329,21.181,29.195,21.849z';
17
18
 
18
19
  var AtSign = function AtSign(_ref) {
19
20
  var theme = _ref.theme,
20
21
  size = _ref.size,
21
22
  colour = _ref.colour,
22
- rest = (0, _objectWithoutProperties2.default)(_ref, ["theme", "size", "colour"]);
23
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
23
24
  return /*#__PURE__*/_react.default.createElement("svg", Object.assign({
24
25
  width: size,
25
26
  height: size,
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
15
 
16
+ var _excluded = ["colour", "theme", "size", "direction"];
17
+
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
19
 
18
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -37,7 +39,7 @@ var Chevron = function Chevron(_ref2) {
37
39
  theme = _ref2.theme,
38
40
  size = _ref2.size,
39
41
  direction = _ref2.direction,
40
- rest = (0, _objectWithoutProperties2.default)(_ref2, ["colour", "theme", "size", "direction"]);
42
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
41
43
  return /*#__PURE__*/_react.default.createElement(Icon, Object.assign({
42
44
  direction: direction,
43
45
  width: size,
@@ -13,11 +13,13 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = require("styled-components");
15
15
 
16
+ var _excluded = ["colour", "theme", "size"];
17
+
16
18
  var Download = function Download(_ref) {
17
19
  var colour = _ref.colour,
18
20
  theme = _ref.theme,
19
21
  size = _ref.size,
20
- rest = (0, _objectWithoutProperties2.default)(_ref, ["colour", "theme", "size"]);
22
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
21
23
  return /*#__PURE__*/_react.default.createElement("svg", Object.assign({}, rest, {
22
24
  width: size,
23
25
  height: size,
@@ -13,11 +13,13 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = require("styled-components");
15
15
 
16
+ var _excluded = ["colour", "theme", "size"];
17
+
16
18
  var External = function External(_ref) {
17
19
  var colour = _ref.colour,
18
20
  theme = _ref.theme,
19
21
  size = _ref.size,
20
- rest = (0, _objectWithoutProperties2.default)(_ref, ["colour", "theme", "size"]);
22
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
21
23
  return /*#__PURE__*/_react.default.createElement("svg", Object.assign({}, rest, {
22
24
  width: size,
23
25
  height: size,
@@ -13,11 +13,13 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = require("styled-components");
15
15
 
16
+ var _excluded = ["colour", "theme", "size"];
17
+
16
18
  var Favourite = function Favourite(_ref) {
17
19
  var colour = _ref.colour,
18
20
  theme = _ref.theme,
19
21
  size = _ref.size,
20
- rest = (0, _objectWithoutProperties2.default)(_ref, ["colour", "theme", "size"]);
22
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
21
23
  return /*#__PURE__*/_react.default.createElement("svg", Object.assign({}, rest, {
22
24
  width: size,
23
25
  height: size,
@@ -13,11 +13,13 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = require("styled-components");
15
15
 
16
+ var _excluded = ["colour", "theme", "size"];
17
+
16
18
  var Internal = function Internal(_ref) {
17
19
  var colour = _ref.colour,
18
20
  theme = _ref.theme,
19
21
  size = _ref.size,
20
- rest = (0, _objectWithoutProperties2.default)(_ref, ["colour", "theme", "size"]);
22
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
21
23
  return /*#__PURE__*/_react.default.createElement("svg", Object.assign({}, rest, {
22
24
  width: size,
23
25
  height: size,
@@ -23,6 +23,8 @@ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
23
23
 
24
24
  var _zIndex = _interopRequireDefault(require("../../../theme/shared/zIndex"));
25
25
 
26
+ var _excluded = ["errorMsg", "id", "label", "showLabel", "type", "hasAria", "className", "labelProps", "prefix", "optional"];
27
+
26
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
29
 
28
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -35,7 +37,7 @@ var getPrefixWidth = function getPrefixWidth(prefixLength) {
35
37
 
36
38
  var InputField = _styledComponents.default.input.withConfig({
37
39
  displayName: "Input__InputField",
38
- componentId: "bcqy1o-0"
40
+ componentId: "sc-bcqy1o-0"
39
41
  })(["", ""], function (_ref) {
40
42
  var theme = _ref.theme,
41
43
  error = _ref.error,
@@ -45,7 +47,7 @@ var InputField = _styledComponents.default.input.withConfig({
45
47
 
46
48
  var InputWrapper = _styledComponents.default.div.withConfig({
47
49
  displayName: "Input__InputWrapper",
48
- componentId: "bcqy1o-1"
50
+ componentId: "sc-bcqy1o-1"
49
51
  })(["position:relative;font-size:", ";"], function (_ref2) {
50
52
  var theme = _ref2.theme;
51
53
  return theme.fontSize('m');
@@ -53,7 +55,7 @@ var InputWrapper = _styledComponents.default.div.withConfig({
53
55
 
54
56
  var Prefix = _styledComponents.default.div.withConfig({
55
57
  displayName: "Input__Prefix",
56
- componentId: "bcqy1o-2"
58
+ componentId: "sc-bcqy1o-2"
57
59
  })(["position:absolute;left:0;top:0;", " display:flex;height:100%;width:", ";justify-content:center;align-items:center;color:", ";font-weight:700;font-size:inherit;margin-left:2px;"], (0, _zIndex.default)('high'), function (_ref3) {
58
60
  var length = _ref3.length;
59
61
  return getPrefixWidth(length);
@@ -73,7 +75,7 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref5, ref) {
73
75
  labelProps = _ref5.labelProps,
74
76
  prefix = _ref5.prefix,
75
77
  optional = _ref5.optional,
76
- rest = (0, _objectWithoutProperties2.default)(_ref5, ["errorMsg", "id", "label", "showLabel", "type", "hasAria", "className", "labelProps", "prefix", "optional"]);
78
+ rest = (0, _objectWithoutProperties2.default)(_ref5, _excluded);
77
79
  return /*#__PURE__*/_react.default.createElement(_Label.default, Object.assign({
78
80
  className: className,
79
81
  htmlFor: id,
@@ -19,6 +19,9 @@ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
19
19
 
20
20
  var _hideVisually = _interopRequireDefault(require("../../../theme/shared/hideVisually"));
21
21
 
22
+ var _excluded = ["label", "hideLabel"],
23
+ _excluded2 = ["children", "label", "hideLabel", "optional"];
24
+
22
25
  var LabelElement = _styledComponents.default.label.withConfig({
23
26
  displayName: "Label__LabelElement",
24
27
  componentId: "sc-2nrw50-0"
@@ -45,7 +48,7 @@ var HiddenText = (0, _styledComponents.default)(_Text.default).withConfig({
45
48
  var LabelText = function LabelText(_ref3) {
46
49
  var label = _ref3.label,
47
50
  hideLabel = _ref3.hideLabel,
48
- rest = (0, _objectWithoutProperties2.default)(_ref3, ["label", "hideLabel"]);
51
+ rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
49
52
  var Component = hideLabel ? HiddenText : VisibleText;
50
53
  return /*#__PURE__*/_react.default.isValidElement(label) ? /*#__PURE__*/_react.default.createElement(Component, rest, label) : /*#__PURE__*/_react.default.createElement(Component, Object.assign({}, rest, {
51
54
  dangerouslySetInnerHTML: {
@@ -68,7 +71,7 @@ var Label = function Label(_ref4) {
68
71
  label = _ref4.label,
69
72
  hideLabel = _ref4.hideLabel,
70
73
  optional = _ref4.optional,
71
- rest = (0, _objectWithoutProperties2.default)(_ref4, ["children", "label", "hideLabel", "optional"]);
74
+ rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded2);
72
75
  return /*#__PURE__*/_react.default.createElement(LabelElement, Object.assign({}, rest, {
73
76
  optional: optional
74
77
  }), /*#__PURE__*/_react.default.createElement(LabelText, {
@@ -7,19 +7,24 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
+
10
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _Link = _interopRequireWildcard(require("./Link.style"));
15
17
 
16
18
  var _whiteListed = _interopRequireDefault(require("../../../utils/whiteListed"));
17
19
 
20
+ var _internalLinkHelper = require("../../../utils/internalLinkHelper");
21
+
22
+ var _excluded = ["children", "color", "href", "target", "type", "home", "underline", "icon", "iconFirst"];
23
+
18
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
25
 
20
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
27
 
22
- var domainRegEx = new RegExp('(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]');
23
28
  var window = '';
24
29
 
25
30
  var Link = function Link(_ref) {
@@ -32,21 +37,41 @@ var Link = function Link(_ref) {
32
37
  underline = _ref.underline,
33
38
  icon = _ref.icon,
34
39
  iconFirst = _ref.iconFirst,
35
- rest = (0, _objectWithoutProperties2.default)(_ref, ["children", "color", "href", "target", "type", "home", "underline", "icon", "iconFirst"]);
40
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
41
 
42
+ var _useState = (0, _react.useState)(''),
43
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
44
+ documentHost = _useState2[0],
45
+ setDocumentHost = _useState2[1];
37
46
  /**
38
47
  * If we haven't specifically set the target via props, check if
39
48
  * this is an internal link OR on our whitelist before making it a '_self' link
40
49
  */
50
+
51
+
41
52
  if (target === null) {
42
- var isExternalLink = domainRegEx.test(href);
53
+ // Use our helper function to determine the raw domains to compare
54
+ var currentDomain = (0, _internalLinkHelper.getDomain)(documentHost);
55
+ var linkDomain = (0, _internalLinkHelper.getDomain)(href); // Additional check for applications that need more control
56
+
57
+ var isWhiteListOverridden = rest.overrideWhiteList === true;
58
+ /**
59
+ * If the link has no domain supplied (likely '/' or '#')
60
+ * OR has the same domain as the current page, don't open
61
+ * in a new tab
62
+ */
63
+
64
+ var isExternalLink = linkDomain !== '' && currentDomain !== linkDomain;
43
65
  var isWhiteListed = (0, _whiteListed.default)(href);
44
- window = !isExternalLink || isWhiteListed ? '_self' : '_blank';
66
+ window = isExternalLink && (isWhiteListOverridden || !isWhiteListed) ? '_blank' : '_self';
45
67
  } else {
46
68
  window = target === 'blank' ? '_blank' : '_self';
47
69
  }
48
70
 
49
71
  var hasIcon = icon !== null;
72
+ (0, _react.useEffect)(function () {
73
+ setDocumentHost(document.location.host);
74
+ }, []);
50
75
  return /*#__PURE__*/_react.default.createElement(_Link.default, Object.assign({}, rest, {
51
76
  color: color,
52
77
  href: href,
@@ -54,7 +79,7 @@ var Link = function Link(_ref) {
54
79
  type: type,
55
80
  iconFirst: iconFirst,
56
81
  underline: underline
57
- }), children, target === 'blank' && /*#__PURE__*/_react.default.createElement(_Link.HelperText, null, "(opens in new window)"), hasIcon && /*#__PURE__*/_react.default.createElement(_Link.IconWrapper, {
82
+ }), children, window === '_blank' && /*#__PURE__*/_react.default.createElement(_Link.HelperText, null, "(opens in new window)"), hasIcon && /*#__PURE__*/_react.default.createElement(_Link.IconWrapper, {
58
83
  type: type
59
84
  }, icon));
60
85
  };
@@ -45,7 +45,7 @@ var linkStyle = function linkStyle() {
45
45
 
46
46
  var IconWrapper = _styledComponents.default.span.withConfig({
47
47
  displayName: "Linkstyle__IconWrapper",
48
- componentId: "t360tr-0"
48
+ componentId: "sc-t360tr-0"
49
49
  })(["display:inline-flex;margin-left:", ";align-self:center;right:", ";", ";@media ", "{width:auto;right:auto;position:relative;", ";}"], (0, _spacing.default)('md'), (0, _spacing.default)('m'), function (_ref6) {
50
50
  var type = _ref6.type;
51
51
  return type === 'standard' && (0, _styledComponents.css)(["position:absolute;right:-2rem;top:0;bottom:0;"]);
@@ -61,7 +61,7 @@ exports.IconWrapper = IconWrapper;
61
61
 
62
62
  var StyledLink = _styledComponents.default.a.withConfig({
63
63
  displayName: "Linkstyle__StyledLink",
64
- componentId: "t360tr-1"
64
+ componentId: "sc-t360tr-1"
65
65
  })(["", " ", ";"], function (props) {
66
66
  return props.type === 'button' ? buttonStyle : linkStyle;
67
67
  }, function (_ref9) {
@@ -71,7 +71,7 @@ var StyledLink = _styledComponents.default.a.withConfig({
71
71
 
72
72
  var HelperText = _styledComponents.default.span.withConfig({
73
73
  displayName: "Linkstyle__HelperText",
74
- componentId: "t360tr-2"
74
+ componentId: "sc-t360tr-2"
75
75
  })(["", ";"], _hideVisually.default);
76
76
 
77
77
  exports.HelperText = HelperText;
@@ -13,10 +13,12 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _Item = _interopRequireDefault(require("./Item.style"));
15
15
 
16
+ var _excluded = ["children", "target"];
17
+
16
18
  var Item = function Item(_ref) {
17
19
  var children = _ref.children,
18
20
  target = _ref.target,
19
- restProps = (0, _objectWithoutProperties2.default)(_ref, ["children", "target"]);
21
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
20
22
  return /*#__PURE__*/_react.default.createElement(_Item.default, Object.assign({
21
23
  target: "_".concat(target)
22
24
  }, restProps), children);
@@ -13,14 +13,16 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
15
 
16
+ var _excluded = ["PageComponent", "pages", "createURL", "onSelect", "pageComponentProps"];
17
+
16
18
  var StyledList = _styledComponents.default.ul.withConfig({
17
19
  displayName: "List__StyledList",
18
- componentId: "vcfyaz-0"
20
+ componentId: "sc-vcfyaz-0"
19
21
  })(["display:flex;padding-left:0;justify-content:center;flex-wrap:wrap;list-style-type:none;"]);
20
22
 
21
23
  var StyledItem = _styledComponents.default.li.withConfig({
22
24
  displayName: "List__StyledItem",
23
- componentId: "vcfyaz-1"
25
+ componentId: "sc-vcfyaz-1"
24
26
  })(["padding:10px;"]);
25
27
 
26
28
  var List = function List(_ref) {
@@ -29,7 +31,7 @@ var List = function List(_ref) {
29
31
  createURL = _ref.createURL,
30
32
  onSelect = _ref.onSelect,
31
33
  pageComponentProps = _ref.pageComponentProps,
32
- restProps = (0, _objectWithoutProperties2.default)(_ref, ["PageComponent", "pages", "createURL", "onSelect", "pageComponentProps"]);
34
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
35
  return /*#__PURE__*/_react.default.createElement(StyledList, null, pages.map(function (_ref2) {
34
36
  var selected = _ref2.selected,
35
37
  disabled = _ref2.disabled,
@@ -17,6 +17,8 @@ var _Item = _interopRequireDefault(require("./Item/Item"));
17
17
 
18
18
  var _PaginationCalculator = require("./Utils/PaginationCalculator");
19
19
 
20
+ var _excluded = ["PageComponent", "totalPages", "maxPages", "currentPage", "showFirst", "firstLabel", "firstAriaLabel", "showPrevious", "previousLabel", "previousAriaLabel", "showMore", "moreLabel", "moreAriaLabel", "showNext", "nextLabel", "nextAriaLabel", "showLast", "lastLabel", "lastAriaLabel", "getPageLabel", "getPageAriaLabel", "onSelect", "createURL", "pageComponentProps"];
21
+
20
22
  /** Customizable Pagination component */
21
23
  var Pagination = function Pagination(_ref) {
22
24
  var PageComponent = _ref.PageComponent,
@@ -43,7 +45,7 @@ var Pagination = function Pagination(_ref) {
43
45
  onSelect = _ref.onSelect,
44
46
  createURL = _ref.createURL,
45
47
  pageComponentProps = _ref.pageComponentProps,
46
- restProps = (0, _objectWithoutProperties2.default)(_ref, ["PageComponent", "totalPages", "maxPages", "currentPage", "showFirst", "firstLabel", "firstAriaLabel", "showPrevious", "previousLabel", "previousAriaLabel", "showMore", "moreLabel", "moreAriaLabel", "showNext", "nextLabel", "nextAriaLabel", "showLast", "lastLabel", "lastAriaLabel", "getPageLabel", "getPageAriaLabel", "onSelect", "createURL", "pageComponentProps"]);
48
+ restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
49
 
48
50
  if (!totalPages) {
49
51
  return null;
@@ -19,6 +19,8 @@ require("lazysizes");
19
19
 
20
20
  require("lazysizes/plugins/blur-up/ls.blur-up");
21
21
 
22
+ var _excluded = ["images", "image", "alt", "width", "height", "objectFit", "imageLow", "isBackgroundImage"];
23
+
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -68,7 +70,7 @@ var Picture = function Picture(_ref4) {
68
70
  objectFit = _ref4.objectFit,
69
71
  imageLow = _ref4.imageLow,
70
72
  isBackgroundImage = _ref4.isBackgroundImage,
71
- rest = (0, _objectWithoutProperties2.default)(_ref4, ["images", "image", "alt", "width", "height", "objectFit", "imageLow", "isBackgroundImage"]);
73
+ rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
72
74
  var document = typeof window !== 'undefined' ? window.document : null;
73
75
 
74
76
  var _useState = (0, _react.useState)(true),
@@ -17,6 +17,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
17
 
18
18
  var _Text = _interopRequireDefault(require("../Text/Text"));
19
19
 
20
+ var _excluded = ["label", "name", "value"];
21
+
20
22
  /**
21
23
  * Input radio component
22
24
  */
@@ -57,7 +59,7 @@ var RadioButton = /*#__PURE__*/_react.default.forwardRef(function (_ref7, ref) {
57
59
  var label = _ref7.label,
58
60
  name = _ref7.name,
59
61
  value = _ref7.value,
60
- rest = (0, _objectWithoutProperties2.default)(_ref7, ["label", "name", "value"]);
62
+ rest = (0, _objectWithoutProperties2.default)(_ref7, _excluded);
61
63
  return /*#__PURE__*/_react.default.createElement(Label, {
62
64
  htmlFor: value
63
65
  }, /*#__PURE__*/_react.default.createElement(StyledRadioInput, Object.assign({
@@ -13,9 +13,11 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
15
 
16
+ var _excluded = ["align", "markup"];
17
+
16
18
  var Inner = _styledComponents.default.div.withConfig({
17
19
  displayName: "RichText__Inner",
18
- componentId: "sqyfgj-0"
20
+ componentId: "sc-sqyfgj-0"
19
21
  })(["text-align:", ";"], function (props) {
20
22
  return props.align;
21
23
  });
@@ -25,7 +27,7 @@ exports.Inner = Inner;
25
27
  var RichText = function RichText(_ref) {
26
28
  var align = _ref.align,
27
29
  markup = _ref.markup,
28
- rest = (0, _objectWithoutProperties2.default)(_ref, ["align", "markup"]);
30
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
29
31
  return /*#__PURE__*/_react.default.createElement(Inner, Object.assign({
30
32
  align: align,
31
33
  dangerouslySetInnerHTML: {