@dxc-technology/halstack-react 0.0.0-c7d5596 → 0.0.0-c7ec4d1

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 (199) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +237 -2
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Textarea/V3Textarea.js +264 -0
  7. package/dist/accordion/Accordion.js +152 -67
  8. package/dist/accordion-group/AccordionGroup.js +186 -0
  9. package/dist/alert/Alert.js +183 -84
  10. package/dist/alert/index.d.ts +51 -0
  11. package/dist/badge/Badge.js +63 -0
  12. package/dist/box/Box.js +31 -23
  13. package/dist/button/Button.js +63 -27
  14. package/dist/card/Card.js +72 -35
  15. package/dist/checkbox/Checkbox.js +99 -40
  16. package/dist/chip/Chip.js +97 -40
  17. package/dist/common/RequiredComponent.js +2 -8
  18. package/dist/common/utils.js +2 -22
  19. package/dist/common/variables.js +1452 -304
  20. package/dist/date/Date.js +80 -57
  21. package/dist/date-input/DateInput.js +400 -0
  22. package/dist/date-input/index.d.ts +95 -0
  23. package/dist/dialog/Dialog.js +58 -37
  24. package/dist/dropdown/Dropdown.js +177 -82
  25. package/dist/file-input/FileInput.js +644 -0
  26. package/dist/file-input/FileItem.js +287 -0
  27. package/dist/file-input/index.d.ts +81 -0
  28. package/dist/footer/Footer.js +90 -40
  29. package/dist/footer/Icons.js +77 -0
  30. package/dist/header/Header.js +192 -95
  31. package/dist/header/Icons.js +59 -0
  32. package/dist/heading/Heading.js +93 -16
  33. package/dist/input-text/Icons.js +22 -0
  34. package/dist/input-text/InputText.js +251 -116
  35. package/dist/layout/ApplicationLayout.js +18 -26
  36. package/dist/layout/Icons.js +55 -0
  37. package/dist/link/Link.js +89 -41
  38. package/dist/main.d.ts +8 -0
  39. package/dist/main.js +98 -18
  40. package/dist/number-input/NumberInput.js +136 -0
  41. package/dist/number-input/NumberInputContext.js +16 -0
  42. package/dist/number-input/index.d.ts +113 -0
  43. package/dist/paginator/Icons.js +66 -0
  44. package/dist/paginator/Paginator.js +122 -66
  45. package/dist/password-input/PasswordInput.js +203 -0
  46. package/dist/password-input/index.d.ts +94 -0
  47. package/dist/progress-bar/ProgressBar.js +95 -38
  48. package/dist/radio/Radio.js +31 -17
  49. package/dist/resultsetTable/ResultsetTable.js +82 -65
  50. package/dist/select/Select.js +896 -284
  51. package/dist/select/index.d.ts +53 -0
  52. package/dist/sidenav/Sidenav.js +66 -15
  53. package/dist/slider/Slider.js +211 -73
  54. package/dist/spinner/Spinner.js +247 -59
  55. package/dist/switch/Switch.js +50 -27
  56. package/dist/table/Table.js +51 -24
  57. package/dist/tabs/Tabs.js +193 -35
  58. package/dist/tag/Tag.js +68 -35
  59. package/dist/text-input/TextInput.js +974 -0
  60. package/dist/text-input/index.d.ts +135 -0
  61. package/dist/textarea/Textarea.js +248 -106
  62. package/dist/textarea/index.d.ts +117 -0
  63. package/dist/toggle/Toggle.js +16 -19
  64. package/dist/toggle-group/ToggleGroup.js +142 -41
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  67. package/dist/upload/buttons-upload/Icons.js +40 -0
  68. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  69. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  70. package/dist/upload/file-upload/FileToUpload.js +64 -33
  71. package/dist/upload/file-upload/Icons.js +66 -0
  72. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  73. package/dist/upload/transaction/Icons.js +160 -0
  74. package/dist/upload/transaction/Transaction.js +42 -49
  75. package/dist/upload/transactions/Transactions.js +38 -20
  76. package/dist/useTheme.js +22 -0
  77. package/dist/wizard/Icons.js +65 -0
  78. package/dist/wizard/Wizard.js +125 -60
  79. package/package.json +14 -11
  80. package/test/AccordionGroup.test.js +125 -0
  81. package/test/Date.test.js +49 -45
  82. package/test/DateInput.test.js +242 -0
  83. package/test/Dropdown.test.js +15 -0
  84. package/test/FileInput.test.js +201 -0
  85. package/test/Footer.test.js +2 -7
  86. package/test/Header.test.js +5 -10
  87. package/test/Heading.test.js +60 -12
  88. package/test/InputText.test.js +53 -41
  89. package/test/Link.test.js +12 -2
  90. package/test/NumberInput.test.js +259 -0
  91. package/test/Paginator.test.js +50 -77
  92. package/test/PasswordInput.test.js +83 -0
  93. package/test/ResultsetTable.test.js +61 -25
  94. package/test/Slider.test.js +9 -17
  95. package/test/Spinner.test.js +5 -0
  96. package/test/Tabs.test.js +21 -0
  97. package/test/TextInput.test.js +732 -0
  98. package/test/Textarea.test.js +193 -0
  99. package/test/ToggleGroup.test.js +5 -1
  100. package/test/Upload.test.js +5 -5
  101. package/test/{Select.test.js → V3Select.test.js} +67 -46
  102. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  103. package/dist/accordion/Accordion.stories.js +0 -207
  104. package/dist/accordion/readme.md +0 -96
  105. package/dist/alert/Alert.stories.js +0 -158
  106. package/dist/alert/close.svg +0 -4
  107. package/dist/alert/error.svg +0 -4
  108. package/dist/alert/info.svg +0 -4
  109. package/dist/alert/readme.md +0 -43
  110. package/dist/alert/success.svg +0 -4
  111. package/dist/alert/warning.svg +0 -4
  112. package/dist/button/Button.stories.js +0 -224
  113. package/dist/button/readme.md +0 -93
  114. package/dist/checkbox/Checkbox.stories.js +0 -144
  115. package/dist/checkbox/readme.md +0 -116
  116. package/dist/common/services/example-service.js +0 -10
  117. package/dist/common/services/example-service.test.js +0 -12
  118. package/dist/date/Date.stories.js +0 -205
  119. package/dist/date/calendar.svg +0 -1
  120. package/dist/date/calendar_dark.svg +0 -1
  121. package/dist/date/readme.md +0 -73
  122. package/dist/dialog/Dialog.stories.js +0 -217
  123. package/dist/dialog/readme.md +0 -32
  124. package/dist/dropdown/Dropdown.stories.js +0 -249
  125. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  126. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  127. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  128. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  129. package/dist/dropdown/readme.md +0 -69
  130. package/dist/footer/Footer.stories.js +0 -94
  131. package/dist/footer/dxc_logo_wht.png +0 -0
  132. package/dist/footer/readme.md +0 -41
  133. package/dist/header/Header.stories.js +0 -176
  134. package/dist/header/close_icon.svg +0 -1
  135. package/dist/header/dxc_logo_black.png +0 -0
  136. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  137. package/dist/header/dxc_logo_white.png +0 -0
  138. package/dist/header/hamb_menu_black.svg +0 -1
  139. package/dist/header/hamb_menu_white.svg +0 -1
  140. package/dist/header/readme.md +0 -33
  141. package/dist/input-text/InputText.stories.js +0 -209
  142. package/dist/input-text/error.svg +0 -1
  143. package/dist/input-text/readme.md +0 -91
  144. package/dist/layout/facebook.svg +0 -45
  145. package/dist/layout/linkedin.svg +0 -50
  146. package/dist/layout/twitter.svg +0 -53
  147. package/dist/link/readme.md +0 -51
  148. package/dist/paginator/images/next.svg +0 -3
  149. package/dist/paginator/images/nextPage.svg +0 -3
  150. package/dist/paginator/images/previous.svg +0 -3
  151. package/dist/paginator/images/previousPage.svg +0 -3
  152. package/dist/paginator/readme.md +0 -50
  153. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  154. package/dist/progress-bar/readme.md +0 -63
  155. package/dist/radio/Radio.stories.js +0 -166
  156. package/dist/radio/readme.md +0 -70
  157. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  158. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  159. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  160. package/dist/select/Select.stories.js +0 -235
  161. package/dist/select/readme.md +0 -72
  162. package/dist/slider/Slider.stories.js +0 -241
  163. package/dist/slider/readme.md +0 -64
  164. package/dist/spinner/Spinner.stories.js +0 -183
  165. package/dist/spinner/readme.md +0 -65
  166. package/dist/switch/Switch.stories.js +0 -134
  167. package/dist/switch/readme.md +0 -133
  168. package/dist/tabs/Tabs.stories.js +0 -130
  169. package/dist/tabs/readme.md +0 -78
  170. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  171. package/dist/tabs-for-sections/readme.md +0 -78
  172. package/dist/toggle/Toggle.stories.js +0 -297
  173. package/dist/toggle/readme.md +0 -80
  174. package/dist/toggle-group/readme.md +0 -82
  175. package/dist/upload/Upload.stories.js +0 -72
  176. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  177. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  178. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  179. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  180. package/dist/upload/file-upload/audio-icon.svg +0 -4
  181. package/dist/upload/file-upload/close.svg +0 -4
  182. package/dist/upload/file-upload/file-icon.svg +0 -4
  183. package/dist/upload/file-upload/video-icon.svg +0 -4
  184. package/dist/upload/readme.md +0 -37
  185. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  186. package/dist/upload/transaction/audio-icon.svg +0 -4
  187. package/dist/upload/transaction/error-icon.svg +0 -4
  188. package/dist/upload/transaction/file-icon-err.svg +0 -4
  189. package/dist/upload/transaction/file-icon.svg +0 -4
  190. package/dist/upload/transaction/image-icon-err.svg +0 -4
  191. package/dist/upload/transaction/image-icon.svg +0 -4
  192. package/dist/upload/transaction/success-icon.svg +0 -4
  193. package/dist/upload/transaction/video-icon-err.svg +0 -4
  194. package/dist/upload/transaction/video-icon.svg +0 -4
  195. package/dist/wizard/invalid_icon.svg +0 -6
  196. package/dist/wizard/valid_icon.svg +0 -6
  197. package/dist/wizard/validation-wrong.svg +0 -6
  198. package/test/TabsForSections.test.js +0 -34
  199. package/test/Toggle.test.js +0 -43
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
+
18
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
19
+
20
+ function _templateObject() {
21
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n display: flex;\n padding-bottom: 1px;\n padding-right: 1px;\n flex-wrap: wrap;\n box-sizing: border-box;\n align-items: center;\n line-height: 1;\n align-content: center;\n flex-direction: row;\n justify-content: center;\n"]);
22
+
23
+ _templateObject = function _templateObject() {
24
+ return data;
25
+ };
26
+
27
+ return data;
28
+ }
29
+
30
+ var DxcBadge = function DxcBadge(_ref) {
31
+ var notificationText = _ref.notificationText;
32
+ var colorsTheme = (0, _useTheme["default"])();
33
+ return _react["default"].createElement(_styledComponents.ThemeProvider, {
34
+ theme: colorsTheme.tabs
35
+ }, _react["default"].createElement(StyledDxcBadge, {
36
+ notificationText: notificationText
37
+ }, _react["default"].createElement("span", null, notificationText)));
38
+ };
39
+
40
+ var StyledDxcBadge = _styledComponents["default"].div(_templateObject(), function (props) {
41
+ return props.theme.badgeBackgroundColor;
42
+ }, function (props) {
43
+ return props.theme.badgeFontFamily;
44
+ }, function (props) {
45
+ return props.theme.badgeFontSize;
46
+ }, function (props) {
47
+ return props.theme.badgeFontStyle;
48
+ }, function (props) {
49
+ return props.theme.badgeFontWeight;
50
+ }, function (props) {
51
+ return props.theme.badgeFontColor;
52
+ }, function (props) {
53
+ return props.theme.badgeLetterSpacing;
54
+ }, function (props) {
55
+ return props.notificationText === true ? props.theme.badgeWidth : props.theme.badgeWidthWithNotificationNumber;
56
+ }, function (props) {
57
+ return props.notificationText === true ? props.theme.badgeHeight : props.theme.badgeHeightWithNotificationNumber;
58
+ }, function (props) {
59
+ return props.notificationText === true ? props.theme.badgeRadius : props.theme.badgeRadiusWithNotificationNumber;
60
+ });
61
+
62
+ var _default = DxcBadge;
63
+ exports["default"] = _default;
package/dist/box/Box.js CHANGED
@@ -15,7 +15,7 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
15
 
