@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.
Files changed (170) hide show
  1. package/CHANGELOG.md +549 -0
  2. package/build/Avatar/Avatar.js +69 -21
  3. package/build/Avatar/Avatar.test.js +15 -8
  4. package/build/Avatar/AvatarContent/AvatarContent.js +61 -21
  5. package/build/Avatar/AvatarContent/AvatarContent.test.js +4 -18
  6. package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +75 -15
  7. package/build/Avatar/AvatarContent/styles.js +88 -21
  8. package/build/Avatar/__snapshots__/Avatar.test.js.snap +11 -2
  9. package/build/Avatar/styles.js +18 -7
  10. package/build/Banner/Banner.js +30 -40
  11. package/build/Banner/Banner.test.js +64 -17
  12. package/build/Banner/__snapshots__/Banner.test.js.snap +0 -28
  13. package/build/Banner/index.js +1 -6
  14. package/build/Button/Button.js +1 -1
  15. package/build/Button/Button.test.js +0 -11
  16. package/build/Button/__snapshots__/Button.test.js.snap +63 -67
  17. package/build/Button/styles.js +42 -75
  18. package/build/Checkbox/Checkbox.js +48 -3
  19. package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +81 -49
  20. package/build/Checkbox/styles.js +91 -48
  21. package/build/Drawer/Drawer.js +40 -0
  22. package/build/{Header/Nav/Nav.js → Drawer/index.js} +54 -39
  23. package/build/Drawer/index.test.js +52 -0
  24. package/build/Drawer/styles.js +61 -0
  25. package/build/Droplist/__snapshots__/Droplist.test.js.snap +5 -5
  26. package/build/Fab/__snapshots__/Fab.test.js.snap +2 -2
  27. package/build/Footer/Footer.js +81 -87
  28. package/build/Footer/List/List.js +89 -124
  29. package/build/Footer/List/styles.js +85 -31
  30. package/build/Footer/__snapshots__/Footer.test.js.snap +109 -59
  31. package/build/Footer/styles.js +116 -51
  32. package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
  33. package/build/Grid/Col/styles.js +12 -6
  34. package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
  35. package/build/Grid/Row/styles.js +15 -5
  36. package/build/Grid/styles.js +26 -9
  37. package/build/Menu/Menu.js +96 -0
  38. package/build/Menu/index.js +34 -0
  39. package/build/Menu/styles.js +25 -0
  40. package/build/MenuDivider/MenuDivider.js +47 -0
  41. package/build/MenuDivider/index.js +18 -0
  42. package/build/MenuDivider/styles.js +21 -0
  43. package/build/MenuItem/MenuItem.js +160 -0
  44. package/build/{Header/Menu → MenuItem}/index.js +2 -2
  45. package/build/MenuItem/styles.js +25 -0
  46. package/build/MenuItemBase/MenuItemBase.js +94 -0
  47. package/build/MenuItemBase/index.js +18 -0
  48. package/build/MenuItemBase/styles.js +57 -0
  49. package/build/MenuList/MenuList.js +71 -0
  50. package/build/{Header → MenuList}/index.js +2 -2
  51. package/build/MenuList/styles.js +54 -0
  52. package/build/MenuUser/MenuUser.js +152 -0
  53. package/build/MenuUser/index.js +18 -0
  54. package/build/MenuUser/styles.js +22 -0
  55. package/build/Modal/Modal.js +94 -66
  56. package/build/Modal/Modal.test.js +14 -7
  57. package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
  58. package/build/Modal/styles.js +165 -143
  59. package/build/NavAside/NavAside.js +54 -113
  60. package/build/NavAside/NavAside.test.js +0 -57
  61. package/build/NavAside/__snapshots__/NavAside.test.js.snap +35 -43
  62. package/build/NavAside/index.js +6 -0
  63. package/build/NavAside/styles.js +45 -63
  64. package/build/NavAvatarButton/NavAvatarButton.js +134 -0
  65. package/build/{NavIcon → NavAvatarButton}/index.js +2 -2
  66. package/build/NavAvatarButton/styles.js +33 -0
  67. package/build/NavButton/NavButton.js +73 -0
  68. package/build/{Header/Nav → NavButton}/index.js +2 -2
  69. package/build/NavButton/styles.js +79 -0
  70. package/build/NavItem/styles.js +4 -4
  71. package/build/NavTab/NavTab.js +45 -32
  72. package/build/NavTab/styles.js +59 -27
  73. package/build/NavTop/styles.js +6 -6
  74. package/build/OrderBy/OrderBy.js +2 -1
  75. package/build/Pager/Page/Page.js +11 -6
  76. package/build/Pager/Page/Page.test.js +13 -9
  77. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  78. package/build/Pager/Page/styles.js +48 -14
  79. package/build/Pager/Pager.js +144 -235
  80. package/build/Pager/Pager.test.js +81 -36
  81. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  82. package/build/Pager/styles.js +5 -40
  83. package/build/Pill/Choice/Choice.js +6 -4
  84. package/build/Pill/Choice/styles.js +13 -10
  85. package/build/Pill/Group/styles.js +5 -5
  86. package/build/Pill/Stack/Stack.js +2 -2
  87. package/build/Pill/Stack/styles.js +5 -8
  88. package/build/Placeholder/Placeholder.js +29 -12
  89. package/build/Placeholder/Placeholder.test.js +4 -4
  90. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
  91. package/build/Placeholder/styles.js +86 -42
  92. package/build/Provider/MenuListProvider.js +38 -0
  93. package/build/Provider/usePrevious.js +1 -1
  94. package/build/Radio/Radio.js +22 -7
  95. package/build/Radio/__snapshots__/Radio.test.js.snap +71 -79
  96. package/build/Radio/styles.js +84 -85
  97. package/build/SlideDown/SlideDown.js +167 -169
  98. package/build/SlideDown/SlideDown.test.js +49 -44
  99. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
  100. package/build/SlideDown/styles.js +51 -20
  101. package/build/SlideToggle/SlideToggle.js +38 -6
  102. package/build/SlideToggle/SlideToggle.test.js +2 -2
  103. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -38
  104. package/build/SlideToggle/styles.js +64 -45
  105. package/build/Tabs/Tab/Tab.js +73 -0
  106. package/build/Tabs/Tab/index.js +34 -0
  107. package/build/Tabs/Tab/index.test.js +132 -0
  108. package/build/Tabs/Tab/styles.js +74 -0
  109. package/build/Tabs/TabContent/TabContent.js +76 -0
  110. package/build/Tabs/TabContent/index.js +34 -0
  111. package/build/Tabs/TabContent/index.test.js +68 -0
  112. package/build/Tabs/TabContent/styles.js +23 -0
  113. package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
  114. package/build/Tabs/TabIndicator/index.js +34 -0
  115. package/build/Tabs/TabIndicator/styles.js +24 -0
  116. package/build/Tabs/TabList/TabList.js +108 -0
  117. package/build/Tabs/TabList/index.js +34 -0
  118. package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
  119. package/build/Tabs/Tabs.js +74 -0
  120. package/build/Tabs/context.js +94 -0
  121. package/build/Tabs/index.js +34 -0
  122. package/build/Tabs/index.test.js +157 -0
  123. package/build/Tabs/styles.js +19 -0
  124. package/build/Tag/Tag.js +2 -2
  125. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  126. package/build/Tag/styles.js +76 -82
  127. package/build/Text/Text.js +2 -1
  128. package/build/TextField/TextField.js +7 -6
  129. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  130. package/build/TextField/styles.js +3 -0
  131. package/build/Tip/Tip.js +62 -95
  132. package/build/Tip/Tip.test.js +29 -6
  133. package/build/Tip/TipText/index.js +32 -0
  134. package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
  135. package/build/Tip/styles.js +125 -31
  136. package/build/Toaster/Toast/Toast.js +76 -64
  137. package/build/Toaster/Toast/styles.js +118 -46
  138. package/build/Toaster/Toaster.js +3 -2
  139. package/build/Toaster/Toaster.test.js +5 -2
  140. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  141. package/build/Toaster/functions.js +4 -0
  142. package/build/Toaster/styles.js +3 -3
  143. package/build/Tooltip/Tooltip.js +73 -22
  144. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  145. package/build/Tooltip/styles.js +32 -10
  146. package/build/index.js +33 -19
  147. package/build/plugin/babel.js +0 -2
  148. package/build/subatomic/grid.js +5 -5
  149. package/build/tokens/colors.json +94 -60
  150. package/build/tokens/shadows.json +3 -3
  151. package/package.json +5 -2
  152. package/build/Banner/styles.js +0 -41
  153. package/build/Header/Header.js +0 -163
  154. package/build/Header/Header.test.js +0 -118
  155. package/build/Header/Menu/Menu.js +0 -135
  156. package/build/Header/Menu/Menu.test.js +0 -107
  157. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
  158. package/build/Header/Menu/styles.js +0 -123
  159. package/build/Header/Nav/Nav.test.js +0 -81
  160. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
  161. package/build/Header/Nav/styles.js +0 -110
  162. package/build/Header/__snapshots__/Header.test.js.snap +0 -79
  163. package/build/Header/styles.js +0 -94
  164. package/build/NavIcon/NavIcon.js +0 -112
  165. package/build/NavIcon/styles.js +0 -81
  166. package/build/Pager/Break/Break.js +0 -27
  167. package/build/Pager/Break/Break.test.js +0 -53
  168. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  169. package/build/Pager/Break/index.js +0 -18
  170. /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("../subatomic/colors"));
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
- 'data-testid': 'slidedown__arrow-down'
51
- }).prop('style')).toEqual({
52
- transform: 'rotate(180deg)',
53
- transition: '0.3s all'
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
- }, "Children content"));
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('.content').length).toBe(0);
93
- wrapper.setProps({
94
- expanded: true
95
- });
96
- expect(wrapper.find('.content').length).toBe(1);
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
- setTimeout(function () {
101
- expect(wrapper.find('.content').length).toBe(0);
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().large).toEqual(true);
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"].grey900]);
118
- expect(wrapper.find(_Text["default"]).props().link).toBeFalsy();
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().link).toEqual(true);
123
- expect(wrapper.find(_Icon["default"]).props().colors).toEqual([_colors["default"].textLink]);
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
- "transition": "0.3s all ease-out",
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
- "hide": Object {
14
- "marginBottom": 16,
15
- "marginTop": -16,
19
+ "contentWrapper": Object {
20
+ "display": "grid",
21
+ "gridTemplateRows": "0fr",
16
22
  "opacity": 0,
17
- "pointerEvents": "none",
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
- "marginLeft": 8,
21
- "marginTop": 4,
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
- "show": Object {
24
- "marginBottom": 0,
25
- "marginTop": 0,
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": 8,
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("../subatomic/spacing"));
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
- transition: '0.3s all ease-out'
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
- hide: {
26
- opacity: 0,
27
- marginTop: -_spacing["default"].small,
28
- marginBottom: _spacing["default"].small,
29
- pointerEvents: 'none'
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
- show: {
62
+ showContentWrapper: {
32
63
  opacity: 1,
33
- marginTop: 0,
34
- marginBottom: 0
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
- tag: {
37
- marginTop: _spacing["default"].xTiny,
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
- icon: {
42
- marginTop: _spacing["default"].xTiny,
43
- marginLeft: _spacing["default"].tiny
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("span", {
110
- className: classes.slider
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(_Text["default"], {
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.find('.switch').simulate('click');
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.find('.switch').simulate('click');
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": 16,
9
+ "left": "calc(100% - 28px)",
10
+ },
11
+ "& $switchBg": Object {
12
+ "background": "#0059CD",
13
13
  },
14
- "background": "#0059CD",
15
14
  },
16
15
  "cont": Object {
17
- "&:focus $switch$checked": Object {
18
- "background": "#0059CD",
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:not($checked)": Object {
22
- "background": "#E9EEF8",
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
- "&:hover $switch$checked, &:active $switch$checked": Object {
26
- "background": "#083CAE",
22
+ "&:focus-visible $switch$checked": Object {
23
+ "boxShadow": "0 0 0 8px rgba(0,110,255,0.3)",
27
24
  },
28
- "&:hover $switch:not($checked), &:active $switch:not($checked)": Object {
25
+ "&:hover $switch $switchBg, &:active $switch $switchBg": Object {
29
26
  "background": "#CAD5EE",
30
27
  },
31
- "alignItems": "start",
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
- "& $icon": Object {
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
- "background": "url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgICAgIAkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogICAgICAgIDxwYXRoIGZpbGw9IiM4REE1REEiIGQ9Ik0xMi4xLDEwLjhsNC42LTQuNkwxOCw3LjRMMTMuNCwxMmw0LjYsNC42TDE2LjcsMThsLTQuNi00LjZMNy40LDE4bC0xLjMtMS4zbDQuNi00LjZMNi4yLDcuNGwxLjMtMS4zTDEyLjEsMTAuOHoiLz4KICAgICAgICA8L3N2Zz4=)",
50
- "display": "block",
51
- "height": "100%",
52
- "transition": "0.3s all",
53
- "width": "100%",
45
+ "margin": 4,
54
46
  },
55
47
  "label": Object {
56
- "marginLeft": "8px",
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
- "cursor": "pointer",
62
- "height": 20,
63
- "left": 2,
62
+ "height": 24,
63
+ "left": 4,
64
64
  "position": "absolute",
65
- "top": 2,
66
- "transition": "0.3s all",
67
- "width": 20,
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
- "background": "#E9EEF8",
71
- "borderRadius": 34,
71
+ "borderRadius": "9999px",
72
72
  "display": "inline-block",
73
73
  "flexShrink": 0,
74
- "height": "24px",
74
+ "height": 32,
75
75
  "position": "relative",
76
- "transition": "0.3s all",
77
- "width": 38,
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
  `;