@gympass/yoga 7.66.0 → 7.67.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 (220) hide show
  1. package/cjs/Dialog/web/Dialog.js +12 -7
  2. package/cjs/Drawer/web/Drawer.js +5 -1
  3. package/cjs/Feedback/web/Feedback.js +16 -10
  4. package/esm/Accordion/web/Accordion.test.js +19 -0
  5. package/esm/ActionRequirement/index.native.js +2 -0
  6. package/esm/ActionRequirement/native/ActionRequirement.js +48 -0
  7. package/esm/ActionRequirement/native/ActionRequirement.test.js +45 -0
  8. package/esm/ActionRequirement/native/ActionRequirementStyles.js +25 -0
  9. package/esm/ActionRequirement/native/index.js +6 -0
  10. package/esm/ActionRequirement/web/ActionRequirement.test.js +36 -0
  11. package/esm/AutoComplete/web/AutoComplete.test.js +139 -0
  12. package/esm/Avatar/index.native.js +4 -0
  13. package/esm/Avatar/native/Avatar.js +96 -0
  14. package/esm/Avatar/native/Avatar.test.js +46 -0
  15. package/esm/Avatar/native/AvatarCircle.js +24 -0
  16. package/esm/Avatar/web/Avatar.test.js +63 -0
  17. package/esm/Banner/index.native.js +2 -0
  18. package/esm/Banner/native/Banner.js +128 -0
  19. package/esm/Banner/native/Banner.test.js +103 -0
  20. package/esm/Banner/native/index.js +2 -0
  21. package/esm/Banner/web/Banner.test.js +109 -0
  22. package/esm/BottomSheet/web/BottomSheet.test.js +48 -0
  23. package/esm/Box/index.native.js +2 -0
  24. package/esm/Box/native/Box.js +4 -0
  25. package/esm/Box/native/Box.test.js +16 -0
  26. package/esm/Box/native/index.js +2 -0
  27. package/esm/Box/web/Box.test.js +16 -0
  28. package/esm/Button/index.native.js +8 -0
  29. package/esm/Button/native/Button.js +110 -0
  30. package/esm/Button/native/Button.test.js +475 -0
  31. package/esm/Button/native/Icon.js +82 -0
  32. package/esm/Button/native/Link.js +35 -0
  33. package/esm/Button/native/Text.js +74 -0
  34. package/esm/Button/native/withTouchable.js +63 -0
  35. package/esm/Button/web/Button.test.js +772 -0
  36. package/esm/Card/index.native.js +2 -0
  37. package/esm/Card/native/Card/Actions.js +12 -0
  38. package/esm/Card/native/Card/Card.js +92 -0
  39. package/esm/Card/native/Card/Card.test.js +15 -0
  40. package/esm/Card/native/Card/Content.js +8 -0
  41. package/esm/Card/native/Card/Header.js +8 -0
  42. package/esm/Card/native/Card/index.js +8 -0
  43. package/esm/Card/native/EventCard/EventCard.js +169 -0
  44. package/esm/Card/native/EventCard/EventCard.test.js +65 -0
  45. package/esm/Card/native/EventCard/index.js +2 -0
  46. package/esm/Card/native/GymCard/CheckIn/Avatar.js +17 -0
  47. package/esm/Card/native/GymCard/CheckIn/CheckIn.js +66 -0
  48. package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +39 -0
  49. package/esm/Card/native/GymCard/CheckIn/Content.js +11 -0
  50. package/esm/Card/native/GymCard/CheckIn/Header.js +11 -0
  51. package/esm/Card/native/GymCard/CheckIn/index.js +2 -0
  52. package/esm/Card/native/GymCard/index.js +5 -0
  53. package/esm/Card/native/PlanCard/Actions.js +22 -0
  54. package/esm/Card/native/PlanCard/Content.js +75 -0
  55. package/esm/Card/native/PlanCard/List.js +73 -0
  56. package/esm/Card/native/PlanCard/PlanCard.js +51 -0
  57. package/esm/Card/native/PlanCard/PlanCard.test.js +84 -0
  58. package/esm/Card/native/PlanCard/Subtitle.js +15 -0
  59. package/esm/Card/native/PlanCard/Tag.js +34 -0
  60. package/esm/Card/native/PlanCard/index.js +15 -0
  61. package/esm/Card/native/index.js +5 -0
  62. package/esm/Card/web/Card/Card.test.js +14 -0
  63. package/esm/Card/web/EventCard/EventCard.test.js +27 -0
  64. package/esm/Card/web/PlanCard/PlanCard.test.js +94 -0
  65. package/esm/Checkbox/index.native.js +3 -0
  66. package/esm/Checkbox/native/Checkbox.js +179 -0
  67. package/esm/Checkbox/native/Checkbox.test.js +115 -0
  68. package/esm/Checkbox/native/Switch.js +115 -0
  69. package/esm/Checkbox/native/Switch.test.js +54 -0
  70. package/esm/Checkbox/native/index.js +3 -0
  71. package/esm/Checkbox/web/Checkbox.test.js +153 -0
  72. package/esm/Checkbox/web/Switch.test.js +56 -0
  73. package/esm/Chips/index.native.js +2 -0
  74. package/esm/Chips/native/Chips.js +104 -0
  75. package/esm/Chips/native/Chips.test.js +143 -0
  76. package/esm/Chips/native/Counter.js +20 -0
  77. package/esm/Chips/native/index.js +2 -0
  78. package/esm/Chips/web/Chips.test.js +128 -0
  79. package/esm/Datepicker/web/Datepicker.test.js +247 -0
  80. package/esm/Dialog/web/Dialog.js +13 -8
  81. package/esm/Dialog/web/Dialog.test.js +62 -0
  82. package/esm/Divider/index.native.js +2 -0
  83. package/esm/Divider/native/Divider.js +29 -0
  84. package/esm/Divider/native/Divider.test.js +29 -0
  85. package/esm/Divider/native/index.js +2 -0
  86. package/esm/Divider/web/Divider.test.js +29 -0
  87. package/esm/Drawer/web/Drawer.js +6 -2
  88. package/esm/Drawer/web/Drawer.test.js +33 -0
  89. package/esm/Dropdown/index.native.js +2 -0
  90. package/esm/Dropdown/native/Backdrop.js +93 -0
  91. package/esm/Dropdown/native/Backdrop.test.js +26 -0
  92. package/esm/Dropdown/native/Dropdown.js +142 -0
  93. package/esm/Dropdown/native/Dropdown.test.js +78 -0
  94. package/esm/Dropdown/native/Options.android.js +66 -0
  95. package/esm/Dropdown/native/Options.ios.js +71 -0
  96. package/esm/Dropdown/native/index.js +2 -0
  97. package/esm/Dropdown/web/Dropdown.test.js +93 -0
  98. package/esm/Feedback/web/Feedback.js +17 -11
  99. package/esm/Feedback/web/Feedback.test.js +94 -0
  100. package/esm/Grid/web/Col.test.js +48 -0
  101. package/esm/Grid/web/Container.test.js +14 -0
  102. package/esm/Grid/web/Hide.test.js +31 -0
  103. package/esm/Grid/web/Row.test.js +14 -0
  104. package/esm/Header/web/Header.test.js +38 -0
  105. package/esm/Heading/web/Heading.test.js +58 -0
  106. package/esm/Icon/index.native.js +2 -0
  107. package/esm/Icon/native/Icon.test.js +47 -0
  108. package/esm/Icon/native/index.js +2 -0
  109. package/esm/Icon/web/Icon.test.js +47 -0
  110. package/esm/Input/index.native.js +6 -0
  111. package/esm/Input/native/Email.js +15 -0
  112. package/esm/Input/native/Email.test.js +13 -0
  113. package/esm/Input/native/Helper.js +62 -0
  114. package/esm/Input/native/Input.js +234 -0
  115. package/esm/Input/native/Input.test.js +181 -0
  116. package/esm/Input/native/Number.js +12 -0
  117. package/esm/Input/native/Number.test.js +13 -0
  118. package/esm/Input/native/Password.js +112 -0
  119. package/esm/Input/native/Password.test.js +125 -0
  120. package/esm/Input/native/Tel.js +14 -0
  121. package/esm/Input/native/Tel.test.js +13 -0
  122. package/esm/Input/native/index.js +6 -0
  123. package/esm/Input/web/Email.test.js +13 -0
  124. package/esm/Input/web/Input.test.js +145 -0
  125. package/esm/Input/web/Number.test.js +13 -0
  126. package/esm/Input/web/Password.test.js +90 -0
  127. package/esm/Input/web/Phone.test.js +95 -0
  128. package/esm/Input/web/Tel.test.js +13 -0
  129. package/esm/List/index.native.js +3 -0
  130. package/esm/List/native/List.js +22 -0
  131. package/esm/List/native/List.test.js +106 -0
  132. package/esm/List/native/ListItem.js +51 -0
  133. package/esm/List/native/index.js +3 -0
  134. package/esm/List/web/List.test.js +62 -0
  135. package/esm/Menu/web/Menu.test.js +115 -0
  136. package/esm/Popover/web/Popover.test.js +19 -0
  137. package/esm/Progress/index.native.js +2 -0
  138. package/esm/Progress/native/Progress.js +103 -0
  139. package/esm/Progress/native/Progress.test.js +222 -0
  140. package/esm/Progress/native/index.js +2 -0
  141. package/esm/Progress/web/Progress.test.js +222 -0
  142. package/esm/RadioGroup/index.native.js +4 -0
  143. package/esm/RadioGroup/native/Button/RadioButton.js +64 -0
  144. package/esm/RadioGroup/native/Button/RadioButton.test.js +96 -0
  145. package/esm/RadioGroup/native/Radio/Radio.js +88 -0
  146. package/esm/RadioGroup/native/Radio/Radio.test.js +112 -0
  147. package/esm/RadioGroup/native/RadioGroup.js +66 -0
  148. package/esm/RadioGroup/native/RadioGroup.test.js +50 -0
  149. package/esm/RadioGroup/native/index.js +4 -0
  150. package/esm/RadioGroup/web/Button/RadioButton.test.js +121 -0
  151. package/esm/RadioGroup/web/Radio/Radio.test.js +108 -0
  152. package/esm/RadioGroup/web/RadioGroup.test.js +83 -0
  153. package/esm/Rating/index.native.js +2 -0
  154. package/esm/Rating/native/Rating.js +186 -0
  155. package/esm/Rating/native/Rating.test.js +121 -0
  156. package/esm/Rating/native/index.js +2 -0
  157. package/esm/Rating/web/Rating.test.js +184 -0
  158. package/esm/Result/index.native.js +8 -0
  159. package/esm/Result/native/Attendances.js +55 -0
  160. package/esm/Result/native/Details.js +97 -0
  161. package/esm/Result/native/Rate.js +35 -0
  162. package/esm/Result/native/Result.js +86 -0
  163. package/esm/Result/native/Result.test.js +107 -0
  164. package/esm/Result/native/ResultButton.js +13 -0
  165. package/esm/Result/native/Tags.js +41 -0
  166. package/esm/Result/native/TinyTextIcon.js +18 -0
  167. package/esm/Result/native/index.js +2 -0
  168. package/esm/Skeleton/index.native.js +2 -0
  169. package/esm/Skeleton/native/Skeleton.js +94 -0
  170. package/esm/Skeleton/native/Skeleton.test.js +78 -0
  171. package/esm/Skeleton/native/index.js +2 -0
  172. package/esm/Skeleton/web/Skeleton.test.js +77 -0
  173. package/esm/Slider/index.native.js +2 -0
  174. package/esm/Slider/native/Label.js +19 -0
  175. package/esm/Slider/native/Marker.js +68 -0
  176. package/esm/Slider/native/Slider.js +156 -0
  177. package/esm/Slider/native/Slider.test.js +122 -0
  178. package/esm/Slider/native/Step.js +14 -0
  179. package/esm/Slider/native/Tooltip.js +90 -0
  180. package/esm/Slider/web/Slider.test.js +86 -0
  181. package/esm/Snackbar/index.native.js +2 -0
  182. package/esm/Snackbar/native/Snackbar.js +199 -0
  183. package/esm/Snackbar/native/Snackbar.test.js +100 -0
  184. package/esm/Snackbar/native/SnackbarAnimationWrapper.js +124 -0
  185. package/esm/Snackbar/native/index.js +2 -0
  186. package/esm/Snackbar/web/Snackbar.test.js +118 -0
  187. package/esm/Stepper/index.native.js +3 -0
  188. package/esm/Stepper/native/Dots.js +45 -0
  189. package/esm/Stepper/native/Line.js +35 -0
  190. package/esm/Stepper/native/Step.js +19 -0
  191. package/esm/Stepper/native/Stepper.js +52 -0
  192. package/esm/Stepper/native/Stepper.test.js +70 -0
  193. package/esm/Stepper/native/index.js +3 -0
  194. package/esm/Stepper/web/Stepper.test.js +67 -0
  195. package/esm/Tag/index.native.js +4 -0
  196. package/esm/Tag/native/Informative.js +72 -0
  197. package/esm/Tag/native/Tag.js +75 -0
  198. package/esm/Tag/native/Tag.test.js +94 -0
  199. package/esm/Tag/native/index.js +2 -0
  200. package/esm/Tag/web/Tag.test.js +79 -0
  201. package/esm/Text/index.native.js +16 -0
  202. package/esm/Text/native/Text.js +69 -0
  203. package/esm/Text/native/Text.test.js +149 -0
  204. package/esm/Text/native/index.js +2 -0
  205. package/esm/Text/web/Text.test.js +149 -0
  206. package/esm/TextArea/index.native.js +2 -0
  207. package/esm/TextArea/native/TextArea.js +59 -0
  208. package/esm/TextArea/native/TextArea.test.js +11 -0
  209. package/esm/TextArea/native/index.js +2 -0
  210. package/esm/TextArea/web/TextArea.test.js +11 -0
  211. package/esm/Theme/Provider/index.native.js +2 -0
  212. package/esm/Theme/Provider/native/index.js +2 -0
  213. package/esm/Theme/Provider/web/FontLoader.test.js +11 -0
  214. package/esm/Theme/Provider/web/GlobalStyle.test.js +17 -0
  215. package/esm/Theme/helpers/themeReader/native/native.test.js +53 -0
  216. package/esm/Theme/helpers/themeReader/web/web.test.js +41 -0
  217. package/esm/Theme/index.native.js +5 -0
  218. package/esm/index.native.js +26 -0
  219. package/esm/shared/index.native.js +2 -0
  220. package/package.json +2 -2
