@dxc-technology/halstack-react 0.0.0-b646454 → 0.0.0-b915415

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 +1 -1
  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 +174 -63
  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 +183 -84
  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 +85 -28
  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 +128 -36
  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 +1451 -277
  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 +58 -37
  35. package/dist/dialog/index.d.ts +18 -0
  36. package/dist/dropdown/Dropdown.js +205 -85
  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 +121 -46
  42. package/dist/footer/Icons.js +77 -0
  43. package/dist/footer/index.d.ts +25 -0
  44. package/dist/header/Header.js +200 -102
  45. package/dist/header/Icons.js +59 -0
  46. package/dist/header/index.d.ts +25 -0
  47. package/dist/heading/Heading.js +93 -16
  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 +289 -103
  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 +172 -63
  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 +95 -38
  67. package/dist/progress-bar/index.d.ts +18 -0
  68. package/dist/radio/Radio.js +39 -17
  69. package/dist/radio/index.d.ts +23 -0
  70. package/dist/resultsetTable/ResultsetTable.js +93 -68
  71. package/dist/resultsetTable/index.d.ts +19 -0
  72. package/dist/select/Select.js +916 -265
  73. package/dist/select/index.d.ts +53 -0
  74. package/dist/sidenav/Sidenav.js +84 -141
  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 +247 -59
  79. package/dist/spinner/index.d.ts +17 -0
  80. package/dist/switch/Switch.js +50 -27
  81. package/dist/switch/index.d.ts +24 -0
  82. package/dist/table/Table.js +58 -13
  83. package/dist/table/index.d.ts +13 -0
  84. package/dist/tabs/Tabs.js +207 -36
  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 +248 -106
  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 +32 -19
  98. package/dist/upload/buttons-upload/Icons.js +40 -0
  99. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  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 +138 -60
  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 +15 -0
  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 +371 -147
  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 +732 -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,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"]);
66
+
67
+ _templateObject8 = function _templateObject8() {
68
+ return data;
69
+ };
47
70
 
48
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
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 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"]);
102
126
 
