@dxc-technology/halstack-react 0.0.0-c24450b → 0.0.0-c6243ef

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 (129) 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/accordion/Accordion.js +170 -81
  5. package/dist/accordion-group/AccordionGroup.js +186 -0
  6. package/dist/alert/Alert.js +184 -83
  7. package/dist/alert/index.d.ts +51 -0
  8. package/dist/badge/Badge.js +63 -0
  9. package/dist/box/Box.js +31 -23
  10. package/dist/button/Button.js +82 -27
  11. package/dist/card/Card.js +72 -35
  12. package/dist/checkbox/Checkbox.js +108 -32
  13. package/dist/chip/Chip.js +129 -35
  14. package/dist/common/RequiredComponent.js +2 -8
  15. package/dist/common/utils.js +2 -22
  16. package/dist/common/variables.js +1457 -210
  17. package/dist/date/Date.js +81 -59
  18. package/dist/dialog/Dialog.js +58 -37
  19. package/dist/dropdown/Dropdown.js +229 -68
  20. package/dist/file-input/FileInput.js +644 -0
  21. package/dist/file-input/FileItem.js +280 -0
  22. package/dist/file-input/index.d.ts +81 -0
  23. package/dist/footer/Footer.js +87 -38
  24. package/dist/footer/dxc_logo.svg +15 -0
  25. package/dist/footer/readme.md +1 -1
  26. package/dist/header/Header.js +121 -72
  27. package/dist/header/dxc_logo_black.svg +8 -0
  28. package/dist/header/readme.md +1 -1
  29. package/dist/heading/Heading.js +81 -22
  30. package/dist/input-text/InputText.js +289 -101
  31. package/dist/layout/ApplicationLayout.js +331 -0
  32. package/dist/layout/facebook.svg +45 -0
  33. package/dist/layout/linkedin.svg +50 -0
  34. package/dist/layout/twitter.svg +53 -0
  35. package/dist/link/Link.js +136 -35
  36. package/dist/main.d.ts +8 -0
  37. package/dist/main.js +105 -1
  38. package/dist/new-date/NewDate.js +400 -0
  39. package/dist/new-date/index.d.ts +95 -0
  40. package/dist/new-select/NewSelect.js +836 -0
  41. package/dist/new-select/index.d.ts +53 -0
  42. package/dist/new-textarea/NewTextarea.js +369 -0
  43. package/dist/new-textarea/index.d.ts +117 -0
  44. package/dist/number/Number.js +136 -0
  45. package/dist/number/NumberContext.js +16 -0
  46. package/dist/number/index.d.ts +113 -0
  47. package/dist/paginator/Paginator.js +160 -49
  48. package/dist/password-input/PasswordInput.js +198 -0
  49. package/dist/password-input/index.d.ts +94 -0
  50. package/dist/progress-bar/ProgressBar.js +97 -44
  51. package/dist/radio/Radio.js +39 -21
  52. package/dist/resultsetTable/ResultsetTable.js +93 -69
  53. package/dist/select/Select.js +250 -143
  54. package/dist/sidenav/Sidenav.js +85 -143
  55. package/dist/slider/Slider.js +206 -70
  56. package/dist/spinner/Spinner.js +249 -64
  57. package/dist/switch/Switch.js +51 -26
  58. package/dist/table/Table.js +63 -15
  59. package/dist/tabs/Tabs.js +208 -35
  60. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  61. package/dist/tag/Tag.js +100 -35
  62. package/dist/text-input/TextInput.js +971 -0
  63. package/dist/text-input/index.d.ts +135 -0
  64. package/dist/textarea/Textarea.js +81 -43
  65. package/dist/toggle/Toggle.js +16 -19
  66. package/dist/toggle-group/ToggleGroup.js +327 -0
  67. package/dist/upload/Upload.js +13 -8
  68. package/dist/upload/buttons-upload/ButtonsUpload.js +34 -20
  69. package/dist/upload/dragAndDropArea/DragAndDropArea.js +78 -31
  70. package/dist/upload/file-upload/FileToUpload.js +50 -24
  71. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  72. package/dist/upload/transaction/Transaction.js +44 -24
  73. package/dist/upload/transactions/Transactions.js +38 -20
  74. package/dist/useTheme.js +22 -0
  75. package/dist/wizard/Wizard.js +142 -51
  76. package/dist/wizard/invalid_icon.svg +4 -5
  77. package/dist/wizard/valid_icon.svg +4 -5
  78. package/package.json +14 -6
  79. package/test/AccordionGroup.test.js +125 -0
  80. package/test/Date.test.js +13 -13
  81. package/test/Dropdown.test.js +19 -4
  82. package/test/FileInput.test.js +201 -0
  83. package/test/InputText.test.js +30 -26
  84. package/test/Link.test.js +25 -7
  85. package/test/NewDate.test.js +232 -0
  86. package/test/NewTextarea.test.js +195 -0
  87. package/test/Number.test.js +257 -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 +17 -0
  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/ToggleGroup.test.js +85 -0
  98. package/dist/accordion/Accordion.stories.js +0 -207
  99. package/dist/accordion/readme.md +0 -96
  100. package/dist/alert/Alert.stories.js +0 -158
  101. package/dist/alert/close.svg +0 -4
  102. package/dist/alert/error.svg +0 -4
  103. package/dist/alert/info.svg +0 -4
  104. package/dist/alert/readme.md +0 -43
  105. package/dist/alert/success.svg +0 -4
  106. package/dist/alert/warning.svg +0 -4
  107. package/dist/button/Button.stories.js +0 -224
  108. package/dist/button/readme.md +0 -93
  109. package/dist/common/services/example-service.js +0 -10
  110. package/dist/common/services/example-service.test.js +0 -12
  111. package/dist/date/calendar.svg +0 -1
  112. package/dist/date/calendar_dark.svg +0 -1
  113. package/dist/dialog/Dialog.stories.js +0 -217
  114. package/dist/dialog/readme.md +0 -32
  115. package/dist/dropdown/Dropdown.stories.js +0 -249
  116. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  117. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  118. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  119. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  120. package/dist/dropdown/readme.md +0 -69
  121. package/dist/footer/Footer.stories.js +0 -94
  122. package/dist/footer/dxc_logo_wht.png +0 -0
  123. package/dist/header/dxc_logo_black.png +0 -0
  124. package/dist/header/dxc_logo_white.png +0 -0
  125. package/dist/input-text/InputText.stories.js +0 -209
  126. package/dist/select/Select.stories.js +0 -235
  127. package/dist/select/readme.md +0 -72
  128. package/dist/sidenav/arrow_icon.svg +0 -3
  129. 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,20 +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
