@dxc-technology/halstack-react 0.0.0-6e92c02 → 0.0.0-7197f3e

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 (194) hide show
  1. package/README.md +66 -0
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +235 -2
  5. package/dist/V3Textarea/V3Textarea.js +264 -0
  6. package/dist/accordion/Accordion.js +170 -81
  7. package/dist/accordion-group/AccordionGroup.js +186 -0
  8. package/dist/alert/Alert.js +184 -83
  9. package/dist/alert/index.d.ts +51 -0
  10. package/dist/badge/Badge.js +63 -0
  11. package/dist/box/Box.js +39 -19
  12. package/dist/button/Button.js +93 -42
  13. package/dist/card/Card.js +64 -56
  14. package/dist/checkbox/Checkbox.js +118 -39
  15. package/dist/chip/Chip.js +265 -0
  16. package/dist/common/RequiredComponent.js +5 -15
  17. package/dist/common/variables.js +1502 -10
  18. package/dist/date/Date.js +115 -81
  19. package/dist/date-input/DateInput.js +400 -0
  20. package/dist/date-input/index.d.ts +95 -0
  21. package/dist/dialog/Dialog.js +87 -33
  22. package/dist/dropdown/Dropdown.js +226 -94
  23. package/dist/file-input/FileInput.js +644 -0
  24. package/dist/file-input/FileItem.js +280 -0
  25. package/dist/file-input/index.d.ts +81 -0
  26. package/dist/footer/Footer.js +125 -45
  27. package/dist/footer/Icons.js +77 -0
  28. package/dist/header/Header.js +176 -85
  29. package/dist/header/Icons.js +59 -0
  30. package/dist/heading/Heading.js +81 -22
  31. package/dist/input-text/Icons.js +22 -0
  32. package/dist/input-text/InputText.js +302 -107
  33. package/dist/layout/ApplicationLayout.js +327 -0
  34. package/dist/layout/Icons.js +55 -0
  35. package/dist/link/Link.js +142 -34
  36. package/dist/main.d.ts +8 -0
  37. package/dist/main.js +119 -15
  38. package/dist/new-select/NewSelect.js +836 -0
  39. package/dist/new-select/index.d.ts +53 -0
  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 +162 -57
  45. package/dist/password-input/PasswordInput.js +198 -0
  46. package/dist/password-input/index.d.ts +94 -0
  47. package/dist/progress-bar/ProgressBar.js +97 -44
  48. package/dist/radio/Radio.js +39 -34
  49. package/dist/resultsetTable/ResultsetTable.js +94 -70
  50. package/dist/select/Select.js +253 -129
  51. package/dist/sidenav/Sidenav.js +87 -125
  52. package/dist/slider/Slider.js +219 -83
  53. package/dist/spinner/Spinner.js +249 -64
  54. package/dist/switch/Switch.js +54 -51
  55. package/dist/table/Table.js +63 -15
  56. package/dist/tabs/Tabs.js +210 -50
  57. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  58. package/dist/tag/Tag.js +100 -35
  59. package/dist/text-input/TextInput.js +971 -0
  60. package/dist/text-input/index.d.ts +135 -0
  61. package/dist/textarea/Textarea.js +250 -107
  62. package/dist/textarea/index.d.ts +117 -0
  63. package/dist/toggle/Toggle.js +16 -19
  64. package/dist/toggle-group/ToggleGroup.js +327 -0
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  67. package/dist/upload/buttons-upload/Icons.js +40 -0
  68. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  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 +156 -61
  79. package/package.json +18 -7
  80. package/test/AccordionGroup.test.js +125 -0
  81. package/test/Chip.test.js +25 -0
  82. package/test/Date.test.js +49 -45
  83. package/test/DateInput.test.js +242 -0
  84. package/test/Dropdown.test.js +19 -4
  85. package/test/FileInput.test.js +201 -0
  86. package/test/Footer.test.js +2 -7
  87. package/test/Header.test.js +5 -10
  88. package/test/InputText.test.js +53 -41
  89. package/test/Link.test.js +25 -7
  90. package/test/NumberInput.test.js +259 -0
  91. package/test/Paginator.test.js +72 -60
  92. package/test/PasswordInput.test.js +83 -0
  93. package/test/ResultsetTable.test.js +66 -19
  94. package/test/Select.test.js +55 -34
  95. package/test/Sidenav.test.js +22 -64
  96. package/test/Slider.test.js +24 -15
  97. package/test/Spinner.test.js +5 -0
  98. package/test/Tabs.test.js +21 -0
  99. package/test/TextInput.test.js +732 -0
  100. package/test/Textarea.test.js +193 -0
  101. package/test/ToggleGroup.test.js +85 -0
  102. package/test/Upload.test.js +5 -5
  103. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  104. package/dist/accordion/Accordion.stories.js +0 -207
  105. package/dist/accordion/readme.md +0 -96
  106. package/dist/alert/Alert.stories.js +0 -158
  107. package/dist/alert/close.svg +0 -4
  108. package/dist/alert/error.svg +0 -4
  109. package/dist/alert/info.svg +0 -4
  110. package/dist/alert/readme.md +0 -43
  111. package/dist/alert/success.svg +0 -4
  112. package/dist/alert/warning.svg +0 -4
  113. package/dist/button/Button.stories.js +0 -224
  114. package/dist/button/readme.md +0 -93
  115. package/dist/checkbox/Checkbox.stories.js +0 -144
  116. package/dist/checkbox/readme.md +0 -116
  117. package/dist/common/services/example-service.js +0 -10
  118. package/dist/common/services/example-service.test.js +0 -12
  119. package/dist/date/Date.stories.js +0 -205
  120. package/dist/date/calendar.svg +0 -1
  121. package/dist/date/calendar_dark.svg +0 -1
  122. package/dist/date/readme.md +0 -73
  123. package/dist/dialog/Dialog.stories.js +0 -217
  124. package/dist/dialog/readme.md +0 -32
  125. package/dist/dropdown/Dropdown.stories.js +0 -249
  126. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  127. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  128. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  129. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  130. package/dist/dropdown/readme.md +0 -69
  131. package/dist/footer/Footer.stories.js +0 -94
  132. package/dist/footer/dxc_logo_wht.png +0 -0
  133. package/dist/footer/readme.md +0 -41
  134. package/dist/header/Header.stories.js +0 -176
  135. package/dist/header/close_icon.svg +0 -1
  136. package/dist/header/dxc_logo_black.png +0 -0
  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/link/readme.md +0 -51
  145. package/dist/paginator/images/next.svg +0 -3
  146. package/dist/paginator/images/nextPage.svg +0 -3
  147. package/dist/paginator/images/previous.svg +0 -3
  148. package/dist/paginator/images/previousPage.svg +0 -3
  149. package/dist/paginator/readme.md +0 -50
  150. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  151. package/dist/progress-bar/readme.md +0 -63
  152. package/dist/radio/Radio.stories.js +0 -166
  153. package/dist/radio/readme.md +0 -70
  154. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  155. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  156. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  157. package/dist/select/Select.stories.js +0 -235
  158. package/dist/select/readme.md +0 -72
  159. package/dist/sidenav/arrow_icon.svg +0 -3
  160. package/dist/slider/Slider.stories.js +0 -241
  161. package/dist/slider/readme.md +0 -64
  162. package/dist/spinner/Spinner.stories.js +0 -183
  163. package/dist/spinner/readme.md +0 -65
  164. package/dist/switch/Switch.stories.js +0 -134
  165. package/dist/switch/readme.md +0 -133
  166. package/dist/tabs/Tabs.stories.js +0 -130
  167. package/dist/tabs/readme.md +0 -78
  168. package/dist/tabs-for-sections/readme.md +0 -78
  169. package/dist/toggle/Toggle.stories.js +0 -297
  170. package/dist/toggle/readme.md +0 -80
  171. package/dist/upload/Upload.stories.js +0 -72
  172. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  173. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  174. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  175. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  176. package/dist/upload/file-upload/audio-icon.svg +0 -4
  177. package/dist/upload/file-upload/close.svg +0 -4
  178. package/dist/upload/file-upload/file-icon.svg +0 -4
  179. package/dist/upload/file-upload/video-icon.svg +0 -4
  180. package/dist/upload/readme.md +0 -37
  181. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  182. package/dist/upload/transaction/audio-icon.svg +0 -4
  183. package/dist/upload/transaction/error-icon.svg +0 -4
  184. package/dist/upload/transaction/file-icon-err.svg +0 -4
  185. package/dist/upload/transaction/file-icon.svg +0 -4
  186. package/dist/upload/transaction/image-icon-err.svg +0 -4
  187. package/dist/upload/transaction/image-icon.svg +0 -4
  188. package/dist/upload/transaction/success-icon.svg +0 -4
  189. package/dist/upload/transaction/video-icon-err.svg +0 -4
  190. package/dist/upload/transaction/video-icon.svg +0 -4
  191. package/dist/wizard/invalid_icon.svg +0 -6
  192. package/dist/wizard/valid_icon.svg +0 -6
  193. package/dist/wizard/validation-wrong.svg +0 -6
  194. package/test/Toggle.test.js +0 -43
