@gympass/yoga 7.48.0 → 7.50.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.
@@ -0,0 +1,200 @@
1
+ import React from 'react';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import moment from 'moment';
4
+ import { ThemeProvider, Datepicker } from '../..';
5
+ describe('<Datepicker />', function () {
6
+ var testDate = new Date(2022, 7, 3);
7
+ describe('Snapshots', function () {
8
+ it('should match with single Datepicker', function () {
9
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
10
+ type: "single"
11
+ }))),
12
+ container = _render.container;
13
+
14
+ expect(container).toMatchSnapshot();
15
+ });
16
+ it('should match with range Datepicker', function () {
17
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
18
+ type: "range"
19
+ }))),
20
+ container = _render2.container;
21
+
22
+ expect(container).toMatchSnapshot();
23
+ });
24
+ it('should match with default selected date single Datepicker', function () {
25
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
26
+ type: "single",
27
+ startDate: testDate
28
+ }))),
29
+ container = _render3.container;
30
+
31
+ expect(container).toMatchSnapshot();
32
+ });
33
+ it('should match with default selected dates range Datepicker', function () {
34
+ var endDate = new Date();
35
+ endDate.setDate(testDate.getDate() + 15);
36
+
37
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
38
+ type: "range",
39
+ startDate: testDate,
40
+ endDate: endDate
41
+ }))),
42
+ container = _render4.container;
43
+
44
+ expect(container).toMatchSnapshot();
45
+ });
46
+ it('should match with custom placeholder single Datepicker', function () {
47
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
48
+ type: "single",
49
+ placeholder: "This is a custom placeholder :)"
50
+ }))),
51
+ container = _render5.container;
52
+
53
+ expect(container).toMatchSnapshot();
54
+ });
55
+ it('should match with disabled past dates Datepicker', function () {
56
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
57
+ type: "single",
58
+ disablePastDates: true
59
+ }))),
60
+ container = _render6.container;
61
+
62
+ expect(container).toMatchSnapshot();
63
+ });
64
+ it('should match with disabled future dates Datepicker', function () {
65
+ var _render7 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
66
+ type: "single",
67
+ disableFutureDates: true
68
+ }))),
69
+ container = _render7.container;
70
+
71
+ expect(container).toMatchSnapshot();
72
+ });
73
+ it('should match with disabled Datepicker', function () {
74
+ var _render8 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
75
+ type: "single",
76
+ disabled: true
77
+ }))),
78
+ container = _render8.container;
79
+
80
+ expect(container).toMatchSnapshot();
81
+ });
82
+ it('should match with error Datepicker', function () {
83
+ var _render9 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
84
+ type: "single",
85
+ error: "This is an error"
86
+ }))),
87
+ container = _render9.container;
88
+
89
+ expect(container).toMatchSnapshot();
90
+ });
91
+ });
92
+ describe('Unit', function () {
93
+ var dateFormat = 'MMM D, YYYY';
94
+ it('should call onSelectSingle function on single Datepicker', function () {
95
+ var onSelectSingle = jest.fn();
96
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
97
+ type: "single",
98
+ onSelectSingle: onSelectSingle
99
+ })));
100
+ expect(onSelectSingle).toHaveBeenCalledTimes(1);
101
+ fireEvent.click(screen.getByRole('button'));
102
+ var day10 = screen.queryAllByText('10')[0];
103
+ fireEvent.click(day10);
104
+ expect(onSelectSingle).toHaveBeenCalledTimes(2);
105
+ });
106
+ it('should call onSelectRange function on range Datepicker', function () {
107
+ var onSelectRange = jest.fn();
108
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
109
+ type: "range",
110
+ onSelectRange: onSelectRange
111
+ })));
112
+ expect(onSelectRange).toHaveBeenCalledTimes(1);
113
+ fireEvent.click(screen.getByRole('button'));
114
+ var day10 = screen.queryAllByText('10')[0];
115
+ var day20 = screen.queryAllByText('20')[0];
116
+ fireEvent.click(day10);
117
+ expect(onSelectRange).toHaveBeenCalledTimes(2);
118
+ fireEvent.click(day20);
119
+ expect(onSelectRange).toHaveBeenCalledTimes(3);
120
+ });
121
+ it('should display default date on single Datepicker', function () {
122
+ var currentDate = new Date();
123
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
124
+ type: "single",
125
+ startDate: currentDate
126
+ })));
127
+ var formattedDate = moment(currentDate).format(dateFormat);
128
+ expect(screen.getByText(formattedDate)).toBeVisible();
129
+ });
130
+ it('should display default date range on range Datepicker', function () {
131
+ var currentDate = new Date();
132
+ var end = new Date();
133
+ end.setDate(currentDate.getDate() + 15);
134
+ var formattedStartDate = moment(currentDate).format(dateFormat);
135
+ var formattedEndDate = moment(end).format(dateFormat);
136
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
137
+ type: "range",
138
+ startDate: currentDate,
139
+ endDate: end
140
+ })));
141
+ expect(screen.getByText(formattedStartDate + " - " + formattedEndDate)).toBeVisible();
142
+ });
143
+ it('should display custom placeholder and "Select Date" if none is provided', function () {
144
+ var _render10 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
145
+ type: "single",
146
+ placeholder: "This is a custom placeholder :)"
147
+ }))),
148
+ rerender = _render10.rerender;
149
+
150
+ expect(screen.getByText('This is a custom placeholder :)')).toBeVisible();
151
+ rerender( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
152
+ type: "single"
153
+ })));
154
+ expect(screen.getByText('Select Date')).toBeVisible();
155
+ });
156
+ it('should disable past dates', function () {
157
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
158
+ type: "single",
159
+ disablePastDates: true
160
+ })));
161
+ fireEvent.click(screen.getByRole('button'));
162
+ var previousMonthArrow = screen.getByTestId('previous-month-arrow');
163
+ fireEvent.click(previousMonthArrow);
164
+ [].concat(Array(25)).forEach(function (_e, i) {
165
+ return expect(screen.getAllByText("" + (i + 1))[0].closest('div')).toHaveAttribute('disabled');
166
+ });
167
+ });
168
+ it('should disable future dates', function () {
169
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
170
+ type: "single",
171
+ startDate: testDate,
172
+ disableFutureDates: true
173
+ })));
174
+ fireEvent.click(screen.getByRole('button'));
175
+ var nextMonthArrow = screen.getByTestId('next-month-arrow');
176
+ fireEvent.click(nextMonthArrow);
177
+ [].concat(Array(25)).forEach(function (_e, i) {
178
+ return expect(screen.getAllByText("" + (i + 1))[0].closest('div')).toHaveAttribute('disabled');
179
+ });
180
+ });
181
+ it('should be disabled', function () {
182
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
183
+ type: "single",
184
+ startDate: testDate,
185
+ disabled: true
186
+ })));
187
+ var formattedDate = moment(testDate).format(dateFormat);
188
+ var datepickerInput = screen.getByText(formattedDate);
189
+ expect(datepickerInput).toHaveAttribute('disabled');
190
+ expect(datepickerInput.closest('div')).toHaveAttribute('disabled');
191
+ });
192
+ it('should display an error', function () {
193
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Datepicker, {
194
+ type: "single",
195
+ error: "This is an error"
196
+ })));
197
+ expect(screen.getByText('This is an error')).toBeVisible();
198
+ });
199
+ });
200
+ });
@@ -0,0 +1,2 @@
1
+ import Datepicker from './Datepicker';
2
+ export default Datepicker;
@@ -22,7 +22,7 @@ export var StyledDialog = styled(Card)(_templateObject || (_templateObject = _ta
22
22
  });
