@occmundial/occ-atomic 3.0.0-beta.7 → 3.0.0-beta.71

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 (171) hide show
  1. package/CHANGELOG.md +556 -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/index.js +12 -31
  151. package/build/tokens/shadows.json +3 -3
  152. package/package.json +5 -2
  153. package/build/Banner/styles.js +0 -41
  154. package/build/Header/Header.js +0 -163
  155. package/build/Header/Header.test.js +0 -118
  156. package/build/Header/Menu/Menu.js +0 -135
  157. package/build/Header/Menu/Menu.test.js +0 -107
  158. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
  159. package/build/Header/Menu/styles.js +0 -123
  160. package/build/Header/Nav/Nav.test.js +0 -81
  161. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
  162. package/build/Header/Nav/styles.js +0 -110
  163. package/build/Header/__snapshots__/Header.test.js.snap +0 -79
  164. package/build/Header/styles.js +0 -94
  165. package/build/NavIcon/NavIcon.js +0 -112
  166. package/build/NavIcon/styles.js +0 -81
  167. package/build/Pager/Break/Break.js +0 -27
  168. package/build/Pager/Break/Break.test.js +0 -53
  169. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  170. package/build/Pager/Break/index.js +0 -18
  171. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -9,109 +9,121 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _Text = _interopRequireDefault(require("../../Text"));
13
-
14
12
  var _Icon = _interopRequireDefault(require("../../Icon"));
15
13
 
16
14
  var _Flexbox = _interopRequireDefault(require("../../Flexbox"));
17
15
 
18
- var _colors = _interopRequireDefault(require("../../subatomic/colors"));
16
+ var _colors = _interopRequireDefault(require("../../tokens/colors.json"));
17
+
18
+ var _Button = _interopRequireDefault(require("../../Button"));
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
21
 
22
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); }
23
23
 
24
+ var icons = {
25
+ info: 'info-circle',
26
+ warning: 'alert',
27
+ success: 'check-circle',
28
+ error: 'x-circle',
29
+ promote: null
30
+ };
31
+ var colorTextClasses = {
32
+ info: 'textInfo',
33
+ promote: 'textPromote',
34
+ warning: 'textWarning',
35
+ success: 'textSuccess',
36
+ error: 'textError'
37
+ };
38
+ var colorLinkClasses = {
39
+ info: 'linkInfo',
40
+ promote: 'linkPromote',
41
+ warning: 'linkWarning',
42
+ success: 'linkSuccess',
43
+ error: 'linkError'
44
+ };
45
+
24
46
  var Toast = function Toast(_ref) {
25
47
  var classes = _ref.classes,
26
48
  theme = _ref.theme,
27
49
  title = _ref.title,
28
50
  description = _ref.description,
29
51
  action = _ref.action,
30
- hasIcon = _ref.hasIcon,
31
52
  closing = _ref.closing,
32
53
  onClose = _ref.onClose,
33
54
  pauseTimer = _ref.pauseTimer,
34
- resumeTimer = _ref.resumeTimer;
35
-
36
- var getIconData = function getIconData() {
37
- switch (theme) {
38
- case 'success':
39
- return {
40
- icon: 'check-circle',
41
- color: _colors["default"].bgWhite
42
- };
43
-
44
- case 'error':
45
- return {
46
- icon: 'x-circle',
47
- color: _colors["default"].bgWhite
48
- };
49
-
50
- case 'info':
51
- return {
52
- icon: 'info-circle',
53
- color: _colors["default"].bgWhite
54
- };
55
-
56
- case 'warning':
57
- return {
58
- icon: 'alert',
59
- color: _colors["default"].grey900
60
- };
61
- }
62
- };
63
-
64
- var textColor = theme === 'warning' ? {} : {
65
- white: true
66
- };
67
- var iconData = hasIcon ? getIconData() : null;
55
+ resumeTimer = _ref.resumeTimer,
56
+ closeIcon = _ref.closeIcon,
57
+ testId = _ref.testId;
68
58
 
69
59
  var onActionClick = function onActionClick(action) {
70
60
  action.onClick();
71
61
  onClose();
72
62
  };
73
63
 
74
- return /*#__PURE__*/_react["default"].createElement("div", {
75
- className: "".concat(classes.toast, " ").concat(classes[theme]).concat(closing ? " ".concat(classes.closing) : ''),
76
- onMouseEnter: pauseTimer,
64
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
65
+ className: "".concat(classes.toast, " ").concat(classes[theme]).concat(closing ? " ".concat(classes.closing) : '')
66
+ }, !closeIcon && {
67
+ onMouseEnter: pauseTimer
68
+ }, !closeIcon && {
77
69
  onMouseLeave: resumeTimer
78
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
70
+ }), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
79
71
  display: "flex",
80
- className: classes.content
72
+ justifyContent: "between"
81
73
  }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