@@ -11,28 +11,38 @@ exports["default"] = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
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
+
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 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
+
37
+ _templateObject4 = function _templateObject4() {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
33
43
 
34
44
  function _templateObject3() {
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 padding: ", ";\n min-width: ", ";\n border-radius: 4px;\n width: 100%;\n min-height: 43px;\n\n line-height: 1;\n font-family: \"Open Sans\", sans-serif;\n ", "\n }\n"]);
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
36
46
 
37
47
  _templateObject3 = function _templateObject3() {
38
48
  return data;
@@ -42,7 +52,7 @@ function _templateObject3() {
42
52
  }
43
53
 
44
54
  function _templateObject2() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n margin-left: ", ";\n margin-right: ", ";\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"]);
46
56
 
47
57
  _templateObject2 = function _templateObject2() {
48
58
  return data;
@@ -52,7 +62,7 @@ function _templateObject2() {
52
62
  }
53
63
 
54
64
  function _templateObject() {
55
- 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"]);
56
66
 
57
67
  _templateObject = function _templateObject() {
58
68
  return data;
@@ -65,42 +75,54 @@ var DxcButton = function DxcButton(_ref) {
65
75
  var _ref$label = _ref.label,
66
76
  label = _ref$label === void 0 ? "" : _ref$label,
67
77
  _ref$mode = _ref.mode,
68
- mode = _ref$mode === void 0 ? "basic" : _ref$mode,
78
+ mode = _ref$mode === void 0 ? "primary" : _ref$mode,
69
79
  _ref$disabled = _ref.disabled,
70
80
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
71
- _ref$theme = _ref.theme,
72
- theme = _ref$theme === void 0 ? "light" : _ref$theme,
73
- _ref$disableRipple = _ref.disableRipple,
74
- disableRipple = _ref$disableRipple === void 0 ? false : _ref$disableRipple,
75
81
  _ref$iconPosition = _ref.iconPosition,
76
82
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
83
+ _ref$type = _ref.type,
84
+ type = _ref$type === void 0 ? "button" : _ref$type,
77
85
  _ref$iconSrc = _ref.iconSrc,
78
86
  iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
87
+ icon = _ref.icon,
79
88
  _ref$onClick = _ref.onClick,
80
89
  _onClick = _ref$onClick === void 0 ? "" : _ref$onClick,
81
90
  margin = _ref.margin,
82
- size = _ref.size;
83
-
84
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
91
+ size = _ref.size,
92
+ _ref$tabIndex = _ref.tabIndex,
93
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
85
94
 
95
+ var colorsTheme = (0, _useTheme["default"])();
96
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
86
97
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
87
- theme: colorsTheme
98
+ theme: colorsTheme.button
88
99
  }, _react["default"].createElement(DxCButton, {
100
+ type: type,
89
101
  margin: margin,
90
- mode: mode,
91
- brightness: theme,
102
+ mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
92
103
  disabled: disabled,
93
104
  iconPosition: iconPosition,
94
- size: size
95
- }, _react["default"].createElement(_core.Button, {
105
+ size: size,
106
+ backgroundType: backgroundType,
107
+ icon: icon
108
+ }, _react["default"].createElement(_Button["default"], {
96
109
  disabled: disabled,
97
- disableRipple: disableRipple,
110
+ type: type,
111
+ disableRipple: true,
112
+ "aria-disabled": disabled ? true : false,
113
+ tabIndex: disabled ? -1 : tabIndex,
98
114
  onClick: function onClick() {
99
115
  if (_onClick) {
100
116
  _onClick();
101
117
  }
102
118
  }
103
- }, _react["default"].createElement(LabelContainer, null, label), iconSrc && _react["default"].createElement(ButtonIcon, {
119
+ }, label && _react["default"].createElement(LabelContainer, {
120
+ icon: icon,
121
+ iconPosition: iconPosition
122
+ }, label), icon ? _react["default"].createElement(IconContainer, {
123
+ label: label,
124
+ iconPosition: iconPosition
125
+ }, (0, _typeof2["default"])(icon) === "object" ? icon : _react["default"].createElement(icon)) : iconSrc && _react["default"].createElement(ButtonIcon, {
104
126
  label: label,
105
127
  iconPosition: iconPosition,
106
128
  src: iconSrc
@@ -123,15 +145,29 @@ var calculateWidth = function calculateWidth(margin, size) {
123
145
  return sizes[size];
124
146
  };
125
147
 
126
- 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
+ });
127
157
 
128
- var ButtonIcon = _styledComponents["default"].img(_templateObject2(), function (props) {
158
+ var IconContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
159
+ return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
160
+ }, function (props) {
161
+ return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
162
+ });
163
+
164
+ var ButtonIcon = _styledComponents["default"].img(_templateObject3(), function (props) {
129
165
  return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
130
166
  }, function (props) {
131
167
  return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
132
168
  });
133
169
 
134
- var DxCButton = _styledComponents["default"].div(_templateObject3(), function (props) {
170
+ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (props) {
135
171
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
136
172
  }, function (props) {
137
173
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -145,24 +181,38 @@ var DxCButton = _styledComponents["default"].div(_templateObject3(), function (p
145
181
  return calculateWidth(props.margin, props.size);
146
182
  }, function (props) {
147
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;
148
192
  }, function (props) {
149
193
  return props.iconPosition === "after" && "row" || "row-reverse";
150
194
  }, function (props) {
151
- return props.size === "small" && "11px" || "12px 30px";
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;
152
202
  }, function (props) {
153
203
  return props.size === "small" && "calc(100% - 22px)" || "unset";
204
+ }, function (props) {
205
+ return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
154
206
  }, function (props) {
155
207
  var mode = props.mode,
156
- brightness = props.brightness;
157
-
158
- if (mode === "basic") {
159
- return "\n background-color: ".concat(props.theme.yellow, ";\n color: ").concat(props.theme.black, ";\n &:hover{\n background-color: ").concat(brightness === "light" && props.theme.black || props.theme.lightBlack, ";\n color: ").concat(props.theme.yellow, "; \n }\n &:disabled{ \n background-color:").concat(props.theme.yellow, ";\n opacity:0.5;\n color: ").concat(props.theme.black, ";\n cursor:not-allowed;\n }\n .MuiButton-label {\n z-index: 5\n }\n .MuiTouchRipple-child {\n background-color: ").concat(props.theme.white, ";\n }\n ");
160
- } else if (mode === "outlined") {
161
- return "\n background-color: transparent;\n padding: 10px 28px;\n color: ".concat(brightness === "light" && props.theme.black || props.theme.white, ";\n border: 2px solid;\n border-color: ").concat(brightness === "light" && props.theme.black || props.theme.white, ";\n &:hover{\n border-color: ").concat(props.theme.yellow, ";\n background-color: transparent;\n }\n &:disabled{ \n background-color:").concat(brightness === "light" && "transparent" || props.theme.black, ";\n border-color:").concat(brightness === "light" && props.theme.lightGrey || props.theme.darkGrey, ";\n color:").concat(brightness === "light" && props.theme.lightGrey || props.theme.darkGrey, ";\n cursor:not-allowed;\n }\n .MuiButton-label {\n z-index: 5\n }\n .MuiTouchRipple-child{\n background-color:").concat(brightness === "light" && props.theme.darkGrey || props.theme.lightGrey, ";\n }\n .MuiTouchRipple-root {\n border-radius: 2px;\n }\n \n ");
162
- } else if (mode === "flat") {
163
- return "\n background-color: ".concat(brightness === "light" && "transparent" || props.theme.black, ";\n color: ").concat(brightness === "light" && props.theme.black || props.theme.white, ";\n &:hover{\n background-color: ").concat(props.theme.lightGrey, ";\n color: ").concat(props.theme.black, ";\n }\n &:disabled{ \n background-color:").concat(brightness === "light" && props.theme.lightGrey || props.theme.darkGrey, ";\n opacity:0.5;\n color:").concat(brightness === "light" && props.theme.black || props.theme.lightGrey, ";\n cursor:not-allowed;\n }\n .MuiButton-label {\n z-index: 5\n }\n .MuiTouchRipple-child{\n background-color:").concat(brightness === "light" && props.theme.darkGrey || props.theme.darkGrey, ";\n }\n ");
164
- } else {
165
- return "\n background-color: ".concat(props.theme.yellow, ";\n color: ").concat(props.theme.black, "\n box-shadow: 0px 1.5px 3px 0px rgba(0, 0, 0, 0.16);\n &:hover{\n background-color:").concat(brightness === "light" && props.theme.black || props.theme.lightBlack, ";\n color:").concat(props.theme.yellow, ";\n }\n &:disabled{ \n background-color:").concat(props.theme.yellow, ";\n opacity:0.5;\n box-shadow:none;\n color: ").concat(props.theme.darkGrey, ";\n cursor:not-allowed;\n }\n .MuiButton-label {\n z-index: 5\n }\n .MuiTouchRipple-child {\n background-color: ").concat(props.theme.white, ";\n }\n ");
208
+ backgroundType = props.backgroundType;
209
+
210
+ if (mode === "primary") {
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 ");
212
+ } else if (mode === "secondary") {
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 ");
214
+ } else if (mode === "text") {
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 ");
166
216
  }
167
217
  });
168
218
 
@@ -175,13 +225,14 @@ DxcButton.propTypes = {
175
225
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
176
226
  }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
177
227
  label: _propTypes["default"].string,
178
- mode: _propTypes["default"].oneOf(["basic", "outlined", "raised", "flat"]),
228
+ mode: _propTypes["default"].oneOf(["primary", "secondary", "text"]),
179
229
  disabled: _propTypes["default"].bool,
180
- theme: _propTypes["default"].oneOf(["dark", "light"]),
181
- disableRipple: _propTypes["default"].bool,
182
230
  iconPosition: _propTypes["default"].oneOf(["after", "before"]),
183
231
  onClick: _propTypes["default"].func,
184
- iconSrc: _propTypes["default"].string
232
+ iconSrc: _propTypes["default"].string,
233
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
234
+ type: _propTypes["default"].oneOf(["button", "reset", "submit"]),
235
+ tabIndex: _propTypes["default"].number
185
236
  };
186
237
  var _default = DxcButton;
187
238
  exports["default"] = _default;
package/dist/card/Card.js CHANGED
@@ -25,12 +25,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
28
- var _Box = _interopRequireDefault(require("../box/Box"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
29
 
30
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
30
+ var _Box = _interopRequireDefault(require("../box/Box"));
31
31
 
32
32
  function _templateObject6() {
33
- 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"]);
34
34
 
35
35
  _templateObject6 = function _templateObject6() {
36
36
  return data;
@@ -40,7 +40,7 @@ function _templateObject6() {
40
40
  }
41
41
 
42
42
  function _templateObject5() {
43
- 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"]);
44
44
 
45
45
  _templateObject5 = function _templateObject5() {
46
46
  return data;
@@ -60,7 +60,7 @@ function _templateObject4() {
60
60
  }
61
61
 
62
62
  function _templateObject3() {
63
- var data = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n"]);
63
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n text-decoration: none;\n"]);
64
64
 
65
65
  _templateObject3 = function _templateObject3() {
66
66
  return data;
@@ -70,7 +70,7 @@ function _templateObject3() {
70
70
  }
71
71
 
72
72
  function _templateObject2() {
73
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n color: ", ";\n align-items: center;\n flex-direction: ", ";\n height: ", ";\n width: ", ";\n border: ", ";\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"]);
74
74
 
75
75
  _templateObject2 = function _templateObject2() {
76
76
  return data;
@@ -80,7 +80,7 @@ function _templateObject2() {
80
80
  }
81
81
 
82
82
  function _templateObject() {
83
- 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"]);
84
84
 
85
85
  _templateObject = function _templateObject() {
86
86
  return data;
@@ -93,46 +93,42 @@ var DxcCard = function DxcCard(_ref) {
93
93
  var imageSrc = _ref.imageSrc,
94
94
  children = _ref.children,
95
95
  margin = _ref.margin,
96
+ contentPadding = _ref.contentPadding,
96
97
  linkHref = _ref.linkHref,
97
98
  onClick = _ref.onClick,
98
99
  imageBgColor = _ref.imageBgColor,
99
100
  imagePadding = _ref.imagePadding,
100
101
  imagePosition = _ref.imagePosition,
101
- theme = _ref.theme,
102
102
  outlined = _ref.outlined,
103
- 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"])();
104
107
 
105
108
  var _useState = (0, _react.useState)(false),
106
109
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
107
110
  isHovered = _useState2[0],
108
111
  changeIsHovered = _useState2[1];
109
112
 
110
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
111
-
112
- var clickHandler = function clickHandler() {
113
- if (onClick) {
114
- onClick();
115
- }
116
- };
117
-
118
113
  var tagContent = _react["default"].createElement(_Box["default"], {
119
114
  shadowDepth: outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
115
+ }, _react["default"].createElement(_styledComponents.ThemeProvider, {
116
+ theme: colorsTheme.card
120
117
  }, _react["default"].createElement(CardContainer, {
121
- brightness: theme,
122
118
  hasAction: onClick || linkHref,
123
119
  outlined: outlined,
124
120
  imagePosition: imagePosition
125
- }, _react["default"].createElement(ImageContainer, {
121
+ }, imageSrc && _react["default"].createElement(ImageContainer, {
126
122
  imageBgColor: imageBgColor
127
123
  }, _react["default"].createElement(TagImage, {
128
124
  imagePadding: imagePadding,
129
125
  cover: imageCover,
130
126
  src: imageSrc
131
- })), _react["default"].createElement(CardContent, null, children)));
127
+ })), _react["default"].createElement(CardContent, {
128
+ contentPadding: contentPadding
129
+ }, children))));
132
130
 
133
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
134
- theme: colorsTheme
135
- }, _react["default"].createElement(StyledDxcCard, {
131
+ return _react["default"].createElement(StyledDxcCard, {
136
132
  margin: margin,
137
133
  onMouseEnter: function onMouseEnter() {
138
134
  return changeIsHovered(true);
@@ -140,57 +136,48 @@ var DxcCard = function DxcCard(_ref) {
140
136
  onMouseLeave: function onMouseLeave() {
141
137
  return changeIsHovered(false);
142
138
  },
143
- onClick: clickHandler,
144
- hasAction: onClick || linkHref
139
+ onClick: onClick,
140
+ hasAction: onClick,
141
+ tabIndex: typeof onClick === "function" && !linkHref ? tabIndex : -1
145
142
  }, linkHref && _react["default"].createElement(StyledLink, {
143
+ tabIndex: tabIndex,
146
144
  href: linkHref
147
- }, tagContent) || tagContent));
145
+ }, tagContent) || tagContent);
148
146
  };
149
147
 
150
148
  var StyledDxcCard = _styledComponents["default"].div(_templateObject(), function (_ref2) {
151
149
  var hasAction = _ref2.hasAction;
152
150
  return hasAction && "pointer" || "unset";
153
151
  }, function (_ref3) {
154
- var margin = _ref3.margin;
155
- return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
152
+ var hasAction = _ref3.hasAction;
153
+ return !hasAction && "none";
156
154
  }, function (_ref4) {
157
155
  var margin = _ref4.margin;
158
- return margin && margin.top ? _variables.spaces[margin.top] : "";
156
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
159
157
  }, function (_ref5) {
160
158
  var margin = _ref5.margin;
161
- return margin && margin.right ? _variables.spaces[margin.right] : "";
159
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
162
160
  }, function (_ref6) {
163
161
  var margin = _ref6.margin;
164
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
162
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
165
163
  }, function (_ref7) {
166
164
  var margin = _ref7.margin;
165
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
166
+ }, function (_ref8) {
167
+ var margin = _ref8.margin;
167
168
  return margin && margin.left ? _variables.spaces[margin.left] : "";
168
169
  });
169
170
 
170
- var borderSizePx = "2";
171
-
172
- var getBorder = function getBorder(props) {
173
- var color = props.brightness === "dark" || props.brightness === "medium" ? props.theme.white : props.theme.black;
174
- return props.outlined ? "".concat(borderSizePx, "px solid ").concat(color) : "none";
175
- };
176
-
177
- var CardContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
178
- return props.brightness === "dark" ? props.theme.black : props.brightness === "medium" ? "#212121" : props.theme.white;
179
- }, function (props) {
180
- return props.brightness === "dark" || props.brightness === "medium" ? props.theme.white : props.theme.black;
181
- }, function (_ref8) {
182
- var imagePosition = _ref8.imagePosition;
171
+ var CardContainer = _styledComponents["default"].div(_templateObject2(), function (_ref9) {
172
+ var imagePosition = _ref9.imagePosition;
183
173
  return imagePosition === "before" && "row" || "row-reverse";
184
- }, function (_ref9) {
185
- var outlined = _ref9.outlined;
186
- return outlined ? "".concat(220 - 2 * borderSizePx, "px") : "220px";
187
- }, function (_ref10) {
188
- var outlined = _ref10.outlined;
189
- return outlined ? "".concat(400 - 2 * borderSizePx, "px") : "400px";
190
174
  }, function (props) {
191
- return getBorder(props);
175
+ return props.theme.height;
192
176
  }, function (props) {
193
- return props.hasAction ? props.theme.yellow : "unset";
177
+ return props.theme.width;
178
+ }, function (_ref10) {
179
+ var hasAction = _ref10.hasAction;
180
+ return hasAction ? "" : "unset";
194
181
  });
195
182
 
196
183
  var StyledLink = _styledComponents["default"].a(_templateObject3());
@@ -211,7 +198,22 @@ var ImageContainer = _styledComponents["default"].div(_templateObject5(), functi
211
198
  return imageBgColor;
212
199
  });
213
200
 
214
- 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
+ });
215
217
 
216
218
  DxcCard.propTypes = {
217
219
  imageSrc: _propTypes["default"].string,
@@ -222,18 +224,24 @@ DxcCard.propTypes = {
222
224
  onClick: _propTypes["default"].func,
223
225
  outlined: _propTypes["default"].bool,
224
226
  imageCover: _propTypes["default"].bool,
225
- theme: _propTypes["default"].oneOf(["dark", "medium", "light"]),
226
227
  margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
227
228
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
228
229
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
229
230
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
230
231
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
231
- }), _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
232
240
  };
233
241
  DxcCard.defaultProps = {
234
242
  imageSrc: null,
235
243
  margin: null,
236
- theme: "light",
244
+ contentPadding: null,
237
245
  outlined: false,
238
246
  imagePadding: null,
239
247
  imageCover: false,