@dxc-technology/halstack-react 0.0.0-eb2a4cc → 0.0.0-ebb089f

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