@dxc-technology/halstack-react 0.0.0-cb610df → 0.0.0-cc01d9c

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