@gympass/yoga 7.65.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.
Files changed (234) hide show
  1. package/cjs/Dialog/web/Dialog.js +12 -7
  2. package/cjs/Drawer/web/Drawer.js +5 -1
  3. package/cjs/Input/index.js +1 -0
  4. package/cjs/Input/web/Input.js +8 -3
  5. package/cjs/Input/web/Phone.js +144 -0
  6. package/cjs/Input/web/Phone.style.js +41 -0
  7. package/cjs/Input/web/data-images.js +10 -0
  8. package/cjs/Input/web/index.js +4 -0
  9. package/cjs/hooks/index.js +8 -0
  10. package/cjs/hooks/useCombinedRefs.js +32 -0
  11. package/esm/Accordion/web/Accordion.test.js +19 -0
  12. package/esm/ActionRequirement/index.native.js +2 -0
  13. package/esm/ActionRequirement/native/ActionRequirement.js +48 -0
  14. package/esm/ActionRequirement/native/ActionRequirement.test.js +45 -0
  15. package/esm/ActionRequirement/native/ActionRequirementStyles.js +25 -0
  16. package/esm/ActionRequirement/native/index.js +6 -0
  17. package/esm/ActionRequirement/web/ActionRequirement.test.js +36 -0
  18. package/esm/AutoComplete/web/AutoComplete.test.js +139 -0
  19. package/esm/Avatar/index.native.js +4 -0
  20. package/esm/Avatar/native/Avatar.js +96 -0
  21. package/esm/Avatar/native/Avatar.test.js +46 -0
  22. package/esm/Avatar/native/AvatarCircle.js +24 -0
  23. package/esm/Avatar/web/Avatar.test.js +63 -0
  24. package/esm/Banner/index.native.js +2 -0
  25. package/esm/Banner/native/Banner.js +128 -0
  26. package/esm/Banner/native/Banner.test.js +103 -0
  27. package/esm/Banner/native/index.js +2 -0
  28. package/esm/Banner/web/Banner.test.js +109 -0
  29. package/esm/BottomSheet/web/BottomSheet.test.js +48 -0
  30. package/esm/Box/index.native.js +2 -0
  31. package/esm/Box/native/Box.js +4 -0
  32. package/esm/Box/native/Box.test.js +16 -0
  33. package/esm/Box/native/index.js +2 -0
  34. package/esm/Box/web/Box.test.js +16 -0
  35. package/esm/Button/index.native.js +8 -0
  36. package/esm/Button/native/Button.js +110 -0
  37. package/esm/Button/native/Button.test.js +475 -0
  38. package/esm/Button/native/Icon.js +82 -0
  39. package/esm/Button/native/Link.js +35 -0
  40. package/esm/Button/native/Text.js +74 -0
  41. package/esm/Button/native/withTouchable.js +63 -0
  42. package/esm/Button/web/Button.test.js +772 -0
  43. package/esm/Card/index.native.js +2 -0
  44. package/esm/Card/native/Card/Actions.js +12 -0
  45. package/esm/Card/native/Card/Card.js +92 -0
  46. package/esm/Card/native/Card/Card.test.js +15 -0
  47. package/esm/Card/native/Card/Content.js +8 -0
  48. package/esm/Card/native/Card/Header.js +8 -0
  49. package/esm/Card/native/Card/index.js +8 -0
  50. package/esm/Card/native/EventCard/EventCard.js +169 -0
  51. package/esm/Card/native/EventCard/EventCard.test.js +65 -0
  52. package/esm/Card/native/EventCard/index.js +2 -0
  53. package/esm/Card/native/GymCard/CheckIn/Avatar.js +17 -0
  54. package/esm/Card/native/GymCard/CheckIn/CheckIn.js +66 -0
  55. package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +39 -0
  56. package/esm/Card/native/GymCard/CheckIn/Content.js +11 -0
  57. package/esm/Card/native/GymCard/CheckIn/Header.js +11 -0
  58. package/esm/Card/native/GymCard/CheckIn/index.js +2 -0
  59. package/esm/Card/native/GymCard/index.js +5 -0
  60. package/esm/Card/native/PlanCard/Actions.js +22 -0
  61. package/esm/Card/native/PlanCard/Content.js +75 -0
  62. package/esm/Card/native/PlanCard/List.js +73 -0
  63. package/esm/Card/native/PlanCard/PlanCard.js +51 -0
  64. package/esm/Card/native/PlanCard/PlanCard.test.js +84 -0
  65. package/esm/Card/native/PlanCard/Subtitle.js +15 -0
  66. package/esm/Card/native/PlanCard/Tag.js +34 -0
  67. package/esm/Card/native/PlanCard/index.js +15 -0
  68. package/esm/Card/native/index.js +5 -0
  69. package/esm/Card/web/Card/Card.test.js +14 -0
  70. package/esm/Card/web/EventCard/EventCard.test.js +27 -0
  71. package/esm/Card/web/PlanCard/PlanCard.test.js +94 -0
  72. package/esm/Checkbox/index.native.js +3 -0
  73. package/esm/Checkbox/native/Checkbox.js +179 -0
  74. package/esm/Checkbox/native/Checkbox.test.js +115 -0
  75. package/esm/Checkbox/native/Switch.js +115 -0
  76. package/esm/Checkbox/native/Switch.test.js +54 -0
  77. package/esm/Checkbox/native/index.js +3 -0
  78. package/esm/Checkbox/web/Checkbox.test.js +153 -0
  79. package/esm/Checkbox/web/Switch.test.js +56 -0
  80. package/esm/Chips/index.native.js +2 -0
  81. package/esm/Chips/native/Chips.js +104 -0
  82. package/esm/Chips/native/Chips.test.js +143 -0
  83. package/esm/Chips/native/Counter.js +20 -0
  84. package/esm/Chips/native/index.js +2 -0
  85. package/esm/Chips/web/Chips.test.js +128 -0
  86. package/esm/Datepicker/web/Datepicker.test.js +247 -0
  87. package/esm/Dialog/web/Dialog.js +13 -8
  88. package/esm/Dialog/web/Dialog.test.js +62 -0
  89. package/esm/Divider/index.native.js +2 -0
  90. package/esm/Divider/native/Divider.js +29 -0
  91. package/esm/Divider/native/Divider.test.js +29 -0
  92. package/esm/Divider/native/index.js +2 -0
  93. package/esm/Divider/web/Divider.test.js +29 -0
  94. package/esm/Drawer/web/Drawer.js +6 -2
  95. package/esm/Drawer/web/Drawer.test.js +33 -0
  96. package/esm/Dropdown/index.native.js +2 -0
  97. package/esm/Dropdown/native/Backdrop.js +93 -0
  98. package/esm/Dropdown/native/Backdrop.test.js +26 -0
  99. package/esm/Dropdown/native/Dropdown.js +142 -0
  100. package/esm/Dropdown/native/Dropdown.test.js +78 -0
  101. package/esm/Dropdown/native/Options.android.js +66 -0
  102. package/esm/Dropdown/native/Options.ios.js +71 -0
  103. package/esm/Dropdown/native/index.js +2 -0
  104. package/esm/Dropdown/web/Dropdown.test.js +93 -0
  105. package/esm/Feedback/web/Feedback.test.js +83 -0
  106. package/esm/Grid/web/Col.test.js +48 -0
  107. package/esm/Grid/web/Container.test.js +14 -0
  108. package/esm/Grid/web/Hide.test.js +31 -0
  109. package/esm/Grid/web/Row.test.js +14 -0
  110. package/esm/Header/web/Header.test.js +38 -0
  111. package/esm/Heading/web/Heading.test.js +58 -0
  112. package/esm/Icon/index.native.js +2 -0
  113. package/esm/Icon/native/Icon.test.js +47 -0
  114. package/esm/Icon/native/index.js +2 -0
  115. package/esm/Icon/web/Icon.test.js +47 -0
  116. package/esm/Input/index.js +2 -1
  117. package/esm/Input/index.native.js +6 -0
  118. package/esm/Input/native/Email.js +15 -0
  119. package/esm/Input/native/Email.test.js +13 -0
  120. package/esm/Input/native/Helper.js +62 -0
  121. package/esm/Input/native/Input.js +234 -0
  122. package/esm/Input/native/Input.test.js +181 -0
  123. package/esm/Input/native/Number.js +12 -0
  124. package/esm/Input/native/Number.test.js +13 -0
  125. package/esm/Input/native/Password.js +112 -0
  126. package/esm/Input/native/Password.test.js +125 -0
  127. package/esm/Input/native/Tel.js +14 -0
  128. package/esm/Input/native/Tel.test.js +13 -0
  129. package/esm/Input/native/index.js +6 -0
  130. package/esm/Input/web/Email.test.js +13 -0
  131. package/esm/Input/web/Input.js +9 -4
  132. package/esm/Input/web/Input.test.js +145 -0
  133. package/esm/Input/web/Number.test.js +13 -0
  134. package/esm/Input/web/Password.test.js +90 -0
  135. package/esm/Input/web/Phone.js +124 -0
  136. package/esm/Input/web/Phone.style.js +27 -0
  137. package/esm/Input/web/Phone.test.js +95 -0
  138. package/esm/Input/web/Tel.test.js +13 -0
  139. package/esm/Input/web/data-images.js +3 -0
  140. package/esm/Input/web/index.js +2 -1
  141. package/esm/List/index.native.js +3 -0
  142. package/esm/List/native/List.js +22 -0
  143. package/esm/List/native/List.test.js +106 -0
  144. package/esm/List/native/ListItem.js +51 -0
  145. package/esm/List/native/index.js +3 -0
  146. package/esm/List/web/List.test.js +62 -0
  147. package/esm/Menu/web/Menu.test.js +115 -0
  148. package/esm/Popover/web/Popover.test.js +19 -0
  149. package/esm/Progress/index.native.js +2 -0
  150. package/esm/Progress/native/Progress.js +103 -0
  151. package/esm/Progress/native/Progress.test.js +222 -0
  152. package/esm/Progress/native/index.js +2 -0
  153. package/esm/Progress/web/Progress.test.js +222 -0
  154. package/esm/RadioGroup/index.native.js +4 -0
  155. package/esm/RadioGroup/native/Button/RadioButton.js +64 -0
  156. package/esm/RadioGroup/native/Button/RadioButton.test.js +96 -0
  157. package/esm/RadioGroup/native/Radio/Radio.js +88 -0
  158. package/esm/RadioGroup/native/Radio/Radio.test.js +112 -0
  159. package/esm/RadioGroup/native/RadioGroup.js +66 -0
  160. package/esm/RadioGroup/native/RadioGroup.test.js +50 -0
  161. package/esm/RadioGroup/native/index.js +4 -0
  162. package/esm/RadioGroup/web/Button/RadioButton.test.js +121 -0
  163. package/esm/RadioGroup/web/Radio/Radio.test.js +108 -0
  164. package/esm/RadioGroup/web/RadioGroup.test.js +83 -0
  165. package/esm/Rating/index.native.js +2 -0
  166. package/esm/Rating/native/Rating.js +186 -0
  167. package/esm/Rating/native/Rating.test.js +121 -0
  168. package/esm/Rating/native/index.js +2 -0
  169. package/esm/Rating/web/Rating.test.js +184 -0
  170. package/esm/Result/index.native.js +8 -0
  171. package/esm/Result/native/Attendances.js +55 -0
  172. package/esm/Result/native/Details.js +97 -0
  173. package/esm/Result/native/Rate.js +35 -0
  174. package/esm/Result/native/Result.js +86 -0
  175. package/esm/Result/native/Result.test.js +107 -0
  176. package/esm/Result/native/ResultButton.js +13 -0
  177. package/esm/Result/native/Tags.js +41 -0
  178. package/esm/Result/native/TinyTextIcon.js +18 -0
  179. package/esm/Result/native/index.js +2 -0
  180. package/esm/Skeleton/index.native.js +2 -0
  181. package/esm/Skeleton/native/Skeleton.js +94 -0
  182. package/esm/Skeleton/native/Skeleton.test.js +78 -0
  183. package/esm/Skeleton/native/index.js +2 -0
  184. package/esm/Skeleton/web/Skeleton.test.js +77 -0
  185. package/esm/Slider/index.native.js +2 -0
  186. package/esm/Slider/native/Label.js +19 -0
  187. package/esm/Slider/native/Marker.js +68 -0
  188. package/esm/Slider/native/Slider.js +156 -0
  189. package/esm/Slider/native/Slider.test.js +122 -0
  190. package/esm/Slider/native/Step.js +14 -0
  191. package/esm/Slider/native/Tooltip.js +90 -0
  192. package/esm/Slider/web/Slider.test.js +86 -0
  193. package/esm/Snackbar/index.native.js +2 -0
  194. package/esm/Snackbar/native/Snackbar.js +199 -0
  195. package/esm/Snackbar/native/Snackbar.test.js +100 -0
  196. package/esm/Snackbar/native/SnackbarAnimationWrapper.js +124 -0
  197. package/esm/Snackbar/native/index.js +2 -0
  198. package/esm/Snackbar/web/Snackbar.test.js +118 -0
  199. package/esm/Stepper/index.native.js +3 -0
  200. package/esm/Stepper/native/Dots.js +45 -0
  201. package/esm/Stepper/native/Line.js +35 -0
  202. package/esm/Stepper/native/Step.js +19 -0
  203. package/esm/Stepper/native/Stepper.js +52 -0
  204. package/esm/Stepper/native/Stepper.test.js +70 -0
  205. package/esm/Stepper/native/index.js +3 -0
  206. package/esm/Stepper/web/Stepper.test.js +67 -0
  207. package/esm/Tag/index.native.js +4 -0
  208. package/esm/Tag/native/Informative.js +72 -0
  209. package/esm/Tag/native/Tag.js +75 -0
  210. package/esm/Tag/native/Tag.test.js +94 -0
  211. package/esm/Tag/native/index.js +2 -0
  212. package/esm/Tag/web/Tag.test.js +79 -0
  213. package/esm/Text/index.native.js +16 -0
  214. package/esm/Text/native/Text.js +69 -0
  215. package/esm/Text/native/Text.test.js +149 -0
  216. package/esm/Text/native/index.js +2 -0
  217. package/esm/Text/web/Text.test.js +149 -0
  218. package/esm/TextArea/index.native.js +2 -0
  219. package/esm/TextArea/native/TextArea.js +59 -0
  220. package/esm/TextArea/native/TextArea.test.js +11 -0
  221. package/esm/TextArea/native/index.js +2 -0
  222. package/esm/TextArea/web/TextArea.test.js +11 -0
  223. package/esm/Theme/Provider/index.native.js +2 -0
  224. package/esm/Theme/Provider/native/index.js +2 -0
  225. package/esm/Theme/Provider/web/FontLoader.test.js +11 -0
  226. package/esm/Theme/Provider/web/GlobalStyle.test.js +17 -0
  227. package/esm/Theme/helpers/themeReader/native/native.test.js +53 -0
  228. package/esm/Theme/helpers/themeReader/web/web.test.js +41 -0
  229. package/esm/Theme/index.native.js +5 -0
  230. package/esm/hooks/index.js +2 -1
  231. package/esm/hooks/useCombinedRefs.js +25 -0
  232. package/esm/index.native.js +26 -0
  233. package/esm/shared/index.native.js +2 -0
  234. package/package.json +4 -3
