@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
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _MenuItemBase = _interopRequireDefault(require("../MenuItemBase"));
13
+
14
+ var _Text = _interopRequireDefault(require("../Text"));
15
+
16
+ var _Avatar = _interopRequireDefault(require("../Avatar"));
17
+
18
+ var _idx = _interopRequireDefault(require("idx"));
19
+
20
+ var _MenuListProvider = require("../Provider/MenuListProvider");
21
+
22
+ var _excluded = ["classes", "disableText", "className", "title", "subtitle", "titleTextProps", "subtitleTextProps", "avatarProps", "dense", "children", "style", "component"];
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
+
26
+ 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); }
27
+
28
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
+
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
+
32
+ /** MenuItem component with Avatar and subtitle. */
33
+ function MenuUser(_ref, ref) {
34
+ var classes = _ref.classes,
35
+ _ref$disableText = _ref.disableText,
36
+ disableText = _ref$disableText === void 0 ? false : _ref$disableText,
37
+ className = _ref.className,
38
+ title = _ref.title,
39
+ subtitle = _ref.subtitle,
40
+ titleTextProps = _ref.titleTextProps,
41
+ subtitleTextProps = _ref.subtitleTextProps,
42
+ avatarProps = _ref.avatarProps,
43
+ dense = _ref.dense,
44
+ children = _ref.children,
45
+ style = _ref.style,
46
+ _ref$component = _ref.component,
47
+ component = _ref$component === void 0 ? 'div' : _ref$component,
48
+ menuItemprops = _objectWithoutProperties(_ref, _excluded);
49
+
50
+ var listContext = (0, _MenuListProvider.useMenuListContext)();
51
+ var isDense = typeof dense === 'undefined' ? listContext.dense : dense;
52
+ var primary = title || children;
53
+ var titleText = !primary ? null : disableText ? primary : /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({
54
+ className: classes.title + ((0, _idx["default"])(className, function (_) {
55
+ return _.title;
56
+ }) ? " ".concat(className.title) : ''),
57
+ tag: "span",
58
+ bodyLargeStrong: !isDense,
59
+ bodyRegularStrong: isDense
60
+ }, titleTextProps), primary);
61
+ var subtitleText = !subtitle ? null : disableText ? subtitle : /*#__PURE__*/_react["default"].createElement(_Text["default"], _extends({
62
+ className: classes.subtitle + ((0, _idx["default"])(className, function (_) {
63
+ return _.subtitle;
64
+ }) ? " ".concat(className.subtitle) : ''),
65
+ tag: "span",
66
+ small: true,
67
+ corpSecondary: true
68
+ }, subtitleTextProps), subtitle);
69
+ return /*#__PURE__*/_react["default"].createElement(_MenuItemBase["default"], _extends({
70
+ className: className && className.root,
71
+ component: component,
72
+ ref: ref,
73
+ style: style && style.root
74
+ }, menuItemprops), avatarProps && /*#__PURE__*/_react["default"].createElement("div", {
75
+ className: classes.avatarContainer + ((0, _idx["default"])(className, function (_) {
76
+ return _.avatarContainer;
77
+ }) ? " ".concat(className.avatarContainer) : ''),
78
+ style: style && style.avatarContainer
79
+ }, /*#__PURE__*/_react["default"].createElement(_Avatar["default"], _extends({
80
+ size: isDense ? 40 : 56
81
+ }, avatarProps))), /*#__PURE__*/_react["default"].createElement("div", {
82
+ className: classes.textContainer + ((0, _idx["default"])(className, function (_) {
83
+ return _.textContainer;
84
+ }) ? " ".concat(className.textContainer) : ''),
85
+ style: style && style.textContainer
86
+ }, titleText, subtitleText));
87
+ }
88
+
89
+ var _default = /*#__PURE__*/_react["default"].forwardRef(MenuUser);
90
+
91
+ exports["default"] = _default;
92
+ MenuUser.propTypes = {
93
+ classes: _propTypes["default"].object,
94
+
95
+ /** Defines the align-items style property. */
96
+ alignItems: _propTypes["default"].oneOf(['center', 'start']),
97
+
98
+ /** Adds classes to the root, text, iconRight, iconLeft containers. */
99
+ className: _propTypes["default"].exact({
100
+ root: _propTypes["default"].string,
101
+ title: _propTypes["default"].string,
102
+ subtitle: _propTypes["default"].string,
103
+ avatarContainer: _propTypes["default"].string,
104
+ textContainer: _propTypes["default"].string
105
+ }),
106
+
107
+ /** Adds styles to the root, text, iconRight, iconLeft containers. */
108
+ style: _propTypes["default"].exact({
109
+ root: _propTypes["default"].object,
110
+ textContainer: _propTypes["default"].object,
111
+ avatarContainer: _propTypes["default"].objects
112
+ }),
113
+
114
+ /** Use to remove hover, focus and active stylings. */
115
+ nonActivatable: _propTypes["default"].bool,
116
+
117
+ /** If true, compact vertical padding designed for keyboard and mouse input is used. The prop defaults to the value inherited from the parent List component. */
118
+ dense: _propTypes["default"].bool,
119
+
120
+ /** If true, compact vertical padding designed for keyboard and mouse input is used. The prop defaults to the value inherited from the parent List component. */
121
+ disablePadding: _propTypes["default"].bool,
122
+
123
+ /** If true, the left and right padding is removed. */
124
+ disableGutters: _propTypes["default"].bool,
125
+
126
+ /** The content of the component. */
127
+ children: _propTypes["default"].node,
128
+
129
+ /** The component used for the root node. Either a string to use a HTML element or a component. */
130
+ selected: _propTypes["default"].bool,
131
+
132
+ /** If true, the children won't be wrapped by a Text component. This can be useful to render an alternative Text variant by wrapping the children text. */
133
+ component: _propTypes["default"].elementType,
134
+
135
+ /** If true, the children won't be wrapped by a Text component. This can be useful to render an alternative Text variant by wrapping the children text. */
136
+ disableText: _propTypes["default"].bool,
137
+
138
+ /** The title content element. */
139
+ title: _propTypes["default"].node,
140
+
141
+ /** These props will be forwarded to the title Text component (as long as disableText is not true). */
142
+ titleTextProps: _propTypes["default"].object,
143
+
144
+ /** The subtitle content element. */
145
+ subtitle: _propTypes["default"].node,
146
+
147
+ /** These props will be forwarded to the subtitle Text component (as long as disableText is not true). */
148
+ subtitleTextProps: _propTypes["default"].object,
149
+
150
+ /** These props will be forwarded to the Avatar component. */
151
+ avatarProps: _propTypes["default"].object
152
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _reactJss = _interopRequireDefault(require("react-jss"));
9
+
10
+ var _MenuUser = _interopRequireDefault(require("./MenuUser"));
11
+
12
+ var _styles = _interopRequireDefault(require("./styles"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var _default = (0, _reactJss["default"])(_styles["default"])(_MenuUser["default"]);
17
+
18
+ exports["default"] = _default;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ avatarContainer: {
9
+ flexShrink: 0,
10
+ paddingRight: 12
11
+ },
12
+ title: {
13
+ display: 'block'
14
+ },
15
+ subtitle: {
16
+ display: 'block'
17
+ },
18
+ textContainer: {
19
+ flex: '1 1 auto'
20
+ }
21
+ };
22
+ exports["default"] = _default;
@@ -11,20 +11,12 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _Card = _interopRequireDefault(require("../Card"));
15
-
16
- var _Icon = _interopRequireDefault(require("../Icon"));
17
-
18
14
  var _Text = _interopRequireDefault(require("../Text"));
19
15
 
20
16
  var _Flexbox = _interopRequireDefault(require("../Flexbox"));
21
17
 
22
18
  var _Button = _interopRequireDefault(require("../Button"));
23
19
 
24
- var _colors = _interopRequireDefault(require("../subatomic/colors"));
25
-
26
- var _grid = _interopRequireDefault(require("../subatomic/grid"));
27
-
28
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
21
 
30
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); }
@@ -49,8 +41,6 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
49
41
 