23
23
  var Overlay = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
24
24
  var dialog = _ref2.theme.yoga.components.dialog;
25
- return "\n display: flex;\n z-index: 1;\n justify-content: center;\n align-items: center;\n\n position: fixed;\n top: " + dialog.position["default"] + ";\n right: " + dialog.position["default"] + ";\n left: " + dialog.position["default"] + ";\n bottom: " + dialog.position["default"] + ";\n\n background-color: rgba(35, 27, 34, 0.48);\n ";
25
+ return "\n display: flex;\n z-index: 3;\n justify-content: center;\n align-items: center;\n\n position: fixed;\n top: " + dialog.position["default"] + ";\n right: " + dialog.position["default"] + ";\n left: " + dialog.position["default"] + ";\n bottom: " + dialog.position["default"] + ";\n\n background-color: rgba(35, 27, 34, 0.48);\n ";
26
26
  });
27
27
 
28
28
  var Dialog = function Dialog(_ref3) {
@@ -0,0 +1,16 @@
1
+ var Drawer = function Drawer(_ref) {
2
+ var spacing = _ref.spacing;
3
+ return {
4
+ padding: {
5
+ top: spacing.small,
6
+ right: spacing.xxxlarge,
7
+ bottom: spacing.xxlarge,
8
+ left: spacing.xxxlarge
9
+ },
10
+ width: {
11
+ "default": 600
12
+ }
13
+ };
14
+ };
15
+
16
+ export default Drawer;
@@ -0,0 +1,2 @@
1
+ import Drawer from './web';
2
+ export default Drawer;
@@ -0,0 +1,21 @@
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 { node } from 'prop-types';
8
+ import Dialog from '../../Dialog';
9
+ var StyledDrawer = styled(Dialog)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n border-radius: 0!important;\n height: 100%;\n align-self: flex-end;\n position: absolute;\n right: 0;\n animation: content;\n animation-duration: 400ms;\n animation-fill-mode: forwards;\n transition: 0.25s ease-in-out;\n @keyframes content {\n 0% {\n transform: translate3d(100%, 0, 0);\n }\n }\n"])), function (_ref) {
10
+ var drawer = _ref.theme.yoga.components.drawer;
11
+ return "\n padding: " + drawer.padding.top + "px " + drawer.padding.right + "px " + drawer.padding.bottom + "px " + drawer.padding.left + "px;\n width: " + drawer.width["default"] + "px;\n ";
12
+ });
13
+
14
+ function Drawer(props) {
15
+ return /*#__PURE__*/React.createElement(StyledDrawer, props);
16
+ }
17
+
18
+ Drawer.propTypes = {
19
+ children: node.isRequired
20
+ };
21
+ export default Drawer;
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { screen, render, fireEvent, cleanup } from '@testing-library/react';
3
+ import { ThemeProvider, Button } from '../..';
4
+ import Drawer from '.';
5
+ describe('<Drawer />', function () {
6
+ afterEach(cleanup);
7
+ it('should match snapshot', function () {
8
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Drawer, {
9
+ isOpen: true
10
+ }, /*#__PURE__*/React.createElement(Drawer.Header, null, "Title"), /*#__PURE__*/React.createElement(Drawer.Content, null, "Subtitle"), /*#__PURE__*/React.createElement(Drawer.Footer, null, /*#__PURE__*/React.createElement(Button, {
11
+ secondary: true
12
+ }, "Ok, got it"))))),
13
+ baseElement = _render.baseElement;
14
+
15
+ expect(baseElement).toMatchSnapshot();
16
+ });
17
+ it('should render a minimal drawer', function () {
18
+ var onActionMock = jest.fn();
19
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Drawer, {
20
+ isOpen: true
21
+ }, /*#__PURE__*/React.createElement(Drawer.Header, null, "Title"), /*#__PURE__*/React.createElement(Drawer.Content, null, "Subtitle"), /*#__PURE__*/React.createElement(Drawer.Footer, null, /*#__PURE__*/React.createElement(Button, {
22
+ onClick: onActionMock,
23
+ secondary: true
24
+ }, "Ok, got it")))));
25
+ screen.getByText('Title');
26
+ screen.getByText('Subtitle');
27
+ var button = screen.getByRole('button', {
28
+ name: /Ok, got it/i
29
+ });
30
+ fireEvent.click(button);
31
+ expect(onActionMock).toHaveBeenCalledTimes(1);
32
+ });
33
+ });
@@ -0,0 +1,15 @@
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
+
6
+ function Footer(props) {
7
+ return /*#__PURE__*/React.createElement(Box, _extends({
8
+ as: "footer",
9
+ width: "100%",
10
+ d: "flex"
11
+ }, props));
12
+ }
13
+
14
+ Footer.displayName = 'Drawer.Footer';
15
+ export default Footer;
@@ -0,0 +1,15 @@
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
+
6
+ var Header = function Header(props) {
7
+ return /*#__PURE__*/React.createElement(Box, _extends({
8
+ as: "header",
9
+ width: "100%",
10
+ color: "text.primary"
11
+ }, props));
12
+ };
13
+
14
+ Header.displayName = 'Drawer.Header';
15
+ export default Header;
@@ -0,0 +1,8 @@
1
+ import Drawer from './Drawer';
2
+ import Header from './Header';
3
+ import Content from './Content';
4
+ import Footer from './Footer';
5
+ Drawer.Header = Header;
6
+ Drawer.Content = Content;
7
+ Drawer.Footer = Footer;
8
+ export default Drawer;
@@ -12,8 +12,10 @@ import _componentThemes_Card$Card from "./../../Card/Card.theme.js";
12
12
  import _componentThemes_Card$CardWeb from "./../../Card/Card.web.theme.js";
