@occmundial/occ-atomic 3.0.0-beta.7 → 3.0.0-beta.70
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +549 -0
- package/build/Avatar/Avatar.js +69 -21
- package/build/Avatar/Avatar.test.js +15 -8
- package/build/Avatar/AvatarContent/AvatarContent.js +61 -21
- package/build/Avatar/AvatarContent/AvatarContent.test.js +4 -18
- package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +75 -15
- package/build/Avatar/AvatarContent/styles.js +88 -21
- package/build/Avatar/__snapshots__/Avatar.test.js.snap +11 -2
- package/build/Avatar/styles.js +18 -7
- package/build/Banner/Banner.js +30 -40
- package/build/Banner/Banner.test.js +64 -17
- package/build/Banner/__snapshots__/Banner.test.js.snap +0 -28
- package/build/Banner/index.js +1 -6
- package/build/Button/Button.js +1 -1
- package/build/Button/Button.test.js +0 -11
- package/build/Button/__snapshots__/Button.test.js.snap +63 -67
- package/build/Button/styles.js +42 -75
- package/build/Checkbox/Checkbox.js +48 -3
- package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +81 -49
- package/build/Checkbox/styles.js +91 -48
- package/build/Drawer/Drawer.js +40 -0
- package/build/{Header/Nav/Nav.js → Drawer/index.js} +54 -39
- package/build/Drawer/index.test.js +52 -0
- package/build/Drawer/styles.js +61 -0
- package/build/Droplist/__snapshots__/Droplist.test.js.snap +5 -5
- package/build/Fab/__snapshots__/Fab.test.js.snap +2 -2
- package/build/Footer/Footer.js +81 -87
- package/build/Footer/List/List.js +89 -124
- package/build/Footer/List/styles.js +85 -31
- package/build/Footer/__snapshots__/Footer.test.js.snap +109 -59
- package/build/Footer/styles.js +116 -51
- package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
- package/build/Grid/Col/styles.js +12 -6
- package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
- package/build/Grid/Row/styles.js +15 -5
- package/build/Grid/styles.js +26 -9
- package/build/Menu/Menu.js +96 -0
- package/build/Menu/index.js +34 -0
- package/build/Menu/styles.js +25 -0
- package/build/MenuDivider/MenuDivider.js +47 -0
- package/build/MenuDivider/index.js +18 -0
- package/build/MenuDivider/styles.js +21 -0
- package/build/MenuItem/MenuItem.js +160 -0
- package/build/{Header/Menu → MenuItem}/index.js +2 -2
- package/build/MenuItem/styles.js +25 -0
- package/build/MenuItemBase/MenuItemBase.js +94 -0
- package/build/MenuItemBase/index.js +18 -0
- package/build/MenuItemBase/styles.js +57 -0
- package/build/MenuList/MenuList.js +71 -0
- package/build/{Header → MenuList}/index.js +2 -2
- package/build/MenuList/styles.js +54 -0
- package/build/MenuUser/MenuUser.js +152 -0
- package/build/MenuUser/index.js +18 -0
- package/build/MenuUser/styles.js +22 -0
- package/build/Modal/Modal.js +94 -66
- package/build/Modal/Modal.test.js +14 -7
- package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
- package/build/Modal/styles.js +165 -143
- package/build/NavAside/NavAside.js +54 -113
- package/build/NavAside/NavAside.test.js +0 -57
- package/build/NavAside/__snapshots__/NavAside.test.js.snap +35 -43
- package/build/NavAside/index.js +6 -0
- package/build/NavAside/styles.js +45 -63
- package/build/NavAvatarButton/NavAvatarButton.js +134 -0
- package/build/{NavIcon → NavAvatarButton}/index.js +2 -2
- package/build/NavAvatarButton/styles.js +33 -0
- package/build/NavButton/NavButton.js +73 -0
- package/build/{Header/Nav → NavButton}/index.js +2 -2
- package/build/NavButton/styles.js +79 -0
- package/build/NavItem/styles.js +4 -4
- package/build/NavTab/NavTab.js +45 -32
- package/build/NavTab/styles.js +59 -27
- package/build/NavTop/styles.js +6 -6
- package/build/OrderBy/OrderBy.js +2 -1
- package/build/Pager/Page/Page.js +11 -6
- package/build/Pager/Page/Page.test.js +13 -9
- package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
- package/build/Pager/Page/styles.js +48 -14
- package/build/Pager/Pager.js +144 -235
- package/build/Pager/Pager.test.js +81 -36
- package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
- package/build/Pager/styles.js +5 -40
- package/build/Pill/Choice/Choice.js +6 -4
- package/build/Pill/Choice/styles.js +13 -10
- package/build/Pill/Group/styles.js +5 -5
- package/build/Pill/Stack/Stack.js +2 -2
- package/build/Pill/Stack/styles.js +5 -8
- package/build/Placeholder/Placeholder.js +29 -12
- package/build/Placeholder/Placeholder.test.js +4 -4
- package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
- package/build/Placeholder/styles.js +86 -42
- package/build/Provider/MenuListProvider.js +38 -0
- package/build/Provider/usePrevious.js +1 -1
- package/build/Radio/Radio.js +22 -7
- package/build/Radio/__snapshots__/Radio.test.js.snap +71 -79
- package/build/Radio/styles.js +84 -85
- package/build/SlideDown/SlideDown.js +167 -169
- package/build/SlideDown/SlideDown.test.js +49 -44
- package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
- package/build/SlideDown/styles.js +51 -20
- package/build/SlideToggle/SlideToggle.js +38 -6
- package/build/SlideToggle/SlideToggle.test.js +2 -2
- package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -38
- package/build/SlideToggle/styles.js +64 -45
- package/build/Tabs/Tab/Tab.js +73 -0
- package/build/Tabs/Tab/index.js +34 -0
- package/build/Tabs/Tab/index.test.js +132 -0
- package/build/Tabs/Tab/styles.js +74 -0
- package/build/Tabs/TabContent/TabContent.js +76 -0
- package/build/Tabs/TabContent/index.js +34 -0
- package/build/Tabs/TabContent/index.test.js +68 -0
- package/build/Tabs/TabContent/styles.js +23 -0
- package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
- package/build/Tabs/TabIndicator/index.js +34 -0
- package/build/Tabs/TabIndicator/styles.js +24 -0
- package/build/Tabs/TabList/TabList.js +108 -0
- package/build/Tabs/TabList/index.js +34 -0
- package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
- package/build/Tabs/Tabs.js +74 -0
- package/build/Tabs/context.js +94 -0
- package/build/Tabs/index.js +34 -0
- package/build/Tabs/index.test.js +157 -0
- package/build/Tabs/styles.js +19 -0
- package/build/Tag/Tag.js +2 -2
- package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
- package/build/Tag/styles.js +76 -82
- package/build/Text/Text.js +2 -1
- package/build/TextField/TextField.js +7 -6
- package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
- package/build/TextField/styles.js +3 -0
- package/build/Tip/Tip.js +62 -95
- package/build/Tip/Tip.test.js +29 -6
- package/build/Tip/TipText/index.js +32 -0
- package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
- package/build/Tip/styles.js +125 -31
- package/build/Toaster/Toast/Toast.js +76 -64
- package/build/Toaster/Toast/styles.js +118 -46
- package/build/Toaster/Toaster.js +3 -2
- package/build/Toaster/Toaster.test.js +5 -2
- package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
- package/build/Toaster/functions.js +4 -0
- package/build/Toaster/styles.js +3 -3
- package/build/Tooltip/Tooltip.js +73 -22
- package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
- package/build/Tooltip/styles.js +32 -10
- package/build/index.js +33 -19
- package/build/plugin/babel.js +0 -2
- package/build/subatomic/grid.js +5 -5
- package/build/tokens/colors.json +94 -60
- package/build/tokens/shadows.json +3 -3
- package/package.json +5 -2
- package/build/Banner/styles.js +0 -41
- package/build/Header/Header.js +0 -163
- package/build/Header/Header.test.js +0 -118
- package/build/Header/Menu/Menu.js +0 -135
- package/build/Header/Menu/Menu.test.js +0 -107
- package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
- package/build/Header/Menu/styles.js +0 -123
- package/build/Header/Nav/Nav.test.js +0 -81
- package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
- package/build/Header/Nav/styles.js +0 -110
- package/build/Header/__snapshots__/Header.test.js.snap +0 -79
- package/build/Header/styles.js +0 -94
- package/build/NavIcon/NavIcon.js +0 -112
- package/build/NavIcon/styles.js +0 -81
- package/build/Pager/Break/Break.js +0 -27
- package/build/Pager/Break/Break.test.js +0 -53
- package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
- package/build/Pager/Break/index.js +0 -18
- /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -14,7 +14,7 @@ var _Text = _interopRequireDefault(require("../Text"));
|
|
14
14
|
|
15
15
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
16
16
|
|
17
|
-
var _colors = _interopRequireDefault(require("../
|
17
|
+
var _colors = _interopRequireDefault(require("../tokens/colors.json"));
|
18
18
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
20
20
|
|
@@ -44,23 +44,16 @@ describe('SlideDown', function () {
|
|
44
44
|
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
45
45
|
expanded: true,
|
46
46
|
classes: classes,
|
47
|
-
title: "Title"
|
47
|
+
title: "Title",
|
48
|
+
testId: "slidedown-test"
|
48
49
|
}));
|
49
|
-
expect(wrapper.find(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
});
|
55
|
-
wrapper.setState({
|
56
|
-
toggled: false
|
57
|
-
});
|
58
|
-
expect(wrapper.find({
|
59
|
-
'data-testid': 'slidedown__arrow-down'
|
60
|
-
}).prop('style')).toEqual({
|
61
|
-
transform: '',
|
62
|
-
transition: '0.3s all'
|
50
|
+
expect(wrapper.find('Icon .rotateIcon').length).toBe(1);
|
51
|
+
wrapper.find({
|
52
|
+
"data-testid": 'slidedown-test'
|
53
|
+
}).simulate('click', {
|
54
|
+
stopPropagation: function stopPropagation() {}
|
63
55
|
});
|
56
|
+
expect(wrapper.find('Icon .rotateIcon').length).toBe(0);
|
64
57
|
});
|
65
58
|
it('shows a Tag on the title', function () {
|
66
59
|
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
@@ -75,31 +68,17 @@ describe('SlideDown', function () {
|
|
75
68
|
it('renders the child content', function () {
|
76
69
|
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
77
70
|
classes: classes,
|
78
|
-
title: "Title"
|
79
|
-
|
80
|
-
expect(wrapper.find('.content').length).toBe(0);
|
81
|
-
wrapper.setState({
|
82
|
-
expanded: true
|
83
|
-
});
|
84
|
-
expect(wrapper.find('.content').length).toBe(1);
|
85
|
-
expect(wrapper.find('.content').text()).toEqual('Children content');
|
86
|
-
});
|
87
|
-
it('correct render when prop expanded change', function () {
|
88
|
-
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
89
|
-
classes: classes,
|
90
|
-
title: "Title"
|
71
|
+
title: "Title",
|
72
|
+
testId: "slidedown-test"
|
91
73
|
}, "Children content"));
|
92
|
-
expect(wrapper.find('.
|
93
|
-
wrapper.
|
94
|
-
|
95
|
-
})
|
96
|
-
|
97
|
-
wrapper.setProps({
|
98
|
-
expanded: false
|
74
|
+
expect(wrapper.find('.showContent').length).toBe(0);
|
75
|
+
wrapper.find({
|
76
|
+
"data-testid": 'slidedown-test'
|
77
|
+
}).simulate('click', {
|
78
|
+
stopPropagation: function stopPropagation() {}
|
99
79
|
});
|
100
|
-
|
101
|
-
|
102
|
-
}, 400);
|
80
|
+
expect(wrapper.find('.showContent').length).toBe(1);
|
81
|
+
expect(wrapper.find('.showContent').text()).toEqual('Children content');
|
103
82
|
});
|
104
83
|
it('Text have the right properties', function () {
|
105
84
|
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
@@ -107,20 +86,46 @@ describe('SlideDown', function () {
|
|
107
86
|
textSize: 'lg',
|
108
87
|
title: "Title"
|
109
88
|
}, "Children content"));
|
110
|
-
expect(wrapper.find(_Text["default"]).props().
|
89
|
+
expect(wrapper.find(_Text["default"]).props().extraLarge).toEqual(true);
|
111
90
|
});
|
112
91
|
it('Text and Icon has theme color', function () {
|
113
92
|
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
114
93
|
classes: classes,
|
115
94
|
title: "Title"
|
116
95
|
}, "Children content"));
|
117
|
-
expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].
|
118
|
-
expect(wrapper.find(_Text["default"]).props().
|
96
|
+
expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].icon["default"].bold]);
|
97
|
+
expect(wrapper.find(_Text["default"]).props().primary).toBeFalsy();
|
119
98
|
wrapper.setProps({
|
120
99
|
theme: 'blue'
|
121
100
|
});
|
122
|
-
expect(wrapper.find(_Text["default"]).props().
|
123
|
-
expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].
|
101
|
+
expect(wrapper.find(_Text["default"]).props().primary).toEqual(true);
|
102
|
+
expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].icon.brand["default"]]);
|
103
|
+
});
|
104
|
+
it('render a custom title', function () {
|
105
|
+
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_SlideDown["default"], {
|
106
|
+
customTitle: /*#__PURE__*/_react["default"].createElement("div", {
|
107
|
+
"data-testid": "custom-title",
|
108
|
+
style: {
|
109
|
+
display: 'flex',
|
110
|
+
gap: '24px',
|
111
|
+
alignItems: 'center'
|
112
|
+
}
|
113
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
114
|
+
style: {
|
115
|
+
margin: 0
|
116
|
+
}
|
117
|
+
}, "Custom ", /*#__PURE__*/_react["default"].createElement("b", null, "SlideDown"), " Title"), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
118
|
+
iconName: "search",
|
119
|
+
width: 16,
|
120
|
+
height: 16
|
121
|
+
})),
|
122
|
+
title: "This title should not render",
|
123
|
+
classes: classes
|
124
|
+
}, "Children content"));
|
125
|
+
expect(wrapper.find({
|
126
|
+
"data-testid": 'custom-title'
|
127
|
+
}).exists()).toEqual(true);
|
128
|
+
expect(wrapper.find('label').exists()).toEqual(false);
|
124
129
|
});
|
125
130
|
});
|
126
131
|
describe('SlideDownJSS', function () {
|
@@ -7,35 +7,64 @@ Object {
|
|
7
7
|
"button": Object {
|
8
8
|
"cursor": "pointer",
|
9
9
|
},
|
10
|
+
"buttonPadding": Object {
|
11
|
+
"paddingLeft": "16px",
|
12
|
+
"paddingRight": "16px",
|
13
|
+
},
|
10
14
|
"content": Object {
|
11
|
-
"
|
15
|
+
"overflow": "hidden",
|
16
|
+
"transform": "translateY(-10px)",
|
17
|
+
"transition": "transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
12
18
|
},
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
19
|
+
"contentWrapper": Object {
|
20
|
+
"display": "grid",
|
21
|
+
"gridTemplateRows": "0fr",
|
16
22
|
"opacity": 0,
|
17
|
-
"
|
23
|
+
"transition": "grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
24
|
+
},
|
25
|
+
"disabled": Object {
|
26
|
+
"cursor": "not-allowed",
|
27
|
+
},
|
28
|
+
"divider": Object {
|
29
|
+
"boxShadow": "inset 0 -1px 0px 0px #EDEDF1",
|
30
|
+
},
|
31
|
+
"flexContainer": Object {
|
32
|
+
"gap": "16px",
|
18
33
|
},
|
19
34
|
"icon": Object {
|
20
|
-
"
|
21
|
-
|
35
|
+
"transition": "rotate cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
36
|
+
},
|
37
|
+
"largePadding": Object {
|
38
|
+
"paddingBottom": "16px",
|
39
|
+
"paddingTop": "16px",
|
22
40
|
},
|
23
|
-
"
|
24
|
-
"
|
25
|
-
|
41
|
+
"leftIcon": Object {
|
42
|
+
"marginRight": "8px",
|
43
|
+
},
|
44
|
+
"normalPadding": Object {
|
45
|
+
"paddingBottom": "12px",
|
46
|
+
"paddingTop": "12px",
|
47
|
+
},
|
48
|
+
"rotateIcon": Object {
|
49
|
+
"transform": "rotate(-180deg)",
|
50
|
+
},
|
51
|
+
"showContent": Object {
|
52
|
+
"marginBottom": "12px",
|
53
|
+
"transform": "translateY(0px)",
|
54
|
+
"transition": "transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s",
|
55
|
+
},
|
56
|
+
"showContentWrapper": Object {
|
57
|
+
"gridTemplateRows": "1fr",
|
26
58
|
"opacity": 1,
|
59
|
+
"transition": "grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s",
|
27
60
|
},
|
28
61
|
"tag": Object {
|
29
|
-
"marginLeft":
|
30
|
-
"marginTop": 4,
|
62
|
+
"marginLeft": "8px",
|
31
63
|
"pointerEvents": "none",
|
32
64
|
},
|
33
65
|
"text": Object {
|
34
66
|
"cursor": "pointer",
|
35
67
|
},
|
36
|
-
"wrapper": Object {
|
37
|
-
"marginBottom": 16,
|
38
|
-
},
|
39
68
|
}
|
40
69
|
`;
|
41
70
|
|
@@ -5,42 +5,73 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports["default"] = void 0;
|
7
7
|
|
8
|
-
var _spacing = _interopRequireDefault(require("../
|
8
|
+
var _spacing = _interopRequireDefault(require("../tokens/spacing.json"));
|
9
|
+
|
10
|
+
var _colors = _interopRequireDefault(require("../tokens/colors.json"));
|
9
11
|
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
11
13
|
|
12
14
|
var _default = {
|
13
|
-
wrapper: {
|
14
|
-
marginBottom: _spacing["default"].small
|
15
|
-
},
|
16
15
|
button: {
|
17
16
|
cursor: 'pointer'
|
18
17
|
},
|
18
|
+
normalPadding: {
|
19
|
+
paddingTop: _spacing["default"]['size-3'],
|
20
|
+
paddingBottom: _spacing["default"]['size-3']
|
21
|
+
},
|
22
|
+
largePadding: {
|
23
|
+
paddingTop: _spacing["default"]['size-4'],
|
24
|
+
paddingBottom: _spacing["default"]['size-4']
|
25
|
+
},
|
26
|
+
buttonPadding: {
|
27
|
+
paddingLeft: _spacing["default"]['size-4'],
|
28
|
+
paddingRight: _spacing["default"]['size-4']
|
29
|
+
},
|
19
30
|
text: {
|
20
31
|
cursor: 'pointer'
|
21
32
|
},
|
33
|
+
tag: {
|
34
|
+
marginLeft: _spacing["default"]['size-2'],
|
35
|
+
pointerEvents: 'none'
|
36
|
+
},
|
37
|
+
icon: {
|
38
|
+
transition: 'rotate cubic-bezier(0.25,0.46,0.45,0.94) 0.2s'
|
39
|
+
},
|
40
|
+
leftIcon: {
|
41
|
+
marginRight: _spacing["default"]['size-2']
|
42
|
+
},
|
43
|
+
rotateIcon: {
|
44
|
+
transform: 'rotate(-180deg)'
|
45
|
+
},
|
22
46
|
content: {
|
23
|
-
|
47
|
+
overflow: 'hidden',
|
48
|
+
transform: 'translateY(-10px)',
|
49
|
+
transition: 'transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s'
|
24
50
|
},
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
marginBottom: _spacing["default"]
|
29
|
-
|
51
|
+
showContent: {
|
52
|
+
transform: 'translateY(0px)',
|
53
|
+
transition: 'transform cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s',
|
54
|
+
marginBottom: _spacing["default"]['size-3']
|
55
|
+
},
|
56
|
+
contentWrapper: {
|
57
|
+
display: 'grid',
|
58
|
+
gridTemplateRows: '0fr',
|
59
|
+
transition: 'grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s',
|
60
|
+
opacity: 0
|
30
61
|
},
|
31
|
-
|
62
|
+
showContentWrapper: {
|
32
63
|
opacity: 1,
|
33
|
-
|
34
|
-
|
64
|
+
gridTemplateRows: '1fr',
|
65
|
+
transition: 'grid-template-rows cubic-bezier(0.25,0.46,0.45,0.94) 0.2s, opacity cubic-bezier(0.25,0.46,0.45,0.94) 0.2s 0.05s'
|
35
66
|
},
|
36
|
-
|
37
|
-
|
38
|
-
marginLeft: _spacing["default"].tiny,
|
39
|
-
pointerEvents: 'none'
|
67
|
+
divider: {
|
68
|
+
boxShadow: "inset 0 -1px 0px 0px ".concat(_colors["default"].border["default"].subtle)
|
40
69
|
},
|
41
|
-
|
42
|
-
|
43
|
-
|
70
|
+
flexContainer: {
|
71
|
+
gap: _spacing["default"]['size-4']
|
72
|
+
},
|
73
|
+
disabled: {
|
74
|
+
cursor: 'not-allowed'
|
44
75
|
}
|
45
76
|
};
|
46
77
|
exports["default"] = _default;
|
@@ -13,6 +13,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
|
14
14
|
var _Text = _interopRequireDefault(require("../Text"));
|
15
15
|
|
16
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
17
|
+
|
18
|
+
var _colors = _interopRequireDefault(require("../tokens/colors.json"));
|
19
|
+
|
16
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
17
21
|
|
18
22
|
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); }
|
@@ -52,6 +56,7 @@ var SlideToggle = /*#__PURE__*/function (_React$Component) {
|
|
52
56
|
value: props.value
|
53
57
|
};
|
54
58
|
_this.toggle = _this.toggle.bind(_assertThisInitialized(_this));
|
59
|
+
_this.handleKeyUp = _this.handleKeyUp.bind(_assertThisInitialized(_this));
|
55
60
|
return _this;
|
56
61
|
}
|
57
62
|
|
@@ -79,6 +84,20 @@ var SlideToggle = /*#__PURE__*/function (_React$Component) {
|
|
79
84
|
if (onChange) onChange(value, id);
|
80
85
|
}
|
81
86
|
}
|
87
|
+
}, {
|
88
|
+
key: "handleKeyDown",
|
89
|
+
value: function handleKeyDown(e) {
|
90
|
+
if (e.keyCode == 13 || e.keyCode == 32) {
|
91
|
+
e.preventDefault();
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}, {
|
95
|
+
key: "handleKeyUp",
|
96
|
+
value: function handleKeyUp(e) {
|
97
|
+
if (e.keyCode == 13 || e.keyCode == 32) {
|
98
|
+
this.toggle();
|
99
|
+
}
|
100
|
+
}
|
82
101
|
}, {
|
83
102
|
key: "render",
|
84
103
|
value: function render() {
|
@@ -93,27 +112,40 @@ var SlideToggle = /*#__PURE__*/function (_React$Component) {
|
|
93
112
|
name = _this$props2.name,
|
94
113
|
trk = _this$props2.trk,
|
95
114
|
testId = _this$props2.testId;
|
115
|
+
var iconColor = disabled ? _colors["default"].icon["default"].disabled : value ? _colors["default"].icon.brand.bold : _colors["default"].icon.brand.disabled;
|
96
116
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
97
117
|
id: id,
|
98
|
-
tabIndex: -1,
|
118
|
+
tabIndex: disabled ? -1 : 0,
|
119
|
+
onKeyDown: this.handleKeyDown,
|
120
|
+
onKeyUp: this.handleKeyUp,
|
121
|
+
onClick: this.toggle,
|
99
122
|
className: "".concat(classes.cont).concat(disabled ? " ".concat(classes.disabled) : '').concat(className ? " ".concat(className) : ''),
|
100
123
|
style: style
|
124
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
125
|
+
className: classes.switchWrap
|
101
126
|
}, /*#__PURE__*/_react["default"].createElement("div", _extends({
|
102
127
|
id: trk,
|
103
128
|
name: name,
|
104
129
|
className: "".concat(classes["switch"]).concat(value ? " ".concat(classes.checked) : ''),
|
105
|
-
onClick: this.toggle,
|
106
130
|
"data-testid": testId
|
107
131
|
}, testId && {
|
108
132
|
'data-value': value ? 1 : 0
|
109
|
-
}), /*#__PURE__*/_react["default"].createElement("
|
110
|
-
className: classes.
|
133
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
134
|
+
className: classes.switchBg
|
111
135
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
136
|
+
className: classes.slider
|
137
|
+
}, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
138
|
+
iconName: value ? 'check' : 'x',
|
139
|
+
width: 16,
|
140
|
+
height: 16,
|
141
|
+
colors: [iconColor],
|
112
142
|
className: classes.icon
|
113
|
-
}))), label && /*#__PURE__*/_react["default"].createElement(
|
143
|
+
}))))), label && /*#__PURE__*/_react["default"].createElement("div", {
|
144
|
+
className: classes.labelWrap
|
145
|
+
}, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
|
114
146
|
tag: "label",
|
115
147
|
className: classes.label
|
116
|
-
}, label));
|
148
|
+
}, label)));
|
117
149
|
}
|
118
150
|
}]);
|
119
151
|
|
@@ -48,7 +48,7 @@ describe("SlideToggle", function () {
|
|
48
48
|
classes: classes
|
49
49
|
}));
|
50
50
|
expect(wrapper.find('.cont').exists()).toEqual(true);
|
51
|
-
wrapper.
|
51
|
+
wrapper.simulate('click');
|
52
52
|
expect(wrapper.find('.switch').hasClass('checked')).toEqual(true);
|
53
53
|
});
|
54
54
|
it('calls onChange function', function () {
|
@@ -57,7 +57,7 @@ describe("SlideToggle", function () {
|
|
57
57
|
classes: classes,
|
58
58
|
onChange: onChange
|
59
59
|
}));
|
60
|
-
wrapper.
|
60
|
+
wrapper.simulate('click');
|
61
61
|
expect(onChange.mock.calls.length).toBe(1);
|
62
62
|
});
|
63
63
|
it('shows the label', function () {
|
@@ -5,76 +5,91 @@ exports[`SlideToggle matches the snapshot 1`] = `ShallowWrapper {}`;
|
|
5
5
|
exports[`SlideToggle styles matches the snapshot 1`] = `
|
6
6
|
Object {
|
7
7
|
"checked": Object {
|
8
|
-
"& $icon": Object {
|
9
|
-
"background": "url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJCQkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgoJCTxwYXRoIGZpbGw9IiMwMDZFRkYiIGQ9Ik0xOC4zLDcuM2wxLjQsMS40bC04LjcsOWMtMC40LDAuNC0xLDAuNC0xLjQsMC4xbC00LjMtMy42bDEuMy0xLjVsMy42LDNDMTAuMiwxNS42LDE4LjMsNy4zLDE4LjMsNy4zeiIvPgoJCTwvc3ZnPg==)",
|
10
|
-
},
|
11
8
|
"& $slider": Object {
|
12
|
-
"left":
|
9
|
+
"left": "calc(100% - 28px)",
|
10
|
+
},
|
11
|
+
"& $switchBg": Object {
|
12
|
+
"background": "#0059CD",
|
13
13
|
},
|
14
|
-
"background": "#0059CD",
|
15
14
|
},
|
16
15
|
"cont": Object {
|
17
|
-
"&:
|
18
|
-
"
|
19
|
-
"boxShadow": "0 0 0 8px rgba(0,110,255,0.3)",
|
16
|
+
"&:active $switch $switchBg": Object {
|
17
|
+
"boxShadow": "inset 0 0 0 2px rgba(255,255,255,0.2)",
|
20
18
|
},
|
21
|
-
"&:focus $switch
|
22
|
-
"
|
23
|
-
"boxShadow": "0 0 0 8px hsl(221 91.2% 35.7% / 0.3)",
|
19
|
+
"&:focus-visible $switch": Object {
|
20
|
+
"boxShadow": "0 0 0 8px rgba(8, 60, 174, 0.3)",
|
24
21
|
},
|
25
|
-
"&:
|
26
|
-
"
|
22
|
+
"&:focus-visible $switch$checked": Object {
|
23
|
+
"boxShadow": "0 0 0 8px rgba(0,110,255,0.3)",
|
27
24
|
},
|
28
|
-
"&:hover $switch
|
25
|
+
"&:hover $switch $switchBg, &:active $switch $switchBg": Object {
|
29
26
|
"background": "#CAD5EE",
|
30
27
|
},
|
31
|
-
"
|
28
|
+
"&:hover $switch$checked $switchBg, &:active $switch$checked $switchBg": Object {
|
29
|
+
"background": "#083CAE",
|
30
|
+
},
|
31
|
+
"alignItems": "flex-start",
|
32
32
|
"boxSizing": "border-box",
|
33
33
|
"cursor": "pointer",
|
34
34
|
"display": "flex",
|
35
35
|
"outline": 0,
|
36
|
-
"paddingBottom": "8px",
|
37
|
-
"paddingTop": "8px",
|
38
36
|
},
|
39
37
|
"disabled": Object {
|
40
|
-
"& $
|
41
|
-
"background": "url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgICAgIAkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogICAgICAgIDxwYXRoIGZpbGw9IiNEM0Q0REMiIGQ9Ik0xMi4xLDEwLjhsNC42LTQuNkwxOCw3LjRMMTMuNCwxMmw0LjYsNC42TDE2LjcsMThsLTQuNi00LjZMNy40LDE4bC0xLjMtMS4zbDQuNi00LjZMNi4yLDcuNGwxLjMtMS4zTDEyLjEsMTAuOHoiLz4KICAgICAgICA8L3N2Zz4=)",
|
42
|
-
},
|
43
|
-
"& $switch": Object {
|
38
|
+
"& $switch $switchBg": Object {
|
44
39
|
"background": "#EDEDF1",
|
40
|
+
"boxShadow": "inset 0 0 0 1px #D3D4DC",
|
45
41
|
},
|
46
42
|
"pointerEvents": "none",
|
47
43
|
},
|
48
44
|
"icon": Object {
|
49
|
-
"
|
50
|
-
"display": "block",
|
51
|
-
"height": "100%",
|
52
|
-
"transition": "0.3s all",
|
53
|
-
"width": "100%",
|
45
|
+
"margin": 4,
|
54
46
|
},
|
55
47
|
"label": Object {
|
56
|
-
"
|
48
|
+
"cursor": "pointer",
|
49
|
+
"marginLeft": "12px",
|
50
|
+
},
|
51
|
+
"labelWrap": Object {
|
52
|
+
"alignItems": "center",
|
53
|
+
"display": "flex",
|
54
|
+
"minHeight": 48,
|
55
|
+
"overflow": "hidden",
|
56
|
+
"paddingBottom": "4px",
|
57
|
+
"paddingTop": "4px",
|
57
58
|
},
|
58
59
|
"slider": Object {
|
59
60
|
"background": "#fff",
|
60
61
|
"borderRadius": "50%",
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"left": 2,
|
62
|
+
"height": 24,
|
63
|
+
"left": 4,
|
64
64
|
"position": "absolute",
|
65
|
-
"top":
|
66
|
-
"
|
67
|
-
"
|
65
|
+
"top": "50%",
|
66
|
+
"transform": "translateY(-50%)",
|
67
|
+
"transition": "all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
68
|
+
"width": 24,
|
68
69
|
},
|
69
70
|
"switch": Object {
|
70
|
-
"
|
71
|
-
"borderRadius": 34,
|
71
|
+
"borderRadius": "9999px",
|
72
72
|
"display": "inline-block",
|
73
73
|
"flexShrink": 0,
|
74
|
-
"height":
|
74
|
+
"height": 32,
|
75
75
|
"position": "relative",
|
76
|
-
"transition": "0.
|
77
|
-
"width":
|
76
|
+
"transition": "all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
77
|
+
"width": 52,
|
78
|
+
},
|
79
|
+
"switchBg": Object {
|
80
|
+
"background": "#E9EEF8",
|
81
|
+
"borderRadius": "9999px",
|
82
|
+
"boxShadow": "inset 0 0 0 1px rgba(255,255,255,0.2)",
|
83
|
+
"height": 32,
|
84
|
+
"transition": "all cubic-bezier(0.25,0.46,0.45,0.94) 0.2s",
|
85
|
+
"width": 52,
|
86
|
+
},
|
87
|
+
"switchWrap": Object {
|
88
|
+
"alignItems": "center",
|
89
|
+
"display": "flex",
|
90
|
+
"flexShrink": 0,
|
91
|
+
"height": 48,
|
92
|
+
"width": 52,
|
78
93
|
},
|
79
94
|
}
|
80
95
|
`;
|