@dxc-technology/halstack-react 0.0.0-011b1bb

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 (130) hide show
  1. package/README.md +66 -0
  2. package/babel.config.js +8 -0
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +250 -0
  5. package/dist/V3Textarea/V3Textarea.js +264 -0
  6. package/dist/accordion/Accordion.js +353 -0
  7. package/dist/accordion-group/AccordionGroup.js +186 -0
  8. package/dist/alert/Alert.js +403 -0
  9. package/dist/alert/index.d.ts +51 -0
  10. package/dist/badge/Badge.js +63 -0
  11. package/dist/box/Box.js +156 -0
  12. package/dist/button/Button.js +238 -0
  13. package/dist/card/Card.js +254 -0
  14. package/dist/checkbox/Checkbox.js +300 -0
  15. package/dist/chip/Chip.js +265 -0
  16. package/dist/common/OpenSans.css +81 -0
  17. package/dist/common/RequiredComponent.js +40 -0
  18. package/dist/common/fonts/OpenSans-Bold.ttf +0 -0
  19. package/dist/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  20. package/dist/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  21. package/dist/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  22. package/dist/common/fonts/OpenSans-Italic.ttf +0 -0
  23. package/dist/common/fonts/OpenSans-Light.ttf +0 -0
  24. package/dist/common/fonts/OpenSans-LightItalic.ttf +0 -0
  25. package/dist/common/fonts/OpenSans-Regular.ttf +0 -0
  26. package/dist/common/fonts/OpenSans-SemiBold.ttf +0 -0
  27. package/dist/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  28. package/dist/common/utils.js +22 -0
  29. package/dist/common/variables.js +1571 -0
  30. package/dist/date/Date.js +379 -0
  31. package/dist/date-input/DateInput.js +400 -0
  32. package/dist/date-input/index.d.ts +95 -0
  33. package/dist/dialog/Dialog.js +218 -0
  34. package/dist/dropdown/Dropdown.js +544 -0
  35. package/dist/file-input/FileInput.js +644 -0
  36. package/dist/file-input/FileItem.js +280 -0
  37. package/dist/file-input/index.d.ts +81 -0
  38. package/dist/footer/Footer.js +421 -0
  39. package/dist/footer/Icons.js +77 -0
  40. package/dist/header/Header.js +470 -0
  41. package/dist/header/Icons.js +59 -0
  42. package/dist/heading/Heading.js +230 -0
  43. package/dist/input-text/Icons.js +22 -0
  44. package/dist/input-text/InputText.js +705 -0
  45. package/dist/layout/ApplicationLayout.js +327 -0
  46. package/dist/layout/Icons.js +55 -0
  47. package/dist/link/Link.js +237 -0
  48. package/dist/main.d.ts +8 -0
  49. package/dist/main.js +359 -0
  50. package/dist/new-select/NewSelect.js +836 -0
  51. package/dist/new-select/index.d.ts +53 -0
  52. package/dist/number-input/NumberInput.js +136 -0
  53. package/dist/number-input/NumberInputContext.js +16 -0
  54. package/dist/number-input/index.d.ts +113 -0
  55. package/dist/paginator/Icons.js +66 -0
  56. package/dist/paginator/Paginator.js +283 -0
  57. package/dist/password-input/PasswordInput.js +198 -0
  58. package/dist/password-input/index.d.ts +94 -0
  59. package/dist/progress-bar/ProgressBar.js +242 -0
  60. package/dist/radio/Radio.js +209 -0
  61. package/dist/resultsetTable/ResultsetTable.js +358 -0
  62. package/dist/select/Select.js +549 -0
  63. package/dist/sidenav/Sidenav.js +179 -0
  64. package/dist/slider/Slider.js +404 -0
  65. package/dist/spinner/Spinner.js +381 -0
  66. package/dist/switch/Switch.js +222 -0
  67. package/dist/table/Table.js +132 -0
  68. package/dist/tabs/Tabs.js +343 -0
  69. package/dist/tag/Tag.js +282 -0
  70. package/dist/text-input/TextInput.js +971 -0
  71. package/dist/text-input/index.d.ts +135 -0
  72. package/dist/textarea/Textarea.js +369 -0
  73. package/dist/textarea/index.d.ts +117 -0
  74. package/dist/toggle/Toggle.js +220 -0
  75. package/dist/toggle-group/ToggleGroup.js +327 -0
  76. package/dist/upload/Upload.js +205 -0
  77. package/dist/upload/buttons-upload/ButtonsUpload.js +135 -0
  78. package/dist/upload/buttons-upload/Icons.js +40 -0
  79. package/dist/upload/dragAndDropArea/DragAndDropArea.js +329 -0
  80. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  81. package/dist/upload/file-upload/FileToUpload.js +189 -0
  82. package/dist/upload/file-upload/Icons.js +66 -0
  83. package/dist/upload/files-upload/FilesToUpload.js +123 -0
  84. package/dist/upload/transaction/Icons.js +160 -0
  85. package/dist/upload/transaction/Transaction.js +148 -0
  86. package/dist/upload/transactions/Transactions.js +138 -0
  87. package/dist/useTheme.js +22 -0
  88. package/dist/wizard/Icons.js +65 -0
  89. package/dist/wizard/Wizard.js +405 -0
  90. package/package.json +75 -0
  91. package/test/Accordion.test.js +33 -0
  92. package/test/AccordionGroup.test.js +125 -0
  93. package/test/Alert.test.js +53 -0
  94. package/test/Box.test.js +10 -0
  95. package/test/Button.test.js +18 -0
  96. package/test/Card.test.js +30 -0
  97. package/test/Checkbox.test.js +45 -0
  98. package/test/Chip.test.js +25 -0
  99. package/test/Date.test.js +397 -0
  100. package/test/DateInput.test.js +242 -0
  101. package/test/Dialog.test.js +23 -0
  102. package/test/Dropdown.test.js +145 -0
  103. package/test/FileInput.test.js +201 -0
  104. package/test/Footer.test.js +94 -0
  105. package/test/Header.test.js +34 -0
  106. package/test/Heading.test.js +83 -0
  107. package/test/InputText.test.js +248 -0
  108. package/test/Link.test.js +43 -0
  109. package/test/NumberInput.test.js +259 -0
  110. package/test/Paginator.test.js +177 -0
  111. package/test/PasswordInput.test.js +83 -0
  112. package/test/ProgressBar.test.js +35 -0
  113. package/test/Radio.test.js +37 -0
  114. package/test/ResultsetTable.test.js +329 -0
  115. package/test/Select.test.js +212 -0
  116. package/test/Sidenav.test.js +45 -0
  117. package/test/Slider.test.js +74 -0
  118. package/test/Spinner.test.js +32 -0
  119. package/test/Switch.test.js +45 -0
  120. package/test/Table.test.js +36 -0
  121. package/test/Tabs.test.js +109 -0
  122. package/test/Tag.test.js +32 -0
  123. package/test/TextInput.test.js +732 -0
  124. package/test/Textarea.test.js +193 -0
  125. package/test/ToggleGroup.test.js +85 -0
  126. package/test/Upload.test.js +60 -0
  127. package/test/V3TextArea.test.js +51 -0
  128. package/test/Wizard.test.js +130 -0
  129. package/test/mocks/pngMock.js +1 -0
  130. package/test/mocks/svgMock.js +1 -0