82
74
  display: "flex",
83
- alignItems: "center"
84
- }, hasIcon && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
85
- iconName: iconData.icon,
86
- colors: [iconData.color],
87
- className: classes.icon
88
- }), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
75
+ alignItems: "center",
76
+ alignSelf: "center",
89
77
  flex: "1"
90
- }, title && /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({
91
- subheading: true
92
- }, textColor), title), description && /*#__PURE__*/_react["default"].createElement(_Text["default"], textColor, description))), action && /*#__PURE__*/_react["default"].createElement("button", {
93
- className: classes.action,
78
+ }, theme !== 'promote' && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
79
+ iconName: icons[theme],
80
+ className: classes.icon,
81
+ colors: [theme === 'info' ? _colors["default"].icon.brand["default"] : _colors["default"].icon[theme]]
82
+ }), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
83
+ display: "flex",
84
+ flex: "1",
85
+ className: classes.content,
86
+ alignSelf: description ? 'start' : 'center',
87
+ justifyContent: "between"
88
+ }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
89
+ display: "flex",
90
+ direction: "col"
91
+ }, /*#__PURE__*/_react["default"].createElement("p", {
92
+ className: "".concat(classes.title, " ").concat(classes[colorTextClasses[theme]])
93
+ }, title), description && /*#__PURE__*/_react["default"].createElement("p", {
94
+ className: "".concat(classes.description, " ").concat(classes[colorTextClasses[theme]])
95
+ }, description)), action ? /*#__PURE__*/_react["default"].createElement("a", _extends({
96
+ className: "".concat(classes.actionText, " ").concat(classes[colorLinkClasses[theme]]),
94
97
  onClick: function onClick() {
95
98
  return onActionClick(action);
96
99
  }
97
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
98
- display: "flex",
99
- alignItems: "center",
100
- className: classes.actionWrap
101
- }, /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({}, textColor, {
102
- strong: true,
103
- className: classes.actionText
104
- }), action.label)))));
100
+ }, testId && {
101
+ 'data-testid': "".concat(testId, "__link")
102
+ }), action.label) : null)), !action && closeIcon ? /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
103
+ onClick: onClose,
104
+ className: classes.closeIcon,
105
+ icon: "x",
106
+ size: "md",
107
+ theme: theme === 'promote' ? 'ghostWhite' : 'ghostGrey'
108
+ }, testId && {
109
+ testId: "".concat(testId, "__close-icon")
110
+ })) : null));
105
111
  };
106
112
 
107
113
  Toast.propTypes = {
108
114
  classes: _propTypes["default"].object.isRequired,
109
115
  theme: _propTypes["default"].oneOf(['success', 'error', 'info', 'warning']),
110
- title: _propTypes["default"].string,
116
+ title: _propTypes["default"].string.isRequired,
111
117
  description: _propTypes["default"].string,
112
118
  action: _propTypes["default"].object,
113
- hasIcon: _propTypes["default"].bool,
114
- onClose: _propTypes["default"].func.isRequired
119
+ closing: _propTypes["default"].bool,
120
+ pauseTimer: _propTypes["default"].func,
121
+ resumeTimer: _propTypes["default"].func,
122
+ onClose: _propTypes["default"].func.isRequired,
123
+ closeIcon: _propTypes["default"].bool,
124
+
125
+ /** The testId property adds the data attribute data-testid to the main element and should be used for testing only. */
126
+ testId: _propTypes["default"].string
115
127
  };