16
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
17
 
18
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = _interopRequireDefault(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
@@ -25,12 +25,12 @@ var _variables = require("../common/variables.js");
25
25
 
26
26
  var _utils = require("../common/utils.js");
27
27
 
28
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
29
 
30
- require("../common/OpenSans.css");
30
+ var _BackgroundColorContext = require("../BackgroundColorContext.js");
31
31
 
32
32
  function _templateObject() {
33
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n border-radius: 4px;\n overflow: hidden;\n font-family: \"Open Sans\", sans-serif;\n width: ", ";\n background-color: ", ";\n box-shadow: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"]);
33
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n letter-spacing: ", ";\n overflow: hidden;\n width: ", ";\n background-color: ", ";\n box-shadow: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"]);
34
34
 
35
35
  _templateObject = function _templateObject() {
36
36
  return data;
@@ -48,10 +48,7 @@ var DxcBox = function DxcBox(_ref) {
48
48
  children = _ref.children,
49
49
  _ref$size = _ref.size,
50
50
  size = _ref$size === void 0 ? "fitContent" : _ref$size;
51
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
52
- var colorsTheme = (0, _react.useMemo)(function () {
53
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
54
- }, [customTheme]);
51
+ var colorsTheme = (0, _useTheme["default"])();
55
52
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
56
53
  theme: colorsTheme.box
57
54
  }, _react["default"].createElement(StyledDxcBox, {
@@ -60,7 +57,9 @@ var DxcBox = function DxcBox(_ref) {
60
57
  margin: margin,
61
58
  padding: padding,
62
59
  size: size
63
- }, children));
60
+ }, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
61
+ color: colorsTheme.box.backgroundColor
62
+ }, children)));
64
63
  };