@@ -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;
@@ -0,0 +1,156 @@
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+
18
+ var _react = _interopRequireDefault(require("react"));
19
+
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _variables = require("../common/variables.js");
25
+
26
+ var _utils = require("../common/utils.js");
27
+
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
+
30
+ var _BackgroundColorContext = require("../BackgroundColorContext.js");
31
+
32
+ function _templateObject() {
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
+
35
+ _templateObject = function _templateObject() {
36
+ return data;
37
+ };
38
+
39
+ return data;
40
+ }
41
+
42
+ var DxcBox = function DxcBox(_ref) {
43
+ var shadowDepth = _ref.shadowDepth,
44
+ margin = _ref.margin,
45
+ padding = _ref.padding,
46
+ _ref$display = _ref.display,
47
+ display = _ref$display === void 0 ? "inline-flex" : _ref$display,
48
+ children = _ref.children,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? "fitContent" : _ref$size;
51
+ var colorsTheme = (0, _useTheme["default"])();
52
+ return _react["default"].createElement(_styledComponents.ThemeProvider, {
53
+ theme: colorsTheme.box
54
+ }, _react["default"].createElement(StyledDxcBox, {
55
+ shadowDepth: shadowDepth,
56
+ display: display,
57
+ margin: margin,
58
+ padding: padding,
59
+ size: size
60
+ }, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
61
+ color: colorsTheme.box.backgroundColor
62
+ }, children)));
63
+ };
64
+
65
+ var sizes = {
66
+ small: "48px",
67
+ medium: "240px",
68
+ large: "480px",
69
+ fillParent: "100%",
70
+ fitContent: "unset"
71
+ };
72
+
73
+ var calculateWidth = function calculateWidth(margin, size, padding) {
74
+ if (size === "fillParent") {
75
+ return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), " -\n ").concat((0, _utils.getMargin)(padding, "left"), " - ").concat((0, _utils.getMargin)(padding, "right"), ")");
76
+ }
77
+
78
+ return sizes[size];
79
+ };
80
+
81
+ var StyledDxcBox = _styledComponents["default"].div(_templateObject(), function (_ref2) {
82
+ var display = _ref2.display;
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;
94
+ }, function (props) {
95
+ return calculateWidth(props.margin, props.size, props.padding);
96
+ }, function (props) {
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);
100
+ }, function (_ref3) {
101
+ var margin = _ref3.margin;
102
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
103
+ }, function (_ref4) {
104
+ var margin = _ref4.margin;
105
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
106
+ }, function (_ref5) {
107
+ var margin = _ref5.margin;
108
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
109
+ }, function (_ref6) {
110
+ var margin = _ref6.margin;
111
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
112
+ }, function (_ref7) {
113
+ var margin = _ref7.margin;
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";
118
+ }, function (_ref9) {
119
+ var padding = _ref9.padding;
120
+ return padding && padding.top ? _variables.spaces[padding.top] : "";
121
+ }, function (_ref10) {
122
+ var padding = _ref10.padding;
123
+ return padding && padding.right ? _variables.spaces[padding.right] : "";
124
+ }, function (_ref11) {
125
+ var padding = _ref11.padding;
126
+ return padding && padding.bottom ? _variables.spaces[padding.bottom] : "";
127
+ }, function (_ref12) {
128
+ var padding = _ref12.padding;
129
+ return padding && padding.left ? _variables.spaces[padding.left] : "";
130
+ });
131
+
132
+ DxcBox.propTypes = {
133
+ size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
134
+ display: _propTypes["default"].string,
135
+ shadowDepth: _propTypes["default"].oneOf([0, 1, 2]),
136
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
137
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
138
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
139
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
140
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
141
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
142
+ padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
143
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
144
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
145
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
146
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
147
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
148
+ };
149
+ DxcBox.defaultProps = {
150
+ shadowDepth: 2,
151
+ display: "inline-flex",
152
+ margin: null,
153
+ padding: null
154
+ };
155
+ var _default = DxcBox;
156
+ exports["default"] = _default;
@@ -0,0 +1,238 @@
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
21
+
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
25
+
26
+ var _variables = require("../common/variables.js");
27
+
28
+ var _utils = require("../common/utils.js");
29
+
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
+ }
43
+
44
+ function _templateObject3() {
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
46
+
47
+ _templateObject3 = function _templateObject3() {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _templateObject2() {
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
+
57
+ _templateObject2 = function _templateObject2() {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ function _templateObject() {
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
+
67
+ _templateObject = function _templateObject() {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
74
+ var DxcButton = function DxcButton(_ref) {
75
+ var _ref$label = _ref.label,
76
+ label = _ref$label === void 0 ? "" : _ref$label,
77
+ _ref$mode = _ref.mode,
78
+ mode = _ref$mode === void 0 ? "primary" : _ref$mode,
79
+ _ref$disabled = _ref.disabled,
80
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
81
+ _ref$iconPosition = _ref.iconPosition,
82
+ iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
83
+ _ref$type = _ref.type,
84
+ type = _ref$type === void 0 ? "button" : _ref$type,
85
+ _ref$iconSrc = _ref.iconSrc,
86
+ iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
87
+ icon = _ref.icon,
88
+ _ref$onClick = _ref.onClick,
89
+ _onClick = _ref$onClick === void 0 ? "" : _ref$onClick,
90
+ margin = _ref.margin,
91
+ size = _ref.size,
92
+ _ref$tabIndex = _ref.tabIndex,
93
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
94
+
95
+ var colorsTheme = (0, _useTheme["default"])();
96
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
97
+ return _react["default"].createElement(_styledComponents.ThemeProvider, {
98
+ theme: colorsTheme.button
99
+ }, _react["default"].createElement(DxCButton, {
100
+ type: type,
101
+ margin: margin,
102
+ mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
103
+ disabled: disabled,
104
+ iconPosition: iconPosition,
105
+ size: size,
106
+ backgroundType: backgroundType,
107
+ icon: icon
108
+ }, _react["default"].createElement(_Button["default"], {
109
+ disabled: disabled,
110
+ type: type,
111
+ disableRipple: true,
112
+ "aria-disabled": disabled ? true : false,
113
+ tabIndex: disabled ? -1 : tabIndex,
114
+ onClick: function onClick() {
115
+ if (_onClick) {
116
+ _onClick();
117
+ }
118
+ }
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, {
126
+ label: label,
127
+ iconPosition: iconPosition,
128
+ src: iconSrc
129
+ }))));
130
+ };
131
+
132
+ var sizes = {
133
+ small: "42px",
134
+ medium: "120px",
135
+ large: "240px",
136
+ fillParent: "100%",
137
+ fitContent: "unset"
138
+ };
139
+
140
+ var calculateWidth = function calculateWidth(margin, size) {
141
+ if (size === "fillParent") {
142
+ return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
143
+ }
144
+
145
+ return sizes[size];
146
+ };
147
+
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
+ });
157
+
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) {
165
+ return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
166
+ }, function (props) {
167
+ return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
168
+ });
169
+
170
+ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (props) {
171
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
172
+ }, function (props) {
173
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
174
+ }, function (props) {
175
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
176
+ }, function (props) {
177
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
178
+ }, function (props) {
179
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
180
+ }, function (props) {
181
+ return calculateWidth(props.margin, props.size);
182
+ }, function (props) {
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;
192
+ }, function (props) {
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;
202
+ }, function (props) {
203
+ return props.size === "small" && "calc(100% - 22px)" || "unset";
204
+ }, function (props) {
205
+ return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
206
+ }, function (props) {
207
+ var mode = props.mode,
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 ");
216
+ }
217
+ });
218
+
219
+ DxcButton.propTypes = {
220
+ size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
221
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
222
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
223
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
224
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
225
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
226
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
227
+ label: _propTypes["default"].string,
228
+ mode: _propTypes["default"].oneOf(["primary", "secondary", "text"]),
229
+ disabled: _propTypes["default"].bool,
230
+ iconPosition: _propTypes["default"].oneOf(["after", "before"]),
231
+ onClick: _propTypes["default"].func,
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
236
+ };
237
+ var _default = DxcButton;
238
+ exports["default"] = _default;