103
127
  _templateObject2 = function _templateObject2() {
104
128
  return data;
@@ -108,7 +132,7 @@ function _templateObject2() {
108
132
  }
109
133
 
110
134
  function _templateObject() {
111
- 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"]);
112
136
 
113
137
  _templateObject = function _templateObject() {
114
138
  return data;
@@ -122,12 +146,15 @@ 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
160
  onSelectOption = _ref.onSelectOption,
@@ -135,28 +162,30 @@ var DxcDropdown = function DxcDropdown(_ref) {
135
162
  _ref$size = _ref.size,
136
163
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
137
164
  _ref$expandOnHover = _ref.expandOnHover,
138
- 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;
139
168
 
140
169
  var _useState = (0, _react.useState)(),
141
170
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
142
171
  width = _useState2[0],
143
172
  setWidth = _useState2[1];
144
173
 
145
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
146
- var colorsTheme = (0, _react.useMemo)(function () {
147
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
148
- }, [customTheme]);
174
+ var colorsTheme = (0, _useTheme["default"])();
149
175
  var ref = (0, _react.useRef)(null);
150
176
 
151
177
  var handleResize = function handleResize() {
152
- setWidth(ref.current.offsetWidth);
178
+ if (ref.current) setWidth(ref.current.offsetWidth);
153
179
  };
154
180
 
155
181
  (0, _react.useEffect)(function () {
156
- if (ref.current) ref.current.addEventListener("resize", handleResize);
157
- handleResize();
182
+ if (ref.current) {
183
+ ref.current.addEventListener("resize", handleResize);
184
+ handleResize();
185
+ }
186
+
158
187
  return function () {
159
- ref.current.removeEventListener("resize", handleResize);
188
+ if (ref.current) ref.current.removeEventListener("resize", handleResize);
160
189
  };
161
190
  }, []);
162
191
 
@@ -183,32 +212,30 @@ var DxcDropdown = function DxcDropdown(_ref) {
183
212
 
184
213
  var handleCloseOver = expandOnHover ? handleClose : undefined;
185
214
 
186
- var UpArrowIcon = function UpArrowIcon(_ref2) {
187
- var fill = _ref2.fill;
215
+ var UpArrowIcon = function UpArrowIcon() {
188
216
  return _react["default"].createElement("svg", {
189
217
  xmlns: "http://www.w3.org/2000/svg",
190
218
  width: "24",
191
219
  height: "24",
192
- viewBox: "0 0 24 24"
220
+ viewBox: "0 0 24 24",
221
+ fill: "currentColor"
193
222
  }, _react["default"].createElement("path", {
194
- d: "M7 14l5-5 5 5z",
195
- fill: fill
223
+ d: "M7 14l5-5 5 5z"
196
224
  }), _react["default"].createElement("path", {
197
225
  d: "M0 0h24v24H0z",
198
226
  fill: "none"
199
227
  }));
200
228
  };
201
229
 
202
- var DownArrowIcon = function DownArrowIcon(_ref3) {
203
- var fill = _ref3.fill;
230
+ var DownArrowIcon = function DownArrowIcon() {
204
231
  return _react["default"].createElement("svg", {
205
232
  xmlns: "http://www.w3.org/2000/svg",
206
233
  width: "24",
207
234
  height: "24",
208
- viewBox: "0 0 24 24"
235
+ viewBox: "0 0 24 24",
236
+ fill: "currentColor"
209
237
  }, _react["default"].createElement("path", {
210
- d: "M7 10l5 5 5-5z",
211
- fill: fill
238
+ d: "M7 10l5 5 5-5z"
212
239
  }), _react["default"].createElement("path", {
213
240
  d: "M0 0h24v24H0z",
214
241
  fill: "none"
@@ -217,42 +244,43 @@ var DxcDropdown = function DxcDropdown(_ref) {
217
244
 
218
245
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
219
246
  theme: colorsTheme.dropdown
220
- }, _react["default"].createElement(DxCDropdownContainer, {
247
+ }, _react["default"].createElement(DXCDropdownContainer, {
221
248
  margin: margin,
222
249
  size: size,
223
- tabIndex: "0"
250
+ disabled: disabled
224
251
  }, _react["default"].createElement("div", {
225
- onMouseOver: expandOnHover ? handleClickListItem : undefined,
252
+ onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
226
253
  onMouseOut: handleCloseOver,
227
254
  onFocus: handleCloseOver,
228
255
  onBlur: handleCloseOver
229
256
  }, _react["default"].createElement(DropdownTrigger, {
230
257
  opened: anchorEl === null ? false : true,
231
258
  onClick: handleClickListItem,
259
+ disabled: disabled,
232
260
  label: label,
233
261
  caretHidden: caretHidden,
234
262
  margin: margin,
235
263
  size: size,
236
- ref: ref
264
+ ref: ref,
265
+ tabIndex: tabIndex
237
266
  }, _react["default"].createElement(DropdownTriggerContainer, {
238
267
  iconPosition: iconPosition,
239
268
  caretHidden: caretHidden
240
- }, 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, {
241
274
  label: label,
242
275
  src: iconSrc,
243
276
  iconPosition: iconPosition
244
277
  }), _react["default"].createElement(DropdownTriggerLabel, {
245
278
  iconPosition: iconPosition,
246
279
  label: label
247
- }, label)), _react["default"].createElement(CaretIcon, null, anchorEl === null ? _react["default"].createElement(DownArrowIcon, {
280
+ }, label)), _react["default"].createElement(CaretIconContainer, {
248
281
  caretHidden: caretHidden,
249
- margin: margin,
250
- fill: _variables.theme.dropdown.fontColor
251
- }) : _react["default"].createElement(UpArrowIcon, {
252
- caretHidden: caretHidden,
253
- margin: margin,
254
- fill: _variables.theme.dropdown.fontColor
255
- }))), _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, {
256
284
  anchorEl: anchorEl,
257
285
  open: Boolean(anchorEl),
258
286
  onClose: handleClose,
@@ -272,14 +300,13 @@ var DxcDropdown = function DxcDropdown(_ref) {
272
300
  transition: true,
273
301
  disablePortal: true,
274
302
  placement: "bottom-start"
275
- }, function (_ref4) {
276
- var TransitionProps = _ref4.TransitionProps;
303
+ }, function (_ref2) {
304
+ var TransitionProps = _ref2.TransitionProps;
277
305
  return _react["default"].createElement(_Grow["default"], TransitionProps, _react["default"].createElement(_Paper["default"], null, _react["default"].createElement(_core.ClickAwayListener, {
278
306
  onClickAway: handleClose
279
307
  }, _react["default"].createElement(_MenuList["default"], {
280
308
  autoFocusItem: Boolean(anchorEl),
281
- id: "menu-list-grow",
282
- onKeyDown: handleClose
309
+ id: "menu-list-grow"
283
310
  }, options.map(function (option) {
284
311
  return _react["default"].createElement(_MenuItem["default"], {
285
312
  key: option.value,
@@ -288,7 +315,10 @@ var DxcDropdown = function DxcDropdown(_ref) {
288
315
  onClick: function onClick(event) {
289
316
  return handleMenuItemClick(option);
290
317
  }
291
- }, 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, {
292
322
  label: option.label,
293
323
  src: option.iconSrc,
294
324
  iconPosition: optionsIconPosition
@@ -315,7 +345,7 @@ var calculateWidth = function calculateWidth(margin, size) {
315
345
  return sizes[size];
316
346
  };
317
347
 
318
- var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
348
+ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
319
349
  return calculateWidth(props.margin, props.size);
320
350
  }, function (props) {
321
351
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -327,50 +357,98 @@ var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), f
327
357
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
328
358
  }, function (props) {
329
359
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
330
- }, function (props) {
331
- return props.theme.focusColor;
332
360
  });
333
361
 
334
- var DxcMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
362
+ var DXCMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
335
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;
336
372
  }, function (props) {
337
373
  return "".concat(props.width, "px");
338
374
  }, function (props) {
339
- return props.theme.dropdownBackgroundColor;
375
+ return props.theme.borderThickness;
376
+ }, function (props) {
377
+ return props.theme.borderStyle;
340
378
  }, function (props) {
341
- return props.theme.dropdownFontColor;
379
+ return props.theme.borderColor;
380
+ }, function (props) {
381
+ return props.theme.borderRadius;
382
+ }, function (props) {
383
+ return props.theme.borderRadius;
384
+ }, function (props) {
385
+ return props.theme.scrollBarTrackColor;
386
+ }, function (props) {
387
+ return props.theme.scrollBarThumbColor;
342
388
  }, function (props) {
343
389
  return props.optionsIconPosition === "after" && "row-reverse" || "row";
344
390
  }, function (props) {
345
391
  return props.optionsIconPosition === "after" && "flex-end" || "";
346
392
  }, function (props) {
347
- return props.theme.backgroundColor + props.theme.hoverBackgroundOption;
393
+ return props.theme.optionBackgroundColor;
348
394
  }, function (props) {
349
- return props.theme.dropdownFontColor;
395
+ return props.theme.optionFontFamily;
350
396
  }, function (props) {
351
- return props.theme.scrollBarTrackColor;
397
+ return props.theme.optionFontSize;
352
398
  }, function (props) {
353
- 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;
354
412
  });
355
413
 
356
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) {
357
433
  return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
358
434
  }, function (props) {
359
- if (props.caretHidden === true && props.label === "") {
360
- return "10px 15px";
361
- } else {
362
- return "10px 15px 10px 20px";
363
- }
435
+ return props.theme.buttonPaddingTop;
436
+ }, function (props) {
437
+ return props.theme.buttonPaddingBottom;
364
438
  }, function (props) {
365
- return props.opened === true ? props.theme.backgroundColor + props.theme.hoverBackgroundColor : props.theme.backgroundColor;
439
+ return props.theme.buttonPaddingLeft;
366
440
  }, function (props) {
367
- return props.theme.fontColor;
441
+ return props.theme.buttonPaddingRight;
368
442
  }, function (props) {
369
- return props.opened === true ? "0px" : "2px";
443
+ return props.disabled ? props.theme.disabledButtonBackgroundColor : props.theme.buttonBackgroundColor;
370
444
  }, function (props) {
371
- return props.opened === true ? "0px" : "2px";
445
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
372
446
  }, function (props) {
373
- return props.theme.backgroundColor + props.theme.hoverBackgroundColor;
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 ");
374
452
  });
375
453
 
376
454
  var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4());
@@ -378,25 +456,63 @@ var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4())
378
456
  var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
379
457
  return props.iconPosition === "after" && "row-reverse" || "row";
380
458
  }, function (props) {
381
- return props.caretHidden ? "100%" : "calc(100% - 44px)";
459
+ return props.caretHidden ? "100%" : "calc(100% - 36px)";
382
460
  });
383
461
 
384
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
385
- if (props.iconPosition === "before" && props.label !== "") {
386
- return "10px";
387
- } else {
388
- return "0px";
389
- }
462
+ var ButtonIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
463
+ return props.theme.buttonIconSize;
390
464
  }, function (props) {
391
- if (props.iconPosition === "after" && props.label !== "") {
392
- return "10px";
393
- } else {
394
- return "0px";
395
- }
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";
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;
396
504
  });
397
505
 
398
- var CaretIcon = _styledComponents["default"].div(_templateObject7(), function (props) {
399
- return props.caretHidden === true ? "none" : "block";
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;
400
516
  });
401
517
 
402
518
  DxcDropdown.propTypes = {
@@ -408,17 +524,21 @@ DxcDropdown.propTypes = {
408
524
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
409
525
  }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
410
526
  optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
527
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
411
528
  iconSrc: _propTypes["default"].string,
412
529
  iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
413
530
  label: _propTypes["default"].string,
414
531
  caretHidden: _propTypes["default"].bool,
532
+ disabled: _propTypes["default"].bool,
415
533
  expandOnHover: _propTypes["default"].bool,
416
534
  onSelectOption: _propTypes["default"].func,
417
535
  options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
418
536
  value: _propTypes["default"].any.isRequired,
419
537
  label: _propTypes["default"].any.isRequired,
538
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
420
539
  iconSrc: _propTypes["default"].string
421
- }))
540
+ })),
541
+ tabIndex: _propTypes["default"].number
422
542
  };
423
543
  var _default = DxcDropdown;
424
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;