@gympass/yoga 7.37.0 → 7.38.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 (298) hide show
  1. package/cjs/AutoComplete/web/AutoComplete.test.js +152 -0
  2. package/cjs/Avatar/native/Avatar.test.js +1 -0
  3. package/cjs/Avatar/web/Avatar.test.js +72 -0
  4. package/cjs/Banner/native/Banner.test.js +1 -0
  5. package/cjs/Banner/web/Banner.test.js +121 -0
  6. package/cjs/BottomSheet/web/BottomSheet.test.js +46 -0
  7. package/cjs/Box/native/Box.test.js +1 -0
  8. package/cjs/Box/web/Box.test.js +23 -0
  9. package/cjs/Button/native/Button.test.js +1 -0
  10. package/cjs/Button/web/Button.test.js +778 -0
  11. package/cjs/Card/Card.native.theme.js +9 -7
  12. package/cjs/Card/Card.theme.js +1 -1
  13. package/cjs/Card/Card.web.theme.js +8 -6
  14. package/cjs/Card/native/Card/Card.test.js +1 -0
  15. package/cjs/Card/native/EventCard/EventCard.test.js +1 -0
  16. package/cjs/Card/native/GymCard/CheckIn/CheckIn.test.js +1 -0
  17. package/cjs/Card/native/PlanCard/Actions.js +1 -1
  18. package/cjs/Card/native/PlanCard/Content.js +1 -1
  19. package/cjs/Card/native/PlanCard/PlanCard.test.js +1 -0
  20. package/cjs/Card/web/Card/Card.test.js +22 -0
  21. package/cjs/Card/web/EventCard/EventCard.test.js +35 -0
  22. package/cjs/Card/web/PlanCard/Actions.js +1 -1
  23. package/cjs/Card/web/PlanCard/Content.js +28 -32
  24. package/cjs/Card/web/PlanCard/PlanCard.test.js +95 -0
  25. package/cjs/Checkbox/native/Checkbox.test.js +1 -0
  26. package/cjs/Checkbox/native/Switch.test.js +1 -0
  27. package/cjs/Checkbox/web/Checkbox.test.js +161 -0
  28. package/cjs/Checkbox/web/Switch.test.js +65 -0
  29. package/cjs/Chips/native/Chips.test.js +1 -0
  30. package/cjs/Chips/web/Chips.test.js +138 -0
  31. package/cjs/Dialog/web/Dialog.test.js +70 -0
  32. package/cjs/Divider/native/Divider.test.js +1 -0
  33. package/cjs/Divider/web/Divider.test.js +36 -0
  34. package/cjs/Dropdown/native/Backdrop.test.js +1 -0
  35. package/cjs/Dropdown/native/Dropdown.test.js +1 -0
  36. package/cjs/Dropdown/web/Dropdown.test.js +102 -0
  37. package/cjs/Feedback/web/Feedback.test.js +89 -0
  38. package/cjs/Grid/web/Col.test.js +56 -0
  39. package/cjs/Grid/web/Container.test.js +22 -0
  40. package/cjs/Grid/web/Hide.test.js +39 -0
  41. package/cjs/Grid/web/Row.test.js +22 -0
  42. package/cjs/Header/web/Header.test.js +44 -0
  43. package/cjs/Heading/web/Heading.test.js +55 -0
  44. package/cjs/Heading/web/RightButton.js +1 -1
  45. package/cjs/Icon/native/Icon.test.js +1 -0
  46. package/cjs/Icon/web/Icon.test.js +53 -0
  47. package/cjs/Input/native/Email.test.js +1 -0
  48. package/cjs/Input/native/Input.test.js +1 -0
  49. package/cjs/Input/native/Number.test.js +1 -0
  50. package/cjs/Input/native/Password.test.js +1 -0
  51. package/cjs/Input/native/Tel.test.js +1 -0
  52. package/cjs/Input/web/Email.test.js +20 -0
  53. package/cjs/Input/web/Field.js +1 -1
  54. package/cjs/Input/web/Input.test.js +161 -0
  55. package/cjs/Input/web/Number.test.js +20 -0
  56. package/cjs/Input/web/Password.test.js +103 -0
  57. package/cjs/Input/web/Tel.test.js +20 -0
  58. package/cjs/List/native/List.test.js +1 -0
  59. package/cjs/List/web/List.test.js +69 -0
  60. package/cjs/Progress/native/Progress.test.js +1 -0
  61. package/cjs/Progress/web/Progress.test.js +229 -0
  62. package/cjs/RadioGroup/native/Button/RadioButton.test.js +1 -0
  63. package/cjs/RadioGroup/native/Radio/Radio.test.js +1 -0
  64. package/cjs/RadioGroup/native/RadioGroup.test.js +1 -0
  65. package/cjs/RadioGroup/web/Button/RadioButton.test.js +132 -0
  66. package/cjs/RadioGroup/web/Radio/Radio.test.js +119 -0
  67. package/cjs/RadioGroup/web/RadioGroup.test.js +93 -0
  68. package/cjs/Rating/native/Rating.test.js +1 -0
  69. package/cjs/Rating/web/Rating.test.js +201 -0
  70. package/cjs/Result/native/Result.test.js +1 -0
  71. package/cjs/Slider/native/Slider.test.js +1 -0
  72. package/cjs/Slider/web/Slider.test.js +95 -0
  73. package/cjs/Snackbar/native/Snackbar.test.js +1 -0
  74. package/cjs/Snackbar/web/Snackbar.test.js +135 -0
  75. package/cjs/Stepper/native/Stepper.test.js +1 -0
  76. package/cjs/Stepper/web/Stepper.test.js +75 -0
  77. package/cjs/Tag/native/Tag.test.js +1 -0
  78. package/cjs/Tag/web/Tag.test.js +87 -0
  79. package/cjs/Text/native/Text.test.js +1 -0
  80. package/cjs/Text/sharedTextStyle.js +1 -1
  81. package/cjs/Text/textStyle.android.js +1 -1
  82. package/cjs/Text/textStyle.ios.js +1 -1
  83. package/cjs/Text/textStyle.web.js +1 -1
  84. package/cjs/Text/web/Text.test.js +157 -0
  85. package/cjs/TextArea/native/TextArea.test.js +1 -0
  86. package/cjs/TextArea/web/TextArea.test.js +18 -0
  87. package/cjs/Theme/Provider/web/FontLoader.test.js +19 -0
  88. package/cjs/Theme/Provider/web/GlobalStyle.test.js +27 -0
  89. package/cjs/Theme/helpers/themeReader/native/native.test.js +1 -0
  90. package/cjs/Theme/helpers/themeReader/web/web.test.js +54 -0
  91. package/esm/AutoComplete/web/AutoComplete.test.js +135 -0
  92. package/esm/Avatar/index.native.js +4 -0
  93. package/esm/Avatar/native/Avatar.js +96 -0
  94. package/esm/Avatar/native/Avatar.test.js +46 -0
  95. package/esm/Avatar/native/AvatarCircle.js +24 -0
  96. package/esm/Avatar/web/Avatar.test.js +63 -0
  97. package/esm/Banner/index.native.js +2 -0
  98. package/esm/Banner/native/Banner.js +128 -0
  99. package/esm/Banner/native/Banner.test.js +103 -0
  100. package/esm/Banner/native/index.js +2 -0
  101. package/esm/Banner/web/Banner.test.js +109 -0
  102. package/esm/BottomSheet/web/BottomSheet.test.js +33 -0
  103. package/esm/Box/index.native.js +2 -0
  104. package/esm/Box/native/Box.js +4 -0
  105. package/esm/Box/native/Box.test.js +16 -0
  106. package/esm/Box/native/index.js +2 -0
  107. package/esm/Box/web/Box.test.js +16 -0
  108. package/esm/Button/index.native.js +8 -0
  109. package/esm/Button/native/Button.js +110 -0
  110. package/esm/Button/native/Button.test.js +475 -0
  111. package/esm/Button/native/Icon.js +82 -0
  112. package/esm/Button/native/Link.js +35 -0
  113. package/esm/Button/native/Text.js +74 -0
  114. package/esm/Button/native/withTouchable.js +63 -0
  115. package/esm/Button/web/Button.test.js +764 -0
  116. package/esm/Card/Card.native.theme.js +9 -7
  117. package/esm/Card/Card.theme.js +1 -1
  118. package/esm/Card/Card.web.theme.js +8 -6
  119. package/esm/Card/index.native.js +2 -0
  120. package/esm/Card/native/Card/Actions.js +12 -0
  121. package/esm/Card/native/Card/Card.js +92 -0
  122. package/esm/Card/native/Card/Card.test.js +15 -0
  123. package/esm/Card/native/Card/Content.js +8 -0
  124. package/esm/Card/native/Card/Header.js +8 -0
  125. package/esm/Card/native/Card/index.js +8 -0
  126. package/esm/Card/native/EventCard/EventCard.js +169 -0
  127. package/esm/Card/native/EventCard/EventCard.test.js +65 -0
  128. package/esm/Card/native/EventCard/index.js +2 -0
  129. package/esm/Card/native/GymCard/CheckIn/Avatar.js +17 -0
  130. package/esm/Card/native/GymCard/CheckIn/CheckIn.js +66 -0
  131. package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +39 -0
  132. package/esm/Card/native/GymCard/CheckIn/Content.js +11 -0
  133. package/esm/Card/native/GymCard/CheckIn/Header.js +11 -0
  134. package/esm/Card/native/GymCard/CheckIn/index.js +2 -0
  135. package/esm/Card/native/GymCard/index.js +5 -0
  136. package/esm/Card/native/PlanCard/Actions.js +24 -0
  137. package/esm/Card/native/PlanCard/Content.js +75 -0
  138. package/esm/Card/native/PlanCard/List.js +73 -0
  139. package/esm/Card/native/PlanCard/PlanCard.js +54 -0
  140. package/esm/Card/native/PlanCard/PlanCard.test.js +84 -0
  141. package/esm/Card/native/PlanCard/Subtitle.js +15 -0
  142. package/esm/Card/native/PlanCard/Tag.js +33 -0
  143. package/esm/Card/native/PlanCard/index.js +15 -0
  144. package/esm/Card/native/index.js +5 -0
  145. package/esm/Card/web/Card/Card.test.js +14 -0
  146. package/esm/Card/web/EventCard/EventCard.test.js +27 -0
  147. package/esm/Card/web/PlanCard/Actions.js +1 -1
  148. package/esm/Card/web/PlanCard/Content.js +25 -30
  149. package/esm/Card/web/PlanCard/PlanCard.test.js +85 -0
  150. package/esm/Checkbox/index.native.js +3 -0
  151. package/esm/Checkbox/native/Checkbox.js +179 -0
  152. package/esm/Checkbox/native/Checkbox.test.js +115 -0
  153. package/esm/Checkbox/native/Switch.js +115 -0
  154. package/esm/Checkbox/native/Switch.test.js +54 -0
  155. package/esm/Checkbox/native/index.js +3 -0
  156. package/esm/Checkbox/web/Checkbox.test.js +153 -0
  157. package/esm/Checkbox/web/Switch.test.js +56 -0
  158. package/esm/Chips/index.native.js +2 -0
  159. package/esm/Chips/native/Chips.js +104 -0
  160. package/esm/Chips/native/Chips.test.js +134 -0
  161. package/esm/Chips/native/Counter.js +20 -0
  162. package/esm/Chips/native/index.js +2 -0
  163. package/esm/Chips/web/Chips.test.js +128 -0
  164. package/esm/Dialog/web/Dialog.test.js +54 -0
  165. package/esm/Divider/index.native.js +2 -0
  166. package/esm/Divider/native/Divider.js +29 -0
  167. package/esm/Divider/native/Divider.test.js +29 -0
  168. package/esm/Divider/native/index.js +2 -0
  169. package/esm/Divider/web/Divider.test.js +29 -0
  170. package/esm/Dropdown/index.native.js +2 -0
  171. package/esm/Dropdown/native/Backdrop.js +93 -0
  172. package/esm/Dropdown/native/Backdrop.test.js +26 -0
  173. package/esm/Dropdown/native/Dropdown.js +142 -0
  174. package/esm/Dropdown/native/Dropdown.test.js +78 -0
  175. package/esm/Dropdown/native/Options.android.js +66 -0
  176. package/esm/Dropdown/native/Options.ios.js +71 -0
  177. package/esm/Dropdown/native/index.js +2 -0
  178. package/esm/Dropdown/web/Dropdown.test.js +93 -0
  179. package/esm/Feedback/web/Feedback.test.js +83 -0
  180. package/esm/Grid/web/Col.test.js +48 -0
  181. package/esm/Grid/web/Container.test.js +14 -0
  182. package/esm/Grid/web/Hide.test.js +31 -0
  183. package/esm/Grid/web/Row.test.js +14 -0
  184. package/esm/Header/web/Header.test.js +34 -0
  185. package/esm/Heading/web/Heading.test.js +45 -0
  186. package/esm/Heading/web/RightButton.js +1 -1
  187. package/esm/Icon/index.native.js +2 -0
  188. package/esm/Icon/native/Icon.test.js +47 -0
  189. package/esm/Icon/native/index.js +2 -0
  190. package/esm/Icon/web/Icon.test.js +47 -0
  191. package/esm/Input/index.native.js +6 -0
  192. package/esm/Input/native/Email.js +15 -0
  193. package/esm/Input/native/Email.test.js +13 -0
  194. package/esm/Input/native/Helper.js +62 -0
  195. package/esm/Input/native/Input.js +234 -0
  196. package/esm/Input/native/Input.test.js +181 -0
  197. package/esm/Input/native/Number.js +12 -0
  198. package/esm/Input/native/Number.test.js +13 -0
  199. package/esm/Input/native/Password.js +112 -0
  200. package/esm/Input/native/Password.test.js +125 -0
  201. package/esm/Input/native/Tel.js +14 -0
  202. package/esm/Input/native/Tel.test.js +13 -0
  203. package/esm/Input/native/index.js +6 -0
  204. package/esm/Input/web/Email.test.js +13 -0
  205. package/esm/Input/web/Field.js +1 -1
  206. package/esm/Input/web/Input.test.js +145 -0
  207. package/esm/Input/web/Number.test.js +13 -0
  208. package/esm/Input/web/Password.test.js +90 -0
  209. package/esm/Input/web/Tel.test.js +13 -0
  210. package/esm/List/index.native.js +3 -0
  211. package/esm/List/native/List.js +22 -0
  212. package/esm/List/native/List.test.js +106 -0
  213. package/esm/List/native/ListItem.js +51 -0
  214. package/esm/List/native/index.js +3 -0
  215. package/esm/List/web/List.test.js +62 -0
  216. package/esm/Progress/index.native.js +2 -0
  217. package/esm/Progress/native/Progress.js +103 -0
  218. package/esm/Progress/native/Progress.test.js +222 -0
  219. package/esm/Progress/native/index.js +2 -0
  220. package/esm/Progress/web/Progress.test.js +222 -0
  221. package/esm/RadioGroup/index.native.js +4 -0
  222. package/esm/RadioGroup/native/Button/RadioButton.js +64 -0
  223. package/esm/RadioGroup/native/Button/RadioButton.test.js +94 -0
  224. package/esm/RadioGroup/native/Radio/Radio.js +88 -0
  225. package/esm/RadioGroup/native/Radio/Radio.test.js +102 -0
  226. package/esm/RadioGroup/native/RadioGroup.js +66 -0
  227. package/esm/RadioGroup/native/RadioGroup.test.js +48 -0
  228. package/esm/RadioGroup/native/index.js +4 -0
  229. package/esm/RadioGroup/web/Button/RadioButton.test.js +121 -0
  230. package/esm/RadioGroup/web/Radio/Radio.test.js +108 -0
  231. package/esm/RadioGroup/web/RadioGroup.test.js +83 -0
  232. package/esm/Rating/index.native.js +2 -0
  233. package/esm/Rating/native/Rating.js +186 -0
  234. package/esm/Rating/native/Rating.test.js +121 -0
  235. package/esm/Rating/native/index.js +2 -0
  236. package/esm/Rating/web/Rating.test.js +184 -0
  237. package/esm/Result/index.native.js +8 -0
  238. package/esm/Result/native/Attendances.js +55 -0
  239. package/esm/Result/native/Details.js +97 -0
  240. package/esm/Result/native/Rate.js +35 -0
  241. package/esm/Result/native/Result.js +86 -0
  242. package/esm/Result/native/Result.test.js +107 -0
  243. package/esm/Result/native/ResultButton.js +13 -0
  244. package/esm/Result/native/Tags.js +41 -0
  245. package/esm/Result/native/TinyTextIcon.js +18 -0
  246. package/esm/Result/native/index.js +2 -0
  247. package/esm/Slider/index.native.js +2 -0
  248. package/esm/Slider/native/Label.js +19 -0
  249. package/esm/Slider/native/Marker.js +68 -0
  250. package/esm/Slider/native/Slider.js +156 -0
  251. package/esm/Slider/native/Slider.test.js +115 -0
  252. package/esm/Slider/native/Step.js +14 -0
  253. package/esm/Slider/native/Tooltip.js +90 -0
  254. package/esm/Slider/web/Slider.test.js +86 -0
  255. package/esm/Snackbar/index.native.js +2 -0
  256. package/esm/Snackbar/native/Snackbar.js +199 -0
  257. package/esm/Snackbar/native/Snackbar.test.js +100 -0
  258. package/esm/Snackbar/native/SnackbarAnimationWrapper.js +124 -0
  259. package/esm/Snackbar/native/index.js +2 -0
  260. package/esm/Snackbar/web/Snackbar.test.js +116 -0
  261. package/esm/Stepper/index.native.js +3 -0
  262. package/esm/Stepper/native/Dots.js +45 -0
  263. package/esm/Stepper/native/Line.js +35 -0
  264. package/esm/Stepper/native/Step.js +19 -0
  265. package/esm/Stepper/native/Stepper.js +52 -0
  266. package/esm/Stepper/native/Stepper.test.js +68 -0
  267. package/esm/Stepper/native/index.js +3 -0
  268. package/esm/Stepper/web/Stepper.test.js +67 -0
  269. package/esm/Tag/index.native.js +4 -0
  270. package/esm/Tag/native/Informative.js +71 -0
  271. package/esm/Tag/native/Tag.js +75 -0
  272. package/esm/Tag/native/Tag.test.js +92 -0
  273. package/esm/Tag/native/index.js +2 -0
  274. package/esm/Tag/web/Tag.test.js +79 -0
  275. package/esm/Text/index.native.js +16 -0
  276. package/esm/Text/native/Text.js +69 -0
  277. package/esm/Text/native/Text.test.js +149 -0
  278. package/esm/Text/native/index.js +2 -0
  279. package/esm/Text/sharedTextStyle.js +1 -1
  280. package/esm/Text/textStyle.android.js +1 -1
  281. package/esm/Text/textStyle.ios.js +1 -1
  282. package/esm/Text/textStyle.web.js +1 -1
  283. package/esm/Text/web/Text.test.js +149 -0
  284. package/esm/TextArea/index.native.js +2 -0
  285. package/esm/TextArea/native/TextArea.js +59 -0
  286. package/esm/TextArea/native/TextArea.test.js +11 -0
  287. package/esm/TextArea/native/index.js +2 -0
  288. package/esm/TextArea/web/TextArea.test.js +11 -0
  289. package/esm/Theme/Provider/index.native.js +2 -0
  290. package/esm/Theme/Provider/native/index.js +2 -0
  291. package/esm/Theme/Provider/web/FontLoader.test.js +11 -0
  292. package/esm/Theme/Provider/web/GlobalStyle.test.js +17 -0
  293. package/esm/Theme/helpers/themeReader/native/native.test.js +53 -0
  294. package/esm/Theme/helpers/themeReader/web/web.test.js +41 -0
  295. package/esm/Theme/index.native.js +5 -0
  296. package/esm/index.native.js +24 -0
  297. package/esm/shared/index.native.js +2 -0
  298. package/package.json +6 -6
