@dxc-technology/halstack-react 0.0.0-afd5470 → 0.0.0-b1729d7

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 (155) hide show
  1. package/babel.config.js +6 -2
  2. package/dist/BackgroundColorContext.js +46 -0
  3. package/dist/ThemeContext.js +235 -2
  4. package/dist/V3Textarea/V3Textarea.js +264 -0
  5. package/dist/accordion/Accordion.js +168 -63
  6. package/dist/accordion-group/AccordionGroup.js +186 -0
  7. package/dist/alert/Alert.js +183 -84
  8. package/dist/alert/index.d.ts +51 -0
  9. package/dist/badge/Badge.js +63 -0
  10. package/dist/box/Box.js +31 -23
  11. package/dist/button/Button.js +83 -26
  12. package/dist/card/Card.js +72 -35
  13. package/dist/checkbox/Checkbox.js +98 -38
  14. package/dist/chip/Chip.js +128 -36
  15. package/dist/common/RequiredComponent.js +2 -8
  16. package/dist/common/utils.js +2 -22
  17. package/dist/common/variables.js +1439 -308
  18. package/dist/date/Date.js +80 -57
  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 +58 -37
  22. package/dist/dropdown/Dropdown.js +199 -71
  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 +121 -46
  27. package/dist/footer/Icons.js +77 -0
  28. package/dist/header/Header.js +171 -97
  29. package/dist/header/Icons.js +59 -0
  30. package/dist/heading/Heading.js +81 -16
  31. package/dist/input-text/Icons.js +22 -0
  32. package/dist/input-text/InputText.js +292 -106
  33. package/dist/layout/ApplicationLayout.js +52 -45
  34. package/dist/layout/Icons.js +55 -0
  35. package/dist/link/Link.js +136 -35
  36. package/dist/main.d.ts +8 -0
  37. package/dist/main.js +95 -7
  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 +150 -63
  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 +95 -38
  48. package/dist/radio/Radio.js +31 -17
  49. package/dist/resultsetTable/ResultsetTable.js +93 -68
  50. package/dist/select/Select.js +244 -146
  51. package/dist/sidenav/Sidenav.js +86 -129
  52. package/dist/slider/Slider.js +219 -73
  53. package/dist/spinner/Spinner.js +247 -59
  54. package/dist/switch/Switch.js +50 -27
  55. package/dist/table/Table.js +52 -13
  56. package/dist/tabs/Tabs.js +206 -35
  57. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  58. package/dist/tag/Tag.js +85 -37
  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 +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 +159 -46
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +31 -14
  67. package/dist/upload/dragAndDropArea/DragAndDropArea.js +78 -28
  68. package/dist/upload/file-upload/FileToUpload.js +50 -24
  69. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  70. package/dist/upload/readme.md +2 -2
  71. package/dist/upload/transaction/Transaction.js +44 -24
  72. package/dist/upload/transactions/Transactions.js +38 -20
  73. package/dist/useTheme.js +22 -0
  74. package/dist/wizard/Wizard.js +139 -55
  75. package/dist/wizard/invalid_icon.svg +4 -5
  76. package/dist/wizard/valid_icon.svg +4 -5
  77. package/package.json +13 -5
  78. package/test/AccordionGroup.test.js +125 -0
  79. package/test/Date.test.js +49 -45
  80. package/test/DateInput.test.js +242 -0
  81. package/test/Dropdown.test.js +15 -0
  82. package/test/FileInput.test.js +201 -0
  83. package/test/Footer.test.js +2 -7
  84. package/test/Header.test.js +5 -10
  85. package/test/InputText.test.js +53 -41
  86. package/test/Link.test.js +25 -7
  87. package/test/NumberInput.test.js +259 -0
  88. package/test/Paginator.test.js +72 -60
  89. package/test/PasswordInput.test.js +83 -0
  90. package/test/ResultsetTable.test.js +66 -19
  91. package/test/Select.test.js +55 -34
  92. package/test/Sidenav.test.js +22 -64
  93. package/test/Slider.test.js +24 -15
  94. package/test/Spinner.test.js +5 -0
  95. package/test/Tabs.test.js +21 -0
  96. package/test/TextInput.test.js +732 -0
  97. package/test/Textarea.test.js +193 -0
  98. package/test/ToggleGroup.test.js +5 -1
  99. package/test/Upload.test.js +5 -5
  100. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  101. package/dist/accordion/Accordion.stories.js +0 -207
  102. package/dist/accordion/readme.md +0 -96
  103. package/dist/alert/Alert.stories.js +0 -158
  104. package/dist/alert/close.svg +0 -4
  105. package/dist/alert/error.svg +0 -4
  106. package/dist/alert/info.svg +0 -4
  107. package/dist/alert/readme.md +0 -43
  108. package/dist/alert/success.svg +0 -4
  109. package/dist/alert/warning.svg +0 -4
  110. package/dist/button/Button.stories.js +0 -224
  111. package/dist/button/readme.md +0 -93
  112. package/dist/common/services/example-service.js +0 -10
  113. package/dist/common/services/example-service.test.js +0 -12
  114. package/dist/date/calendar.svg +0 -1
  115. package/dist/date/calendar_dark.svg +0 -1
  116. package/dist/dialog/Dialog.stories.js +0 -217
  117. package/dist/dialog/readme.md +0 -32
  118. package/dist/dropdown/Dropdown.stories.js +0 -249
  119. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  120. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  121. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  122. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  123. package/dist/dropdown/readme.md +0 -69
  124. package/dist/footer/Footer.stories.js +0 -94
  125. package/dist/footer/dxc_logo_wht.png +0 -0
  126. package/dist/footer/readme.md +0 -41
  127. package/dist/header/Header.stories.js +0 -176
  128. package/dist/header/close_icon.svg +0 -1
  129. package/dist/header/dxc_logo_black.png +0 -0
  130. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  131. package/dist/header/dxc_logo_white.png +0 -0
  132. package/dist/header/hamb_menu_black.svg +0 -1
  133. package/dist/header/hamb_menu_white.svg +0 -1
  134. package/dist/header/readme.md +0 -33
  135. package/dist/input-text/InputText.stories.js +0 -209
  136. package/dist/input-text/error.svg +0 -1
  137. package/dist/input-text/readme.md +0 -91
  138. package/dist/layout/SideNav.js +0 -67
  139. package/dist/layout/facebook.svg +0 -45
  140. package/dist/layout/linkedin.svg +0 -50
  141. package/dist/layout/twitter.svg +0 -53
  142. package/dist/paginator/images/next.svg +0 -3
  143. package/dist/paginator/images/nextPage.svg +0 -3
  144. package/dist/paginator/images/previous.svg +0 -3
  145. package/dist/paginator/images/previousPage.svg +0 -3
  146. package/dist/paginator/readme.md +0 -50
  147. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  148. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  149. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  150. package/dist/select/Select.stories.js +0 -235
  151. package/dist/select/readme.md +0 -72
  152. package/dist/sidenav/arrow_icon.svg +0 -3
  153. package/dist/slider/Slider.stories.js +0 -241
  154. package/dist/toggle-group/readme.md +0 -82
  155. package/test/Toggle.test.js +0 -43