116
128
  var _default = Toast;
117
129
  exports["default"] = _default;
@@ -5,17 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _colors = _interopRequireDefault(require("../../subatomic/colors"));
8
+ var _colors = _interopRequireDefault(require("../../tokens/colors.json"));
9
9
 
10
- var _spacing = _interopRequireDefault(require("../../subatomic/spacing"));
10
+ var _fonts = _interopRequireDefault(require("../../tokens/fonts.json"));
11
11
 
12
- var _shadows = _interopRequireDefault(require("../../subatomic/shadows"));
12
+ var _spacing = _interopRequireDefault(require("../../tokens/spacing.json"));
13
+
14
+ var _borderRadius = _interopRequireDefault(require("../../tokens/borderRadius.json"));
15
+
16
+ var _shadows = _interopRequireDefault(require("../../tokens/shadows.json"));
13
17
 
14
18
  var _grid = _interopRequireDefault(require("../../subatomic/grid"));
15
19
 
16
- var _iconSizes = _interopRequireDefault(require("../../subatomic/iconSizes"));
20
+ var _styles = require("../../Text/styles");
17
21
 
18
- var _toast, _icon, _action;
22
+ var _toast;
19
23
 
20
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
25
 
@@ -33,16 +37,18 @@ var _default = {
33
37
  }
34
38
  },
35
39
  toast: (_toast = {
36
- borderRadius: _spacing["default"].radius,
37
- boxShadow: _shadows["default"].lvl5,
38
- padding: [_spacing["default"].tiny, _spacing["default"].small],
40
+ borderRadius: _borderRadius["default"]['br-xs'],
41
+ boxShadow: _shadows["default"]['elevation-elevation-5'],
42
+ padding: _spacing["default"]['size-3'],
39
43
  pointerEvents: 'auto',
40
44
  zIndex: 1001,
41
45
  animation: 'slideToasterIn 0.3s ease-out',
42
- transition: '0.3s all ease-out'
46
+ transition: '0.3s all ease-out',
47
+ outlineOffset: '-1px'
43
48
  }, _defineProperty(_toast, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
44
49
  maxWidth: 480,
45
- padding: _spacing["default"].small
50
+ minWidth: 400,
51
+ padding: _spacing["default"]['size-4']
46
52
  }), _defineProperty(_toast, "@media screen and (max-width:".concat(_grid["default"].xs - 1, "px)"), {
47
53
  width: '100%'
48
54
  }), _toast),
@@ -51,54 +57,120 @@ var _default = {
51
57
  opacity: 0
52
58
  },
53
59
  success: {
54
- background: _colors["default"].success
60
+ backgroundColor: _colors["default"].alert.success.bg,
61
+ outline: "1px solid ".concat(_colors["default"].alert.success.border)
55
62
  },
56
63
  error: {
57
- background: _colors["default"].error
64
+ backgroundColor: _colors["default"].alert.error.bg,
65
+ outline: "1px solid ".concat(_colors["default"].alert.error.border)
58
66
  },
59
67
  warning: {
60
- background: _colors["default"].warning
68
+ backgroundColor: _colors["default"].alert.warning.bg,
69
+ outline: "1px solid ".concat(_colors["default"].alert.warning.border)
61
70
  },