65
64
 
66
65
  var sizes = {
@@ -82,42 +81,51 @@ var calculateWidth = function calculateWidth(margin, size, padding) {
82
81
  var StyledDxcBox = _styledComponents["default"].div(_templateObject(), function (_ref2) {
83
82
  var display = _ref2.display;
84
83
  return display;
84
+ }, function (props) {
85
+ return props.theme.borderRadius;
86
+ }, function (props) {
87
+ return props.theme.borderThickness;
88
+ }, function (props) {
89
+ return props.theme.borderStyle;
90
+ }, function (props) {
91
+ return props.theme.borderColor;
92
+ }, function (props) {
93
+ return props.theme.letterSpacing;
85
94
  }, function (props) {
86
95
  return calculateWidth(props.margin, props.size, props.padding);
87
96
  }, function (props) {
88
97
  return props.theme.backgroundColor;
98
+ }, function (props) {
99
+ return props.shadowDepth === 1 ? "".concat(props.theme.oneShadowDepthShadowOffsetX, " ").concat(props.theme.oneShadowDepthShadowOffsetY, " ").concat(props.theme.oneShadowDepthShadowBlur, " ").concat(props.theme.oneShadowDepthShadowSpread, " ").concat(props.theme.oneShadowDepthShadowColor) : props.shadowDepth === 2 ? "".concat(props.theme.twoShadowDepthShadowOffsetX, " ").concat(props.theme.twoShadowDepthShadowOffsetY, " ").concat(props.theme.twoShadowDepthShadowBlur, " ").concat(props.theme.twoShadowDepthShadowSpread, " ").concat(props.theme.twoShadowDepthShadowColor) : "".concat(props.theme.noneShadowDepthShadowOffsetX, " ").concat(props.theme.noneShadowDepthShadowOffsetY, " ").concat(props.theme.noneShadowDepthShadowBlur, " ").concat(props.theme.noneShadowDepthShadowSpread, " ").concat(props.theme.noneShadowDepthShadowColor);
89
100
  }, function (_ref3) {
90
- var shadowDepth = _ref3.shadowDepth;
91
- return shadowDepth === 1 ? "0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)" : shadowDepth === 2 ? "0px 3px 3px -2px rgba(0,0,0,0.2), 0px 3px 4px 0px rgba(0,0,0,0.14), 0px 1px 8px 0px rgba(0,0,0,0.12)" : "none";
101
+ var margin = _ref3.margin;
102
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
92
103
  }, function (_ref4) {
93
104
  var margin = _ref4.margin;
94
- return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
105
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
95
106
  }, function (_ref5) {
96
107
  var margin = _ref5.margin;
97
- return margin && margin.top ? _variables.spaces[margin.top] : "";
108
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
98
109
  }, function (_ref6) {
99
110
  var margin = _ref6.margin;
100
- return margin && margin.right ? _variables.spaces[margin.right] : "";
111
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
101
112
  }, function (_ref7) {
102
113
  var margin = _ref7.margin;
103
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
104
- }, function (_ref8) {
105
- var margin = _ref8.margin;
106
114
  return margin && margin.left ? _variables.spaces[margin.left] : "";
115
+ }, function (_ref8) {
116
+ var padding = _ref8.padding;
117
+ return padding && (0, _typeof2["default"])(padding) !== "object" ? _variables.spaces[padding] : "0px";
107
118
  }, function (_ref9) {
108
119
  var padding = _ref9.padding;
109
- return padding && (0, _typeof2["default"])(padding) !== "object" ? _variables.spaces[padding] : "0px";
120
+ return padding && padding.top ? _variables.spaces[padding.top] : "";
110
121
  }, function (_ref10) {
111
122
  var padding = _ref10.padding;
112
- return padding && padding.top ? _variables.spaces[padding.top] : "";
123
+ return padding && padding.right ? _variables.spaces[padding.right] : "";
113
124
  }, function (_ref11) {
114
125
  var padding = _ref11.padding;
115
- return padding && padding.right ? _variables.spaces[padding.right] : "";
126
+ return padding && padding.bottom ? _variables.spaces[padding.bottom] : "";
116
127
  }, function (_ref12) {
117
128
  var padding = _ref12.padding;
118
- return padding && padding.bottom ? _variables.spaces[padding.bottom] : "";
119
- }, function (_ref13) {
120
- var padding = _ref13.padding;
121
129
  return padding && padding.left ? _variables.spaces[padding.left] : "";
122
130
  });
123
131
 
@@ -17,22 +17,22 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _core = require("@material-ui/core");
20
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
21
21
 
22
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
25
25
 
26
- require("../common/OpenSans.css");
27
-
28
26
  var _variables = require("../common/variables.js");
29
27
 
30
28
  var _utils = require("../common/utils.js");
31
29
 
32
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
30
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
+
32
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
33
33
 
34
34
  function _templateObject4() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n letter-spacing: 1px;\n box-shadow: none;\n font-size: 14px;\n font-weight: 500;\n min-width: ", ";\n border-radius: 4px;\n width: 100%;\n min-height: 43px;\n line-height: 1;\n font-family: \"Open Sans\", sans-serif;\n &:focus {\n outline: ", " auto 1px;\n }\n transition: color 0.16s ease-in-out, background-color 0.16s ease-in-out;\n transition: color 0.16s ease-in-out, border-color 0.16s ease-in-out;\n &:hover {\n transition: color 0.16s ease-in-out, background-color 0.16s ease-in-out;\n transition: color 0.16s ease-in-out, border-color 0.16s ease-in-out;\n }\n ", "\n }\n"]);