50
42
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
43
 
52
- 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; }
53
-
54
44
  /**
55
45
  * The Modal component is rendered in any given container, avoiding z-index an position conflicts. Your application must have the logic to show or hide the Modal component.
56
46
  */
@@ -65,17 +55,12 @@ var Modal = /*#__PURE__*/function (_React$Component) {
65
55
  _classCallCheck(this, Modal);
66
56
 
67
57
  _this = _super.call(this, props);
68
-
69
- _defineProperty(_assertThisInitialized(_this), "resize", function () {
70
- _this.setState({
71
- mobile: window.innerWidth < _grid["default"].xs
72
- });
73
- });
74
-
75
58
  _this.state = {
76
- mobile: false
59
+ headerBorder: false,
60
+ footerBorder: false
77
61
  };
78
62
  _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));
63
+ _this.onScroll = _this.onScroll.bind(_assertThisInitialized(_this));
79
64
  return _this;
80
65
  }
81
66
 
@@ -83,21 +68,53 @@ var Modal = /*#__PURE__*/function (_React$Component) {
83
68
  key: "componentDidMount",
84
69
  value: function componentDidMount() {
85
70
  window.addEventListener('keydown', this.onKeyDown);
86
- window.addEventListener('resize', this.resize);
87
- this.resize();
88
71
  }
89
72
  }, {
90
73
  key: "componentWillUnmount",
91
74
  value: function componentWillUnmount() {
92
75
  window.removeEventListener('keydown', this.onKeyDown);
93
- window.removeEventListener('resize', this.resize);
76
+ }
77
+ }, {
78
+ key: "onScroll",
79
+ value: function onScroll(e) {
80
+ var _e$currentTarget = e.currentTarget,
81
+ scrollTop = _e$currentTarget.scrollTop,
82
+ scrollHeight = _e$currentTarget.scrollHeight,
83
+ clientHeight = _e$currentTarget.clientHeight;
84
+
85
+ if (scrollHeight > clientHeight) {
86
+ if (scrollTop > 0) {
87
+ this.setState({
88
+ headerBorder: true
89
+ });
90
+ } else {
91
+ this.setState({
92
+ headerBorder: false
93
+ });
94
+ }
95
+
96
+ if (scrollTop + clientHeight + 1 < scrollHeight) {
97
+ this.setState({
98
+ footerBorder: true
99
+ });
100
+ } else {
101
+ this.setState({
102
+ footerBorder: false
103
+ });
104
+ }
105
+ } else {
106
+ this.setState({
107
+ headerBorder: false,
108
+ footerBorder: false
109
+ });
110
+ }
94
111
  }
95
112
  }, {
96
113
  key: "onKeyDown",
97
114
  value: function onKeyDown(_ref) {
98
115
  var which = _ref.which;
99
116
  var onClose = this.props.onClose;
100
- if (onClose && which == 27) onClose();
117
+ if (onClose && which === 27) onClose();
101
118
  }
102
119
  }, {
103
120
  key: "avoidClose",
@@ -107,7 +124,6 @@ var Modal = /*#__PURE__*/function (_React$Component) {
107
124
  }, {
108
125
  key: "render",
109
126
  value: function render() {
110
- var mobile = this.state.mobile;
111
127
  var _this$props = this.props,
112
128
  classes = _this$props.classes,
113
129
  children = _this$props.children,
@@ -116,28 +132,31 @@ var Modal = /*#__PURE__*/function (_React$Component) {
116
132
  mainBtn = _this$props.mainBtn,
117
133
  show = _this$props.show,
118
134
  secBtn = _this$props.secBtn,
119
- size = _this$props.size,
120
- imgTop = _this$props.imgTop,
121
- imgLeft = _this$props.imgLeft,
135
+ _this$props$size = _this$props.size,
136
+ size = _this$props$size === void 0 ? 'md' : _this$props$size,
137
+ _this$props$imgTop = _this$props.imgTop,
138
+ imgTop = _this$props$imgTop === void 0 ? {} : _this$props$imgTop,
139
+ _this$props$imgLeft = _this$props.imgLeft,
140
+ imgLeft = _this$props$imgLeft === void 0 ? {} : _this$props$imgLeft,
122
141
  onTransitionEnd = _this$props.onTransitionEnd,
123
142
  fullSize = _this$props.fullSize,
124
143
  testId = _this$props.testId;
144
+ var _this$state = this.state,
145
+ headerBorder = _this$state.headerBorder,
146
+ footerBorder = _this$state.footerBorder;
125
147
 
126
- var closeButton = /*#__PURE__*/_react["default"].createElement("div", {
127
- className: classes.closeIcon
128
- }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], _extends({
129
- iconName: "close",
130
- width: 24,
131
- height: 24,
132
- colors: [_colors["default"].grey900],
133
- onClick: onClose
148
+ var closeButton = /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
149
+ theme: "ghostGrey",
150
+ onClick: onClose,
151
+ icon: "x",
152
+ size: "md"
134
153
  }, testId && {
135
154
  testId: "".concat(testId, "__close-icon")
136
- })));
155
+ }));
137
156
 