62
71
  info: {
63
- background: _colors["default"].info
72
+ backgroundColor: _colors["default"].alert.info.bg,
73
+ outline: "1px solid ".concat(_colors["default"].alert.info.border)
74
+ },
75
+ promote: {
76
+ backgroundColor: _colors["default"].alert.neutral.bg,
77
+ outline: "1px solid ".concat(_colors["default"].alert.neutral.border)
78
+ },
79
+ textInfo: {
80
+ color: _colors["default"].text.indigo.primary
81
+ },
82
+ textWarning: {
83
+ color: _colors["default"].text.warning
84
+ },
85
+ textSuccess: {
86
+ color: _colors["default"].text.success
87
+ },
88
+ textError: {
89
+ color: _colors["default"].text.error
90
+ },
91
+ textPromote: {
92
+ color: _colors["default"].text.white.primary
93
+ },
94
+ linkInfo: {
95
+ color: _colors["default"].text.indigo.primary,
96
+ backgroundRepeat: 'no-repeat',
97
+ background: "linear-gradient(".concat(_colors["default"].link.brand.bg.hover, ", ").concat(_colors["default"].link.brand.bg.hover, ")"),
98
+ '&:active': {
99
+ background: "linear-gradient(".concat(_colors["default"].link.brand.bg.active, ", ").concat(_colors["default"].link.brand.bg.active, ")")
100
+ }
101
+ },
102
+ linkWarning: {
103
+ color: _colors["default"].text.warning,
104
+ backgroundRepeat: 'no-repeat',
105
+ background: "linear-gradient(".concat(_colors["default"].link.warning.bg.hover, ", ").concat(_colors["default"].link.warning.bg.hover, ")"),
106
+ '&:active': {
107
+ background: "linear-gradient(".concat(_colors["default"].link.warning.bg.active, ", ").concat(_colors["default"].link.warning.bg.active, ")")
108
+ }
109
+ },
110
+ linkSuccess: {
111
+ color: _colors["default"].text.success,
112
+ backgroundRepeat: 'no-repeat',
113
+ background: "linear-gradient(".concat(_colors["default"].link.success.bg.hover, ", ").concat(_colors["default"].link.success.bg.hover, ")"),
114
+ '&:active': {
115
+ background: "linear-gradient(".concat(_colors["default"].link.success.bg.active, ", ").concat(_colors["default"].link.success.bg.active, ")")
116
+ }
64
117
  },
65
- content: _defineProperty({}, "@media screen and (max-width:".concat(_grid["default"].xs - 1, "px)"), {
118
+ linkError: {
119
+ color: _colors["default"].text.error,
120
+ backgroundRepeat: 'no-repeat',
121
+ background: "linear-gradient(".concat(_colors["default"].link.error.bg.hover, ", ").concat(_colors["default"].link.error.bg.hover, ")"),
122
+ '&:active': {
123
+ background: "linear-gradient(".concat(_colors["default"].link.error.bg.active, ", ").concat(_colors["default"].link.error.bg.active, ")")
124
+ }
125
+ },
126
+ linkPromote: {
127
+ color: _colors["default"].text.white.primary,
128
+ backgroundRepeat: 'no-repeat',
129
+ background: "linear-gradient(".concat(_colors["default"].link.white.bg.hover, ", ").concat(_colors["default"].link.white.bg.hover, ")"),
130
+ '&:active': {
131
+ background: "linear-gradient(".concat(_colors["default"].link.white.bg.active, ", ").concat(_colors["default"].link.white.bg.active, ")")
132
+ }
133
+ },
134
+ title: {
135
+ font: (0, _styles.parseFontValue)(_fonts["default"]['alert-default']),
136
+ margin: 0
137
+ },
138
+ description: {
139
+ font: (0, _styles.parseFontValue)(_fonts["default"]['alert-description']),
140
+ margin: [_spacing["default"]['size-1'], 0, 0]
141
+ },
142
+ content: _defineProperty({
66
143
  flexDirection: 'column'
144
+ }, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
145
+ flexDirection: 'row'
67
146
  }),
68
- icon: (_icon = {
69
- marginRight: _spacing["default"].small,
70
- width: _iconSizes["default"].small,
71
- height: _iconSizes["default"].small
72
- }, _defineProperty(_icon, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
73
- width: _iconSizes["default"].base,
74
- height: _iconSizes["default"].base
75
- }), _defineProperty(_icon, "@media screen and (max-width:".concat(_grid["default"].xs - 1, "px)"), {
76
- display: 'none'
77
- }), _icon),
78
- action: (_action = {
79
- marginTop: _spacing["default"].xTiny,
80
- cursor: 'pointer',
81
- background: 'none',
82
- border: 'none'
83
- }, _defineProperty(_action, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
84
- margin: -_spacing["default"].small,
85
- marginLeft: _spacing["default"].small,
86
- padding: [0, _spacing["default"].small],
87
- borderRadius: [0, _spacing["default"].radius, _spacing["default"].radius, 0],
88
- borderLeft: '1px solid rgba(255, 255, 255, 0.1)',
89
- transition: '0.3s all',
90
- '&:hover': {
91
- background: 'rgba(255, 255, 255, 0.15)'
92
- }
93
- }), _defineProperty(_action, "@media screen and (max-width:".concat(_grid["default"].xs - 1, "px)"), {
94
- alignSelf: 'flex-end'
95
- }), _action),
147
+ icon: {
148
+ marginRight: _spacing["default"]['size-2'],
149
+ alignSelf: 'start'
150
+ },
96
151
  actionWrap: {
97
152
  height: '100%'
98
153
  },
