@gympass/yoga 7.66.0 → 7.66.1
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/cjs/Dialog/web/Dialog.js +12 -7
- package/cjs/Drawer/web/Drawer.js +5 -1
- package/esm/Accordion/web/Accordion.test.js +19 -0
- package/esm/ActionRequirement/index.native.js +2 -0
- package/esm/ActionRequirement/native/ActionRequirement.js +48 -0
- package/esm/ActionRequirement/native/ActionRequirement.test.js +45 -0
- package/esm/ActionRequirement/native/ActionRequirementStyles.js +25 -0
- package/esm/ActionRequirement/native/index.js +6 -0
- package/esm/ActionRequirement/web/ActionRequirement.test.js +36 -0
- package/esm/AutoComplete/web/AutoComplete.test.js +139 -0
- package/esm/Avatar/index.native.js +4 -0
- package/esm/Avatar/native/Avatar.js +96 -0
- package/esm/Avatar/native/Avatar.test.js +46 -0
- package/esm/Avatar/native/AvatarCircle.js +24 -0
- package/esm/Avatar/web/Avatar.test.js +63 -0
- package/esm/Banner/index.native.js +2 -0
- package/esm/Banner/native/Banner.js +128 -0
- package/esm/Banner/native/Banner.test.js +103 -0
- package/esm/Banner/native/index.js +2 -0
- package/esm/Banner/web/Banner.test.js +109 -0
- package/esm/BottomSheet/web/BottomSheet.test.js +48 -0
- package/esm/Box/index.native.js +2 -0
- package/esm/Box/native/Box.js +4 -0
- package/esm/Box/native/Box.test.js +16 -0
- package/esm/Box/native/index.js +2 -0
- package/esm/Box/web/Box.test.js +16 -0
- package/esm/Button/index.native.js +8 -0
- package/esm/Button/native/Button.js +110 -0
- package/esm/Button/native/Button.test.js +475 -0
- package/esm/Button/native/Icon.js +82 -0
- package/esm/Button/native/Link.js +35 -0
- package/esm/Button/native/Text.js +74 -0
- package/esm/Button/native/withTouchable.js +63 -0
- package/esm/Button/web/Button.test.js +772 -0
- package/esm/Card/index.native.js +2 -0
- package/esm/Card/native/Card/Actions.js +12 -0
- package/esm/Card/native/Card/Card.js +92 -0
- package/esm/Card/native/Card/Card.test.js +15 -0
- package/esm/Card/native/Card/Content.js +8 -0
- package/esm/Card/native/Card/Header.js +8 -0
- package/esm/Card/native/Card/index.js +8 -0
- package/esm/Card/native/EventCard/EventCard.js +169 -0
- package/esm/Card/native/EventCard/EventCard.test.js +65 -0
- package/esm/Card/native/EventCard/index.js +2 -0
- package/esm/Card/native/GymCard/CheckIn/Avatar.js +17 -0
- package/esm/Card/native/GymCard/CheckIn/CheckIn.js +66 -0
- package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +39 -0
- package/esm/Card/native/GymCard/CheckIn/Content.js +11 -0
- package/esm/Card/native/GymCard/CheckIn/Header.js +11 -0
- package/esm/Card/native/GymCard/CheckIn/index.js +2 -0
- package/esm/Card/native/GymCard/index.js +5 -0
- package/esm/Card/native/PlanCard/Actions.js +22 -0
- package/esm/Card/native/PlanCard/Content.js +75 -0
- package/esm/Card/native/PlanCard/List.js +73 -0
- package/esm/Card/native/PlanCard/PlanCard.js +51 -0
- package/esm/Card/native/PlanCard/PlanCard.test.js +84 -0
- package/esm/Card/native/PlanCard/Subtitle.js +15 -0
- package/esm/Card/native/PlanCard/Tag.js +34 -0
- package/esm/Card/native/PlanCard/index.js +15 -0
- package/esm/Card/native/index.js +5 -0
- package/esm/Card/web/Card/Card.test.js +14 -0
- package/esm/Card/web/EventCard/EventCard.test.js +27 -0
- package/esm/Card/web/PlanCard/PlanCard.test.js +94 -0
- package/esm/Checkbox/index.native.js +3 -0
- package/esm/Checkbox/native/Checkbox.js +179 -0
- package/esm/Checkbox/native/Checkbox.test.js +115 -0
- package/esm/Checkbox/native/Switch.js +115 -0
- package/esm/Checkbox/native/Switch.test.js +54 -0
- package/esm/Checkbox/native/index.js +3 -0
- package/esm/Checkbox/web/Checkbox.test.js +153 -0
- package/esm/Checkbox/web/Switch.test.js +56 -0
- package/esm/Chips/index.native.js +2 -0
- package/esm/Chips/native/Chips.js +104 -0
- package/esm/Chips/native/Chips.test.js +143 -0
- package/esm/Chips/native/Counter.js +20 -0
- package/esm/Chips/native/index.js +2 -0
- package/esm/Chips/web/Chips.test.js +128 -0
- package/esm/Datepicker/web/Datepicker.test.js +247 -0
- package/esm/Dialog/web/Dialog.js +13 -8
- package/esm/Dialog/web/Dialog.test.js +62 -0
- package/esm/Divider/index.native.js +2 -0
- package/esm/Divider/native/Divider.js +29 -0
- package/esm/Divider/native/Divider.test.js +29 -0
- package/esm/Divider/native/index.js +2 -0
- package/esm/Divider/web/Divider.test.js +29 -0
- package/esm/Drawer/web/Drawer.js +6 -2
- package/esm/Drawer/web/Drawer.test.js +33 -0
- package/esm/Dropdown/index.native.js +2 -0
- package/esm/Dropdown/native/Backdrop.js +93 -0
- package/esm/Dropdown/native/Backdrop.test.js +26 -0
- package/esm/Dropdown/native/Dropdown.js +142 -0
- package/esm/Dropdown/native/Dropdown.test.js +78 -0
- package/esm/Dropdown/native/Options.android.js +66 -0
- package/esm/Dropdown/native/Options.ios.js +71 -0
- package/esm/Dropdown/native/index.js +2 -0
- package/esm/Dropdown/web/Dropdown.test.js +93 -0
- package/esm/Feedback/web/Feedback.test.js +83 -0
- package/esm/Grid/web/Col.test.js +48 -0
- package/esm/Grid/web/Container.test.js +14 -0
- package/esm/Grid/web/Hide.test.js +31 -0
- package/esm/Grid/web/Row.test.js +14 -0
- package/esm/Header/web/Header.test.js +38 -0
- package/esm/Heading/web/Heading.test.js +58 -0
- package/esm/Icon/index.native.js +2 -0
- package/esm/Icon/native/Icon.test.js +47 -0
- package/esm/Icon/native/index.js +2 -0
- package/esm/Icon/web/Icon.test.js +47 -0
- package/esm/Input/index.native.js +6 -0
- package/esm/Input/native/Email.js +15 -0
- package/esm/Input/native/Email.test.js +13 -0
- package/esm/Input/native/Helper.js +62 -0
- package/esm/Input/native/Input.js +234 -0
- package/esm/Input/native/Input.test.js +181 -0
- package/esm/Input/native/Number.js +12 -0
- package/esm/Input/native/Number.test.js +13 -0
- package/esm/Input/native/Password.js +112 -0
- package/esm/Input/native/Password.test.js +125 -0
- package/esm/Input/native/Tel.js +14 -0
- package/esm/Input/native/Tel.test.js +13 -0
- package/esm/Input/native/index.js +6 -0
- package/esm/Input/web/Email.test.js +13 -0
- package/esm/Input/web/Input.test.js +145 -0
- package/esm/Input/web/Number.test.js +13 -0
- package/esm/Input/web/Password.test.js +90 -0
- package/esm/Input/web/Phone.test.js +95 -0
- package/esm/Input/web/Tel.test.js +13 -0
- package/esm/List/index.native.js +3 -0
- package/esm/List/native/List.js +22 -0
- package/esm/List/native/List.test.js +106 -0
- package/esm/List/native/ListItem.js +51 -0
- package/esm/List/native/index.js +3 -0
- package/esm/List/web/List.test.js +62 -0
- package/esm/Menu/web/Menu.test.js +115 -0
- package/esm/Popover/web/Popover.test.js +19 -0
- package/esm/Progress/index.native.js +2 -0
- package/esm/Progress/native/Progress.js +103 -0
- package/esm/Progress/native/Progress.test.js +222 -0
- package/esm/Progress/native/index.js +2 -0
- package/esm/Progress/web/Progress.test.js +222 -0
- package/esm/RadioGroup/index.native.js +4 -0
- package/esm/RadioGroup/native/Button/RadioButton.js +64 -0
- package/esm/RadioGroup/native/Button/RadioButton.test.js +96 -0
- package/esm/RadioGroup/native/Radio/Radio.js +88 -0
- package/esm/RadioGroup/native/Radio/Radio.test.js +112 -0
- package/esm/RadioGroup/native/RadioGroup.js +66 -0
- package/esm/RadioGroup/native/RadioGroup.test.js +50 -0
- package/esm/RadioGroup/native/index.js +4 -0
- package/esm/RadioGroup/web/Button/RadioButton.test.js +121 -0
- package/esm/RadioGroup/web/Radio/Radio.test.js +108 -0
- package/esm/RadioGroup/web/RadioGroup.test.js +83 -0
- package/esm/Rating/index.native.js +2 -0
- package/esm/Rating/native/Rating.js +186 -0
- package/esm/Rating/native/Rating.test.js +121 -0
- package/esm/Rating/native/index.js +2 -0
- package/esm/Rating/web/Rating.test.js +184 -0
- package/esm/Result/index.native.js +8 -0
- package/esm/Result/native/Attendances.js +55 -0
- package/esm/Result/native/Details.js +97 -0
- package/esm/Result/native/Rate.js +35 -0
- package/esm/Result/native/Result.js +86 -0
- package/esm/Result/native/Result.test.js +107 -0
- package/esm/Result/native/ResultButton.js +13 -0
- package/esm/Result/native/Tags.js +41 -0
- package/esm/Result/native/TinyTextIcon.js +18 -0
- package/esm/Result/native/index.js +2 -0
- package/esm/Skeleton/index.native.js +2 -0
- package/esm/Skeleton/native/Skeleton.js +94 -0
- package/esm/Skeleton/native/Skeleton.test.js +78 -0
- package/esm/Skeleton/native/index.js +2 -0
- package/esm/Skeleton/web/Skeleton.test.js +77 -0
- package/esm/Slider/index.native.js +2 -0
- package/esm/Slider/native/Label.js +19 -0
- package/esm/Slider/native/Marker.js +68 -0
- package/esm/Slider/native/Slider.js +156 -0
- package/esm/Slider/native/Slider.test.js +122 -0
- package/esm/Slider/native/Step.js +14 -0
- package/esm/Slider/native/Tooltip.js +90 -0
- package/esm/Slider/web/Slider.test.js +86 -0
- package/esm/Snackbar/index.native.js +2 -0
- package/esm/Snackbar/native/Snackbar.js +199 -0
- package/esm/Snackbar/native/Snackbar.test.js +100 -0
- package/esm/Snackbar/native/SnackbarAnimationWrapper.js +124 -0
- package/esm/Snackbar/native/index.js +2 -0
- package/esm/Snackbar/web/Snackbar.test.js +118 -0
- package/esm/Stepper/index.native.js +3 -0
- package/esm/Stepper/native/Dots.js +45 -0
- package/esm/Stepper/native/Line.js +35 -0
- package/esm/Stepper/native/Step.js +19 -0
- package/esm/Stepper/native/Stepper.js +52 -0
- package/esm/Stepper/native/Stepper.test.js +70 -0
- package/esm/Stepper/native/index.js +3 -0
- package/esm/Stepper/web/Stepper.test.js +67 -0
- package/esm/Tag/index.native.js +4 -0
- package/esm/Tag/native/Informative.js +72 -0
- package/esm/Tag/native/Tag.js +75 -0
- package/esm/Tag/native/Tag.test.js +94 -0
- package/esm/Tag/native/index.js +2 -0
- package/esm/Tag/web/Tag.test.js +79 -0
- package/esm/Text/index.native.js +16 -0
- package/esm/Text/native/Text.js +69 -0
- package/esm/Text/native/Text.test.js +149 -0
- package/esm/Text/native/index.js +2 -0
- package/esm/Text/web/Text.test.js +149 -0
- package/esm/TextArea/index.native.js +2 -0
- package/esm/TextArea/native/TextArea.js +59 -0
- package/esm/TextArea/native/TextArea.test.js +11 -0
- package/esm/TextArea/native/index.js +2 -0
- package/esm/TextArea/web/TextArea.test.js +11 -0
- package/esm/Theme/Provider/index.native.js +2 -0
- package/esm/Theme/Provider/native/index.js +2 -0
- package/esm/Theme/Provider/web/FontLoader.test.js +11 -0
- package/esm/Theme/Provider/web/GlobalStyle.test.js +17 -0
- package/esm/Theme/helpers/themeReader/native/native.test.js +53 -0
- package/esm/Theme/helpers/themeReader/web/web.test.js +41 -0
- package/esm/Theme/index.native.js +5 -0
- package/esm/index.native.js +26 -0
- package/esm/shared/index.native.js +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
var _excluded = ["title", "subtitle", "description", "currency", "suffix", "price", "period", "children"];
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
4
|
+
|
|
5
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
+
|
|
7
|
+
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
8
|
+
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import styled, { css } from 'styled-components';
|
|
11
|
+
import { string, node } from 'prop-types';
|
|
12
|
+
import Content from '../Card/Content';
|
|
13
|
+
import Text from '../../../Text';
|
|
14
|
+
import theme from '../../../Theme/helpers/themeReader';
|
|
15
|
+
import Subtitle from './Subtitle';
|
|
16
|
+
import Divider from '../../../Divider';
|
|
17
|
+
var Title = styled(Text.Medium)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (props) {
|
|
18
|
+
var _theme = theme(props),
|
|
19
|
+
_theme$components = _theme.components,
|
|
20
|
+
cardnative = _theme$components.cardnative,
|
|
21
|
+
card = _theme$components.card;
|
|
22
|
+
|
|
23
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n color: ", ";\n margin-bottom: ", "px;\n line-height: ", "px;\n "])), card.plan.title.color, cardnative.plan.title.margin.bottom, cardnative.plan.title.lineHeight);
|
|
24
|
+
});
|
|
25
|
+
var Description = styled(Text.Small)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n height: 40px;\n\n color: ", ";\n"])), theme.components.card.plan.description.color);
|
|
26
|
+
var Price = styled.View(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n flex-direction: row;\n\n ", "\n"])), function (props) {
|
|
27
|
+
var _theme2 = theme(props),
|
|
28
|
+
plan = _theme2.components.cardnative.plan;
|
|
29
|
+
|
|
30
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n margin-bottom: ", "px;\n "])), plan.price.margin.bottom);
|
|
31
|
+
});
|
|
32
|
+
var EnhancePrice = styled.View(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n align-self: center;\n"])));
|
|
33
|
+
|
|
34
|
+
var PlanCardContent = function PlanCardContent(_ref) {
|
|
35
|
+
var title = _ref.title,
|
|
36
|
+
subtitle = _ref.subtitle,
|
|
37
|
+
description = _ref.description,
|
|
38
|
+
currency = _ref.currency,
|
|
39
|
+
suffix = _ref.suffix,
|
|
40
|
+
price = _ref.price,
|
|
41
|
+
period = _ref.period,
|
|
42
|
+
children = _ref.children,
|
|
43
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
44
|
+
|
|
45
|
+
return /*#__PURE__*/React.createElement(Content, rest, subtitle && /*#__PURE__*/React.createElement(Subtitle, null, subtitle), title && /*#__PURE__*/React.createElement(Title, null, title), description && /*#__PURE__*/React.createElement(Description, {
|
|
46
|
+
numberOfLines: 2
|
|
47
|
+
}, description), /*#__PURE__*/React.createElement(Price, null, currency && /*#__PURE__*/React.createElement(Text.H4, null, currency), price && /*#__PURE__*/React.createElement(Text.H4, null, price), suffix && /*#__PURE__*/React.createElement(Text.H4, null, suffix), period && /*#__PURE__*/React.createElement(EnhancePrice, null, /*#__PURE__*/React.createElement(Text.Medium, null, "" + period))), /*#__PURE__*/React.createElement(Divider, null), children);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
PlanCardContent.propTypes = {
|
|
51
|
+
/** plan name */
|
|
52
|
+
title: string.isRequired,
|
|
53
|
+
|
|
54
|
+
/** currency of the current country */
|
|
55
|
+
currency: string,
|
|
56
|
+
|
|
57
|
+
/** suffix currency of the current country */
|
|
58
|
+
suffix: string,
|
|
59
|
+
price: string.isRequired,
|
|
60
|
+
|
|
61
|
+
/** period that this price will be charged */
|
|
62
|
+
period: string.isRequired,
|
|
63
|
+
description: string,
|
|
64
|
+
subtitle: string,
|
|
65
|
+
children: node
|
|
66
|
+
};
|
|
67
|
+
PlanCardContent.defaultProps = {
|
|
68
|
+
children: null,
|
|
69
|
+
description: null,
|
|
70
|
+
subtitle: null,
|
|
71
|
+
currency: null,
|
|
72
|
+
suffix: null
|
|
73
|
+
};
|
|
74
|
+
PlanCardContent.displayName = 'PlanCard.Content';
|
|
75
|
+
export default PlanCardContent;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var _excluded = ["children"];
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
4
|
+
|
|
5
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
+
|
|
7
|
+
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
8
|
+
|
|
9
|
+
import React, { isValidElement } from 'react';
|
|
10
|
+
import styled, { withTheme } from 'styled-components';
|
|
11
|
+
import { TouchableWithoutFeedback } from 'react-native';
|
|
12
|
+
import { string, node, shape, oneOfType, func } from 'prop-types';
|
|
13
|
+
import get from 'lodash.get';
|
|
14
|
+
import Text from '../../../Text';
|
|
15
|
+
import Icon from '../../../Icon';
|
|
16
|
+
import theme from '../../../Theme/helpers/themeReader';
|
|
17
|
+
var _theme$components = theme.components,
|
|
18
|
+
card = _theme$components.card,
|
|
19
|
+
cardnative = _theme$components.cardnative;
|
|
20
|
+
var List = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n margin-top: ", "px;\n"])), cardnative.plan.list.margin.top);
|
|
21
|
+
var Item = styled.View(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n margin-bottom: ", "px;\n"])), card.plan.list.item.margin.bottom);
|
|
22
|
+
var Wrapper = styled.View(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n flex-direction: row;\n align-items: center;\n"])));
|
|
23
|
+
var IconWrapper = styled.View(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n margin-right: ", "px;\n"])), cardnative.plan.list.item.icon.margin.right);
|
|
24
|
+
var Button = styled.View(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n margin-top: ", "px;\n"])), card.plan.list.button.margin.top);
|
|
25
|
+
var ButtonText = styled(Text.Medium)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n font-size: ", "px;\n color: ", ";\n"])), card.plan.list.button.font.size, card.plan.list.button.font.color);
|
|
26
|
+
var ItemText = styled(Text.Small)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n color: ", ";\n"])), function (_ref) {
|
|
27
|
+
var color = _ref.color;
|
|
28
|
+
return color || card.plan.list.item.font.color;
|
|
29
|
+
});
|
|
30
|
+
var ListItem = withTheme(function (_ref2) {
|
|
31
|
+
var text = _ref2.text,
|
|
32
|
+
variant = _ref2.variant,
|
|
33
|
+
yogaTheme = _ref2.theme,
|
|
34
|
+
icon = _ref2.icon,
|
|
35
|
+
_ref2$buttonProps = _ref2.buttonProps,
|
|
36
|
+
children = _ref2$buttonProps.children,
|
|
37
|
+
buttonProps = _objectWithoutPropertiesLoose(_ref2$buttonProps, _excluded);
|
|
38
|
+
|
|
39
|
+
var itemColor = get(yogaTheme.yoga.colors, variant);
|
|
40
|
+
if (variant && !itemColor) // eslint-disable-next-line no-console
|
|
41
|
+
console.warn("Invalid token " + variant + ", you can use " + JSON.stringify(Object.keys(yogaTheme.yoga.colors)));
|
|
42
|
+
return /*#__PURE__*/React.createElement(Item, null, /*#__PURE__*/React.createElement(Wrapper, null, icon && /*#__PURE__*/React.createElement(IconWrapper, null, /*#__PURE__*/isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(Icon, {
|
|
43
|
+
as: icon,
|
|
44
|
+
size: "small",
|
|
45
|
+
fill: variant || 'text.primary'
|
|
46
|
+
})), /*#__PURE__*/React.createElement(ItemText, {
|
|
47
|
+
color: itemColor
|
|
48
|
+
}, text)), Boolean(Object.keys(buttonProps).length) && /*#__PURE__*/React.createElement(TouchableWithoutFeedback, buttonProps, /*#__PURE__*/React.createElement(Button, null, /*#__PURE__*/React.createElement(ButtonText, null, children))));
|
|
49
|
+
});
|
|
50
|
+
List.displayName = 'PlanCard.List';
|
|
51
|
+
ListItem.displayName = 'PlanCard.ListItem';
|
|
52
|
+
Button.displayName = 'PlanCard.ListButton';
|
|
53
|
+
ListItem.propTypes = {
|
|
54
|
+
text: string.isRequired,
|
|
55
|
+
|
|
56
|
+
/** an icon to be displayed on the begin of the item */
|
|
57
|
+
icon: oneOfType([node, func]),
|
|
58
|
+
|
|
59
|
+
/** if provided displays a button below the item text. It accepts all button
|
|
60
|
+
* element props */
|
|
61
|
+
buttonProps: shape({}),
|
|
62
|
+
|
|
63
|
+
/** if provided a color variant, like "vibin", "hope", "energy" the icon and
|
|
64
|
+
* the item text will be rendered on this color.
|
|
65
|
+
*/
|
|
66
|
+
variant: string
|
|
67
|
+
};
|
|
68
|
+
ListItem.defaultProps = {
|
|
69
|
+
icon: undefined,
|
|
70
|
+
buttonProps: {},
|
|
71
|
+
variant: undefined
|
|
72
|
+
};
|
|
73
|
+
export { List, ListItem };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var _excluded = ["children", "variant"];
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
4
|
+
|
|
5
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
+
|
|
7
|
+
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
8
|
+
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import styled, { css } from 'styled-components';
|
|
11
|
+
import { node, oneOf } from 'prop-types';
|
|
12
|
+
import Box from '../../../Box';
|
|
13
|
+
export var PLAN_LINE_HEIGHT = 8;
|
|
14
|
+
var Plan = styled(Box)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n max-width: 312px;\n width: 100%;\n position: relative;\n overflow: hidden;\n\n ", "\n"])), function (props) {
|
|
15
|
+
var theme = props.theme.yoga;
|
|
16
|
+
var plan = theme.components.card.plan;
|
|
17
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n padding: ", "px ", "px\n ", "px ", "px;\n border: ", "px solid ", ";\n border-radius: ", "px;\n\n background-color: ", ";\n "])), plan.padding.top, plan.padding.right, plan.padding.bottom, plan.padding.left, theme.borders.small, theme.colors.light, plan.radius, theme.colors.white);
|
|
18
|
+
});
|
|
19
|
+
var Border = styled.View(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n\n height: 8px;\n background-color: ", ";\n"])), function (_ref) {
|
|
20
|
+
var variant = _ref.variant,
|
|
21
|
+
_ref$theme$yoga$color = _ref.theme.yoga.colors,
|
|
22
|
+
deepPurple = _ref$theme$yoga$color.deepPurple,
|
|
23
|
+
_ref$theme$yoga$color2 = _ref$theme$yoga$color[variant],
|
|
24
|
+
color = _ref$theme$yoga$color2 === void 0 ? deepPurple : _ref$theme$yoga$color2;
|
|
25
|
+
return color;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
var PlanCard = function PlanCard(_ref2) {
|
|
29
|
+
var children = _ref2.children,
|
|
30
|
+
variant = _ref2.variant,
|
|
31
|
+
rest = _objectWithoutPropertiesLoose(_ref2, _excluded);
|
|
32
|
+
|
|
33
|
+
return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Plan, rest, /*#__PURE__*/React.createElement(Border, {
|
|
34
|
+
variant: variant
|
|
35
|
+
}), children));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
PlanCard.propTypes = {
|
|
39
|
+
children: node,
|
|
40
|
+
|
|
41
|
+
/** style the card border top color following the theme (primary, secondary,
|
|
42
|
+
* vibin, hope, energy, relax, peace, verve, uplift, deepPurple, deep,
|
|
43
|
+
* stamina, dark, medium, light, clear, white) */
|
|
44
|
+
variant: oneOf(['primary', 'secondary', 'vibin', 'hope', 'energy', 'relax', 'peace', 'verve', 'uplift', 'deepPurple', 'stamina', 'dark', 'medium', 'deep', 'light', 'clear', 'white'])
|
|
45
|
+
};
|
|
46
|
+
PlanCard.defaultProps = {
|
|
47
|
+
children: undefined,
|
|
48
|
+
variant: 'deepPurple'
|
|
49
|
+
};
|
|
50
|
+
PlanCard.displayName = 'PlanCard';
|
|
51
|
+
export default PlanCard;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/react-native';
|
|
3
|
+
import { Star, MapPin } from '@gympass/yoga-icons';
|
|
4
|
+
import { ThemeProvider, Button, Icon } from '../../..';
|
|
5
|
+
import PlanCard from '.';
|
|
6
|
+
describe('<PlanCard />', function () {
|
|
7
|
+
var buttonOnPressMock = jest.fn();
|
|
8
|
+
|
|
9
|
+
var renderPlan = function renderPlan() {
|
|
10
|
+
return render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, null, /*#__PURE__*/React.createElement(PlanCard.Tag, {
|
|
11
|
+
variant: "informative"
|
|
12
|
+
}, "Recommended Plan"), /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
13
|
+
subtitle: "plan",
|
|
14
|
+
title: "Basic",
|
|
15
|
+
currency: "$",
|
|
16
|
+
price: "99.90",
|
|
17
|
+
period: "/month"
|
|
18
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Subtitle, null, "Get access to"), /*#__PURE__*/React.createElement(PlanCard.List, null, /*#__PURE__*/React.createElement(PlanCard.ListItem, {
|
|
19
|
+
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
20
|
+
as: MapPin,
|
|
21
|
+
height: "small",
|
|
22
|
+
width: "small",
|
|
23
|
+
stroke: "medium"
|
|
24
|
+
}),
|
|
25
|
+
text: "gyms and studios"
|
|
26
|
+
}), /*#__PURE__*/React.createElement(PlanCard.ListItem, {
|
|
27
|
+
icon: Star,
|
|
28
|
+
text: "list item",
|
|
29
|
+
buttonProps: {
|
|
30
|
+
children: 'button',
|
|
31
|
+
onPress: buttonOnPressMock
|
|
32
|
+
}
|
|
33
|
+
}))), /*#__PURE__*/React.createElement(PlanCard.Actions, null, /*#__PURE__*/React.createElement(Button, {
|
|
34
|
+
full: true
|
|
35
|
+
}, "Select this plan")))));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
describe('Events', function () {
|
|
39
|
+
it('should call onPress when ListItem has a button', function () {
|
|
40
|
+
var _renderPlan = renderPlan(),
|
|
41
|
+
getByText = _renderPlan.getByText;
|
|
42
|
+
|
|
43
|
+
fireEvent.press(getByText('button'));
|
|
44
|
+
expect(buttonOnPressMock).toHaveBeenCalled();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('Snapshots', function () {
|
|
48
|
+
it('should match snapshot with default PlanCard', function () {
|
|
49
|
+
var _renderPlan2 = renderPlan(),
|
|
50
|
+
toJSON = _renderPlan2.toJSON;
|
|
51
|
+
|
|
52
|
+
expect(toJSON()).toMatchSnapshot();
|
|
53
|
+
});
|
|
54
|
+
it('should match snapshot with variant', function () {
|
|
55
|
+
var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, {
|
|
56
|
+
variant: "hope"
|
|
57
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
58
|
+
subtitle: "plan",
|
|
59
|
+
title: "Basic",
|
|
60
|
+
currency: "$",
|
|
61
|
+
price: "99.90",
|
|
62
|
+
period: "/month"
|
|
63
|
+
})))),
|
|
64
|
+
toJSON = _render.toJSON;
|
|
65
|
+
|
|
66
|
+
expect(toJSON()).toMatchSnapshot();
|
|
67
|
+
});
|
|
68
|
+
it('should match snapshot with suffix', function () {
|
|
69
|
+
var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, {
|
|
70
|
+
variant: "hope"
|
|
71
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
72
|
+
subtitle: "plan",
|
|
73
|
+
title: "Basic",
|
|
74
|
+
currency: "$",
|
|
75
|
+
suffix: "MXN",
|
|
76
|
+
price: "99.90",
|
|
77
|
+
period: "/month"
|
|
78
|
+
})))),
|
|
79
|
+
toJSON = _render2.toJSON;
|
|
80
|
+
|
|
81
|
+
expect(toJSON()).toMatchSnapshot();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var _templateObject, _templateObject2;
|
|
2
|
+
|
|
3
|
+
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
4
|
+
|
|
5
|
+
import styled, { css } from 'styled-components';
|
|
6
|
+
import theme from '../../../Theme/helpers/themeReader';
|
|
7
|
+
import Text from '../../../Text';
|
|
8
|
+
var Subtitle = styled(Text.Medium)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n text-transform: uppercase;\n\n ", "\n"])), function (props) {
|
|
9
|
+
var _theme = theme(props),
|
|
10
|
+
plan = _theme.components.card.plan;
|
|
11
|
+
|
|
12
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n margin-bottom: ", "px;\n\n color: ", ";\n font-size: ", "px;\n "])), plan.subtitle.margin.bottom, plan.subtitle.font.color, plan.subtitle.font.size);
|
|
13
|
+
});
|
|
14
|
+
Subtitle.displayName = 'PlanCard.Subtitle';
|
|
15
|
+
export default Subtitle;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var _excluded = ["children"];
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2;
|
|
4
|
+
|
|
5
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
+
|
|
7
|
+
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
|
|
8
|
+
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import styled, { css } from 'styled-components';
|
|
11
|
+
import { node } from 'prop-types';
|
|
12
|
+
import { PLAN_LINE_HEIGHT } from './PlanCard';
|
|
13
|
+
import Tag from '../../../Tag';
|
|
14
|
+
var StyledTag = styled(Tag.Informative).attrs(function () {
|
|
15
|
+
return {
|
|
16
|
+
small: true
|
|
17
|
+
};
|
|
18
|
+
})(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n position: absolute;\n align-items: center;\n justify-content: center;\n\n ", "\n"])), function (props) {
|
|
19
|
+
var plan = props.theme.yoga.components.card.plan;
|
|
20
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n top: ", "px;\n left: ", "px;\n "])), plan.tag.position.top + PLAN_LINE_HEIGHT, plan.tag.position.left);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
var PlanCardTag = function PlanCardTag(_ref) {
|
|
24
|
+
var children = _ref.children,
|
|
25
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
26
|
+
|
|
27
|
+
return /*#__PURE__*/React.createElement(StyledTag, rest, children);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
PlanCardTag.displayName = 'PlanCard.Tag';
|
|
31
|
+
PlanCardTag.propTypes = {
|
|
32
|
+
children: node.isRequired
|
|
33
|
+
};
|
|
34
|
+
export default PlanCardTag;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Button, ButtonText } from './Actions';
|
|
2
|
+
import Content from './Content';
|
|
3
|
+
import PlanCard from './PlanCard';
|
|
4
|
+
import Subtitle from './Subtitle';
|
|
5
|
+
import Tag from './Tag';
|
|
6
|
+
import { List, ListItem } from './List';
|
|
7
|
+
PlanCard.Actions = Actions;
|
|
8
|
+
PlanCard.Button = Button;
|
|
9
|
+
PlanCard.ButtonText = ButtonText;
|
|
10
|
+
PlanCard.Content = Content;
|
|
11
|
+
PlanCard.List = List;
|
|
12
|
+
PlanCard.ListItem = ListItem;
|
|
13
|
+
PlanCard.Subtitle = Subtitle;
|
|
14
|
+
PlanCard.Tag = Tag;
|
|
15
|
+
export default PlanCard;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { ThemeProvider, Button } from '../../..';
|
|
4
|
+
import Card from '.';
|
|
5
|
+
describe('<Card />', function () {
|
|
6
|
+
describe('Snapshots', function () {
|
|
7
|
+
it('should match snapshot with default Card', function () {
|
|
8
|
+
var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Card, null, /*#__PURE__*/React.createElement(Card.Header, null, "Hello World"), /*#__PURE__*/React.createElement(Card.Content, null, "It's fine here"), /*#__PURE__*/React.createElement(Card.Actions, null, /*#__PURE__*/React.createElement(Button, null, "Action's children must be Button"))))),
|
|
9
|
+
container = _render.container;
|
|
10
|
+
|
|
11
|
+
expect(container).toMatchSnapshot();
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { ThemeProvider } from '../../..';
|
|
4
|
+
import EventCard from '.';
|
|
5
|
+
var event = {
|
|
6
|
+
name: 'Yoga Class',
|
|
7
|
+
place: 'Gympass',
|
|
8
|
+
time: '19 am'
|
|
9
|
+
};
|
|
10
|
+
var date = {
|
|
11
|
+
day: '19',
|
|
12
|
+
weekday: 'thu',
|
|
13
|
+
month: 'dec'
|
|
14
|
+
};
|
|
15
|
+
describe('<Card />', function () {
|
|
16
|
+
describe('Snapshots', function () {
|
|
17
|
+
it('should match snapshot with default EventCard', function () {
|
|
18
|
+
var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(EventCard, {
|
|
19
|
+
event: event,
|
|
20
|
+
date: date
|
|
21
|
+
}))),
|
|
22
|
+
container = _render.container;
|
|
23
|
+
|
|
24
|
+
expect(container).toMatchSnapshot();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/react';
|
|
3
|
+
import { Star, MapPin } from '@gympass/yoga-icons';
|
|
4
|
+
import { ThemeProvider, Button, Icon } from '../../..';
|
|
5
|
+
import PlanCard from '.';
|
|
6
|
+
describe('<PlanCard />', function () {
|
|
7
|
+
var buttonOnClickMock = jest.fn();
|
|
8
|
+
|
|
9
|
+
var renderPlan = function renderPlan() {
|
|
10
|
+
return render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, null, /*#__PURE__*/React.createElement(PlanCard.Tag, {
|
|
11
|
+
variant: "informative"
|
|
12
|
+
}, "Recommended Plan"), /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
13
|
+
subtitle: "plan",
|
|
14
|
+
title: "Basic",
|
|
15
|
+
currency: "$",
|
|
16
|
+
price: "99.90",
|
|
17
|
+
period: "/month"
|
|
18
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Subtitle, null, "Get access to"), /*#__PURE__*/React.createElement(PlanCard.List, null, /*#__PURE__*/React.createElement(PlanCard.ListItem, {
|
|
19
|
+
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
20
|
+
as: MapPin,
|
|
21
|
+
height: "small",
|
|
22
|
+
width: "small",
|
|
23
|
+
stroke: "medium"
|
|
24
|
+
}),
|
|
25
|
+
text: "gyms and studios"
|
|
26
|
+
}), /*#__PURE__*/React.createElement(PlanCard.ListItem, {
|
|
27
|
+
icon: Star,
|
|
28
|
+
text: "list item",
|
|
29
|
+
buttonProps: {
|
|
30
|
+
children: 'button',
|
|
31
|
+
as: 'a',
|
|
32
|
+
onClick: buttonOnClickMock
|
|
33
|
+
}
|
|
34
|
+
}))), /*#__PURE__*/React.createElement(PlanCard.Actions, null, /*#__PURE__*/React.createElement(Button, {
|
|
35
|
+
full: true
|
|
36
|
+
}, "Select this plan")))));
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
describe('Events', function () {
|
|
40
|
+
it('should call onClick when ListItem has a button', function () {
|
|
41
|
+
var _renderPlan = renderPlan(),
|
|
42
|
+
getByText = _renderPlan.getByText;
|
|
43
|
+
|
|
44
|
+
fireEvent.click(getByText('button'));
|
|
45
|
+
expect(buttonOnClickMock).toHaveBeenCalled();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe('Snapshots', function () {
|
|
49
|
+
it('should match snapshot with default PlanCard', function () {
|
|
50
|
+
var _renderPlan2 = renderPlan(),
|
|
51
|
+
planCard = _renderPlan2.container;
|
|
52
|
+
|
|
53
|
+
expect(planCard).toMatchSnapshot();
|
|
54
|
+
});
|
|
55
|
+
it('should match snapshot with variant', function () {
|
|
56
|
+
var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, {
|
|
57
|
+
variant: "hope"
|
|
58
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
59
|
+
subtitle: "plan",
|
|
60
|
+
title: "Basic",
|
|
61
|
+
currency: "$",
|
|
62
|
+
price: "99.90",
|
|
63
|
+
period: "/month"
|
|
64
|
+
})))),
|
|
65
|
+
container = _render.container;
|
|
66
|
+
|
|
67
|
+
expect(container).toMatchSnapshot();
|
|
68
|
+
});
|
|
69
|
+
it('should match snapshot with suffix', function () {
|
|
70
|
+
var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, {
|
|
71
|
+
variant: "hope"
|
|
72
|
+
}, /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
73
|
+
subtitle: "plan",
|
|
74
|
+
title: "Basic",
|
|
75
|
+
currency: "$",
|
|
76
|
+
suffix: "MXN",
|
|
77
|
+
price: "99.90",
|
|
78
|
+
period: "/month"
|
|
79
|
+
})))),
|
|
80
|
+
container = _render2.container;
|
|
81
|
+
|
|
82
|
+
expect(container).toMatchSnapshot();
|
|
83
|
+
});
|
|
84
|
+
it('should render the extra content', function () {
|
|
85
|
+
var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(PlanCard, null, /*#__PURE__*/React.createElement(PlanCard.Content, {
|
|
86
|
+
title: "Basic",
|
|
87
|
+
extra: /*#__PURE__*/React.createElement("p", null, "Hello")
|
|
88
|
+
})))),
|
|
89
|
+
container = _render3.container;
|
|
90
|
+
|
|
91
|
+
expect(container).toMatchSnapshot();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|