@@ -0,0 +1,97 @@
1
+ var _excluded = ["icon", "variant"];
2
+
3
+ var _templateObject, _templateObject2, _templateObject3;
4
+
5
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
6
+
7
+ 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; }
8
+
9
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
10
+
11
+ import React from 'react';
12
+ import { arrayOf, number, shape, bool, func, oneOfType, node, string } from 'prop-types';
13
+ import styled from 'styled-components';
14
+ import Text from '../../Text';
15
+ import Box from '../../Box';
16
+ import TinyTextIcon from './TinyTextIcon';
17
+ var Container = styled(Text.Tiny)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n flex: 1;\n height: ", "px;\n"])), function (_ref) {
18
+ var theme = _ref.theme;
19
+ return theme.yoga.spacing.small;
20
+ });
21
+ var Separator = styled(Box).attrs({
22
+ width: 'xxxsmall',
23
+ height: 'xxxsmall'
24
+ })(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose([""])));
25
+ var StyledText = styled(Text.Tiny)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
26
+ var xxxsmall = _ref2.theme.yoga.spacing.xxxsmall;
27
+ return "\n margin-left: " + xxxsmall + "px;\n margin-right: " + xxxsmall + "px;\n ";
28
+ });
29
+
30
+ var ResultDetails = function ResultDetails(_ref3) {
31
+ var items = _ref3.items,
32
+ limit = _ref3.limit,
33
+ limitLabel = _ref3.limitLabel,
34
+ dots = _ref3.dots,
35
+ Item = _ref3.renderItem;
36
+ var refinedList = limit !== 0 ? items.slice(0, limit) : items;
37
+ var numberOfItemsLeft = items.length - limit;
38
+ return /*#__PURE__*/React.createElement(Box, {
39
+ flexDirection: "row",
40
+ alignItems: "center",
41
+ mt: "xxxsmall"
42
+ }, /*#__PURE__*/React.createElement(Container, {
43
+ numberOfLines: 1
44
+ }, refinedList == null ? void 0 : refinedList.map(function (_ref4, index) {
45
+ var IconComponent = _ref4.icon,
46
+ variant = _ref4.variant,
47
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded);
48
+
49
+ var isLastItem = index === refinedList.length - 1;
50
+ var showNumbersOfItemsLeft = isLastItem && limit !== 0 && limit < items.length;
51
+ return (
52
+ /*#__PURE__*/
53
+ // eslint-disable-next-line react/no-array-index-key
54
+ React.createElement(React.Fragment, {
55
+ key: index
56
+ }, IconComponent && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TinyTextIcon, {
57
+ as: IconComponent,
58
+ fill: variant
59
+ }), /*#__PURE__*/React.createElement(Separator, null)), /*#__PURE__*/React.createElement(Item, _extends({
60
+ variant: variant
61
+ }, props)), !isLastItem && (dots ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement(StyledText, {
62
+ variant: variant
63
+ }, "\u2022"), /*#__PURE__*/React.createElement(Separator, null)) : /*#__PURE__*/React.createElement(Separator, null)), showNumbersOfItemsLeft && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement(StyledText, {
64
+ variant: variant
65
+ }, "+ ", numberOfItemsLeft, !!limitLabel && " " + limitLabel), /*#__PURE__*/React.createElement(Separator, null)))
66
+ );
67
+ })));
68
+ };
69
+
70
+ ResultDetails.displayName = 'Result.Details';
71
+ ResultDetails.propTypes = {
72
+ /** Props to be passed to each component at `renderItem` */
73
+ items: arrayOf(shape({})).isRequired,
74
+
75
+ /** If has limit of items to show in component.Other with show with + 4 for
76
+ * example
77
+ * */
78
+ limit: number,
79
+
80
+ /** If is necessary show a label after the limit.Example + 4 activities */
81
+ limitLabel: string,
82
+
83
+ /** If shows the dot separator between the itens */
84
+ dots: bool,
85
+
86
+ /** The component to render as the item of the list. */
87
+ renderItem: oneOfType([node, func, shape({
88
+ render: func.isRequired
89
+ })])
90
+ };
91
+ ResultDetails.defaultProps = {
92
+ limit: undefined,
93
+ limitLabel: '',
94
+ dots: false,
95
+ renderItem: Text.Tiny
96
+ };
97
+ export default ResultDetails;
@@ -0,0 +1,35 @@
1
+ var _templateObject, _templateObject2;
2
+
3
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
4
+
5
+ import React from 'react';
6
+ import styled from 'styled-components';
7
+ import { string } from 'prop-types';
8
+ import { StarFilled } from '@gympass/yoga-icons';
9
+ import Icon from '../../Icon';
10
+ import Text from '../../Text';
11
+ var Content = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n margin-left: 10px;\n align-items: center;\n"])));
12
+ var RateValue = styled(Text.Medium)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
13
+ var _ref$theme$yoga = _ref.theme.yoga,
14
+ xxxsmall = _ref$theme$yoga.spacing.xxxsmall,
15
+ xsmall = _ref$theme$yoga.lineHeights.xsmall;
16
+ return "\n margin-left: " + xxxsmall + "px;\n line-height: " + xsmall + "px;\n ";
17
+ });
18
+
19
+ var Rate = function Rate(_ref2) {
20
+ var rate = _ref2.rate;
21
+ return /*#__PURE__*/React.createElement(Content, null, /*#__PURE__*/React.createElement(Icon, {
22
+ as: StarFilled,
23
+ fill: "deep",
24
+ width: "xsmall",
25
+ height: "xsmall"
26
+ }), /*#__PURE__*/React.createElement(RateValue, {
27
+ variant: "deep",
28
+ size: "xsmall"
29
+ }, rate));
30
+ };
31
+
32
+ Rate.propTypes = {
33
+ rate: string.isRequired
34
+ };
35
+ export default Rate;
@@ -0,0 +1,86 @@
1
+ var _templateObject, _templateObject2, _templateObject3;
2
+
3
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
4
+
5
+ import React, { isValidElement } from 'react';
6
+ import styled from 'styled-components';
7
+ import { arrayOf, string, shape, func, bool, node } from 'prop-types';
8
+ import Text from '../../Text';
9
+ import Attendances from './Attendances';
10
+ import Box from '../../Box';
11
+ var StyledBox = styled(Box)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n width: 100%;\n ", "\n"])), function (_ref) {
12
+ var divided = _ref.divided,
13
+ light = _ref.theme.yoga.colors.light;
14
+ return divided ? "\n border-bottom-width: 1px;\n border-bottom-color: " + light + ";\n " : '';
15
+ });
16
+ var Content = styled.View(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n flex: 1;\n ", "\n"])), function (_ref2) {
17
+ var _ref2$theme$yoga$spac = _ref2.theme.yoga.spacing,
18
+ small = _ref2$theme$yoga$spac.small,
19
+ large = _ref2$theme$yoga$spac.large;
20
+ return "\n margin-left: " + small + "px;\n margin-bottom: " + large + "px;\n ";
21
+ });
22
+ var Title = styled(Text.Medium)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref3) {
23
+ var medium = _ref3.theme.yoga.lineHeights.medium;
24
+ return "\n line-height: " + medium + "px;\n ";
25
+ });
26
+ /**
27
+ * The Result component is used when you have a list to show. It is applied to
28
+ * the item individually, and has the option of being applied to different
29
+ * formats based on the applied context. */
30
+
31
+ var Result = function Result(_ref4) {
32
+ var Avatar = _ref4.avatar,
33
+ attendances = _ref4.attendances,
34
+ rate = _ref4.rate,
35
+ title = _ref4.title,
36
+ subTitle = _ref4.subTitle,
37
+ divided = _ref4.divided,
38
+ children = _ref4.children;
39
+ return /*#__PURE__*/React.createElement(StyledBox, {
40
+ divided: divided,
41
+ display: "flex",
42
+ flexDirection: "row"
43
+ }, Avatar && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/isValidElement(Avatar) ? Avatar : /*#__PURE__*/React.createElement(Avatar, null)), /*#__PURE__*/React.createElement(Content, null, !!(attendances != null && attendances.length) && /*#__PURE__*/React.createElement(Attendances, {
44
+ attendances: attendances,
45
+ rate: rate
46
+ }), /*#__PURE__*/React.createElement(Title, {
47
+ numberOfLines: 1
48
+ }, title), subTitle && subTitle !== '' && /*#__PURE__*/React.createElement(Text.Small, {
49
+ numberOfLines: 1,
50
+ variant: "stamina"
51
+ }, subTitle), children));
52
+ };
53
+
54
+ Result.propTypes = {
55
+ /** The component Avatar */
56
+ avatar: node.isRequired,
57
+
58
+ /** A list with the attendances */
59
+ attendances: arrayOf(shape({
60
+ description: string,
61
+ icon: func
62
+ })),
63
+
64
+ /** The evaluation of the partner */
65
+ rate: string,
66
+
67
+ /** The main title */
68
+ title: string.isRequired,
69
+
70
+ /** The text below the main title */
71
+ subTitle: string,
72
+
73
+ /** If it is to show the divide in the bottom */
74
+ divided: bool,
75
+
76
+ /** The chidren necessary */
77
+ children: node
78
+ };
79
+ Result.defaultProps = {
80
+ rate: undefined,
81
+ divided: false,
82
+ subTitle: undefined,
83
+ children: undefined,
84
+ attendances: undefined
85
+ };
86
+ export default Result;
@@ -0,0 +1,107 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import { BuildingFilled } from '@gympass/yoga-icons';
4
+ import { ThemeProvider } from '../..';
5
+ import Result from './Result';
6
+ import Avatar from '../../Avatar';
7
+ import Text from '../../Text';
8
+ var attendanceList = [{
9
+ description: 'Attendance 01',
10
+ icon: BuildingFilled
11
+ }, {
12
+ description: 'Attendance 02',
13
+ icon: BuildingFilled
14
+ }];
15
+ var entranceList = [{
16
+ children: 'From 7:30 am to 9:00 pm',
17
+ variant: 'stamina'
18
+ }];
19
+ var activitiesList = [{
20
+ children: 'Yoga',
21
+ variant: 'deep'
22
+ }, {
23
+ children: 'Meditation',
24
+ variant: 'deep'
25
+ }, {
26
+ children: 'Pilates',
27
+ variant: 'deep'
28
+ }, {
29
+ children: 'Activity4',
30
+ variant: 'deep'
31
+ }, {
32
+ children: 'Activity5',
33
+ variant: 'deep'
34
+ }];
35
+ var tagsList = [{
36
+ children: 'Plan x Product availability',
37
+ variant: 'informative'
38
+ }, {
39
+ children: 'Restriction',
40
+ variant: 'attention'
41
+ }];
42
+ describe('<Result />', function () {
43
+ it('should match snapshot', function () {
44
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Result, {
45
+ rate: "5.0",
46
+ avatar: /*#__PURE__*/React.createElement(Avatar.Circle, null),
47
+ attendances: attendanceList,
48
+ title: "Jane Doe",
49
+ subTitle: "Activity",
50
+ divided: true
51
+ }, /*#__PURE__*/React.createElement(Result.Details, {
52
+ items: entranceList,
53
+ dots: true,
54
+ renderItem: Text.Small
55
+ }), /*#__PURE__*/React.createElement(Result.Details, {
56
+ items: activitiesList,
57
+ dots: true,
58
+ limit: 3,
59
+ renderItem: Text.Small,
60
+ limitLabel: "activities"
61
+ }), /*#__PURE__*/React.createElement(Result.Tags, {
62
+ items: tagsList
63
+ }), /*#__PURE__*/React.createElement(Result.Button, null, "See Details")))),
64
+ toJSON = _render.toJSON;
65
+
66
+ expect(toJSON()).toMatchSnapshot();
67
+ });
68
+ it('should match snapshot without limitLabel prop', function () {
69
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Result, {
70
+ rate: "5.0",
71
+ avatar: /*#__PURE__*/React.createElement(Avatar.Circle, null),
72
+ attendances: attendanceList,
73
+ title: "John Doe",
74
+ subTitle: "Activity",
75
+ divided: true
76
+ }, /*#__PURE__*/React.createElement(Result.Details, {
77
+ items: entranceList,
78
+ dots: true,
79
+ renderItem: Text.Small
80
+ }), /*#__PURE__*/React.createElement(Result.Details, {
81
+ items: activitiesList,
82
+ dots: true,
83
+ limit: 2,
84
+ renderItem: Text.Small
85
+ }), /*#__PURE__*/React.createElement(Result.Tags, {
86
+ items: tagsList
87
+ }), /*#__PURE__*/React.createElement(Result.Button, null, "See Details")))),
88
+ toJSON = _render2.toJSON;
89
+
90
+ expect(toJSON()).toMatchSnapshot();
91
+ });
92
+ it('should match snapshot without attendence', function () {
93
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Result, {
94
+ avatar: /*#__PURE__*/React.createElement(Avatar, null),
95
+ title: "Gym"
96
+ }, /*#__PURE__*/React.createElement(Result.Details, {
97
+ items: entranceList,
98
+ dots: true
99
+ }), /*#__PURE__*/React.createElement(Result.Details, {
100
+ items: activitiesList,
101
+ dots: true
102
+ })))),
103
+ toJSON = _render3.toJSON;
104
+
105
+ expect(toJSON()).toMatchSnapshot();
106
+ });
107
+ });
@@ -0,0 +1,13 @@
1
+ var _templateObject;
2
+
3
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
4
+
5
+ import styled from 'styled-components';
6
+ import Button from '../../Button';
7
+ var ResultButton = styled(Button.Link)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
8
+ var _ref$theme$yoga$spaci = _ref.theme.yoga.spacing,
9
+ xxsmall = _ref$theme$yoga$spaci.xxsmall,
10
+ xlarge = _ref$theme$yoga$spaci.xlarge;
11
+ return "\n margin-top: " + xxsmall + "px;\n margin-right: " + xlarge + "px;\n ";
12
+ });
13
+ export default ResultButton;
@@ -0,0 +1,41 @@
1
+ var _templateObject, _templateObject2;
2
+
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+
5
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
6
+
7
+ import React from 'react';
8
+ import { arrayOf, shape } from 'prop-types';
9
+ import styled from 'styled-components';
10
+ import Tag from '../../Tag';
11
+ var TagStyled = styled(Tag.Informative)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n margin-right: 4px;\n"])));
12
+ var Wrapper = styled.ScrollView(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n ", "\n"])), function (_ref) {
13
+ var xxsmall = _ref.theme.yoga.spacing.xxsmall;
14
+ return "\n margin-top: " + xxsmall + "px;\n ";
15
+ });
16
+
17
+ var ResultTags = function ResultTags(_ref2) {
18
+ var items = _ref2.items;
19
+ return /*#__PURE__*/React.createElement(Wrapper, {
20
+ horizontal: true,
21
+ showsHorizontalScrollIndicator: false
22
+ }, items.map(function (_ref3, index) {
23
+ var props = _extends({}, _ref3);
24
+
25
+ return (
26
+ /*#__PURE__*/
27
+ // eslint-disable-next-line react/no-array-index-key
28
+ React.createElement(TagStyled, _extends({
29
+ small: true,
30
+ key: index
31
+ }, props))
32
+ );
33
+ }));
34
+ };
35
+
36
+ ResultTags.displayName = 'Result.Tags';
37
+ ResultTags.propTypes = {
38
+ /** Props to generate each Tag. See Tag for details */
39
+ items: arrayOf(shape({})).isRequired
40
+ };
41
+ export default ResultTags;
@@ -0,0 +1,18 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import Box from '../../Box';
5
+ import Icon from '../../Icon';
6
+
7
+ var TinyTextIcon = function TinyTextIcon(props) {
8
+ return /*#__PURE__*/React.createElement(Box, {
9
+ height: "xsmall",
10
+ width: "xsmall"
11
+ }, /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
12
+ size: "xsmall",
13
+ mt: "2px"
14
+ })));
15
+ };
16
+
17
+ TinyTextIcon.propTypes = Icon.propTypes;
18
+ export default TinyTextIcon;
@@ -0,0 +1,2 @@
1
+ import Result from './Result';
2
+ export default Result;
@@ -0,0 +1,2 @@
1
+ import Skeleton from './native';
2
+ export default Skeleton;
@@ -0,0 +1,94 @@
1
+ var _excluded = ["animation"];
2
+
3
+ var _templateObject;
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 { checkPropTypes, oneOf } from 'prop-types';
10
+ import React, { useEffect, useState } from 'react';
11
+ import { Animated, Easing } from 'react-native';
12
+ import styled from 'styled-components';
13
+ import { margins, widths, heights } from '@gympass/yoga-system';
14
+ var StyledSkeleton = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n"])), margins, widths, heights, function (_ref) {
15
+ var type = _ref.type,
16
+ variant = _ref.variant,
17
+ _ref$theme$yoga = _ref.theme.yoga,
18
+ colors = _ref$theme$yoga.colors,
19
+ _ref$theme$yoga$compo = _ref$theme$yoga.components.skeleton,
20
+ borderRadius = _ref$theme$yoga$compo.border[type],
21
+ _ref$theme$yoga$compo2 = _ref$theme$yoga$compo.height[type];
22
+ _ref$theme$yoga$compo2 = _ref$theme$yoga$compo2 === void 0 ? {} : _ref$theme$yoga$compo2;
23
+ var height = _ref$theme$yoga$compo2[variant];
24
+ return "\n background-color: " + colors.elements.backgroundAndDisabled + ";\n " + (borderRadius ? "border-radius: " + borderRadius + "px;" : '') + "\n " + (height ? "height: " + height + "px;" : '') + "\n ";
25
+ });
26
+
27
+ function Skeleton(_ref2) {
28
+ var _ref2$animation = _ref2.animation,
29
+ animation = _ref2$animation === void 0 ? 'pulse' : _ref2$animation,
30
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded);
31
+
32
+ var _useState = useState(new Animated.Value(0.4)),
33
+ opacity = _useState[0];
34
+
35
+ useEffect(function () {
36
+ if (animation) {
37
+ Animated.loop(Animated.sequence([Animated.timing(opacity, {
38
+ toValue: 1,
39
+ delay: 500,
40
+ duration: 1000,
41
+ easing: Easing.inOut(Easing.linear),
42
+ useNativeDriver: true
43
+ }), Animated.timing(opacity, {
44
+ toValue: 0.4,
45
+ duration: 500,
46
+ easing: Easing.inOut(Easing.linear),
47
+ useNativeDriver: true
48
+ })])).start();
49
+ }
50
+ }, [opacity]);
51
+ return /*#__PURE__*/React.createElement(Animated.View, {
52
+ style: {
53
+ opacity: opacity
54
+ }
55
+ }, /*#__PURE__*/React.createElement(StyledSkeleton, props));
56
+ }
57
+
58
+ Skeleton.propTypes = {
59
+ /**
60
+ * Determines which type will be rendered. It can be
61
+ * 'circular', 'rectangular' or 'text'.
62
+ */
63
+ type: oneOf(['circular', 'rectangular', 'text']).isRequired,
64
+
65
+ /**
66
+ * style the skeleton following the theme (the variant prop can only be used assemble to type "text").
67
+ * It can be 'h1', 'h2', 'h3', 'h4', 'h5', 'body1', 'body2', 'overline', or 'exception'
68
+ */
69
+ variant: function variant(props, propName, componentName) {
70
+ var type = props.type;
71
+
72
+ if (type !== 'text' && !!props[propName]) {
73
+ return new Error("The " + propName + " prop must only be used when the type is equal to \"text\".");
74
+ }
75
+
76
+ if (type === 'text') {
77
+ var _checkPropTypes;
78
+
79
+ return checkPropTypes((_checkPropTypes = {}, _checkPropTypes[propName] = oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'body1', 'body2', 'overline', 'exception']).isRequired, _checkPropTypes), props, 'prop', componentName);
80
+ }
81
+
82
+ return null;
83
+ },
84
+
85
+ /**
86
+ * Determine if the animation will 'pulse' or false;
87
+ */
88
+ animation: oneOf(['pulse', false])
89
+ };
90
+ Skeleton.defaultProps = {
91
+ variant: undefined,
92
+ animation: 'pulse'
93
+ };
94
+ export default Skeleton;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import { ThemeProvider, Skeleton } from '../..';
4
+ describe('<Skeleton />', function () {
5
+ it('should render the circular skeleton', function () {
6
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
7
+ type: "circular",
8
+ width: 64,
9
+ height: 64
10
+ }))),
11
+ toJSON = _render.toJSON;
12
+
13
+ expect(toJSON()).toMatchSnapshot();
14
+ });
15
+ it('should render the rectangular skeleton', function () {
16
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
17
+ type: "rectangular",
18
+ width: 400,
19
+ height: 200
20
+ }))),
21
+ toJSON = _render2.toJSON;
22
+
23
+ expect(toJSON()).toMatchSnapshot();
24
+ });
25
+ it('should render the text skeleton', function () {
26
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
27
+ type: "text",
28
+ variant: "body1",
29
+ width: 61,
30
+ height: 32
31
+ }))),
32
+ toJSON = _render3.toJSON;
33
+
34
+ expect(toJSON()).toMatchSnapshot();
35
+ });
36
+ it('should render all text skeleton variants correctly', function () {
37
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
38
+ type: "text",
39
+ variant: "h1",
40
+ width: "100"
41
+ }), /*#__PURE__*/React.createElement(Skeleton, {
42
+ type: "text",
43
+ variant: "h2",
44
+ width: "100"
45
+ }), /*#__PURE__*/React.createElement(Skeleton, {
46
+ type: "text",
47
+ variant: "h3",
48
+ width: "100"
49
+ }), /*#__PURE__*/React.createElement(Skeleton, {
50
+ type: "text",
51
+ variant: "h4",
52
+ width: "100"
53
+ }), /*#__PURE__*/React.createElement(Skeleton, {
54
+ type: "text",
55
+ variant: "h5",
56
+ width: "100"
57
+ }), /*#__PURE__*/React.createElement(Skeleton, {
58
+ type: "text",
59
+ variant: "body1",
60
+ width: "100"
61
+ }), /*#__PURE__*/React.createElement(Skeleton, {
62
+ type: "text",
63
+ variant: "body2",
64
+ width: "100"
65
+ }), /*#__PURE__*/React.createElement(Skeleton, {
66
+ type: "text",
67
+ variant: "overline",
68
+ width: "100"
69
+ }), /*#__PURE__*/React.createElement(Skeleton, {
70
+ type: "text",
71
+ variant: "exception",
72
+ width: "100"
73
+ }))),
74
+ toJSON = _render4.toJSON;
75
+
76
+ expect(toJSON()).toMatchSnapshot();
77
+ });
78
+ });
@@ -0,0 +1,2 @@
1
+ import Skeleton from './Skeleton';
2
+ export default Skeleton;
@@ -0,0 +1,77 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import { ThemeProvider, Skeleton } from '../..';
4
+ describe('<Skeleton />', function () {
5
+ it('should render the circular skeleton', function () {
6
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
7
+ type: "circular",
8
+ width: 64,
9
+ height: 64
10
+ }))),
11
+ container = _render.container;
12
+
13
+ expect(container).toMatchSnapshot();
14
+ });
15
+ it('should render the rectangular skeleton', function () {
16
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
17
+ type: "rectangular",
18
+ width: 400,
19
+ height: 200
20
+ }))),
21
+ container = _render2.container;
22
+
23
+ expect(container).toMatchSnapshot();
24
+ });
25
+ it('should render the text skeleton', function () {
26
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
27
+ type: "text",
28
+ variant: "body1",
29
+ width: 61
30
+ }))),
31
+ container = _render3.container;
32
+
33
+ expect(container).toMatchSnapshot();
34
+ });
35
+ it('should render all text skeleton variants correctly', function () {
36
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Skeleton, {
37
+ type: "text",
38
+ variant: "h1",
39
+ width: "100"
40
+ }), /*#__PURE__*/React.createElement(Skeleton, {
41
+ type: "text",
42
+ variant: "h2",
43
+ width: "100"
44
+ }), /*#__PURE__*/React.createElement(Skeleton, {
45
+ type: "text",
46
+ variant: "h3",
47
+ width: "100"
48
+ }), /*#__PURE__*/React.createElement(Skeleton, {
49
+ type: "text",
50
+ variant: "h4",
51
+ width: "100"
52
+ }), /*#__PURE__*/React.createElement(Skeleton, {
53
+ type: "text",
54
+ variant: "h5",
55
+ width: "100"
56
+ }), /*#__PURE__*/React.createElement(Skeleton, {
57
+ type: "text",
58
+ variant: "body1",
59
+ width: "100"
60
+ }), /*#__PURE__*/React.createElement(Skeleton, {
61
+ type: "text",
62
+ variant: "body2",
63
+ width: "100"
64
+ }), /*#__PURE__*/React.createElement(Skeleton, {
65
+ type: "text",
66
+ variant: "overline",
67
+ width: "100"
68
+ }), /*#__PURE__*/React.createElement(Skeleton, {
69
+ type: "text",
70
+ variant: "exception",
71
+ width: "100"
72
+ }))),
73
+ container = _render4.container;
74
+
75
+ expect(container).toMatchSnapshot();
76
+ });
77
+ });
@@ -0,0 +1,2 @@
1
+ import Slider from './native/Slider';
2
+ export default Slider;