99
- actionText: {
100
- textTransform: 'uppercase',
101
- whiteSpace: 'nowrap'
154
+ actionText: _defineProperty({
155
+ font: (0, _styles.parseFontValue)(_fonts["default"]['link-small-strong']),
156
+ whiteSpace: 'nowrap',
157
+ textDecoration: 'underline',
158
+ cursor: 'pointer',
159
+ alignSelf: 'start',
160
+ transition: 'all ease-out 150ms',
161
+ backgroundSize: '0%',
162
+ '&:hover': {
163
+ backgroundSize: '100%',
164
+ cursor: 'pointer'
165
+ },
166
+ margin: [_spacing["default"]['size-2'], 0, 0]
167
+ }, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
168
+ margin: [0, 0, 0, _spacing["default"]['size-4']],
169
+ alignSelf: 'center'
170
+ }),
171
+ closeIcon: {
172
+ marginLeft: _spacing["default"]['size-4'],
173
+ alignSelf: 'center'
102
174
  }
103
175
  };
104
176
  exports["default"] = _default;
@@ -78,7 +78,7 @@ var Toaster = /*#__PURE__*/function (_React$Component) {
78
78
  toast: toast,
79
79
  toastId: toastId
80
80
  }, function () {
81
- _this.addTimer();
81
+ if (!toast.closeIcon) _this.addTimer();
82
82
  });
83
83
  });
84
84
 