138
157
  return /*#__PURE__*/_react["default"].createElement("div", {
139
158
  "data-testid": testId,
140
- className: "".concat(classes.overlay, " ").concat(show ? classes.overlayShow : classes.overlayHide).concat(!onClose ? " ".concat(classes.noClose) : ''),
159
+ className: "".concat(classes.overlay, " ").concat(show ? classes.show : classes.hide).concat(!onClose ? " ".concat(classes.noClose) : ''),
141
160
  onClick: onClose,
142
161
  onTransitionEnd: onTransitionEnd
143
162
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -145,43 +164,51 @@ var Modal = /*#__PURE__*/function (_React$Component) {
145
164
  }, /*#__PURE__*/_react["default"].createElement("div", {
146
165
  className: classes.cardBlock,
147
166
  onClick: this.avoidClose
148
- }, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
149
- shadow: 5,
150
- className: "".concat(classes.card).concat(size ? " ".concat(classes[size]) : '').concat(show ? " ".concat(classes.cardShow) : " ".concat(classes.cardHide))
151
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
167
+ }, /*#__PURE__*/_react["default"].createElement("div", {
168
+ className: "".concat(classes.card).concat(size ? " ".concat(classes[size]) : '').concat(fullSize ? " ".concat(classes.fullSize) : '')
169
+ }, /*#__PURE__*/_react["default"].createElement("div", {
170
+ className: classes.split
171
+ }, imgLeft.img && /*#__PURE__*/_react["default"].createElement("div", {
172
+ style: {
173
+ backgroundColor: imgLeft.color || 'transparent',
174
+ backgroundImage: "url(".concat(imgLeft.img, ")"),
175
+ backgroundSize: imgLeft.size || 'cover',
176
+ backgroundPosition: imgLeft.position || 'center'
177
+ },
178
+ className: classes.imgLeft
179
+ }), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
152
180
  display: "flex",
153
- direction: imgLeft.img ? 'row' : 'col'
154
- }, (imgLeft.img || imgTop.img) && /*#__PURE__*/_react["default"].createElement("div", {
155
- className: imgLeft.img ? classes.imgLeft : classes.imgTop
156
- }, imgTop.img && onClose && /*#__PURE__*/_react["default"].createElement("div", {
157
- className: classes.closePosition
158
- }, closeButton)), /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
159
- flex: imgLeft.img ? '1' : null
160
- }, fullSize && mobile ? /*#__PURE__*/_react["default"].createElement("div", {
161
- className: classes.top
162
- }, /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
163
- alignItems: "end",
164
- className: classes.top
165
- }, !imgTop.img && onClose && closeButton), title && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
166
- heading: true,
167
- className: classes.title
168
- }, title)) : /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
181
+ direction: "col",
182
+ className: classes.contentWrapper
183
+ }, title || onClose ? /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
169
184
  display: "flex",