@@ -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
+ container = _render.container;
65
+
66
+ expect(container).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
+ container = _render2.container;
89
+
90
+ expect(container).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
+ container = _render3.container;
104
+
105
+ expect(container).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 || 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 || 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 Slider from './native/Slider';
2
+ export default Slider;
@@ -0,0 +1,19 @@
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 { oneOf } from 'prop-types';
7
+ var LabelView = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n"])));
8
+ var LabelText = styled.Text(function (_ref) {
9
+ var placement = _ref.placement,
10
+ baseFont = _ref.theme.yoga.baseFont;
11
+ return "\n position: relative;\n bottom: 5;\n left: " + (placement === 'left' ? -8 : 0) + "px;\n\n font-family: " + baseFont.family + ";\n\n text-align: " + placement + ";\n ";
12
+ });
13
+ LabelText.propTypes = {
14
+ placement: oneOf(['left', 'right'])
15
+ };
16
+ LabelText.defaultProps = {
17
+ placement: 'left'
18
+ };
19
+ export { LabelView, LabelText };
@@ -0,0 +1,68 @@
1
+ var _templateObject;
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 { TouchableOpacity, View } from 'react-native';
7
+ import { bool, number, shape, string } from 'prop-types';
8
+ import styled from 'styled-components';
9
+ import { hexToRgb } from '@gympass/yoga-common';
10
+ import Tooltip from './Tooltip';
11
+ import Box from '../../Box';
12
+ var Circle = styled(Box).attrs(function (_ref) {
13
+ var slider = _ref.theme.yoga.components.slider;
14
+ return {
15
+ bgColor: slider.marker.backgroundColor,
16
+ border: 6,
17
+ borderColor: slider.marker.border.color,
18
+ borderRadius: slider.marker.border.radius,
19
+ elevation: slider.marker.shadow,
20
+ height: 24,
21
+ width: 24,
22
+ top: '2px',
23
+ position: 'relative',
24
+ as: TouchableOpacity
25
+ };
26
+ })(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([""])));
27
+ var CirclePressed = styled(Circle)(function (_ref2) {
28
+ var pressed = _ref2.pressed,
29
+ slider = _ref2.theme.yoga.components.slider;
30
+ return "\n " + (pressed ? "\n background-color: " + hexToRgb(slider.marker.backgroundColor, 0.2) + ";\n border: none;\n width: 40px;\n height: 40px;\n position: absolute;\n elevation: 0;\n top: -6px;\n " : 'display: none; border: none;') + "\n ";
31
+ });
32
+ CirclePressed.propTypes = {
33
+ pressed: bool
34
+ };
35
+ CirclePressed.defaultProps = {
36
+ pressed: false
37
+ };
38
+
39
+ var Marker = function Marker(_ref3) {
40
+ var pressed = _ref3.pressed,
41
+ tooltip = _ref3.tooltip;
42
+ return /*#__PURE__*/React.createElement(React.Fragment, null, pressed && tooltip && /*#__PURE__*/React.createElement(Tooltip, {
43
+ description: tooltip.description,
44
+ title: tooltip.title,
45
+ ribbon: tooltip.ribbon
46
+ }), /*#__PURE__*/React.createElement(CirclePressed, {
47
+ as: View,
48
+ pressed: pressed
49
+ }), /*#__PURE__*/React.createElement(Circle, {
50
+ accessibilityRole: "adjustable"
51
+ }));
52
+ };
53
+
54
+ Marker.propTypes = {
55
+ pressed: bool,
56
+ tooltip: shape({
57
+ description: string,
58
+ title: string,
59
+ ribbon: string,
60
+ visible: bool,
61
+ step: number
62
+ })
63
+ };
64
+ Marker.defaultProps = {
65
+ pressed: false,
66
+ tooltip: undefined
67
+ };
68
+ export default Marker;
@@ -0,0 +1,156 @@
1
+ var _excluded = ["max", "maxLabel", "min", "minLabel", "snapped", "values", "tooltip", "sliderLength", "theme"];
2
+
3
+ function _extends() { _extends = Object.assign || 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 _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
+ import React from 'react';
8
+ import { View } from 'react-native';
9
+ import { bool, number, arrayOf, shape, string, oneOfType } from 'prop-types';
10
+ import { withTheme } from 'styled-components';
11
+ import MultiSlider from '@ptomasroos/react-native-multi-slider';
12
+ import { LabelView, LabelText } from './Label';
13
+ import Marker from './Marker';
14
+ import Step from './Step';
15
+ /** Sliders allow users to make selections from a range of values. Sliders
16
+ reflect a range of values along a bar, from which users may select a single
17
+ value. They are ideal for adjusting settings such as volume, brightness, or
18
+ applying image filters. */
19
+
20
+ var Slider = function Slider(_ref) {
21
+ var max = _ref.max,
22
+ maxLabel = _ref.maxLabel,
23
+ min = _ref.min,
24
+ minLabel = _ref.minLabel,
25
+ snapped = _ref.snapped,
26
+ values = _ref.values,
27
+ tooltip = _ref.tooltip,
28
+ sliderLength = _ref.sliderLength,
29
+ slider = _ref.theme.yoga.components.slider,
30
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
31
+
32
+ var renderSnapDots = function renderSnapDots() {
33
+ var items = [];
34
+
35
+ for (var i = min; i <= max; i++) {
36
+ if (values.length > 1) {
37
+ items.push( /*#__PURE__*/React.createElement(Step, {
38
+ key: i,
39
+ active: values[0] < i && values[1] > i
40
+ }));
41
+ } else {
42
+ items.push( /*#__PURE__*/React.createElement(Step, {
43
+ key: i,
44
+ active: values[0] > i
45
+ }));
46
+ }
47
+ }
48
+
49
+ return items;
50
+ };
51
+
52
+ var renderTooltip = function renderTooltip(side) {
53
+ var tooltipSide = side === 'left' ? 0 : 1;
54
+ return tooltip.filter(function (_ref2) {
55
+ var step = _ref2.step,
56
+ visible = _ref2.visible;
57
+
58
+ if (!step && step !== 0) {
59
+ return visible;
60
+ }
61
+
62
+ return visible && values[tooltipSide] === step;
63
+ })[0];
64
+ };
65
+
66
+ return /*#__PURE__*/React.createElement(View, {
67
+ style: {
68
+ width: sliderLength
69
+ }
70
+ }, snapped && /*#__PURE__*/React.createElement(View, {
71
+ style: {
72
+ flexDirection: 'row',
73
+ alignItems: 'center',
74
+ justifyContent: 'space-between',
75
+ bottom: -30
76
+ }
77
+ }, renderSnapDots()), /*#__PURE__*/React.createElement(MultiSlider, _extends({}, props, {
78
+ values: values,
79
+ sliderLength: sliderLength,
80
+ trackStyle: {
81
+ backgroundColor: slider.track.backgroundColor.inactive,
82
+ height: 4,
83
+ borderRadius: slider.track.border.radius
84
+ },
85
+ selectedStyle: {
86
+ backgroundColor: slider.track.backgroundColor.active
87
+ },
88
+ isMarkersSeparated: true,
89
+ min: min,
90
+ max: max,
91
+ snapped: snapped,
92
+ customMarkerLeft: function customMarkerLeft(_ref3) {
93
+ var pressed = _ref3.pressed;
94
+ return /*#__PURE__*/React.createElement(Marker, {
95
+ tooltip: renderTooltip('left'),
96
+ pressed: pressed
97
+ });
98
+ },
99
+ customMarkerRight: function customMarkerRight(_ref4) {
100
+ var pressed = _ref4.pressed;
101
+ return /*#__PURE__*/React.createElement(Marker, {
102
+ tooltip: renderTooltip('right'),
103
+ pressed: pressed
104
+ });
105
+ },
106
+ touchDimensions: {
107
+ slipDisplacement: 400
108
+ }
109
+ })), (minLabel || maxLabel) && /*#__PURE__*/React.createElement(LabelView, null, minLabel && /*#__PURE__*/React.createElement(LabelText, {
110
+ placement: "left"
111
+ }, minLabel), maxLabel && /*#__PURE__*/React.createElement(LabelText, {
112
+ placement: "right"
113
+ }, maxLabel)));
114
+ };
115
+
116
+ Slider.propTypes = {
117
+ /** set the max value */
118
+ max: number,
119
+
120
+ /** label to be displayed at max value */
121
+ maxLabel: oneOfType([string, number]),
122
+
123
+ /** set the min value */
124
+ min: number,
125
+
126
+ /** label to be displayed at min value */
127
+ minLabel: oneOfType([string, number]),
128
+ sliderLength: number,
129
+
130
+ /** make slider be snap through dots */
131
+ snapped: bool,
132
+
133
+ /** accepts a shape with 'ribbon', 'title', 'description', 'visible' and 'step' properties */
134
+ tooltip: arrayOf(shape({
135
+ description: string,
136
+ title: string,
137
+ ribbon: string,
138
+ visible: bool,
139
+ step: number
140
+ })),
141
+
142
+ /** an array that accepts one or two numbers, this determines how many markers will be displayed */
143
+ values: arrayOf(number)
144
+ };
145
+ Slider.defaultProps = {
146
+ max: 10,
147
+ maxLabel: undefined,
148
+ min: 0,
149
+ minLabel: undefined,
150
+ sliderLength: 280,
151
+ snapped: false,
152
+ tooltip: [],
153
+ values: [0]
154
+ };
155
+ Slider.displayName = 'Slider';
156
+ export default withTheme(Slider);
@@ -0,0 +1,115 @@
1
+ import React from 'react';
2
+ import { render, toJSON, fireEvent } from '@testing-library/react-native';
3
+ import ThemeProvider from '../../Theme';
4
+ import Slider from './Slider';
5
+ describe('<Slider />', function () {
6
+ describe('Snapshots', function () {
7
+ describe('With one marker', function () {
8
+ it('should match snapshot with default Slider', function () {
9
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, null))),
10
+ container = _render.container;
11
+
12
+ expect(toJSON(container)).toMatchSnapshot();
13
+ });
14
+ it('should match snapshot with Slider with labels', function () {
15
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
16
+ minLabel: 0,
17
+ maxLabel: 10
18
+ }))),
19
+ container = _render2.container;
20
+
21
+ expect(toJSON(container)).toMatchSnapshot();
22
+ });
23
+ it('should match snapshot with Slider snapped', function () {
24
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
25
+ snapped: true
26
+ }))),
27
+ container = _render3.container;
28
+
29
+ expect(toJSON(container)).toMatchSnapshot();
30
+ });
31
+ });
32
+ describe('With two markers', function () {
33
+ it('should match snapshot', function () {
34
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
35
+ values: [3, 7]
36
+ }))),
37
+ container = _render4.container;
38
+
39
+ expect(toJSON(container)).toMatchSnapshot();
40
+ });
41
+ it('should match snapshot with Slider snapped', function () {
42
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
43
+ values: [3, 7],
44
+ snapped: true
45
+ }))),
46
+ container = _render5.container;
47
+
48
+ expect(toJSON(container)).toMatchSnapshot();
49
+ });
50
+ });
51
+ });
52
+ describe('Labels', function () {
53
+ it('should render labels', function () {
54
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
55
+ maxLabel: "max",
56
+ minLabel: "min"
57
+ }))),
58
+ getByText = _render6.getByText;
59
+
60
+ expect(getByText('max')).toHaveTextContent('max');
61
+ expect(getByText('min')).toHaveTextContent('min');
62
+ });
63
+ });
64
+ describe('Tooltip', function () {
65
+ it('should render tooltip', function () {
66
+ var _render7 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
67
+ values: [0],
68
+ tooltip: [{
69
+ ribbon: 'ribbon',
70
+ title: 'title',
71
+ description: 'description',
72
+ visible: true
73
+ }]
74
+ }))),
75
+ container = _render7.container,
76
+ getByText = _render7.getByText,
77
+ getByRole = _render7.getByRole;
78
+
79
+ fireEvent.responderGrant(getByRole('adjustable'), {
80
+ touchHistory: {
81
+ touchBank: {}
82
+ }
83
+ });
84
+ expect(getByText('ribbon')).toBeTruthy();
85
+ expect(getByText('title')).toBeTruthy();
86
+ expect(getByText('description')).toBeTruthy();
87
+ expect(toJSON(container)).toMatchSnapshot();
88
+ });
89
+ it('should render tooltip on a specific step', function () {
90
+ var _render8 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Slider, {
91
+ values: [2],
92
+ tooltip: [{
93
+ ribbon: 'ribbon',
94
+ title: 'title',
95
+ description: 'description',
96
+ visible: true,
97
+ step: 2
98
+ }]
99
+ }))),
100
+ container = _render8.container,
101
+ getByText = _render8.getByText,
102
+ getByRole = _render8.getByRole;
103
+
104
+ fireEvent.responderGrant(getByRole('adjustable'), {
105
+ touchHistory: {
106
+ touchBank: {}
107
+ }
108
+ });
109
+ expect(getByText('ribbon')).toBeTruthy();
110
+ expect(getByText('title')).toBeTruthy();
111
+ expect(getByText('description')).toBeTruthy();
112
+ expect(toJSON(container)).toMatchSnapshot();
113
+ });
114
+ });
115
+ });
@@ -0,0 +1,14 @@
1
+ import styled from 'styled-components';
2
+ import { bool } from 'prop-types';
3
+ var Step = styled.View(function (_ref) {
4
+ var active = _ref.active,
5
+ slider = _ref.theme.yoga.components.slider;
6
+ return "\n background-color: " + (active ? slider.step.backgroundColor.active : slider.step.backgroundColor.inactive) + ";\n border-radius: " + slider.step.border.radius + "px;\n height: 10px;\n width: 10px;\n ";
7
+ });
8
+ Step.propTypes = {
9
+ active: bool
10
+ };
11
+ Step.defaultProps = {
12
+ active: false
13
+ };
14
+ export default Step;