35
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"]);
36
36
 
37
37
  _templateObject4 = function _templateObject4() {
38
38
  return data;
@@ -42,7 +42,7 @@ function _templateObject4() {
42
42
  }
43
43
 
44
44
  function _templateObject3() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
46
46
 
47
47
  _templateObject3 = function _templateObject3() {
48
48
  return data;
@@ -52,7 +52,7 @@ function _templateObject3() {
52
52
  }
53
53
 
54
54
  function _templateObject2() {
55
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
55
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
56
56
 
57
57
  _templateObject2 = function _templateObject2() {
58
58
  return data;
@@ -62,7 +62,7 @@ function _templateObject2() {
62
62
  }
63
63
 
64
64
  function _templateObject() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n line-height: 18px;\n font-size: 14px;\n text-overflow: ellipsis;\n overflow: hidden;\n"]);
65
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n margin-right: ", ";\n margin-left: ", ";\n"]);
66
66
 
67
67
  _templateObject = function _templateObject() {
68
68
  return data;
@@ -80,36 +80,46 @@ var DxcButton = function DxcButton(_ref) {
80
80
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
81
81
  _ref$iconPosition = _ref.iconPosition,
82
82
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
83
+ _ref$type = _ref.type,
84
+ type = _ref$type === void 0 ? "button" : _ref$type,
83
85
  _ref$iconSrc = _ref.iconSrc,
84
86
  iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
85
87
  icon = _ref.icon,
86
88
  _ref$onClick = _ref.onClick,
87
89
  _onClick = _ref$onClick === void 0 ? "" : _ref$onClick,
88
90
  margin = _ref.margin,
89
- size = _ref.size;
91
+ size = _ref.size,
92
+ _ref$tabIndex = _ref.tabIndex,
93
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
90
94
 
91
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
92
- var colorsTheme = (0, _react.useMemo)(function () {
93
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
94
- }, [customTheme]);
95
+ var colorsTheme = (0, _useTheme["default"])();
96
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
95
97
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
96
98
  theme: colorsTheme.button
97
99
  }, _react["default"].createElement(DxCButton, {
100
+ type: type,
98
101
  margin: margin,
99
- mode: mode,
102
+ mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
100
103
  disabled: disabled,
101
104
  iconPosition: iconPosition,
102
- size: size
103
- }, _react["default"].createElement(_core.Button, {
105
+ size: size,
106
+ backgroundType: backgroundType,
107
+ icon: icon
108
+ }, _react["default"].createElement(_Button["default"], {
104
109
  disabled: disabled,
110
+ type: type,
105
111
  disableRipple: true,
106
112
  "aria-disabled": disabled ? true : false,
113
+ tabIndex: disabled ? -1 : tabIndex,
107
114
  onClick: function onClick() {
108
115
  if (_onClick) {
109
116
  _onClick();
110
117
  }
111
118
  }
112
- }, _react["default"].createElement(LabelContainer, null, label), icon ? _react["default"].createElement(IconContainer, {
119
+ }, label && _react["default"].createElement(LabelContainer, {
120
+ icon: icon,
121
+ iconPosition: iconPosition
122
+ }, label), icon ? _react["default"].createElement(IconContainer, {
113
123
  label: label,
114
124
  iconPosition: iconPosition
115
125
  }, (0, _typeof2["default"])(icon) === "object" ? icon : _react["default"].createElement(icon)) : iconSrc && _react["default"].createElement(ButtonIcon, {
@@ -135,12 +145,20 @@ var calculateWidth = function calculateWidth(margin, size) {
135
145
  return sizes[size];
136
146
  };
137
147
 
138
- var LabelContainer = _styledComponents["default"].span(_templateObject());
148
+ var LabelContainer = _styledComponents["default"].span(_templateObject(), function (props) {
149
+ return props.theme.labelFontLineHeight;
150
+ }, function (props) {
151
+ return props.theme.fontSize;
152
+ }, function (props) {
153
+ return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
154
+ }, function (props) {
155
+ return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
156
+ });
139
157
 
140
158
  var IconContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
141
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
159
+ return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
142
160
  }, function (props) {
143
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
161
+ return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
144
162
  });
145
163
 
146
164
  var ButtonIcon = _styledComponents["default"].img(_templateObject3(), function (props) {
@@ -163,21 +181,38 @@ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (p
163
181
  return calculateWidth(props.margin, props.size);
164
182
  }, function (props) {
165
183
  return props.disabled && "not-allowed" || "pointer";
184
+ }, function (props) {
185
+ return props.theme.paddingLeft;
186
+ }, function (props) {
187
+ return props.theme.paddingRight;
188
+ }, function (props) {
189
+ return props.theme.paddingTop;
190
+ }, function (props) {
191
+ return props.theme.paddingBottom;
166
192
  }, function (props) {
167
193
  return props.iconPosition === "after" && "row" || "row-reverse";
194
+ }, function (props) {
195
+ return props.theme.fontFamily;
196
+ }, function (props) {
197
+ return props.theme.fontSize;
198
+ }, function (props) {
199
+ return props.theme.fontWeight;
200
+ }, function (props) {
201
+ return props.theme.labelLetterSpacing;
168
202
  }, function (props) {
169
203
  return props.size === "small" && "calc(100% - 22px)" || "unset";
170
204
  }, function (props) {
171
- return props.theme.focusColor;
205
+ return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
172
206
  }, function (props) {
173
- var mode = props.mode;
207
+ var mode = props.mode,
208
+ backgroundType = props.backgroundType;
174
209
 
175
210
  if (mode === "primary") {
176
- return "\n background-color: ".concat(props.theme.color, ";\n color: ").concat(props.theme.primaryFontColor, ";\n padding: ").concat(props.size === "small" && "11px" || "12px 30px", ";\n &:hover{\n background-color: ").concat(props.theme.hoverColor, ";\n color: ").concat(props.theme.primaryHoverFontColor, "; \n }\n &:active {\n background-color: ").concat(props.theme.hoverColor).concat(props.theme.primaryActiveOpacity, " !important;\n color: ").concat(props.theme.primaryHoverFontColor, " !important;\n }\n &:focus {\n background-color: ").concat(props.theme.color, ";\n color: ").concat(props.theme.primaryHoverFontColor, "; \n }\n &:disabled{ \n background-color: ").concat(props.theme.color, ";\n opacity: ").concat(props.theme.disabledOpacity, ";\n color: ").concat(props.theme.primaryFontColor, ";\n cursor:not-allowed;\n }\n .MuiButton-label {\n z-index: 5\n }\n ");
211
+ return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
177
212
  } else if (mode === "secondary") {
178
- return "\n background-color: ".concat(props.theme.secondaryBackgroundColor, ";\n padding: ").concat(props.size === "small" && "9px" || "10px 28px", ";\n color: ").concat(props.theme.secondaryFontColor, ";\n border: 2px solid;\n border-color: ").concat(props.theme.color, ";\n &:hover{\n border-color: ").concat(props.theme.hoverColor, ";\n background-color: ").concat(props.theme.hoverColor).concat(props.theme.secondaryHoverOpacity, ";\n color: ").concat(props.theme.secondaryHoverFontColor, "; \n }\n &:active {\n background-color: ").concat(props.theme.hoverColor).concat(props.theme.secondaryActiveOpacity, " !important;\n color: ").concat(props.theme.secondaryHoverFontColor, " !important;\n }\n &:focus {\n background-color: ").concat(props.theme.secondaryBackgroundColor, ";\n color: ").concat(props.theme.secondaryHoverFontColor, "; \n }\n &:disabled{\n background-color: ").concat(props.theme.secondaryBackgroundColor, ";\n border-color: ").concat(props.theme.color, ";\n color: ").concat(props.theme.secondaryFontColor, ";\n cursor:not-allowed;\n opacity: ").concat(props.theme.disabledOpacity, ";\n }\n .MuiButton-label {\n z-index: 5\n }\n\n ");
213
+ return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
179
214
  } else if (mode === "text") {
180
- return "\n background-color: ".concat(props.theme.textBackgroundColor, ";\n color: ").concat(props.theme.textFontColor, ";\n padding: ").concat(props.size === "small" && "11px" || "12px 30px", ";\n &:hover{\n background-color: ").concat(props.theme.hoverColor, ";\n color: ").concat(props.theme.textHoverFontColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.hoverColor).concat(props.theme.textActiveOpacity, " !important;\n color: ").concat(props.theme.textHoverFontColor, " !important;\n }\n &:focus {\n background-color: ").concat(props.theme.textBackgroundColor, ";\n color: ").concat(props.theme.textFontColor, "; \n }\n &:disabled{\n background-color: ").concat(props.theme.textBackgroundColor, ";\n opacity: ").concat(props.theme.disabledOpacity, ";\n color: ").concat(props.theme.textFontColor, ";\n cursor:not-allowed;\n }\n ");
215
+ return "\n border-radius: ".concat(props.theme.textBorderRadius, ";\n border-width: ").concat(props.theme.textBorderThickness, ";\n border-style: ").concat(props.theme.textBorderStyle, ";\n font-family: ").concat(props.theme.textFontFamily, ";\n font-size: ").concat(props.theme.textFontSize, ";\n font-weight: ").concat(props.theme.textFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor:not-allowed;\n color: ").concat(backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, " !important;\n background-color: ").concat(backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n }\n ");
181
216
  }
182
217
  });
183
218
 
@@ -192,11 +227,12 @@ DxcButton.propTypes = {
192
227
  label: _propTypes["default"].string,
193
228
  mode: _propTypes["default"].oneOf(["primary", "secondary", "text"]),
194
229
  disabled: _propTypes["default"].bool,
195
- theme: _propTypes["default"].oneOf(["dark", "light"]),
196
230
  iconPosition: _propTypes["default"].oneOf(["after", "before"]),
197
231
  onClick: _propTypes["default"].func,
198
232
  iconSrc: _propTypes["default"].string,
199
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func])
233
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
234
+ type: _propTypes["default"].oneOf(["button", "reset", "submit"]),
235
+ tabIndex: _propTypes["default"].number
200
236
  };
201
237
  var _default = DxcButton;
202
238
  exports["default"] = _default;
package/dist/card/Card.js CHANGED
@@ -19,16 +19,18 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
- var _styledComponents = _interopRequireDefault(require("styled-components"));
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
+
28
30
  var _Box = _interopRequireDefault(require("../box/Box"));
29
31
 
30
32
  function _templateObject6() {
31
- var data = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n height: 100%;\n overflow: hidden;\n"]);
33
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"]);
32
34
 
33
35
  _templateObject6 = function _templateObject6() {
34
36
  return data;
@@ -38,7 +40,7 @@ function _templateObject6() {
38
40
  }
39
41
 
40
42
  function _templateObject5() {
41
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 140px;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"]);
43
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"]);
42
44
 
43
45
  _templateObject5 = function _templateObject5() {
44
46
  return data;
@@ -58,7 +60,7 @@ function _templateObject4() {
58
60
  }
59
61
 
60
62
  function _templateObject3() {
61
- var data = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n"]);
63
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n text-decoration: none;\n"]);
62
64
 
63
65
  _templateObject3 = function _templateObject3() {
64
66
  return data;
@@ -68,7 +70,7 @@ function _templateObject3() {
68
70
  }
69
71
 
70
72
  function _templateObject2() {
71
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n height: 220px;\n width: 400px;\n &:hover {\n border-color: ", ";\n }\n"]);
73
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"]);
72
74
 
73
75
  _templateObject2 = function _templateObject2() {
74
76
  return data;
@@ -78,7 +80,7 @@ function _templateObject2() {
78
80
  }
79
81
 
80
82
  function _templateObject() {
81
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
83
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n outline: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
82
84
 
83
85
  _templateObject = function _templateObject() {
84
86
  return data;
@@ -91,38 +93,40 @@ var DxcCard = function DxcCard(_ref) {
91
93
  var imageSrc = _ref.imageSrc,
92
94
  children = _ref.children,
93
95
  margin = _ref.margin,
96
+ contentPadding = _ref.contentPadding,
94
97
  linkHref = _ref.linkHref,
95
98
  onClick = _ref.onClick,
96
99
  imageBgColor = _ref.imageBgColor,
97
100
  imagePadding = _ref.imagePadding,
98
101
  imagePosition = _ref.imagePosition,
99
102
  outlined = _ref.outlined,
100
- imageCover = _ref.imageCover;
103
+ imageCover = _ref.imageCover,
104
+ _ref$tabIndex = _ref.tabIndex,
105
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
106
+ var colorsTheme = (0, _useTheme["default"])();
101
107
 
102
108
  var _useState = (0, _react.useState)(false),
103
109
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
104
110
  isHovered = _useState2[0],
105
111
  changeIsHovered = _useState2[1];
106
112
 
107
- var clickHandler = function clickHandler() {
108
- if (onClick) {
109
- onClick();
110
- }
111
- };
112
-
113
113
  var tagContent = _react["default"].createElement(_Box["default"], {
114
114
  shadowDepth: outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
115
+ }, _react["default"].createElement(_styledComponents.ThemeProvider, {
116
+ theme: colorsTheme.card
115
117
  }, _react["default"].createElement(CardContainer, {
116
118
  hasAction: onClick || linkHref,
117
119
  outlined: outlined,
118
120
  imagePosition: imagePosition
119
- }, _react["default"].createElement(ImageContainer, {
121
+ }, imageSrc && _react["default"].createElement(ImageContainer, {
120
122
  imageBgColor: imageBgColor
121
123
  }, _react["default"].createElement(TagImage, {
122
124
  imagePadding: imagePadding,
123
125
  cover: imageCover,
124
126
  src: imageSrc
125
- })), _react["default"].createElement(CardContent, null, children)));
127
+ })), _react["default"].createElement(CardContent, {
128
+ contentPadding: contentPadding
129
+ }, children))));
126
130
 
127
131
  return _react["default"].createElement(StyledDxcCard, {
128
132
  margin: margin,
@@ -132,9 +136,11 @@ var DxcCard = function DxcCard(_ref) {
132
136
  onMouseLeave: function onMouseLeave() {
133
137
  return changeIsHovered(false);
134
138
  },
135
- onClick: clickHandler,
136
- hasAction: onClick || linkHref
139
+ onClick: onClick,
140
+ hasAction: onClick,
141
+ tabIndex: typeof onClick === "function" && !linkHref ? tabIndex : -1
137
142
  }, linkHref && _react["default"].createElement(StyledLink, {
143
+ tabIndex: tabIndex,
138
144
  href: linkHref
139
145
  }, tagContent) || tagContent);
140
146
  };
@@ -143,48 +149,71 @@ var StyledDxcCard = _styledComponents["default"].div(_templateObject(), function
143
149
  var hasAction = _ref2.hasAction;
144
150
  return hasAction && "pointer" || "unset";
145
151
  }, function (_ref3) {
146
- var margin = _ref3.margin;
147
- return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
152
+ var hasAction = _ref3.hasAction;
153
+ return !hasAction && "none";
148
154
  }, function (_ref4) {
149
155
  var margin = _ref4.margin;
150
- return margin && margin.top ? _variables.spaces[margin.top] : "";
156
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
151
157
  }, function (_ref5) {
152
158
  var margin = _ref5.margin;
153
- return margin && margin.right ? _variables.spaces[margin.right] : "";
159
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
154
160
  }, function (_ref6) {
155
161
  var margin = _ref6.margin;
156
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
162
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
157
163
  }, function (_ref7) {
158
164
  var margin = _ref7.margin;
165
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
166
+ }, function (_ref8) {
167
+ var margin = _ref8.margin;
159
168
  return margin && margin.left ? _variables.spaces[margin.left] : "";
160
169
  });
161
170
 
162
- var CardContainer = _styledComponents["default"].div(_templateObject2(), function (_ref8) {
163
- var imagePosition = _ref8.imagePosition;
171
+ var CardContainer = _styledComponents["default"].div(_templateObject2(), function (_ref9) {
172
+ var imagePosition = _ref9.imagePosition;
164
173
  return imagePosition === "before" && "row" || "row-reverse";
165
174
  }, function (props) {
166
- return props.hasAction ? "#FFED00" : "unset";
175
+ return props.theme.height;
176
+ }, function (props) {
177
+ return props.theme.width;
178
+ }, function (_ref10) {
179
+ var hasAction = _ref10.hasAction;
180
+ return hasAction ? "" : "unset";
167
181
  });
168
182
 
169
183
  var StyledLink = _styledComponents["default"].a(_templateObject3());
170
184
 
171
- var TagImage = _styledComponents["default"].img(_templateObject4(), function (_ref9) {
172
- var imagePadding = _ref9.imagePadding;
185
+ var TagImage = _styledComponents["default"].img(_templateObject4(), function (_ref11) {
186
+ var imagePadding = _ref11.imagePadding;
173
187
  return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
174
- }, function (_ref10) {
175
- var imagePadding = _ref10.imagePadding;
188
+ }, function (_ref12) {
189
+ var imagePadding = _ref12.imagePadding;
176
190
  return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
177
- }, function (_ref11) {
178
- var cover = _ref11.cover;
191
+ }, function (_ref13) {
192
+ var cover = _ref13.cover;
179
193
  return cover ? "cover" : "contain";
180
194
  });
181
195
 
182
- var ImageContainer = _styledComponents["default"].div(_templateObject5(), function (_ref12) {
183
- var imageBgColor = _ref12.imageBgColor;
196
+ var ImageContainer = _styledComponents["default"].div(_templateObject5(), function (_ref14) {
197
+ var imageBgColor = _ref14.imageBgColor;
184
198
  return imageBgColor;
185
199
  });
186
200
 
187
- var CardContent = _styledComponents["default"].div(_templateObject6());
201
+ var CardContent = _styledComponents["default"].div(_templateObject6(), function (_ref15) {
202
+ var contentPadding = _ref15.contentPadding;
203
+ return contentPadding && (0, _typeof2["default"])(contentPadding) !== "object" ? _variables.spaces[contentPadding] : "0px";
204
+ }, function (_ref16) {
205
+ var contentPadding = _ref16.contentPadding;
206
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.top ? _variables.spaces[contentPadding.top] : "";
207
+ }, function (_ref17) {
208
+ var contentPadding = _ref17.contentPadding;
209
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.right ? _variables.spaces[contentPadding.right] : "";
210
+ }, function (_ref18) {
211
+ var contentPadding = _ref18.contentPadding;
212
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
213
+ }, function (_ref19) {
214
+ var contentPadding = _ref19.contentPadding;
215
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.left ? _variables.spaces[contentPadding.left] : "";
216
+ });
188
217
 
189
218
  DxcCard.propTypes = {
190
219
  imageSrc: _propTypes["default"].string,
@@ -200,11 +229,19 @@ DxcCard.propTypes = {
200
229
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
201
230
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
202
231
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
203
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
232
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
233
+ contentPadding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
234
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
235
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
236
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
237
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
238
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
239
+ tabIndex: _propTypes["default"].number
204
240
  };
205
241
  DxcCard.defaultProps = {
206
242
  imageSrc: null,
207
243
  margin: null,
244
+ contentPadding: null,
208
245
  outlined: false,
209
246
  imagePadding: null,
210
247
  imageCover: false,