13
13
  import _componentThemes_Checkbox$Checkbox from "./../../Checkbox/Checkbox.theme.js";
14
14
  import _componentThemes_Checkbox$CheckboxSwitch from "./../../Checkbox/CheckboxSwitch.theme.js";
15
+ import _componentThemes_Datepicker$Datepicker from "./../../Datepicker/Datepicker.theme.js";
15
16
  import _componentThemes_Dialog$Dialog from "./../../Dialog/Dialog.theme.js";
16
17
  import _componentThemes_Divider$Divider from "./../../Divider/Divider.theme.js";
18
+ import _componentThemes_Drawer$Drawer from "./../../Drawer/Drawer.theme.js";
17
19
  import _componentThemes_Dropdown$Dropdown from "./../../Dropdown/Dropdown.theme.js";
18
20
  import _componentThemes_Feedback$Feedback from "./../../Feedback/Feedback.theme.js";
19
21
  import _componentThemes_Grid$Grid from "./../../Grid/Grid.theme.js";
@@ -45,8 +47,10 @@ var componentThemes = {
45
47
  Card$CardWeb: _componentThemes_Card$CardWeb,
46
48
  Checkbox$Checkbox: _componentThemes_Checkbox$Checkbox,
47
49
  Checkbox$CheckboxSwitch: _componentThemes_Checkbox$CheckboxSwitch,
50
+ Datepicker$Datepicker: _componentThemes_Datepicker$Datepicker,
48
51
  Dialog$Dialog: _componentThemes_Dialog$Dialog,
49
52
  Divider$Divider: _componentThemes_Divider$Divider,
53
+ Drawer$Drawer: _componentThemes_Drawer$Drawer,
50
54
  Dropdown$Dropdown: _componentThemes_Dropdown$Dropdown,
51
55
  Feedback$Feedback: _componentThemes_Feedback$Feedback,
52
56
  Grid$Grid: _componentThemes_Grid$Grid,
package/esm/index.js CHANGED
@@ -28,5 +28,7 @@ import Menu from './Menu';
28
28
  import Banner from './Banner';
29
29
  import Heading from './Heading';
30
30
  import Feedback from './Feedback';
31
+ import Datepicker from './Datepicker';
32
+ import Drawer from './Drawer';
31
33
  import Skeleton from './Skeleton';
32
- export { ThemeProvider, FontLoader, createTheme, yogaTheme, theme, Button, List, Checkbox, RadioGroup, Slider, Card, PlanCard, Stepper, Container, Row, Col, Hide, Text, Rating, EventCard, Tag, Input, Progress, Dropdown, TextArea, AutoComplete, Icon, Chips, Box, Snackbar, Avatar, BottomSheet, Dialog, Divider, Header, Menu, Banner, Heading, Feedback, Skeleton };
34
+ export { ThemeProvider, FontLoader, createTheme, yogaTheme, theme, Button, List, Checkbox, RadioGroup, Slider, Card, PlanCard, Stepper, Container, Row, Col, Hide, Text, Rating, EventCard, Tag, Input, Progress, Dropdown, TextArea, AutoComplete, Icon, Chips, Box, Snackbar, Avatar, BottomSheet, Dialog, Divider, Header, Menu, Banner, Heading, Feedback, Datepicker, Drawer, Skeleton };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gympass/yoga",
3
- "version": "7.48.0",
3
+ "version": "7.50.0",
4
4
  "description": "Gympass component library",
5
5
  "main": "./cjs",
6
6
  "sideEffects": false,
@@ -28,7 +28,7 @@
28
28
  "@gympass/yoga-common": "^1.1.1",
29
29
  "@gympass/yoga-helpers": "^1.0.3",
30
30
  "@gympass/yoga-icons": "^1.5.0",
31
- "@gympass/yoga-illustrations": "^0.5.0",
31
+ "@gympass/yoga-illustrations": "^0.5.1",
32
32
  "@gympass/yoga-system": "^0.10.2",
33
33
  "@gympass/yoga-tokens": "^3.1.4",
34
34
  "@ptomasroos/react-native-multi-slider": "^1.0.0",
@@ -51,7 +51,7 @@
51
51
  "react": ">=16",
52
52
  "styled-components": "^4.4.0"
53
53
  },
54
- "gitHead": "8320df5bc9056099b35bf713b2c2b6ce819e28a9",
54
+ "gitHead": "2e47f0194f1ae130b94a7ab79f757e7b92a99c0c",
55
55
  "module": "./esm",
56
56
  "private": false,
57
57
  "react-native": "./cjs/index.native.js"