@@ -0,0 +1,104 @@
1
+ var _excluded = ["children", "selected", "counter", "icons", "disabled", "onToggle", "onPress", "theme"];
2
+
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
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 { number, arrayOf, bool, func, node } from 'prop-types';
13
+ import styled, { css, withTheme } from 'styled-components';
14
+ import { TouchableWithoutFeedback } from 'react-native';
15
+ import Counter from './Counter';
16
+ import { theme } from '../../Theme';
17
+ import Text from '../../Text';
18
+ import Icon from '../../Icon';
19
+ var Wrapper = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n height: 32px;\n max-width: 216px;\n\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n\n margin-right: ", "px;\n padding: ", "px;\n\n border-style: solid;\n border-color: ", ";\n border-radius: ", "px;\n border-width: ", "px;\n\n background-color: ", ";\n\n overflow: hidden;\n\n ", "\n\n ", "\n"])), theme.spacing.xxsmall, theme.spacing.xxsmall, theme.colors.elements.lineAndBorders, theme.radii.small, theme.borders.small, theme.colors.white, function (_ref) {
20
+ var disabled = _ref.disabled;
21
+ return disabled ? css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n color: ", ";\n\n border-color: ", ";\n "])), theme.colors.elements.backgroundAndDisabled, theme.colors.elements.selectionAndIcons, theme.colors.elements.lineAndBorders) : '';
22
+ }, function (_ref2) {
23
+ var selected = _ref2.selected;
24
+ return selected ? css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n border-color: transparent;\n "])), theme.colors.yoga) : '';
25
+ });
26
+ var StyledChips = styled(Text)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n font-size: ", "px;\n line-height: ", "px;\n\n flex-shrink: 1;\n\n ", "\n"])), theme.fontSizes.xsmall, theme.lineHeights.xxsmall, function (_ref3) {
27
+ var selected = _ref3.selected;
28
+ return selected ? css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), theme.colors.primary) : '';
29
+ });
30
+ var Chips = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
31
+ var children = _ref4.children,
32
+ selected = _ref4.selected,
33
+ counter = _ref4.counter,
34
+ icons = _ref4.icons,
35
+ disabled = _ref4.disabled,
36
+ onToggle = _ref4.onToggle,
37
+ _ref4$onPress = _ref4.onPress,
38
+ onPress = _ref4$onPress === void 0 ? onToggle : _ref4$onPress,
39
+ spacing = _ref4.theme.yoga.spacing,
40
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded);
41
+
42
+ var FirstIcon = icons[0],
43
+ SecondIcon = icons[1];
44
+ return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, _extends({
45
+ onPress: onPress,
46
+ ref: ref
47
+ }, props), /*#__PURE__*/React.createElement(Wrapper, {
48
+ disabled: disabled,
49
+ selected: selected
50
+ }, SecondIcon && /*#__PURE__*/React.createElement(Icon, {
51
+ as: SecondIcon,
52
+ fill: selected ? 'primary' : 'secondary',
53
+ width: "small",
54
+ height: "small",
55
+ style: {
56
+ marginRight: children ? spacing.xxxsmall : undefined
57
+ }
58
+ }), /*#__PURE__*/React.createElement(StyledChips, {
59
+ as: selected ? Text.Medium : Text,
60
+ selected: selected,
61
+ numberOfLines: 1
62
+ }, children), selected && counter && !disabled && /*#__PURE__*/React.createElement(Counter, {
63
+ value: counter
64
+ }), FirstIcon && /*#__PURE__*/React.createElement(Icon, {
65
+ as: FirstIcon,
66
+ fill: selected ? 'primary' : 'secondary',
67
+ width: "small",
68
+ height: "small",
69
+ style: {
70
+ marginLeft: children ? spacing.xxxsmall : undefined
71
+ }
72
+ })));
73
+ });
74
+ Chips.propTypes = {
75
+ /** text to be displayed */
76
+ children: node,
77
+
78
+ /** if the chip is selected */
79
+ selected: bool,
80
+
81
+ /** will display a three digit number, if the value is greater than 999 a plus
82
+ * sign will be displayed instead. ex: "+999" */
83
+ counter: number,
84
+
85
+ /** disable chip */
86
+ disabled: bool,
87
+
88
+ /** a list of max two icons from @gympass/yoga-icons package */
89
+ icons: arrayOf(func),
90
+
91
+ /** onPress event */
92
+ onToggle: func,
93
+ onPress: func
94
+ };
95
+ Chips.defaultProps = {
96
+ children: undefined,
97
+ selected: false,
98
+ disabled: false,
99
+ counter: undefined,
100
+ icons: [],
101
+ onToggle: undefined,
102
+ onPress: undefined
103
+ };
104
+ export default withTheme(Chips);
@@ -0,0 +1,143 @@
1
+ import React from 'react';
2
+ import { render, fireEvent } from '@testing-library/react-native';
3
+ import { MapPin, ChevronDown } from '@gympass/yoga-icons';
4
+ import { ThemeProvider, Chips } from '../..';
5
+ describe('<Chips />', function () {
6
+ describe('Snapshots', function () {
7
+ it('should match snapshot', function () {
8
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"))),
9
+ container = _render.container,
10
+ toJSON = _render.toJSON;
11
+
12
+ expect(toJSON(container)).toMatchSnapshot();
13
+ });
14
+ it('should match snapshot with disabled prop', function () {
15
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
16
+ disabled: true
17
+ }, "Classes"))),
18
+ container = _render2.container,
19
+ toJSON = _render2.toJSON;
20
+
21
+ expect(toJSON(container)).toMatchSnapshot();
22
+ });
23
+ it('should match snapshot with more than one Chip', function () {
24
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"), /*#__PURE__*/React.createElement(Chips, null, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, null, "Personal trainers"))),
25
+ container = _render3.container,
26
+ toJSON = _render3.toJSON;
27
+
28
+ expect(toJSON(container)).toMatchSnapshot();
29
+ });
30
+ it('should match snapshot with a long text', function () {
31
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes with a very long text"))),
32
+ container = _render4.container,
33
+ toJSON = _render4.toJSON;
34
+
35
+ expect(toJSON(container)).toMatchSnapshot();
36
+ });
37
+ describe('selected', function () {
38
+ it('should match snapshot', function () {
39
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
40
+ selected: true
41
+ }, "Classes"))),
42
+ container = _render5.container,
43
+ toJSON = _render5.toJSON;
44
+
45
+ expect(toJSON(container)).toMatchSnapshot();
46
+ });
47
+ it('should match snapshot with more than one Chip', function () {
48
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"), /*#__PURE__*/React.createElement(Chips, {
49
+ selected: true
50
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
51
+ selected: true
52
+ }, "Personal trainers"))),
53
+ container = _render6.container,
54
+ toJSON = _render6.toJSON;
55
+
56
+ expect(toJSON(container)).toMatchSnapshot();
57
+ });
58
+ });
59
+ describe('counter', function () {
60
+ it('should match snapshot', function () {
61
+ var _render7 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
62
+ counter: 8
63
+ }, "Classes"))),
64
+ container = _render7.container,
65
+ toJSON = _render7.toJSON;
66
+
67
+ expect(toJSON(container)).toMatchSnapshot();
68
+ });
69
+ it('should match snapshot with more than one Chip', function () {
70
+ var _render8 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
71
+ counter: 8
72
+ }, "Classes"), /*#__PURE__*/React.createElement(Chips, {
73
+ counter: 52,
74
+ selected: true
75
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
76
+ counter: 1732,
77
+ selected: true
78
+ }, "Personal trainers"))),
79
+ container = _render8.container,
80
+ toJSON = _render8.toJSON;
81
+
82
+ expect(toJSON(container)).toMatchSnapshot();
83
+ });
84
+ });
85
+ describe('icon', function () {
86
+ it('should match selected snapshot', function () {
87
+ var _render9 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
88
+ counter: 8,
89
+ icon: [MapPin]
90
+ }, "Location"), /*#__PURE__*/React.createElement(Chips, {
91
+ counter: 8,
92
+ icon: [MapPin, ChevronDown]
93
+ }, "Classes"), /*#__PURE__*/React.createElement(Chips, {
94
+ icon: [MapPin, ChevronDown]
95
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
96
+ icon: [MapPin]
97
+ }, "Personal trainers"), /*#__PURE__*/React.createElement(Chips, {
98
+ counter: 8,
99
+ selected: true,
100
+ icon: [MapPin]
101
+ }, "Activities"), /*#__PURE__*/React.createElement(Chips, {
102
+ counter: 8,
103
+ selected: true,
104
+ icon: [MapPin, ChevronDown]
105
+ }, "Language"), /*#__PURE__*/React.createElement(Chips, {
106
+ selected: true,
107
+ icon: [MapPin, ChevronDown]
108
+ }, "Categories"), /*#__PURE__*/React.createElement(Chips, {
109
+ selected: true,
110
+ icon: [MapPin]
111
+ }, "Availability"))),
112
+ container = _render9.container,
113
+ toJSON = _render9.toJSON;
114
+
115
+ expect(toJSON(container)).toMatchSnapshot();
116
+ });
117
+ });
118
+ });
119
+ describe('Events', function () {
120
+ it('should toggle using onPress', function () {
121
+ var toggleMock = jest.fn();
122
+
123
+ var _render10 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
124
+ onPress: toggleMock
125
+ }, "Classes"))),
126
+ getByText = _render10.getByText;
127
+
128
+ fireEvent.press(getByText('Classes'));
129
+ expect(toggleMock).toHaveBeenCalled();
130
+ });
131
+ it('should toggle using onToggle', function () {
132
+ var toggleMock = jest.fn();
133
+
134
+ var _render11 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
135
+ onToggle: toggleMock
136
+ }, "Classes"))),
137
+ getByText = _render11.getByText;
138
+
139
+ fireEvent.press(getByText('Classes'));
140
+ expect(toggleMock).toHaveBeenCalled();
141
+ });
142
+ });
143
+ });
@@ -0,0 +1,20 @@
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 styled from 'styled-components';
7
+ import { number, oneOfType, string } from 'prop-types';
8
+ import { theme } from '../../Theme';
9
+ import Text from '../../Text';
10
+ var Wrapper = styled(Text.Medium)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n height: 16px;\n min-width: 16px;\n\n padding-right: 5px;\n padding-left: 5px;\n margin-left: ", "px;\n\n color: ", ";\n font-size: ", "px;\n line-height: ", "px;\n\n border-radius: ", "px;\n background-color: ", ";\n\n overflow: hidden;\n"])), theme.spacing.xxxsmall, theme.colors.white, theme.fontSizes.xsmall, theme.lineHeights.xsmall, theme.radii.small, theme.colors.primary);
11
+
12
+ var Counter = function Counter(_ref) {
13
+ var value = _ref.value;
14
+ return /*#__PURE__*/React.createElement(Wrapper, null, Number(value) > 999 ? '+999' : value);
15
+ };
16
+
17
+ Counter.propTypes = {
18
+ value: oneOfType([number, string]).isRequired
19
+ };
20
+ export default Counter;
@@ -0,0 +1,2 @@
1
+ import Chips from './Chips';
2
+ export default Chips;
@@ -0,0 +1,128 @@
1
+ import React from 'react';
2
+ import { fireEvent, render } from '@testing-library/react';
3
+ import { MapPin, ChevronDown } from '@gympass/yoga-icons';
4
+ import { ThemeProvider, Chips } from '../..';
5
+ describe('<Chips />', function () {
6
+ describe('Snapshots', function () {
7
+ it('should match snapshot', function () {
8
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"))),
9
+ container = _render.container;
10
+
11
+ expect(container).toMatchSnapshot();
12
+ });
13
+ it('should match snapshot with disabled prop', function () {
14
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
15
+ disabled: true
16
+ }, "Classes"))),
17
+ container = _render2.container;
18
+
19
+ expect(container).toMatchSnapshot();
20
+ });
21
+ it('should match snapshot with more than one Chip', function () {
22
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"), /*#__PURE__*/React.createElement(Chips, null, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, null, "Personal trainers"))),
23
+ container = _render3.container;
24
+
25
+ expect(container).toMatchSnapshot();
26
+ });
27
+ describe('selected', function () {
28
+ it('should match snapshot', function () {
29
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
30
+ selected: true
31
+ }, "Classes"))),
32
+ container = _render4.container;
33
+
34
+ expect(container).toMatchSnapshot();
35
+ });
36
+ it('should match snapshot with more than one Chip', function () {
37
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, null, "Classes"), /*#__PURE__*/React.createElement(Chips, {
38
+ selected: true
39
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
40
+ selected: true
41
+ }, "Personal trainers"))),
42
+ container = _render5.container;
43
+
44
+ expect(container).toMatchSnapshot();
45
+ });
46
+ });
47
+ describe('counter', function () {
48
+ it('should match snapshot', function () {
49
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
50
+ counter: 8
51
+ }, "Classes"))),
52
+ container = _render6.container;
53
+
54
+ expect(container).toMatchSnapshot();
55
+ });
56
+ it('should match snapshot with more than one Chip', function () {
57
+ var _render7 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
58
+ counter: 8
59
+ }, "Classes"), /*#__PURE__*/React.createElement(Chips, {
60
+ counter: 52,
61
+ selected: true
62
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
63
+ counter: 1732,
64
+ selected: true
65
+ }, "Personal trainers"))),
66
+ container = _render7.container;
67
+
68
+ expect(container).toMatchSnapshot();
69
+ });
70
+ });
71
+ describe('icon', function () {
72
+ it('should match selected snapshot', function () {
73
+ var _render8 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
74
+ counter: 8,
75
+ icon: [MapPin]
76
+ }, "Location"), /*#__PURE__*/React.createElement(Chips, {
77
+ counter: 8,
78
+ icon: [MapPin, ChevronDown]
79
+ }, "Classes"), /*#__PURE__*/React.createElement(Chips, {
80
+ icon: [MapPin, ChevronDown]
81
+ }, "Gyms and studios"), /*#__PURE__*/React.createElement(Chips, {
82
+ icon: [MapPin]
83
+ }, "Personal trainers"), /*#__PURE__*/React.createElement(Chips, {
84
+ counter: 8,
85
+ selected: true,
86
+ icon: [MapPin]
87
+ }, "Activities"), /*#__PURE__*/React.createElement(Chips, {
88
+ counter: 8,
89
+ selected: true,
90
+ icon: [MapPin, ChevronDown]
91
+ }, "Language"), /*#__PURE__*/React.createElement(Chips, {
92
+ selected: true,
93
+ icon: [MapPin, ChevronDown]
94
+ }, "Categories"), /*#__PURE__*/React.createElement(Chips, {
95
+ selected: true,
96
+ icon: [MapPin]
97
+ }, "Availability"))),
98
+ container = _render8.container;
99
+
100
+ expect(container).toMatchSnapshot();
101
+ });
102
+ });
103
+ });
104
+ describe('Events', function () {
105
+ it('should toggle', function () {
106
+ var toggleMock = jest.fn();
107
+
108
+ var _render9 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
109
+ onClick: toggleMock
110
+ }, "Classes"))),
111
+ getByText = _render9.getByText;
112
+
113
+ fireEvent.click(getByText('Classes'));
114
+ expect(toggleMock).toHaveBeenCalled();
115
+ });
116
+ it('should toggle using onToggle', function () {
117
+ var toggleMock = jest.fn();
118
+
119
+ var _render10 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Chips, {
120
+ onToggle: toggleMock
121
+ }, "Classes"))),
122
+ getByText = _render10.getByText;
123
+
124
+ fireEvent.click(getByText('Classes'));
125
+ expect(toggleMock).toHaveBeenCalled();
126
+ });
127
+ });
128
+ });
@@ -0,0 +1,247 @@
1
+ import React from 'react';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { format } from 'date-fns';
4
+ import { ThemeProvider, Datepicker } from '../..';
5
+ import { toUTC } from './Datepicker';
6
+ describe('<Datepicker />', function () {
7
+ var testDate = new Date(2022, 7, 3, 14, 0, 0);
8
+ describe('Snapshots', function () {
9
+ it('should match with single Datepicker', function () {
10
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
11
+ type: "single"
12
+ }))),
13
+ container = _render.container;
14
+
15
+ expect(container).toMatchSnapshot();
16
+ });
17
+ it('should match with range Datepicker', function () {
18
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
19
+ type: "range"
20
+ }))),
21
+ container = _render2.container;
22
+
23
+ expect(container).toMatchSnapshot();
24
+ });
25
+ it('should match with default selected date single Datepicker', function () {
26
+ jest.useFakeTimers('modern').setSystemTime(testDate);
27
+
28
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
29
+ type: "single",
30
+ startDate: testDate
31
+ }))),
32
+ container = _render3.container;
33
+
34
+ expect(container).toMatchSnapshot();
35
+ });
36
+ it('should match with default selected dates range Datepicker', function () {
37
+ jest.useFakeTimers('modern').setSystemTime(testDate);
38
+ var endDate = new Date();
39
+ endDate.setDate(testDate.getDate() + 15);
40
+
41
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
42
+ type: "range",
43
+ startDate: testDate,
44
+ endDate: endDate
45
+ }))),
46
+ container = _render4.container;
47
+
48
+ expect(container).toMatchSnapshot();
49
+ });
50
+ it('should match with custom placeholder single Datepicker', function () {
51
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
52
+ type: "single",
53
+ placeholder: "This is a custom placeholder :)"
54
+ }))),
55
+ container = _render5.container;
56
+
57
+ expect(container).toMatchSnapshot();
58
+ });
59
+ it('should match with disabled past dates Datepicker', function () {
60
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
61
+ type: "single",
62
+ disablePastDates: true
63
+ }))),
64
+ container = _render6.container;
65
+
66
+ expect(container).toMatchSnapshot();
67
+ });
68
+ it('should match with disabled future dates Datepicker', function () {
69
+ var _render7 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
70
+ type: "single",
71
+ disableFutureDates: true
72
+ }))),
73
+ container = _render7.container;
74
+
75
+ expect(container).toMatchSnapshot();
76
+ });
77
+ it('should match with disabled Datepicker', function () {
78
+ var _render8 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
79
+ type: "single",
80
+ disabled: true
81
+ }))),
82
+ container = _render8.container;
83
+
84
+ expect(container).toMatchSnapshot();
85
+ });
86
+ it('should match with error Datepicker', function () {
87
+ var _render9 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
88
+ type: "single",
89
+ error: "This is an error"
90
+ }))),
91
+ container = _render9.container;
92
+
93
+ expect(container).toMatchSnapshot();
94
+ });
95
+ });
96
+ describe('Unit', function () {
97
+ var dateFormat = 'MMM d, yyyy';
98
+ it('should call onSelectSingle function on single Datepicker', function () {
99
+ var onSelectSingle = jest.fn();
100
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
101
+ type: "single",
102
+ onSelectSingle: onSelectSingle
103
+ })));
104
+ expect(onSelectSingle).not.toHaveBeenCalled();
105
+ fireEvent.click(screen.getByRole('button'));
106
+ var day10 = screen.queryAllByText('10')[0];
107
+ fireEvent.click(day10);
108
+ expect(onSelectSingle).toHaveBeenCalledTimes(1);
109
+ });
110
+ it('should call onSelectRange function on range Datepicker', function () {
111
+ var onSelectRange = jest.fn();
112
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
113
+ type: "range",
114
+ onSelectRange: onSelectRange
115
+ })));
116
+ expect(onSelectRange).not.toHaveBeenCalled();
117
+ fireEvent.click(screen.getByRole('button'));
118
+ var day10 = screen.queryAllByText('10')[0];
119
+ var day20 = screen.queryAllByText('20')[0];
120
+ fireEvent.click(day10);
121
+ expect(onSelectRange).toHaveBeenCalledTimes(1);
122
+ fireEvent.click(day20);
123
+ expect(onSelectRange).toHaveBeenCalledTimes(2);
124
+ });
125
+ it('should call onCustomSelectRange function on range Datepicker', function () {
126
+ var onCustomSelectRange = jest.fn();
127
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
128
+ type: "range",
129
+ onSelectRange: onCustomSelectRange
130
+ })));
131
+ expect(onCustomSelectRange).not.toHaveBeenCalled();
132
+ fireEvent.click(screen.getByRole('button'));
133
+ var day10 = screen.queryAllByText('10')[0];
134
+ var day20 = screen.queryAllByText('20')[0];
135
+ fireEvent.click(day10);
136
+ expect(onCustomSelectRange).toHaveBeenCalledTimes(1);
137
+ fireEvent.click(day20);
138
+ expect(onCustomSelectRange).toHaveBeenCalledTimes(2);
139
+ });
140
+ it('should display default date on single Datepicker', function () {
141
+ var currentDate = new Date();
142
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
143
+ type: "single",
144
+ startDate: currentDate
145
+ })));
146
+ var formattedDate = format(toUTC(currentDate), dateFormat);
147
+ expect(screen.getByText(formattedDate)).toBeVisible();
148
+ });
149
+ it('should display default date range on range Datepicker', function () {
150
+ var currentDate = new Date();
151
+ var end = new Date();
152
+ end.setDate(currentDate.getDate() + 15);
153
+ var formattedStartDate = format(toUTC(currentDate), dateFormat);
154
+ var formattedEndDate = format(toUTC(end), dateFormat);
155
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
156
+ type: "range",
157
+ startDate: currentDate,
158
+ endDate: end
159
+ })));
160
+ expect(screen.getByText(formattedStartDate + " - " + formattedEndDate)).toBeVisible();
161
+ });
162
+ it('should display custom placeholder and "Select Date" if none is provided', function () {
163
+ var _render10 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
164
+ type: "single",
165
+ placeholder: "This is a custom placeholder :)"
166
+ }))),
167
+ rerender = _render10.rerender;
168
+
169
+ expect(screen.getByText('This is a custom placeholder :)')).toBeVisible();
170
+ rerender( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
171
+ type: "single"
172
+ })));
173
+ expect(screen.getByText('Select Date')).toBeVisible();
174
+ });
175
+ it('should disable past dates', function () {
176
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
177
+ type: "single",
178
+ disablePastDates: true
179
+ })));
180
+ fireEvent.click(screen.getByRole('button'));
181
+ var previousMonthArrow = screen.getByTestId('previous-month-arrow');
182
+ fireEvent.click(previousMonthArrow);
183
+ [].concat(Array(25)).forEach(function (_e, i) {
184
+ return expect(screen.getAllByText("" + (i + 1))[0].closest('div')).toHaveAttribute('disabled');
185
+ });
186
+ });
187
+ it('should disable future dates', function () {
188
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
189
+ type: "single",
190
+ startDate: testDate,
191
+ disableFutureDates: true
192
+ })));
193
+ fireEvent.click(screen.getByRole('button'));
194
+ var nextMonthArrow = screen.getByTestId('next-month-arrow');
195
+ fireEvent.click(nextMonthArrow);
196
+ [].concat(Array(25)).forEach(function (_e, i) {
197
+ return expect(screen.getAllByText("" + (i + 1))[0].closest('div')).toHaveAttribute('disabled');
198
+ });
199
+ });
200
+ it('should disable past dates from specific date', function () {
201
+ jest.useFakeTimers('modern').setSystemTime(testDate);
202
+ var date = new Date();
203
+ date.setDate(testDate.getDate() + 15);
204
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
205
+ type: "single",
206
+ disablePastFrom: date
207
+ })));
208
+ fireEvent.click(screen.getByRole('button'));
209
+
210
+ for (var i = 1; i <= 17; i++) {
211
+ expect(screen.getAllByText("" + i)[0].closest('div')).toHaveAttribute('disabled');
212
+ }
213
+ });
214
+ it('should disable future dates from specific date', function () {
215
+ jest.useFakeTimers('modern').setSystemTime(testDate);
216
+ var date = new Date();
217
+ date.setDate(testDate.getDate() + 15);
218
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
219
+ type: "single",
220
+ disableFutureFrom: date
221
+ })));
222
+ fireEvent.click(screen.getByRole('button'));
223
+
224
+ for (var i = 19; i <= 31; i++) {
225
+ expect(screen.getAllByText("" + i)[0].closest('div')).toHaveAttribute('disabled');
226
+ }
227
+ });
228
+ it('should be disabled', function () {
229
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
230
+ type: "single",
231
+ startDate: testDate,
232
+ disabled: true
233
+ })));
234
+ var formattedDate = format(toUTC(testDate), dateFormat);
235
+ var datepickerInput = screen.getByText(formattedDate);
236
+ expect(datepickerInput).toHaveAttribute('disabled');
237
+ expect(datepickerInput.closest('div')).toHaveAttribute('disabled');
238
+ });
239
+ it('should display an error', function () {
240
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
241
+ type: "single",
242
+ error: "This is an error"
243
+ })));
244
+ expect(screen.getByText('This is an error')).toBeVisible();
245
+ });
246
+ });
247
+ });