170
185
  justifyContent: "end",
171
186
  alignItems: "start",
172
- className: classes.top
187
+ className: "".concat(classes.header).concat(headerBorder ? " ".concat(classes.headerBorder) : '').concat(imgTop.img ? " ".concat(classes.stickyHeader) : '').concat(imgTop.img && headerBorder ? " ".concat(classes.solidHeader) : '')
173
188
  }, title && /*#__PURE__*/_react["default"].createElement(_Flexbox["default"], {
174
189
  flex: "1"
175
- }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
176
- heading: true,
190
+ }, /*#__PURE__*/_react["default"].createElement("h4", {
177
191
  className: classes.title
178
- }, title)), !imgTop.img && onClose && closeButton), /*#__PURE__*/_react["default"].createElement("div", {
192
+ }, title)), onClose && closeButton) : null, /*#__PURE__*/_react["default"].createElement("div", {
193
+ onScroll: this.onScroll,
179
194
  className: classes.content
180
- }, children), mainBtn && /*#__PURE__*/_react["default"].createElement("div", {
181
- className: classes.bottom
195
+ }, imgTop.img && /*#__PURE__*/_react["default"].createElement("div", {
196
+ style: {
197
+ backgroundColor: imgTop.color || 'transparent',
198
+ backgroundImage: "url(".concat(imgTop.img, ")"),
199
+ backgroundSize: imgTop.size || 'cover',
200
+ backgroundPosition: imgTop.position || 'center'
201
+ },
202
+ className: classes.imgTop
203
+ }), /*#__PURE__*/_react["default"].createElement(_Text["default"], {
204
+ tag: "div",
205
+ className: "".concat(classes.contentChild).concat(!title && !onClose ? " ".concat(classes.noHeader) : '').concat(!mainBtn ? " ".concat(classes.noFooter) : '').concat(imgTop && imgTop.img ? " ".concat(classes.imgTopPadding) : '')
206
+ }, children)), mainBtn && /*#__PURE__*/_react["default"].createElement("div", {
207
+ className: "".concat(classes.footer).concat(footerBorder ? " ".concat(classes.footerBorder) : '')
182
208
  }, secBtn && /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
209
+ type: secBtn.type,
210
+ size: "lg",
183
211
  theme: "ghostGrey",
184
- className: classes.secBtn,
185
212
  onClick: secBtn.onClick,
186
213
  href: secBtn.href,
187
214
  target: secBtn.target,
@@ -189,9 +216,10 @@ var Modal = /*#__PURE__*/function (_React$Component) {
189
216
  disabled: secBtn.disabled,
190
217
  id: secBtn.id
191
218
  }, testId && {
192
- testId: "".concat(testId, "__button_secondary")
219
+ testId: "".concat(testId, "__button-secondary")
193
220
  }), secBtn.text), /*#__PURE__*/_react["default"].createElement(_Button["default"], _extends({
194
- className: classes.mainBtn,
221
+ type: mainBtn.type,
222
+ size: "lg",
195
223
  onClick: mainBtn.onClick,
196
224
  href: mainBtn.href,
197
225
  target: mainBtn.target,
@@ -199,7 +227,7 @@ var Modal = /*#__PURE__*/function (_React$Component) {
199
227
  disabled: mainBtn.disabled,
200
228
  id: mainBtn.id
201
229
  }, testId && {
202
- testId: "".concat(testId, "__button_main")
230
+ testId: "".concat(testId, "__button-main")
203
231
  }), mainBtn.text))))))));