@@ -11,10 +11,10 @@ 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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
@@ -35,16 +35,44 @@ var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
35
35
 
36
36
  var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
37
37
 
38
- require("../common/OpenSans.css");
39
-
40
38
  var _variables = require("../common/variables.js");
41
39
 
42
40
  var _utils = require("../common/utils.js");
43
41
 
44
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
43
+
44
+ function _templateObject10() {
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: ", ";\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"]);
46
+
47
+ _templateObject10 = function _templateObject10() {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _templateObject9() {
55
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
56
+
57
+ _templateObject9 = function _templateObject9() {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ function _templateObject8() {
65
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"]);
66
+
67
+ _templateObject8 = function _templateObject8() {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
45
73
 
46
74
  function _templateObject7() {
47
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: 10px;\n margin-right: 10px;\n & > svg {\n fill: ", ";\n }\n"]);
75
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
48
76
 
49
77
  _templateObject7 = function _templateObject7() {
50
78
  return data;
@@ -54,7 +82,7 @@ function _templateObject7() {
54
82
  }
55
83
 
56
84
  function _templateObject6() {
57
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n width: 20px;\n height: 20px;\n margin-right: ", ";\n margin-left: ", ";\n"]);
85
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"]);
58
86
 
59
87
  _templateObject6 = function _templateObject6() {
60
88
  return data;
@@ -84,7 +112,7 @@ function _templateObject4() {
84
112
  }
85
113
 
86
114
  function _templateObject3() {
87
- var data = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n font-family: \"Open Sans\", sans-serif;\n font-size: 16px;\n width: 100%;\n height: auto;\n min-height: 46px;\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n min-width: ", ";\n\n padding: ", ";\n &:focus {\n outline: none;\n }\n\n background-color: ", ";\n\n color: ", ";\n\n border: none;\n border-radius: 2px;\n border-bottom-right-radius: ", ";\n border-bottom-left-radius: ", ";\n &:hover {\n background-color: ", ";\n }\n"]);
115
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: auto;\n min-height: 40px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n min-width: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n border-bottom-right-radius: ", ";\n border-bottom-left-radius: ", ";\n\n ", ";\n"]);
88
116
 
89
117
  _templateObject3 = function _templateObject3() {
90
118
  return data;
@@ -94,7 +122,7 @@ function _templateObject3() {
94
122
  }
95
123
 
96
124
  function _templateObject2() {
97
- var data = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 1;\n\n .MuiMenuItem-gutters {\n width: ", ";\n }\n .MuiMenuItem-root {\n min-height: 46px;\n height: auto;\n }\n\n .MuiPaper-root {\n min-width: ", ";\n\n background-color: ", ";\n\n color: ", ";\n\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n max-height: 230px;\n overflow: auto;\n .MuiList-padding {\n padding-top: 0px;\n padding-bottom: 0px;\n }\n .MuiListItem-button {\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n font-size: 16px;\n font-family: \"Open Sans\", sans-serif;\n cursor: pointer;\n }\n .MuiListItem-button:hover {\n background-color: ", ";\n color: ", ";\n }\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n }\n"]);
125
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 1;\n\n .MuiMenuItem-gutters {\n width: ", ";\n }\n .MuiMenuItem-root {\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n height: auto;\n }\n .MuiPaper-root {\n min-width: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n max-height: 230px;\n overflow-y: auto;\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n\n .MuiList-padding {\n padding-top: 0px;\n padding-bottom: 0px;\n }\n .MuiListItem-button {\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n cursor: pointer;\n }\n .MuiListItem-button:focus {\n outline: ", " solid 2px;\n outline-offset: -2px;\n }\n .MuiListItem-button:hover {\n background-color: ", ";\n }\n .MuiListItem-button:active {\n background-color: ", ";\n outline: ", " solid 2px;\n outline-offset: -2px;\n }\n }\n"]);
98
126
 
99
127
  _templateObject2 = function _templateObject2() {
100
128
  return data;
@@ -104,7 +132,7 @@ function _templateObject2() {
104
132
  }
105
133
 
106
134
  function _templateObject() {
107
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n\n &:focus {\n outline: ", " auto 1px;\n }\n"]);
135
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n"]);
108
136
 
109
137
  _templateObject = function _templateObject() {
110
138
  return data;
@@ -118,12 +146,15 @@ var DxcDropdown = function DxcDropdown(_ref) {
118
146
  options = _ref$options === void 0 ? [] : _ref$options,
119
147
  _ref$optionsIconPosit = _ref.optionsIconPosition,
120
148
  optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
149
+ icon = _ref.icon,
121
150
  _ref$iconSrc = _ref.iconSrc,
122
151
  iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
123
152
  _ref$iconPosition = _ref.iconPosition,
124
153
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
125
154
  _ref$label = _ref.label,
126
155
  label = _ref$label === void 0 ? "" : _ref$label,
156
+ _ref$disabled = _ref.disabled,
157
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
127
158
  _ref$caretHidden = _ref.caretHidden,
128
159
  caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
129
160
  onSelectOption = _ref.onSelectOption,
@@ -131,28 +162,30 @@ var DxcDropdown = function DxcDropdown(_ref) {
131
162
  _ref$size = _ref.size,
132
163
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
133
164
  _ref$expandOnHover = _ref.expandOnHover,
134
- expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover;
165
+ expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
166
+ _ref$tabIndex = _ref.tabIndex,
167
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
135
168
 
136
169
  var _useState = (0, _react.useState)(),
137
170
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
138
171
  width = _useState2[0],
139
172
  setWidth = _useState2[1];
140
173
 
141
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
142
- var colorsTheme = (0, _react.useMemo)(function () {
143
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
144
- }, [customTheme]);
174
+ var colorsTheme = (0, _useTheme["default"])();
145
175
  var ref = (0, _react.useRef)(null);
146
176
 
147
177
  var handleResize = function handleResize() {
148
- setWidth(ref.current.offsetWidth);
178
+ if (ref.current) setWidth(ref.current.offsetWidth);
149
179
  };
150
180
 
151
181
  (0, _react.useEffect)(function () {
152
- if (ref.current) ref.current.addEventListener("resize", handleResize);
153
- handleResize();
182
+ if (ref.current) {
183
+ ref.current.addEventListener("resize", handleResize);
184
+ handleResize();
185
+ }
186
+
154
187
  return function () {
155
- ref.current.removeEventListener("resize", handleResize);
188
+ if (ref.current) ref.current.removeEventListener("resize", handleResize);
156
189
  };
157
190
  }, []);
158
191
 
@@ -184,7 +217,8 @@ var DxcDropdown = function DxcDropdown(_ref) {
184
217
  xmlns: "http://www.w3.org/2000/svg",
185
218
  width: "24",
186
219
  height: "24",
187
- viewBox: "0 0 24 24"
220
+ viewBox: "0 0 24 24",
221
+ fill: "currentColor"
188
222
  }, _react["default"].createElement("path", {
189
223
  d: "M7 14l5-5 5 5z"
190
224
  }), _react["default"].createElement("path", {
@@ -198,7 +232,8 @@ var DxcDropdown = function DxcDropdown(_ref) {
198
232
  xmlns: "http://www.w3.org/2000/svg",
199
233
  width: "24",
200
234
  height: "24",
201
- viewBox: "0 0 24 24"
235
+ viewBox: "0 0 24 24",
236
+ fill: "currentColor"
202
237
  }, _react["default"].createElement("path", {
203
238
  d: "M7 10l5 5 5-5z"
204
239
  }), _react["default"].createElement("path", {
@@ -209,40 +244,43 @@ var DxcDropdown = function DxcDropdown(_ref) {
209
244
 
210
245
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
211
246
  theme: colorsTheme.dropdown
212
- }, _react["default"].createElement(DxCDropdownContainer, {
247
+ }, _react["default"].createElement(DXCDropdownContainer, {
213
248
  margin: margin,
214
249
  size: size,
215
- tabIndex: "0"
250
+ disabled: disabled
216
251
  }, _react["default"].createElement("div", {
217
- onMouseOver: expandOnHover ? handleClickListItem : undefined,
252
+ onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
218
253
  onMouseOut: handleCloseOver,
219
254
  onFocus: handleCloseOver,
220
255
  onBlur: handleCloseOver
221
256
  }, _react["default"].createElement(DropdownTrigger, {
222
257
  opened: anchorEl === null ? false : true,
223
258
  onClick: handleClickListItem,
259
+ disabled: disabled,
224
260
  label: label,
225
261
  caretHidden: caretHidden,
226
262
  margin: margin,
227
263
  size: size,
228
- ref: ref
264
+ ref: ref,
265
+ tabIndex: tabIndex
229
266
  }, _react["default"].createElement(DropdownTriggerContainer, {
230
267
  iconPosition: iconPosition,
231
268
  caretHidden: caretHidden
232
- }, iconSrc && _react["default"].createElement(ListIcon, {
269
+ }, icon ? _react["default"].createElement(ButtonIconContainer, {
270
+ label: label,
271
+ iconPosition: iconPosition,
272
+ disabled: disabled
273
+ }, (0, _typeof2["default"])(icon) === "object" ? icon : _react["default"].createElement(icon)) : iconSrc && _react["default"].createElement(ButtonIcon, {
233
274
  label: label,
234
275
  src: iconSrc,
235
276
  iconPosition: iconPosition
236
277
  }), _react["default"].createElement(DropdownTriggerLabel, {
237
278
  iconPosition: iconPosition,
238
279
  label: label
239
- }, label)), _react["default"].createElement(CaretIcon, null, anchorEl === null ? _react["default"].createElement(DownArrowIcon, {
280
+ }, label)), _react["default"].createElement(CaretIconContainer, {
240
281
  caretHidden: caretHidden,
241
- margin: margin
242
- }) : _react["default"].createElement(UpArrowIcon, {
243
- caretHidden: caretHidden,
244
- margin: margin
245
- }))), _react["default"].createElement(DxcMenu, {
282
+ disabled: disabled
283
+ }, !caretHidden && (anchorEl === null ? _react["default"].createElement(DownArrowIcon, null) : _react["default"].createElement(UpArrowIcon, null)))), _react["default"].createElement(DXCMenu, {
246
284
  anchorEl: anchorEl,
247
285
  open: Boolean(anchorEl),
248
286
  onClose: handleClose,
@@ -268,8 +306,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
268
306
  onClickAway: handleClose
269
307
  }, _react["default"].createElement(_MenuList["default"], {
270
308
  autoFocusItem: Boolean(anchorEl),
271
- id: "menu-list-grow",
272
- onKeyDown: handleClose
309
+ id: "menu-list-grow"
273
310
  }, options.map(function (option) {
274
311
  return _react["default"].createElement(_MenuItem["default"], {
275
312
  key: option.value,
@@ -278,7 +315,10 @@ var DxcDropdown = function DxcDropdown(_ref) {
278
315
  onClick: function onClick(event) {
279
316
  return handleMenuItemClick(option);
280
317
  }
281
- }, option.iconSrc && _react["default"].createElement(ListIcon, {
318
+ }, option.icon ? _react["default"].createElement(ListIconContainer, {
319
+ label: option.label,
320
+ iconPosition: optionsIconPosition
321
+ }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)) : option.iconSrc && _react["default"].createElement(ListIcon, {
282
322
  label: option.label,
283
323
  src: option.iconSrc,
284
324
  iconPosition: optionsIconPosition
@@ -305,7 +345,7 @@ var calculateWidth = function calculateWidth(margin, size) {
305
345
  return sizes[size];
306
346
  };
307
347
 
308
- var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
348
+ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
309
349
  return calculateWidth(props.margin, props.size);
310
350
  }, function (props) {
311
351
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -317,50 +357,98 @@ var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), f
317
357
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
318
358
  }, function (props) {
319
359
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
320
- }, function (props) {
321
- return props.theme.focusColor;
322
360
  });
323
361
 
324
- var DxcMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
362
+ var DXCMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
325
363
  return calculateWidth(props.margin, props.size);
364
+ }, function (props) {
365
+ return props.theme.optionPaddingTop;
366
+ }, function (props) {
367
+ return props.theme.optionPaddingBottom;
368
+ }, function (props) {
369
+ return props.theme.optionPaddingLeft;
370
+ }, function (props) {
371
+ return props.theme.optionPaddingRight;
326
372
  }, function (props) {
327
373
  return "".concat(props.width, "px");
328
374
  }, function (props) {
329
- return props.theme.dropdownBackgroundColor;
375
+ return props.theme.borderThickness;
376
+ }, function (props) {
377
+ return props.theme.borderStyle;
378
+ }, function (props) {
379
+ return props.theme.borderColor;
380
+ }, function (props) {
381
+ return props.theme.borderRadius;
330
382
  }, function (props) {
331
- return props.theme.dropdownFontColor;
383
+ return props.theme.borderRadius;
384
+ }, function (props) {
385
+ return props.theme.scrollBarTrackColor;
386
+ }, function (props) {
387
+ return props.theme.scrollBarThumbColor;
332
388
  }, function (props) {
333
389
  return props.optionsIconPosition === "after" && "row-reverse" || "row";
334
390
  }, function (props) {
335
391
  return props.optionsIconPosition === "after" && "flex-end" || "";
336
392
  }, function (props) {
337
- return props.theme.backgroundColor + props.theme.hoverBackgroundOption;
393
+ return props.theme.optionBackgroundColor;
338
394
  }, function (props) {
339
- return props.theme.dropdownFontColor;
395
+ return props.theme.optionFontFamily;
340
396
  }, function (props) {
341
- return props.theme.scrollBarTrackColor;
397
+ return props.theme.optionFontSize;
342
398
  }, function (props) {
343
- return props.theme.scrollBarThumbColor;
399
+ return props.theme.optionFontStyle;
400
+ }, function (props) {
401
+ return props.theme.optionFontWeight;
402
+ }, function (props) {
403
+ return props.theme.optionFontColor;
404
+ }, function (props) {
405
+ return props.theme.focusColor;
406
+ }, function (props) {
407
+ return props.theme.hoverOptionBackgroundColor;
408
+ }, function (props) {
409
+ return props.theme.activeOptionBackgroundColor;
410
+ }, function (props) {
411
+ return props.theme.focusColor;
344
412
  });
345
413
 
346
414
  var DropdownTrigger = _styledComponents["default"].button(_templateObject3(), function (props) {
415
+ return props.disabled ? "not-allowed" : "pointer";
416
+ }, function (props) {
417
+ return props.theme.buttonFontFamily;
418
+ }, function (props) {
419
+ return props.theme.buttonFontSize;
420
+ }, function (props) {
421
+ return props.theme.buttonFontStyle;
422
+ }, function (props) {
423
+ return props.theme.buttonFontWeight;
424
+ }, function (props) {
425
+ return props.theme.borderRadius;
426
+ }, function (props) {
427
+ return props.theme.borderThickness;
428
+ }, function (props) {
429
+ return props.theme.borderStyle;
430
+ }, function (props) {
431
+ return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
432
+ }, function (props) {
347
433
  return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
348
434
  }, function (props) {
349
- if (props.caretHidden === true && props.label === "") {
350
- return "10px 15px";
351
- } else {
352
- return "10px 15px 10px 20px";
353
- }
435
+ return props.theme.buttonPaddingTop;
436
+ }, function (props) {
437
+ return props.theme.buttonPaddingBottom;
438
+ }, function (props) {
439
+ return props.theme.buttonPaddingLeft;
354
440
  }, function (props) {
355
- return props.opened === true ? props.theme.backgroundColor + props.theme.hoverBackgroundColor : props.theme.backgroundColor;
441
+ return props.theme.buttonPaddingRight;
356
442
  }, function (props) {
357
- return props.theme.fontColor;
443
+ return props.disabled ? props.theme.disabledButtonBackgroundColor : props.theme.buttonBackgroundColor;
358
444
  }, function (props) {
359
- return props.opened === true ? "0px" : "2px";
445
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
360
446
  }, function (props) {
361
- return props.opened === true ? "0px" : "2px";
447
+ return props.opened ? "0px" : props.theme.borderRadius;
362
448
  }, function (props) {
363
- return props.theme.backgroundColor + props.theme.hoverBackgroundColor;
449
+ return props.opened ? "0px" : props.theme.borderRadius;
450
+ }, function (props) {
451
+ return !props.disabled && " \n &:focus {\n outline: none;\n }\n &:focus-visible {\n outline: ".concat(props.theme.focusColor, " solid 2px;\n outline-offset: -2px;\n }\n &:hover {\n background-color: ").concat(props.theme.hoverButtonBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeButtonBackgroundColor, ";\n }\n ");
364
452
  });
365
453
 
366
454
  var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4());
@@ -368,27 +456,63 @@ var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4())
368
456
  var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
369
457
  return props.iconPosition === "after" && "row-reverse" || "row";
370
458
  }, function (props) {
371
- return props.caretHidden ? "100%" : "calc(100% - 44px)";
459
+ return props.caretHidden ? "100%" : "calc(100% - 36px)";
372
460
  });
373
461
 
374
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
375
- if (props.iconPosition === "before" && props.label !== "") {
376
- return "10px";
377
- } else {
378
- return "0px";
379
- }
462
+ var ButtonIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
463
+ return props.theme.buttonIconSize;
380
464
  }, function (props) {
381
- if (props.iconPosition === "after" && props.label !== "") {
382
- return "10px";
383
- } else {
384
- return "0px";
385
- }
465
+ return props.theme.buttonIconSize;
466
+ }, function (props) {
467
+ return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
468
+ }, function (props) {
469
+ return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
470
+ });
471
+
472
+ var ButtonIconContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
473
+ return props.theme.buttonIconSize;
474
+ }, function (props) {
475
+ return props.theme.buttonIconSize;
476
+ }, function (props) {
477
+ return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
478
+ }, function (props) {
479
+ return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
480
+ }, function (props) {
481
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
386
482
  });
387
483
 
388
- var CaretIcon = _styledComponents["default"].div(_templateObject7(), function (props) {
389
- return props.caretHidden === true ? "none" : "inline-flex";
484
+ var ListIcon = _styledComponents["default"].img(_templateObject8(), function (props) {
485
+ return props.theme.optionIconSize;
486
+ }, function (props) {
487
+ return props.theme.optionIconSize;
488
+ }, function (props) {
489
+ return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
490
+ }, function (props) {
491
+ return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
492
+ });
493
+
494
+ var ListIconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
495
+ return props.theme.optionIconSize;
496
+ }, function (props) {
497
+ return props.theme.optionIconSize;
498
+ }, function (props) {
499
+ return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
500
+ }, function (props) {
501
+ return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
502
+ }, function (props) {
503
+ return props.theme.optionIconColor;
504
+ });
505
+
506
+ var CaretIconContainer = _styledComponents["default"].div(_templateObject10(), function (props) {
507
+ return props.caretHidden ? "none" : "inline-flex";
508
+ }, function (props) {
509
+ return props.theme.caretIconSpacing;
510
+ }, function (props) {
511
+ return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
512
+ }, function (props) {
513
+ return props.theme.caretIconSize;
390
514
  }, function (props) {
391
- return props.theme.fontColor;
515
+ return props.theme.caretIconSize;
392
516
  });
393
517
 
394
518
  DxcDropdown.propTypes = {
@@ -400,17 +524,21 @@ DxcDropdown.propTypes = {
400
524
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
401
525
  }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
402
526
  optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
527
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
403
528
  iconSrc: _propTypes["default"].string,
404
529
  iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
405
530
  label: _propTypes["default"].string,
406
531
  caretHidden: _propTypes["default"].bool,
532
+ disabled: _propTypes["default"].bool,
407
533
  expandOnHover: _propTypes["default"].bool,
408
534
  onSelectOption: _propTypes["default"].func,
409
535
  options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
410
536
  value: _propTypes["default"].any.isRequired,
411
537
  label: _propTypes["default"].any.isRequired,
538
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
412
539
  iconSrc: _propTypes["default"].string
413
- }))
540
+ })),
541
+ tabIndex: _propTypes["default"].number
414
542
  };
415
543
  var _default = DxcDropdown;
416
544
  exports["default"] = _default;