@occmundial/occ-atomic 3.0.0-beta.6 → 3.0.0-beta.61

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. package/CHANGELOG.md +484 -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 +54 -58
  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/Fab/__snapshots__/Fab.test.js.snap +2 -2
  22. package/build/Footer/Footer.js +81 -87
  23. package/build/Footer/List/List.js +89 -124
  24. package/build/Footer/List/styles.js +85 -31
  25. package/build/Footer/__snapshots__/Footer.test.js.snap +109 -59
  26. package/build/Footer/styles.js +116 -51
  27. package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
  28. package/build/Grid/Col/styles.js +12 -6
  29. package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
  30. package/build/Grid/Row/styles.js +15 -5
  31. package/build/Grid/styles.js +26 -9
  32. package/build/Menu/Menu.js +111 -0
  33. package/build/Menu/index.js +34 -0
  34. package/build/Menu/styles.js +28 -0
  35. package/build/MenuDivider/MenuDivider.js +47 -0
  36. package/build/MenuDivider/index.js +18 -0
  37. package/build/MenuDivider/styles.js +21 -0
  38. package/build/MenuItem/MenuItem.js +160 -0
  39. package/build/{Header/Menu → MenuItem}/index.js +2 -2
  40. package/build/MenuItem/styles.js +25 -0
  41. package/build/MenuItemBase/MenuItemBase.js +98 -0
  42. package/build/MenuItemBase/index.js +18 -0
  43. package/build/MenuItemBase/styles.js +57 -0
  44. package/build/MenuList/MenuList.js +71 -0
  45. package/build/{Header → MenuList}/index.js +2 -2
  46. package/build/MenuList/styles.js +54 -0
  47. package/build/MenuUser/MenuUser.js +153 -0
  48. package/build/MenuUser/index.js +18 -0
  49. package/build/MenuUser/styles.js +22 -0
  50. package/build/Modal/Modal.js +94 -66
  51. package/build/Modal/Modal.test.js +14 -7
  52. package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
  53. package/build/Modal/styles.js +165 -143
  54. package/build/NavAvatarButton/NavAvatarButton.js +125 -0
  55. package/build/{NavIcon → NavAvatarButton}/index.js +2 -2
  56. package/build/NavAvatarButton/styles.js +30 -0
  57. package/build/NavButton/NavButton.js +73 -0
  58. package/build/{Header/Nav → NavButton}/index.js +2 -2
  59. package/build/NavButton/styles.js +79 -0
  60. package/build/NavItem/styles.js +4 -4
  61. package/build/NavTab/NavTab.js +47 -32
  62. package/build/NavTab/styles.js +63 -28
  63. package/build/NavTop/styles.js +6 -6
  64. package/build/OrderBy/OrderBy.js +2 -1
  65. package/build/Pager/Page/Page.js +11 -6
  66. package/build/Pager/Page/Page.test.js +13 -9
  67. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  68. package/build/Pager/Page/styles.js +48 -14
  69. package/build/Pager/Pager.js +144 -235
  70. package/build/Pager/Pager.test.js +81 -36
  71. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  72. package/build/Pager/styles.js +5 -40
  73. package/build/Pill/Choice/Choice.js +6 -4
  74. package/build/Pill/Choice/styles.js +13 -10
  75. package/build/Pill/Group/styles.js +5 -5
  76. package/build/Pill/Stack/Stack.js +2 -2
  77. package/build/Pill/Stack/styles.js +5 -8
  78. package/build/Placeholder/Placeholder.js +29 -12
  79. package/build/Placeholder/Placeholder.test.js +4 -4
  80. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
  81. package/build/Placeholder/styles.js +86 -42
  82. package/build/Provider/MenuListProvider.js +38 -0
  83. package/build/Provider/usePrevious.js +1 -1
  84. package/build/Radio/Radio.js +42 -6
  85. package/build/Radio/__snapshots__/Radio.test.js.snap +81 -80
  86. package/build/Radio/styles.js +93 -85
  87. package/build/SlideDown/SlideDown.js +162 -169
  88. package/build/SlideDown/SlideDown.test.js +49 -44
  89. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
  90. package/build/SlideDown/styles.js +51 -20
  91. package/build/SlideToggle/SlideToggle.js +38 -6
  92. package/build/SlideToggle/SlideToggle.test.js +2 -2
  93. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +52 -37
  94. package/build/SlideToggle/styles.js +64 -45
  95. package/build/Tabs/Tab/Tab.js +73 -0
  96. package/build/Tabs/Tab/index.js +34 -0
  97. package/build/Tabs/Tab/index.test.js +132 -0
  98. package/build/Tabs/Tab/styles.js +74 -0
  99. package/build/Tabs/TabContent/TabContent.js +76 -0
  100. package/build/Tabs/TabContent/index.js +34 -0
  101. package/build/Tabs/TabContent/index.test.js +68 -0
  102. package/build/Tabs/TabContent/styles.js +23 -0
  103. package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
  104. package/build/Tabs/TabIndicator/index.js +34 -0
  105. package/build/Tabs/TabIndicator/styles.js +24 -0
  106. package/build/Tabs/TabList/TabList.js +108 -0
  107. package/build/Tabs/TabList/index.js +34 -0
  108. package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
  109. package/build/Tabs/Tabs.js +74 -0
  110. package/build/Tabs/context.js +94 -0
  111. package/build/Tabs/index.js +34 -0
  112. package/build/Tabs/index.test.js +157 -0
  113. package/build/Tabs/styles.js +19 -0
  114. package/build/Tag/Tag.js +2 -2
  115. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  116. package/build/Tag/styles.js +76 -82
  117. package/build/Text/Text.js +2 -1
  118. package/build/TextField/TextField.js +7 -6
  119. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  120. package/build/TextField/styles.js +3 -0
  121. package/build/Tip/Tip.js +62 -95
  122. package/build/Tip/Tip.test.js +29 -6
  123. package/build/Tip/TipText/index.js +32 -0
  124. package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
  125. package/build/Tip/styles.js +125 -31
  126. package/build/Toaster/Toast/Toast.js +76 -64
  127. package/build/Toaster/Toast/styles.js +118 -46
  128. package/build/Toaster/Toaster.js +3 -2
  129. package/build/Toaster/Toaster.test.js +5 -2
  130. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  131. package/build/Toaster/functions.js +4 -0
  132. package/build/Toaster/styles.js +3 -3
  133. package/build/Tooltip/Tooltip.js +73 -22
  134. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  135. package/build/Tooltip/styles.js +32 -10
  136. package/build/index.js +30 -16
  137. package/build/plugin/babel.js +0 -2
  138. package/build/subatomic/grid.js +5 -5
  139. package/build/tokens/colors.json +35 -3
  140. package/package.json +5 -2
  141. package/build/Banner/styles.js +0 -41
  142. package/build/Header/Header.js +0 -163
  143. package/build/Header/Header.test.js +0 -118
  144. package/build/Header/Menu/Menu.js +0 -135
  145. package/build/Header/Menu/Menu.test.js +0 -107
  146. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
  147. package/build/Header/Menu/styles.js +0 -123
  148. package/build/Header/Nav/Nav.js +0 -95
  149. package/build/Header/Nav/Nav.test.js +0 -81
  150. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
  151. package/build/Header/Nav/styles.js +0 -110
  152. package/build/Header/__snapshots__/Header.test.js.snap +0 -79
  153. package/build/Header/styles.js +0 -94
  154. package/build/NavIcon/NavIcon.js +0 -112
  155. package/build/NavIcon/styles.js +0 -81
  156. package/build/Pager/Break/Break.js +0 -27
  157. package/build/Pager/Break/Break.test.js +0 -53
  158. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  159. package/build/Pager/Break/index.js +0 -18
  160. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -0,0 +1,153 @@
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
+ dense: isDense,
72
+ component: component,
73
+ ref: ref,
74
+ style: style && style.root
75
+ }, menuItemprops), avatarProps && /*#__PURE__*/_react["default"].createElement("div", {
76
+ className: classes.avatarContainer + ((0, _idx["default"])(className, function (_) {
77
+ return _.avatarContainer;
78
+ }) ? " ".concat(className.avatarContainer) : ''),
79
+ style: style && style.avatarContainer
80
+ }, /*#__PURE__*/_react["default"].createElement(_Avatar["default"], _extends({
81
+ size: isDense ? 40 : 56
82
+ }, avatarProps))), /*#__PURE__*/_react["default"].createElement("div", {
83
+ className: classes.textContainer + ((0, _idx["default"])(className, function (_) {
84
+ return _.textContainer;
85
+ }) ? " ".concat(className.textContainer) : ''),
86
+ style: style && style.textContainer
87
+ }, titleText, subtitleText));
88
+ }
89
+
90
+ var _default = /*#__PURE__*/_react["default"].forwardRef(MenuUser);
91
+
92
+ exports["default"] = _default;
93
+ MenuUser.propTypes = {
94
+ classes: _propTypes["default"].object,
95
+
96
+ /** Defines the align-items style property. */
97
+ alignItems: _propTypes["default"].oneOf(['center', 'start']),
98
+
99
+ /** Adds classes to the root, text, iconRight, iconLeft containers. */
100
+ className: _propTypes["default"].exact({
101
+ root: _propTypes["default"].string,
102
+ title: _propTypes["default"].string,
103
+ subtitle: _propTypes["default"].string,
104
+ avatarContainer: _propTypes["default"].string,
105
+ textContainer: _propTypes["default"].string
106
+ }),
107
+
108
+ /** Adds styles to the root, text, iconRight, iconLeft containers. */
109
+ style: _propTypes["default"].exact({
110
+ root: _propTypes["default"].object,
111
+ textContainer: _propTypes["default"].object,
112
+ avatarContainer: _propTypes["default"].objects
113
+ }),
114
+
115
+ /** Use to remove hover, focus and active stylings. */
116
+ nonActivatable: _propTypes["default"].bool,
117
+
118
+ /** 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. */
119
+ dense: _propTypes["default"].bool,
120
+
121
+ /** 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. */
122
+ disablePadding: _propTypes["default"].bool,
123
+
124
+ /** If true, the left and right padding is removed. */
125
+ disableGutters: _propTypes["default"].bool,
126
+
127
+ /** The content of the component. */
128
+ children: _propTypes["default"].node,
129
+
130
+ /** The component used for the root node. Either a string to use a HTML element or a component. */
131
+ selected: _propTypes["default"].bool,
132
+
133
+ /** 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. */
134
+ component: _propTypes["default"].elementType,
135
+
136
+ /** 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. */
137
+ disableText: _propTypes["default"].bool,
138
+
139
+ /** The title content element. */
140
+ title: _propTypes["default"].node,
141
+
142
+ /** These props will be forwarded to the title Text component (as long as disableText is not true). */
143
+ titleTextProps: _propTypes["default"].object,
144
+
145
+ /** The subtitle content element. */
146
+ subtitle: _propTypes["default"].node,
147
+
148
+ /** These props will be forwarded to the subtitle Text component (as long as disableText is not true). */
149
+ subtitleTextProps: _propTypes["default"].object,
150
+
151
+ /** These props will be forwarded to the Avatar component. */
152
+ avatarProps: _propTypes["default"].object
153
+ };
@@ -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
  });