204
232
  }
205
233
  }]);
@@ -71,11 +71,11 @@ describe("Modal", function () {
71
71
  onClose: onClose,
72
72
  show: true
73
73
  }));
74
- expect(wrapper.find('.overlayShow').length).toBe(1);
74
+ expect(wrapper.find('.show').length).toBe(1);
75
75
  wrapper.setProps({
76
76
  show: false
77
77
  });
78
- expect(wrapper.find('.overlayHide').length).toBe(1);
78
+ expect(wrapper.find('.hide').length).toBe(1);
79
79
  });
80
80
  it('renders the title', function () {
81
81
  var onClose = jest.fn();
@@ -106,12 +106,19 @@ describe("Modal", function () {
106
106
  secBtn: {
107
107
  text: 'Secondary button',
108
108
  onClick: onClose
109
- }
109
+ },
110
+ testId: "modal"
110
111
  }));
111
- wrapper.find('.mainBtn').at(0).simulate('click');
112
- wrapper.find('.secBtn').at(0).simulate('click');
113
- expect(wrapper.find('.mainBtn').at(0).text()).toBe('Main button');
114
- expect(wrapper.find('.secBtn').at(0).text()).toBe('Secondary button');
112
+ var mainBtn = wrapper.find({
113
+ 'data-testid': 'modal__button-main'
114
+ }).at(0);
115
+ var secBtn = wrapper.find({
116
+ 'data-testid': 'modal__button-secondary'
117
+ }).at(0);
118
+ mainBtn.simulate('click');
119
+ secBtn.simulate('click');
120
+ expect(mainBtn.text()).toBe('Main button');
121
+ expect(secBtn.text()).toBe('Secondary button');
115
122
  expect(onClose.mock.calls.length).toBe(2);
116
123
  });
117
124
  });