- var _baselineArrow_drop_up = _interopRequireDefault(require("./baseline-arrow_drop_up.svg"));
38
+ var _variables = require("../common/variables.js");
39
+
40
+ var _utils = require("../common/utils.js");
39
41
 
40
- var _baselineArrow_drop_down = _interopRequireDefault(require("./baseline-arrow_drop_down.svg"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
41
43
 
42
- require("../common/OpenSans.css");
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"]);
43
46
 
44
- var _variables = require("../common/variables.js");
47
+ _templateObject10 = function _templateObject10() {
48
+ return data;
49
+ };
45
50
 
46
- var _utils = require("../common/utils.js");
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"]);
47
66
 
48
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
67
+ _templateObject8 = function _templateObject8() {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
49
73
 
50
74
  function _templateObject7() {
51
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: 10px;\n margin-right: 10px;\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"]);
52
76
 
53
77
  _templateObject7 = function _templateObject7() {
54
78
  return data;
@@ -58,7 +82,7 @@ function _templateObject7() {
58
82
  }
59
83
 
60
84
  function _templateObject6() {
61
- 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"]);
62
86
 
63
87
  _templateObject6 = function _templateObject6() {
64
88
  return data;
@@ -88,7 +112,7 @@ function _templateObject4() {
88
112
  }
89
113
 
90
114
  function _templateObject3() {
91
- 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"]);
92
116
 
93
117
  _templateObject3 = function _templateObject3() {
94
118
  return data;
@@ -98,7 +122,7 @@ function _templateObject3() {
98
122
  }
99
123
 
100
124
  function _templateObject2() {
101
- 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 .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"]);
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"]);
102
126
 
103
127
  _templateObject2 = function _templateObject2() {
104
128
  return data;
@@ -122,43 +146,46 @@ var DxcDropdown = function DxcDropdown(_ref) {
122
146
  options = _ref$options === void 0 ? [] : _ref$options,
123
147
  _ref$optionsIconPosit = _ref.optionsIconPosition,
124
148
  optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
149
+ icon = _ref.icon,
125
150
  _ref$iconSrc = _ref.iconSrc,
126
151
  iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
127
152
  _ref$iconPosition = _ref.iconPosition,
128
153
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
129
154
  _ref$label = _ref.label,
130
155
  label = _ref$label === void 0 ? "" : _ref$label,
156
+ _ref$disabled = _ref.disabled,
157
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
131
158
  _ref$caretHidden = _ref.caretHidden,
132
159
  caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
133
- _ref$disableRipple = _ref.disableRipple,
134
- disableRipple = _ref$disableRipple === void 0 ? false : _ref$disableRipple,
135
160
  onSelectOption = _ref.onSelectOption,
136
161
  margin = _ref.margin,
137
162
  _ref$size = _ref.size,
138
163
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
139
164
  _ref$expandOnHover = _ref.expandOnHover,
140
- 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;
141
168
 
142
169
  var _useState = (0, _react.useState)(),
143
170
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
144
171
  width = _useState2[0],
145
172
  setWidth = _useState2[1];
146
173
 
147
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
148
- var colorsTheme = (0, _react.useMemo)(function () {
149
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
150
- }, [customTheme]);
174
+ var colorsTheme = (0, _useTheme["default"])();
151
175
  var ref = (0, _react.useRef)(null);
152
176
 
153
177
  var handleResize = function handleResize() {
154
- setWidth(ref.current.offsetWidth);
178
+ if (ref.current) setWidth(ref.current.offsetWidth);
155
179
  };
156
180
 
157
181
  (0, _react.useEffect)(function () {
158
- if (ref.current) ref.current.addEventListener("resize", handleResize);
159
- handleResize();
182
+ if (ref.current) {
183
+ ref.current.addEventListener("resize", handleResize);
184
+ handleResize();
185
+ }
186
+
160
187
  return function () {
161
- ref.current.removeEventListener("resize", handleResize);
188
+ if (ref.current) ref.current.removeEventListener("resize", handleResize);
162
189
  };
163
190
  }, []);
164
191
 
@@ -184,39 +211,76 @@ var DxcDropdown = function DxcDropdown(_ref) {
184
211
  }
185
212
 
186
213
  var handleCloseOver = expandOnHover ? handleClose : undefined;
214
+
215
+ var UpArrowIcon = function UpArrowIcon() {
216
+ return _react["default"].createElement("svg", {
217
+ xmlns: "http://www.w3.org/2000/svg",
218
+ width: "24",
219
+ height: "24",
220
+ viewBox: "0 0 24 24",
221
+ fill: "currentColor"
222
+ }, _react["default"].createElement("path", {
223
+ d: "M7 14l5-5 5 5z"
224
+ }), _react["default"].createElement("path", {
225
+ d: "M0 0h24v24H0z",
226
+ fill: "none"
227
+ }));
228
+ };
229
+
230
+ var DownArrowIcon = function DownArrowIcon() {
231
+ return _react["default"].createElement("svg", {
232
+ xmlns: "http://www.w3.org/2000/svg",
233
+ width: "24",
234
+ height: "24",
235
+ viewBox: "0 0 24 24",
236
+ fill: "currentColor"
237
+ }, _react["default"].createElement("path", {
238
+ d: "M7 10l5 5 5-5z"
239
+ }), _react["default"].createElement("path", {
240
+ d: "M0 0h24v24H0z",
241
+ fill: "none"
242
+ }));
243
+ };
244
+
187
245
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
188
246
  theme: colorsTheme.dropdown
189
- }, _react["default"].createElement(DxCDropdownContainer, {
247
+ }, _react["default"].createElement(DXCDropdownContainer, {
190
248
  margin: margin,
191
- size: size
249
+ size: size,
250
+ disabled: disabled
192
251
  }, _react["default"].createElement("div", {
193
- onMouseOver: expandOnHover ? handleClickListItem : undefined,
252
+ onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
194
253
  onMouseOut: handleCloseOver,
195
254
  onFocus: handleCloseOver,
196
255
  onBlur: handleCloseOver
197
256
  }, _react["default"].createElement(DropdownTrigger, {
198
257
  opened: anchorEl === null ? false : true,
199
258
  onClick: handleClickListItem,
259
+ disabled: disabled,
200
260
  label: label,
201
261
  caretHidden: caretHidden,
202
262
  margin: margin,
203
263
  size: size,
204
- ref: ref
264
+ ref: ref,
265
+ tabIndex: tabIndex
205
266
  }, _react["default"].createElement(DropdownTriggerContainer, {
206
267
  iconPosition: iconPosition,
207
268
  caretHidden: caretHidden
208
- }, 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, {
209
274
  label: label,
210
275
  src: iconSrc,
211
276
  iconPosition: iconPosition
212
277
  }), _react["default"].createElement(DropdownTriggerLabel, {
213
278
  iconPosition: iconPosition,
214
279
  label: label
215
- }, label)), _react["default"].createElement(CaretIcon, {
280
+ }, label)), _react["default"].createElement(CaretIconContainer, {
216
281
  caretHidden: caretHidden,
217
- margin: margin,
218
- src: anchorEl === null ? _baselineArrow_drop_down["default"] : _baselineArrow_drop_up["default"]
219
- })), _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, {
220
284
  anchorEl: anchorEl,
221
285
  open: Boolean(anchorEl),
222
286
  onClose: handleClose,
@@ -242,17 +306,19 @@ var DxcDropdown = function DxcDropdown(_ref) {
242
306
  onClickAway: handleClose
243
307
  }, _react["default"].createElement(_MenuList["default"], {
244
308
  autoFocusItem: Boolean(anchorEl),
245
- id: "menu-list-grow",
246
- onKeyDown: handleClose
309
+ id: "menu-list-grow"
247
310
  }, options.map(function (option) {
248
311
  return _react["default"].createElement(_MenuItem["default"], {
249
312
  key: option.value,
250
313
  value: option.value,
251
- disableRipple: disableRipple,
314
+ disableRipple: true,
252
315
  onClick: function onClick(event) {
253
316
  return handleMenuItemClick(option);
254
317
  }
255
- }, 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, {
256
322
  label: option.label,
257
323
  src: option.iconSrc,
258
324
  iconPosition: optionsIconPosition
@@ -279,7 +345,7 @@ var calculateWidth = function calculateWidth(margin, size) {
279
345
  return sizes[size];
280
346
  };
281
347
 
282
- var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
348
+ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
283
349
  return calculateWidth(props.margin, props.size);
284
350
  }, function (props) {
285
351
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -293,42 +359,96 @@ var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), f
293
359
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
294
360
  });
295
361
 
296
- var DxcMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
362
+ var DXCMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
297
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;
298
372
  }, function (props) {
299
373
  return "".concat(props.width, "px");
300
374
  }, function (props) {
301
- 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;
382
+ }, function (props) {
383
+ return props.theme.borderRadius;
302
384
  }, function (props) {
303
- return props.theme.dropdownFontColor;
385
+ return props.theme.scrollBarTrackColor;
386
+ }, function (props) {
387
+ return props.theme.scrollBarThumbColor;
304
388
  }, function (props) {
305
389
  return props.optionsIconPosition === "after" && "row-reverse" || "row";
306
390
  }, function (props) {
307
391
  return props.optionsIconPosition === "after" && "flex-end" || "";
308
392
  }, function (props) {
309
- return props.theme.backgroundColor + props.theme.hoverBackgroundOption;
393
+ return props.theme.optionBackgroundColor;
394
+ }, function (props) {
395
+ return props.theme.optionFontFamily;
396
+ }, function (props) {
397
+ return props.theme.optionFontSize;
398
+ }, function (props) {
399
+ return props.theme.optionFontStyle;
400
+ }, function (props) {
401
+ return props.theme.optionFontWeight;
402
+ }, function (props) {
403
+ return props.theme.optionFontColor;
310
404
  }, function (props) {
311
- return props.theme.dropdownFontColor;
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;
312
412
  });
313
413
 
314
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) {
315
433
  return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
316
434
  }, function (props) {
317
- if (props.caretHidden === true && props.label === "") {
318
- return "10px 15px";
319
- } else {
320
- return "10px 15px 10px 20px";
321
- }
435
+ return props.theme.buttonPaddingTop;
436
+ }, function (props) {
437
+ return props.theme.buttonPaddingBottom;
438
+ }, function (props) {
439
+ return props.theme.buttonPaddingLeft;
322
440
  }, function (props) {
323
- return props.opened === true ? props.theme.backgroundColor + props.theme.hoverBackgroundColor : props.theme.backgroundColor;
441
+ return props.theme.buttonPaddingRight;
324
442
  }, function (props) {
325
- return props.theme.fontColor;
443
+ return props.disabled ? props.theme.disabledButtonBackgroundColor : props.theme.buttonBackgroundColor;
326
444
  }, function (props) {
327
- return props.opened === true ? "0px" : "2px";
445
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
328
446
  }, function (props) {
329
- return props.opened === true ? "0px" : "2px";
447
+ return props.opened ? "0px" : props.theme.borderRadius;
330
448
  }, function (props) {
331
- 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 ");
332
452
  });
333
453
 
334
454
  var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4());
@@ -336,25 +456,63 @@ var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4())
336
456
  var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
337
457
  return props.iconPosition === "after" && "row-reverse" || "row";
338
458
  }, function (props) {
339
- return props.caretHidden ? "100%" : "calc(100% - 44px)";
459
+ return props.caretHidden ? "100%" : "calc(100% - 36px)";
340
460
  });
341
461
 
342
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
343
- if (props.iconPosition === "before" && props.label !== "") {
344
- return "10px";
345
- } else {
346
- return "0px";
347
- }
462
+ var ButtonIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
463
+ return props.theme.buttonIconSize;
348
464
  }, function (props) {
349
- if (props.iconPosition === "after" && props.label !== "") {
350
- return "10px";
351
- } else {
352
- return "0px";
353
- }
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;
354
482
  });
355
483
 
356
- var CaretIcon = _styledComponents["default"].img(_templateObject7(), function (props) {
357
- return props.caretHidden === true ? "none" : "block";
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;
514
+ }, function (props) {
515
+ return props.theme.caretIconSize;
358
516
  });
359
517
 
360
518
  DxcDropdown.propTypes = {
@@ -366,18 +524,21 @@ DxcDropdown.propTypes = {
366
524
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
367
525
  }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
368
526
  optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
527
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
369
528
  iconSrc: _propTypes["default"].string,
370
529
  iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
371
530
  label: _propTypes["default"].string,
372
531
  caretHidden: _propTypes["default"].bool,
373
- disableRipple: _propTypes["default"].bool,
532
+ disabled: _propTypes["default"].bool,
374
533
  expandOnHover: _propTypes["default"].bool,
375
534
  onSelectOption: _propTypes["default"].func,
376
535
  options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
377
536
  value: _propTypes["default"].any.isRequired,
378
537
  label: _propTypes["default"].any.isRequired,
538
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
379
539
  iconSrc: _propTypes["default"].string
380
- }))
540
+ })),
541
+ tabIndex: _propTypes["default"].number
381
542
  };
382
543
  var _default = DxcDropdown;
383
544
  exports["default"] = _default;