@@ -164,8 +164,9 @@ var Toaster = /*#__PURE__*/function (_React$Component) {
164
164
  title: toast.title,
165
165
  theme: toast.type,
166
166
  action: toast.action,
167
- hasIcon: toast.hasIcon,
167
+ closeIcon: toast.closeIcon,
168
168
  closing: toast.closing,
169
+ testId: toast.testId,
169
170
  onClose: function onClose() {
170
171
  return _this2.onClose(toast);
171
172
  },
@@ -104,11 +104,14 @@ describe("Toaster", function () {
104
104
 
105
105
  _functions.toaster.success({
106
106
  title: 'Title',
107
- action: action
107
+ action: action,
108
+ testId: "toaster-test"
108
109
  });
109
110
 
110
111
  wrapper.update();
111
- wrapper.find('button').simulate('click');
112
+ wrapper.find({
113
+ "data-testid": 'toaster-test__link'
114
+ }).simulate('click');
112
115
  expect(action.onClick).toHaveBeenCalled();
113
116
  setTimeout(function () {
114
117
  wrapper.update();
@@ -1,5 +1,5 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Toaster launches a toast 1`] = `"<div class=\\"container\\"><div class=\\"Toast-toast-0-1-1 Toast-success-0-1-3\\"><div class=\\"Flexbox-flex-0-1-12 Toast-content-0-1-7\\"><div class=\\"Flexbox-flex-0-1-12 Flexbox-acenter-0-1-29\\"><div class=\\"\\" style=\\"flex: 1;\\"><p class=\\"Text-text-0-1-44 Text-h5-0-1-50 Text-whitePrimary-0-1-70\\">Title</p></div></div></div></div></div>"`;
3
+ exports[`Toaster launches a toast 1`] = `"<div class=\\"container\\"><div class=\\"Toast-toast-0-1-1 Toast-success-0-1-3\\"><div class=\\"Flexbox-flex-0-1-25 Flexbox-jbetween-0-1-37\\"><div class=\\"Flexbox-flex-0-1-25 Flexbox-acenter-0-1-42 Flexbox-scenter-0-1-54\\" style=\\"flex: 1;\\"><svg class=\\"Icon-icon-0-1-60 Icon-icon-0-1-57 undefined__check-circle Toast-icon-0-1-21\\" width=\\"24\\" height=\\"24\\" fill=\\"#38d373\\" style=\\"transition: 0.3s all;\\"><use xlink:href=\\"undefined#undefined__check-circle\\"></use></svg><div class=\\"Flexbox-flex-0-1-25 Flexbox-jbetween-0-1-37 Flexbox-scenter-0-1-54 Toast-content-0-1-20\\" style=\\"flex: 1;\\"><div class=\\"Flexbox-flex-0-1-25 Flexbox-col-0-1-29\\"><p class=\\"Toast-title-0-1-18 Toast-textSuccess-0-1-10\\">Title</p></div></div></div></div></div></div>"`;
4
4
 
5
5
  exports[`Toaster matches the snapshot 1`] = `"<div class=\\"container\\"></div>"`;
@@ -29,6 +29,10 @@ var toaster = {
29
29
  value.type = 'warning';
30
30
  this.addToast(value);
31
31
  },
32
+ promote: function promote(value) {
33
+ value.type = 'promote';
34
+ this.addToast(value);
35
+ },
32
36
  close: function close() {
33
37
  if (this.closeListener && !(0, _isEmpty["default"])(this.toast)) this.closeListener(this.toast);
34
38
  },
@@ -7,7 +7,7 @@ exports["default"] = void 0;
7
7
 
8
8
  var _grid = _interopRequireDefault(require("../subatomic/grid"));
9
9
 
10
- var _spacing = _interopRequireDefault(require("../subatomic/spacing"));
10
+ var _spacing = _interopRequireDefault(require("../tokens/spacing.json"));
11
11
 
12
12
  var _container;
13
13
 
@@ -21,9 +21,9 @@ var _default = {
21
21
  zIndex: 1001,
22
22
  bottom: 0,
23
23
  left: 0,
24
- padding: _spacing["default"].small
24
+ padding: _spacing["default"]['size-4']
25
25
  }, _defineProperty(_container, "@media screen and (min-width:".concat(_grid["default"].xs, "px)"), {
26
- padding: _spacing["default"].medium
26
+ padding: _spacing["default"]['size-6']
27
27
  }), _defineProperty(_container, "@media screen and (max-width:".concat(_grid["default"].xs - 1, "px)"), {
28
28
  width: '100vw'
29
29
  }), _defineProperty(_container, "pointerEvents", 'none'), _container)
@@ -15,9 +15,13 @@ var _react2 = require("@floating-ui/react");
15
15
 
16
16
  var _colors = _interopRequireDefault(require("../subatomic/colors"));
17
17
 
18
+ var _colors2 = _interopRequireDefault(require("../tokens/colors.json"));
19
+
18
20
  var _hooks = require("./hooks");
19
21
 
20
- var _colorsArrow;
22
+ var _Icon = _interopRequireDefault(require("../Icon"));
23
+
24
+ var _colorsArrow, _borderColors;
21
25
 
22
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
27
 
@@ -46,8 +50,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
46
50
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
51
 
48
52
  var infoLight = _colors["default"].infoLight,
49
- white = _colors["default"].white,
50
- grey900 = _colors["default"].grey900,
51
53
  info = _colors["default"].info;
52
54
  var themes = {
53
55
  DARK: 'dark',
@@ -55,7 +57,20 @@ var themes = {
55
57
  INFO: 'info',
56
58
  PURPLE: 'purple'
57
59
  };
58
- var colorsArrow = (_colorsArrow = {}, _defineProperty(_colorsArrow, themes.DARK, grey900), _defineProperty(_colorsArrow, themes.LIGHT, white), _defineProperty(_colorsArrow, themes.INFO, infoLight), _defineProperty(_colorsArrow, themes.PURPLE, info), _colorsArrow);
60
+ var colorsArrow = (_colorsArrow = {}, _defineProperty(_colorsArrow, themes.DARK, _colors2["default"].bg.neutral), _defineProperty(_colorsArrow, themes.INFO, infoLight), _defineProperty(_colorsArrow, themes.LIGHT, _colors2["default"].bg.surface["default"]), _defineProperty(_colorsArrow, themes.PURPLE, info), _colorsArrow);
61
+ var borderColors = (_borderColors = {}, _defineProperty(_borderColors, themes.DARK, {
62
+ bg: 'black',
63
+ border: 'rgba(0, 0, 0, 0.8)'
64
+ }), _defineProperty(_borderColors, themes.LIGHT, {
65
+ bg: _colors2["default"].border["default"].subtle,
66
+ border: _colors2["default"].border["default"].subtle
67
+ }), _defineProperty(_borderColors, themes.INFO, {
68
+ bg: infoLight,
69
+ border: infoLight
70
+ }), _defineProperty(_borderColors, themes.PURPLE, {
71
+ bg: info,
72
+ border: info
73
+ }), _borderColors);
59
74
  /** Tooltip component to display messages within a container. */
60
75
 
61
76
  function Tooltip(_ref) {
@@ -63,7 +78,8 @@ function Tooltip(_ref) {
63
78
  openProp = _ref.open,
64
79
  children = _ref.children,
65
80
  text = _ref.text,
66
- theme = _ref.theme,
81
+ _ref$theme = _ref.theme,
82
+ theme = _ref$theme === void 0 ? 'purple' : _ref$theme,
67
83
  _ref$openOnHover = _ref.openOnHover,
68
84
  openOnHover = _ref$openOnHover === void 0 ? false : _ref$openOnHover,
69
85
  _ref$closeDelay = _ref.closeDelay,
@@ -79,10 +95,11 @@ function Tooltip(_ref) {
79
95
  _ref$fit = _ref.fit,
80
96
  fit = _ref$fit === void 0 ? false : _ref$fit,
81
97
  _ref$width = _ref.width,
82
- width = _ref$width === void 0 ? 220 : _ref$width,
98
+ width = _ref$width === void 0 ? 'auto' : _ref$width,
83
99
  _ref$strategy = _ref.strategy,
84
100
  strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,
85
- onChange = _ref.onChange;
101
+ onChange = _ref.onChange,
102
+ icon = _ref.icon;
86
103
  var arrowRef = (0, _react.useRef)(null);
87
104
 
88
105
  var _useOpenTooltipState = (0, _hooks.useOpenTooltipState)(openProp, onChange, closeDelay),
@@ -91,23 +108,43 @@ function Tooltip(_ref) {
91
108
  setOpen = _useOpenTooltipState2[1];
92
109
 
93
110
  var getMiddlewares = (0, _react.useMemo)(function () {
94
- var middlewares = [(0, _react2.offset)(16)];
111
+ var middlewares = [(0, _react2.offset)(function (_ref2) {
112
+ var rects = _ref2.rects;
113
+
114
+ if (placement === 'top-start' || placement === 'bottom-start') {
115
+ return {
116
+ crossAxis: rects.reference.width / 2 - 18,
117
+ mainAxis: 16
118
+ };
119
+ } else if (placement === 'top-end' || placement === 'bottom-end') {
120
+ return {
121
+ crossAxis: -(rects.reference.width / 2) + 18,
122
+ mainAxis: 16
123
+ };
124
+ }
125
+
126
+ return {
127
+ mainAxis: 16
128
+ };
129
+ })];
95
130
  showArrow && middlewares.push((0, _react2.arrow)({
96
- element: arrowRef,
97
- padding: 16
131
+ element: arrowRef
98
132
  }));
99
133
  var sizeMiddleware = (0, _react2.size)({
100
- apply: function apply(_ref2) {
101
- var elements = _ref2.elements,
102
- rects = _ref2.rects,
103
- availableWidth = _ref2.availableWidth;
134
+ apply: function apply(_ref3) {
135
+ var elements = _ref3.elements,
136
+ rects = _ref3.rects,
137
+ availableWidth = _ref3.availableWidth;
104
138
  var styles = {};
105
139
 
106
140
  if (fit) {
107
141
  styles.width = "".concat(rects.reference.width, "px");
108
142
  } else {
109
143
  styles.maxWidth = "".concat(availableWidth, "px");
110
- if (width) styles.width = typeof width === 'string' ? width : "".concat(width, "px");else styles.width = '';
144
+
145
+ if (width) {
146
+ styles.width = typeof width === 'string' ? width : "".concat(width, "px");
147
+ } else styles.width = '';
111
148
  }
112
149
 
113
150
  Object.assign(elements.floating.style, styles);
@@ -116,7 +153,7 @@ function Tooltip(_ref) {
116
153
  sizeMiddleware.name = "size-".concat(fit, "-").concat(width);
117
154
  middlewares.push(sizeMiddleware);
118
155
  return middlewares;
119
- }, [showArrow, fit, width]);
156
+ }, [showArrow, fit, width, placement]);
120
157
 
121
158
  var _useFloating = (0, _react2.useFloating)({
122
159
  open: open,
@@ -144,20 +181,33 @@ function Tooltip(_ref) {
144
181
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement("div", _extends({
145
182
  ref: refs.setReference
146
183
  }, getReferenceProps(), {
147
- className: "".concat(classes.activator, " ").concat(className.hasOwnProperty('activator') && className.activator)
184
+ className: "".concat(classes.activator, " ").concat(className.hasOwnProperty('activator') ? className.activator : '')
148
185
  }), children), /*#__PURE__*/_react["default"].createElement(_react2.FloatingPortal, null, open && /*#__PURE__*/_react["default"].createElement("div", _extends({
149
- className: "".concat(classes.tooltip, " ").concat(className.hasOwnProperty('tooltip') && className.tooltip, " ").concat(classes[theme] || classes.purple),
186
+ className: "".concat(classes.tooltip, " ").concat(className.hasOwnProperty('tooltip') ? className.tooltip : '', " ").concat(classes[theme] || classes.purple),
150
187
  ref: refs.setFloating,
151
188
  style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
152
189
  zIndex: zIndex,
153
190
  position: strategy
154
191
  })
155
- }, getFloatingProps()), text, showArrow && /*#__PURE__*/_react["default"].createElement(_react2.FloatingArrow, {
192
+ }, getFloatingProps()), /*#__PURE__*/_react["default"].createElement("div", {
193
+ className: classes.content
194
+ }, icon && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
195
+ iconName: icon,
196
+ width: 12,
197
+ height: 12
198
+ }), /*#__PURE__*/_react["default"].createElement("p", {
199
+ className: classes.text
200
+ }, text)), showArrow && /*#__PURE__*/_react["default"].createElement(_react2.FloatingArrow, {
201
+ style: {
202
+ transform: 'translateY(1px)'
203
+ },
156
204
  ref: arrowRef,
157
205
  context: context,
158
206
  fill: colorsArrow[theme] || colorsArrow[themes.PURPLE],
159
- width: 14,
160
- height: 10
207
+ strokeWidth: 1,
208
+ stroke: borderColors[theme].border,
209
+ width: 20,
210
+ d: "M0 20C0 20 2.06906 19.9829 5.91817 15.4092C7.49986 13.5236 8.97939 12.3809 10.0002 12.3809C11.0202 12.3809 12.481 13.6451 14.0814 15.5472C17.952 20.1437 20 20 20 20H0Z"
161
211
  }))));
162
212
  }
163
213
 
@@ -204,7 +254,8 @@ Tooltip.propTypes = {
204
254
  strategy: _propTypes["default"].oneOf(['absolute', 'fixed']),
205
255
 
206
256
  /** Callback fired when the Tooltip show state changes. */
207
- onChange: _propTypes["default"].func
257
+ onChange: _propTypes["default"].func,
258
+ icon: _propTypes["default"].string
208
259
  };
209
260
  var _default = Tooltip;
210
261
  exports["default"] = _default;