@dxc-technology/halstack-react 0.0.0-cd617f3 → 0.0.0-ce7e51c

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 (336) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +15 -47
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +8 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -17
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +6 -3
  16. package/alert/Alert.stories.tsx +170 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/alert/types.d.ts +1 -1
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -4
  21. package/badge/types.d.ts +5 -0
  22. package/{radio → badge}/types.js +0 -0
  23. package/bleed/Bleed.d.ts +3 -0
  24. package/bleed/Bleed.js +51 -0
  25. package/bleed/Bleed.stories.tsx +341 -0
  26. package/bleed/types.d.ts +37 -0
  27. package/bleed/types.js +5 -0
  28. package/box/Box.d.ts +4 -0
  29. package/box/Box.js +28 -64
  30. package/box/Box.stories.tsx +132 -0
  31. package/box/Box.test.js +18 -0
  32. package/box/types.d.ts +43 -0
  33. package/box/types.js +5 -0
  34. package/bulleted-list/BulletedList.d.ts +7 -0
  35. package/bulleted-list/BulletedList.js +123 -0
  36. package/bulleted-list/BulletedList.stories.tsx +200 -0
  37. package/bulleted-list/types.d.ts +11 -0
  38. package/bulleted-list/types.js +5 -0
  39. package/button/Button.d.ts +1 -1
  40. package/button/Button.js +61 -87
  41. package/button/Button.stories.tsx +232 -242
  42. package/button/Button.test.js +35 -0
  43. package/button/types.d.ts +14 -18
  44. package/card/Card.d.ts +4 -0
  45. package/card/Card.js +38 -77
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +1 -1
  52. package/checkbox/Checkbox.js +45 -41
  53. package/checkbox/Checkbox.stories.tsx +188 -0
  54. package/checkbox/Checkbox.test.js +78 -0
  55. package/checkbox/types.d.ts +9 -6
  56. package/chip/Chip.d.ts +4 -0
  57. package/chip/Chip.js +16 -76
  58. package/chip/Chip.stories.tsx +119 -0
  59. package/chip/Chip.test.js +56 -0
  60. package/chip/types.d.ts +45 -0
  61. package/chip/types.js +5 -0
  62. package/common/variables.js +312 -377
  63. package/date-input/DateInput.js +66 -55
  64. package/date-input/DateInput.stories.tsx +138 -0
  65. package/date-input/DateInput.test.js +479 -0
  66. package/date-input/types.d.ts +16 -9
  67. package/dialog/Dialog.d.ts +4 -0
  68. package/dialog/Dialog.js +52 -74
  69. package/dialog/Dialog.stories.tsx +211 -0
  70. package/dialog/Dialog.test.js +70 -0
  71. package/dialog/types.d.ts +43 -0
  72. package/dialog/types.js +5 -0
  73. package/dropdown/Dropdown.d.ts +4 -0
  74. package/dropdown/Dropdown.js +239 -302
  75. package/dropdown/Dropdown.stories.tsx +312 -0
  76. package/dropdown/Dropdown.test.js +591 -0
  77. package/dropdown/DropdownMenu.d.ts +4 -0
  78. package/dropdown/DropdownMenu.js +80 -0
  79. package/dropdown/DropdownMenuItem.d.ts +4 -0
  80. package/dropdown/DropdownMenuItem.js +92 -0
  81. package/dropdown/types.d.ts +100 -0
  82. package/dropdown/types.js +5 -0
  83. package/file-input/FileInput.d.ts +4 -0
  84. package/file-input/FileInput.js +172 -111
  85. package/file-input/FileInput.stories.tsx +507 -0
  86. package/file-input/FileInput.test.js +457 -0
  87. package/file-input/FileItem.d.ts +14 -0
  88. package/file-input/FileItem.js +16 -23
  89. package/file-input/types.d.ts +112 -0
  90. package/file-input/types.js +5 -0
  91. package/flex/Flex.d.ts +4 -0
  92. package/flex/Flex.js +57 -0
  93. package/flex/Flex.stories.tsx +103 -0
  94. package/flex/types.d.ts +21 -0
  95. package/flex/types.js +5 -0
  96. package/footer/Footer.d.ts +4 -0
  97. package/footer/Footer.js +36 -148
  98. package/footer/Footer.stories.tsx +130 -0
  99. package/footer/Footer.test.js +109 -0
  100. package/footer/Icons.d.ts +2 -0
  101. package/footer/Icons.js +4 -4
  102. package/footer/types.d.ts +65 -0
  103. package/footer/types.js +5 -0
  104. package/header/Header.d.ts +7 -0
  105. package/header/Header.js +119 -140
  106. package/header/Header.stories.tsx +172 -0
  107. package/header/Header.test.js +79 -0
  108. package/header/Icons.d.ts +2 -0
  109. package/header/Icons.js +4 -29
  110. package/header/types.d.ts +47 -0
  111. package/header/types.js +5 -0
  112. package/heading/Heading.d.ts +4 -0
  113. package/heading/Heading.js +7 -24
  114. package/heading/Heading.stories.tsx +54 -0
  115. package/heading/Heading.test.js +186 -0
  116. package/heading/types.d.ts +33 -0
  117. package/heading/types.js +5 -0
  118. package/inset/Inset.d.ts +3 -0
  119. package/inset/Inset.js +51 -0
  120. package/inset/Inset.stories.tsx +229 -0
  121. package/inset/types.d.ts +37 -0
  122. package/inset/types.js +5 -0
  123. package/layout/ApplicationLayout.d.ts +20 -0
  124. package/layout/ApplicationLayout.js +71 -135
  125. package/layout/ApplicationLayout.stories.tsx +161 -0
  126. package/layout/Icons.d.ts +5 -0
  127. package/layout/Icons.js +13 -2
  128. package/layout/SidenavContext.d.ts +5 -0
  129. package/layout/SidenavContext.js +19 -0
  130. package/layout/types.d.ts +42 -0
  131. package/layout/types.js +5 -0
  132. package/link/Link.d.ts +4 -0
  133. package/link/Link.js +60 -107
  134. package/link/Link.stories.tsx +193 -0
  135. package/link/Link.test.js +83 -0
  136. package/link/types.d.ts +54 -0
  137. package/link/types.js +5 -0
  138. package/main.d.ts +12 -12
  139. package/main.js +64 -58
  140. package/number-input/NumberInput.d.ts +4 -0
  141. package/number-input/NumberInput.js +16 -68
  142. package/number-input/NumberInput.stories.tsx +115 -0
  143. package/number-input/NumberInput.test.js +506 -0
  144. package/number-input/NumberInputContext.d.ts +4 -0
  145. package/number-input/NumberInputContext.js +5 -2
  146. package/number-input/numberInputContextTypes.d.ts +19 -0
  147. package/number-input/numberInputContextTypes.js +5 -0
  148. package/number-input/types.d.ts +124 -0
  149. package/number-input/types.js +5 -0
  150. package/package.json +14 -10
  151. package/paginator/Paginator.js +19 -46
  152. package/paginator/Paginator.stories.tsx +63 -0
  153. package/paginator/Paginator.test.js +308 -0
  154. package/paragraph/Paragraph.d.ts +6 -0
  155. package/paragraph/Paragraph.js +38 -0
  156. package/paragraph/Paragraph.stories.tsx +44 -0
  157. package/password-input/PasswordInput.d.ts +4 -0
  158. package/password-input/PasswordInput.js +22 -55
  159. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
  160. package/password-input/PasswordInput.test.js +180 -0
  161. package/password-input/types.d.ts +110 -0
  162. package/password-input/types.js +5 -0
  163. package/progress-bar/ProgressBar.d.ts +4 -0
  164. package/progress-bar/ProgressBar.js +60 -72
  165. package/progress-bar/ProgressBar.stories.jsx +60 -0
  166. package/progress-bar/ProgressBar.test.js +110 -0
  167. package/progress-bar/types.d.ts +36 -0
  168. package/progress-bar/types.js +5 -0
  169. package/quick-nav/QuickNav.d.ts +4 -0
  170. package/quick-nav/QuickNav.js +118 -0
  171. package/quick-nav/QuickNav.stories.tsx +264 -0
  172. package/quick-nav/types.d.ts +21 -0
  173. package/quick-nav/types.js +5 -0
  174. package/radio-group/Radio.d.ts +4 -0
  175. package/radio-group/Radio.js +141 -0
  176. package/radio-group/RadioGroup.d.ts +4 -0
  177. package/radio-group/RadioGroup.js +281 -0
  178. package/radio-group/RadioGroup.stories.tsx +100 -0
  179. package/radio-group/RadioGroup.test.js +695 -0
  180. package/radio-group/types.d.ts +114 -0
  181. package/radio-group/types.js +5 -0
  182. package/resultsetTable/ResultsetTable.d.ts +4 -0
  183. package/resultsetTable/ResultsetTable.js +9 -29
  184. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  185. package/resultsetTable/ResultsetTable.test.js +348 -0
  186. package/resultsetTable/types.d.ts +67 -0
  187. package/resultsetTable/types.js +5 -0
  188. package/select/Icons.d.ts +10 -0
  189. package/select/Icons.js +93 -0
  190. package/select/Listbox.d.ts +4 -0
  191. package/select/Listbox.js +199 -0
  192. package/select/Option.d.ts +4 -0
  193. package/select/Option.js +110 -0
  194. package/select/Select.d.ts +4 -0
  195. package/select/Select.js +158 -380
  196. package/select/Select.stories.tsx +627 -0
  197. package/select/Select.test.js +2175 -0
  198. package/select/types.d.ts +210 -0
  199. package/select/types.js +5 -0
  200. package/sidenav/Sidenav.d.ts +10 -0
  201. package/sidenav/Sidenav.js +186 -63
  202. package/sidenav/Sidenav.stories.tsx +180 -0
  203. package/sidenav/Sidenav.test.js +44 -0
  204. package/sidenav/types.d.ts +73 -0
  205. package/sidenav/types.js +5 -0
  206. package/slider/Slider.d.ts +4 -0
  207. package/slider/Slider.js +63 -85
  208. package/slider/Slider.stories.tsx +177 -0
  209. package/slider/Slider.test.js +150 -0
  210. package/slider/types.d.ts +82 -0
  211. package/slider/types.js +5 -0
  212. package/spinner/Spinner.d.ts +4 -0
  213. package/spinner/Spinner.js +9 -26
  214. package/spinner/Spinner.stories.jsx +103 -0
  215. package/spinner/Spinner.test.js +64 -0
  216. package/spinner/types.d.ts +32 -0
  217. package/spinner/types.js +5 -0
  218. package/switch/Switch.d.ts +2 -2
  219. package/switch/Switch.js +129 -57
  220. package/switch/Switch.stories.tsx +138 -0
  221. package/switch/Switch.test.js +212 -0
  222. package/switch/types.d.ts +9 -6
  223. package/table/Table.d.ts +4 -0
  224. package/table/Table.js +3 -3
  225. package/table/Table.stories.jsx +277 -0
  226. package/table/Table.test.js +26 -0
  227. package/table/types.d.ts +21 -0
  228. package/table/types.js +5 -0
  229. package/tabs/Tabs.d.ts +4 -0
  230. package/tabs/Tabs.js +24 -72
  231. package/tabs/Tabs.stories.tsx +112 -0
  232. package/tabs/Tabs.test.js +140 -0
  233. package/tabs/types.d.ts +82 -0
  234. package/tabs/types.js +5 -0
  235. package/tabs-nav/NavTabs.d.ts +8 -0
  236. package/tabs-nav/NavTabs.js +125 -0
  237. package/tabs-nav/NavTabs.stories.tsx +170 -0
  238. package/tabs-nav/NavTabs.test.js +82 -0
  239. package/tabs-nav/Tab.d.ts +4 -0
  240. package/tabs-nav/Tab.js +130 -0
  241. package/tabs-nav/types.d.ts +53 -0
  242. package/tabs-nav/types.js +5 -0
  243. package/tag/Tag.d.ts +4 -0
  244. package/tag/Tag.js +34 -59
  245. package/tag/Tag.stories.tsx +142 -0
  246. package/tag/Tag.test.js +60 -0
  247. package/tag/types.d.ts +69 -0
  248. package/tag/types.js +5 -0
  249. package/text-input/Suggestion.d.ts +4 -0
  250. package/text-input/Suggestion.js +55 -0
  251. package/text-input/TextInput.d.ts +4 -0
  252. package/text-input/TextInput.js +103 -167
  253. package/text-input/TextInput.stories.tsx +473 -0
  254. package/text-input/TextInput.test.js +1712 -0
  255. package/text-input/types.d.ts +178 -0
  256. package/text-input/types.js +5 -0
  257. package/textarea/Textarea.d.ts +4 -0
  258. package/textarea/Textarea.js +39 -79
  259. package/textarea/Textarea.stories.jsx +157 -0
  260. package/textarea/Textarea.test.js +437 -0
  261. package/textarea/types.d.ts +137 -0
  262. package/textarea/types.js +5 -0
  263. package/toggle-group/ToggleGroup.d.ts +4 -0
  264. package/toggle-group/ToggleGroup.js +18 -46
  265. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  266. package/toggle-group/ToggleGroup.test.js +156 -0
  267. package/toggle-group/types.d.ts +105 -0
  268. package/toggle-group/types.js +5 -0
  269. package/typography/Typography.d.ts +4 -0
  270. package/typography/Typography.js +131 -0
  271. package/typography/Typography.stories.tsx +198 -0
  272. package/typography/types.d.ts +18 -0
  273. package/typography/types.js +5 -0
  274. package/useTheme.d.ts +2 -0
  275. package/useTheme.js +2 -2
  276. package/useTranslatedLabels.d.ts +2 -0
  277. package/useTranslatedLabels.js +20 -0
  278. package/wizard/Wizard.d.ts +4 -0
  279. package/wizard/Wizard.js +118 -104
  280. package/wizard/Wizard.stories.tsx +233 -0
  281. package/wizard/Wizard.test.js +141 -0
  282. package/wizard/types.d.ts +65 -0
  283. package/wizard/types.js +5 -0
  284. package/ThemeContext.js +0 -246
  285. package/V3Select/V3Select.js +0 -455
  286. package/V3Select/index.d.ts +0 -27
  287. package/V3Textarea/V3Textarea.js +0 -260
  288. package/V3Textarea/index.d.ts +0 -27
  289. package/box/index.d.ts +0 -25
  290. package/card/index.d.ts +0 -22
  291. package/chip/index.d.ts +0 -22
  292. package/date/Date.js +0 -373
  293. package/date/index.d.ts +0 -27
  294. package/dialog/index.d.ts +0 -18
  295. package/dropdown/index.d.ts +0 -26
  296. package/file-input/index.d.ts +0 -81
  297. package/footer/index.d.ts +0 -25
  298. package/header/index.d.ts +0 -25
  299. package/heading/index.d.ts +0 -17
  300. package/input-text/Icons.js +0 -22
  301. package/input-text/InputText.js +0 -611
  302. package/input-text/index.d.ts +0 -36
  303. package/link/index.d.ts +0 -23
  304. package/number-input/index.d.ts +0 -113
  305. package/password-input/index.d.ts +0 -94
  306. package/progress-bar/index.d.ts +0 -18
  307. package/radio/Radio.d.ts +0 -4
  308. package/radio/Radio.js +0 -174
  309. package/radio/types.d.ts +0 -54
  310. package/resultsetTable/index.d.ts +0 -19
  311. package/select/index.d.ts +0 -131
  312. package/sidenav/index.d.ts +0 -13
  313. package/slider/index.d.ts +0 -29
  314. package/spinner/index.d.ts +0 -17
  315. package/table/index.d.ts +0 -13
  316. package/tabs/index.d.ts +0 -19
  317. package/tag/index.d.ts +0 -24
  318. package/text-input/index.d.ts +0 -135
  319. package/textarea/index.d.ts +0 -117
  320. package/toggle/Toggle.js +0 -186
  321. package/toggle/index.d.ts +0 -21
  322. package/toggle-group/index.d.ts +0 -21
  323. package/upload/Upload.js +0 -201
  324. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  325. package/upload/buttons-upload/Icons.js +0 -40
  326. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  327. package/upload/dragAndDropArea/Icons.js +0 -39
  328. package/upload/file-upload/FileToUpload.js +0 -115
  329. package/upload/file-upload/Icons.js +0 -66
  330. package/upload/files-upload/FilesToUpload.js +0 -109
  331. package/upload/index.d.ts +0 -15
  332. package/upload/transaction/Icons.js +0 -160
  333. package/upload/transaction/Transaction.js +0 -104
  334. package/upload/transactions/Transactions.js +0 -94
  335. package/wizard/Icons.js +0 -65
  336. package/wizard/index.d.ts +0 -18
@@ -9,230 +9,292 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
17
 
20
18
  var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
27
-
28
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
29
-
30
- var _core = require("@material-ui/core");
31
-
32
- var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
22
+ var _variables = require("../common/variables.js");
33
23
 
34
- var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
24
+ var _utils = require("../common/utils.js");
35
25
 
36
- var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
37
27
 
38
- var _variables = require("../common/variables.js");
28
+ var _uuid = require("uuid");
39
29
 
40
- var _utils = require("../common/utils.js");
30
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
41
31
 
42
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
32
+ var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
43
33
 
44
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
45
35
 
46
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
37
 
48
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
49
39
 
40
+ var upArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ xmlns: "http://www.w3.org/2000/svg",
42
+ width: "24",
43
+ height: "24",
44
+ viewBox: "0 0 24 24",
45
+ fill: "currentColor"
46
+ }, /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M7 14l5-5 5 5z"
48
+ }), /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M0 0h24v24H0z",
50
+ fill: "none"
51
+ }));
52
+
53
+ var downArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
54
+ xmlns: "http://www.w3.org/2000/svg",
55
+ width: "24",
56
+ height: "24",
57
+ viewBox: "0 0 24 24",
58
+ fill: "currentColor"
59
+ }, /*#__PURE__*/_react["default"].createElement("path", {
60
+ d: "M7 10l5 5 5-5z"
61
+ }), /*#__PURE__*/_react["default"].createElement("path", {
62
+ d: "M0 0h24v24H0z",
63
+ fill: "none"
64
+ }));
65
+
50
66
  var DxcDropdown = function DxcDropdown(_ref) {
51
- var _ref$options = _ref.options,
52
- options = _ref$options === void 0 ? [] : _ref$options,
67
+ var options = _ref.options,
53
68
  _ref$optionsIconPosit = _ref.optionsIconPosition,
54
69
  optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
55
70
  icon = _ref.icon,
56
- _ref$iconSrc = _ref.iconSrc,
57
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
58
71
  _ref$iconPosition = _ref.iconPosition,
59
72
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
60
73
  _ref$label = _ref.label,
61
74
  label = _ref$label === void 0 ? "" : _ref$label,
62
- _ref$disabled = _ref.disabled,
63
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
64
75
  _ref$caretHidden = _ref.caretHidden,
65
76
  caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
77
+ _ref$disabled = _ref.disabled,
78
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
79
+ _ref$expandOnHover = _ref.expandOnHover,
80
+ expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
66
81
  onSelectOption = _ref.onSelectOption,
67
82
  margin = _ref.margin,
68
83
  _ref$size = _ref.size,
69
84
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
70
- _ref$expandOnHover = _ref.expandOnHover,
71
- expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
72
85
  _ref$tabIndex = _ref.tabIndex,
73
86
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
74
87
 
75
- var _useState = (0, _react.useState)(),
76
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
77
- width = _useState2[0],
78
- setWidth = _useState2[1];
88
+ var _useState = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
89
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
90
+ triggerId = _useState2[0];
91
+
92
+ var menuId = "menu-".concat(triggerId);
93
+
94
+ var _useState3 = (0, _react.useState)(false),
95
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
96
+ isOpen = _useState4[0],
97
+ changeIsOpen = _useState4[1];
98
+
99
+ var _useState5 = (0, _react.useState)(null),
100
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
101
+ menuStyles = _useState6[0],
102
+ setMenuStyles = _useState6[1];
103
+
104
+ var _useState7 = (0, _react.useState)(0),
105
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
106
+ visualFocusIndex = _useState8[0],
107
+ setVisualFocusIndex = _useState8[1];
79
108
 
80
109
  var colorsTheme = (0, _useTheme["default"])();
81
- var ref = (0, _react.useRef)(null);
110
+ var triggerRef = (0, _react.useRef)(null);
111
+ var menuRef = (0, _react.useRef)(null);
82
112
 
83
- var handleResize = function handleResize() {
84
- if (ref.current) setWidth(ref.current.offsetWidth);
113
+ var handleOnOpenMenu = function handleOnOpenMenu() {
114
+ changeIsOpen(true);
85
115
  };
86
116
 
87
- (0, _react.useEffect)(function () {
88
- if (ref.current) {
89
- ref.current.addEventListener("resize", handleResize);
90
- handleResize();
91
- }
117
+ var handleOnCloseMenu = function handleOnCloseMenu() {
118
+ changeIsOpen(false);
119
+ setVisualFocusIndex(0);
120
+ };
92
121
 
93
- return function () {
94
- if (ref.current) ref.current.removeEventListener("resize", handleResize);
95
- };
96
- }, []);
122
+ var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
123
+ var _triggerRef$current;
97
124
 
98
- var _useState3 = (0, _react.useState)(null),
99
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
100
- anchorEl = _useState4[0],
101
- setAnchorEl = _useState4[1];
125
+ onSelectOption(value);
126
+ handleOnCloseMenu();
127
+ (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
128
+ }, [onSelectOption]);
102
129
 
103
- function handleClickListItem(event) {
104
- setAnchorEl(event.currentTarget);
105
- }
130
+ var handleOnBlur = function handleOnBlur(event) {
131
+ !event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
132
+ };
106
133
 
107
- function handleMenuItemClick(option) {
108
- setAnchorEl(null);
134
+ var handleTriggerOnClick = function handleTriggerOnClick() {
135
+ changeIsOpen(function (isOpen) {
136
+ return !isOpen;
137
+ });
138
+ };
109
139
 
110
- if (typeof onSelectOption === "function") {
111
- onSelectOption(option.value);
140
+ var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
141
+ switch (event.key) {
142
+ case "Up":
143
+ case "ArrowUp":
144
+ event.preventDefault();
145
+ setVisualFocusIndex(options.length - 1);
146
+ handleOnOpenMenu();
147
+ break;
148
+
149
+ case "Space":
150
+ case "Down":
151
+ case "ArrowDown":
152
+ case "Enter":
153
+ event.preventDefault();
154
+ handleOnOpenMenu();
155
+ break;
112
156
  }
113
- }
114
-
115
- function handleClose() {
116
- setAnchorEl(null);
117
- }
118
-
119
- var handleCloseOver = expandOnHover ? handleClose : undefined;
120
-
121
- var UpArrowIcon = function UpArrowIcon() {
122
- return /*#__PURE__*/_react["default"].createElement("svg", {
123
- xmlns: "http://www.w3.org/2000/svg",
124
- width: "24",
125
- height: "24",
126
- viewBox: "0 0 24 24",
127
- fill: "currentColor"
128
- }, /*#__PURE__*/_react["default"].createElement("path", {
129
- d: "M7 14l5-5 5 5z"
130
- }), /*#__PURE__*/_react["default"].createElement("path", {
131
- d: "M0 0h24v24H0z",
132
- fill: "none"
133
- }));
134
157
  };
135
158
 
136
- var DownArrowIcon = function DownArrowIcon() {
137
- return /*#__PURE__*/_react["default"].createElement("svg", {
138
- xmlns: "http://www.w3.org/2000/svg",
139
- width: "24",
140
- height: "24",
141
- viewBox: "0 0 24 24",
142
- fill: "currentColor"
143
- }, /*#__PURE__*/_react["default"].createElement("path", {
144
- d: "M7 10l5 5 5-5z"
145
- }), /*#__PURE__*/_react["default"].createElement("path", {
146
- d: "M0 0h24v24H0z",
147
- fill: "none"
148
- }));
159
+ var setPreviousIndexFocus = function setPreviousIndexFocus() {
160
+ setVisualFocusIndex(function (currentFocusIndex) {
161
+ var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
162
+ return index;
163
+ });
164
+ };
165
+
166
+ var setNextIndexFocus = function setNextIndexFocus() {
167
+ setVisualFocusIndex(function (currentFocusIndex) {
168
+ var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
169
+ return index;
170
+ });
149
171
  };
150
172
 
173
+ var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
174
+ var _triggerRef$current2, _triggerRef$current3;
175
+
176
+ switch (event.key) {
177
+ case "Up":
178
+ case "ArrowUp":
179
+ event.preventDefault();
180
+ setPreviousIndexFocus();
181
+ break;
182
+
183
+ case "Down":
184
+ case "ArrowDown":
185
+ event.preventDefault();
186
+ setNextIndexFocus();
187
+ break;
188
+
189
+ case "Space":
190
+ case "Enter":
191
+ event.preventDefault();
192
+ handleMenuItemOnClick(options[visualFocusIndex].value);
193
+ break;
194
+
195
+ case "Esc":
196
+ case "Escape":
197
+ event.preventDefault();
198
+ handleOnCloseMenu();
199
+ (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
200
+ break;
201
+
202
+ case "Home":
203
+ case "PageUp":
204
+ event.preventDefault();
205
+ setVisualFocusIndex(0);
206
+ break;
207
+
208
+ case "End":
209
+ case "PageDown":
210
+ event.preventDefault();
211
+ setVisualFocusIndex(options.length - 1);
212
+ break;
213
+
214
+ case "Tab":
215
+ handleOnCloseMenu();
216
+ (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
217
+ break;
218
+ }
219
+ }, [onSelectOption, visualFocusIndex, options]);
220
+ (0, _react.useLayoutEffect)(function () {
221
+ var _menuRef$current, _visualFocusedMenuIte;
222
+
223
+ var visualFocusedMenuItem = menuRef === null || menuRef === void 0 ? void 0 : (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll("[role='menuitem']")[visualFocusIndex];
224
+ visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
225
+ block: "nearest",
226
+ inline: "start"
227
+ });
228
+ }, [visualFocusIndex]);
229
+
230
+ var handleMenuResize = function handleMenuResize() {
231
+ var _triggerRef$current4;
232
+
233
+ var rect = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.getBoundingClientRect();
234
+ setMenuStyles({
235
+ width: rect === null || rect === void 0 ? void 0 : rect.width
236
+ });
237
+ };
238
+
239
+ (0, _react.useEffect)(function () {
240
+ handleMenuResize();
241
+ window.addEventListener("resize", handleMenuResize);
242
+ return function () {
243
+ window.removeEventListener("resize", handleMenuResize);
244
+ };
245
+ }, []);
151
246
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
152
247
  theme: colorsTheme.dropdown
153
- }, /*#__PURE__*/_react["default"].createElement(DXCDropdownContainer, {
248
+ }, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
249
+ onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
250
+ onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
251
+ onBlur: !disabled ? handleOnBlur : undefined,
154
252
  margin: margin,
155
- size: size,
156
- disabled: disabled
157
- }, /*#__PURE__*/_react["default"].createElement("div", {
158
- onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
159
- onMouseOut: handleCloseOver,
160
- onFocus: handleCloseOver,
161
- onBlur: handleCloseOver
253
+ size: size
254
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
255
+ open: isOpen
256
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
257
+ asChild: true
162
258
  }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
163
- opened: anchorEl === null ? false : true,
164
- onClick: handleClickListItem,
259
+ opened: isOpen,
260
+ onClick: handleTriggerOnClick,
261
+ onKeyDown: handleTriggerOnKeyDown,
262
+ onBlur: function onBlur(event) {
263
+ event.stopPropagation();
264
+ },
165
265
  disabled: disabled,
166
266
  label: label,
167
- caretHidden: caretHidden,
168
267
  margin: margin,
169
268
  size: size,
170
- ref: ref,
171
- tabIndex: tabIndex
172
- }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContainer, {
173
- iconPosition: iconPosition,
174
- caretHidden: caretHidden
175
- }, icon ? /*#__PURE__*/_react["default"].createElement(ButtonIconContainer, {
269
+ id: triggerId,
270
+ "aria-disabled": disabled,
271
+ "aria-haspopup": "true",
272
+ "aria-expanded": isOpen ? true : undefined,
273
+ tabIndex: tabIndex,
274
+ ref: triggerRef
275
+ }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
176
276
  label: label,
177
277
  iconPosition: iconPosition,
278
+ disabled: disabled,
279
+ role: typeof icon === "string" ? undefined : "img"
280
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
281
+ src: icon
282
+ }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
178
283
  disabled: disabled
179
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
180
- label: label,
181
- src: iconSrc,
182
- iconPosition: iconPosition
183
- }), /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, {
184
- iconPosition: iconPosition,
185
- label: label
186
- }, label)), /*#__PURE__*/_react["default"].createElement(CaretIconContainer, {
187
- caretHidden: caretHidden,
188
- disabled: disabled
189
- }, !caretHidden && (anchorEl === null ? /*#__PURE__*/_react["default"].createElement(DownArrowIcon, null) : /*#__PURE__*/_react["default"].createElement(UpArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(DXCMenu, {
190
- anchorEl: anchorEl,
191
- open: Boolean(anchorEl),
192
- onClose: handleClose,
193
- getContentAnchorEl: null,
194
- anchorOrigin: {
195
- vertical: "bottom",
196
- horizontal: "left"
197
- },
198
- transformOrigin: {
199
- vertical: "top",
200
- horizontal: "left"
201
- },
202
- optionsIconPosition: optionsIconPosition,
203
- size: size,
204
- width: width,
205
- role: undefined,
206
- transition: true,
207
- disablePortal: true,
208
- placement: "bottom-start"
209
- }, function (_ref2) {
210
- var TransitionProps = _ref2.TransitionProps;
211
- return /*#__PURE__*/_react["default"].createElement(_Grow["default"], TransitionProps, /*#__PURE__*/_react["default"].createElement(_Paper["default"], null, /*#__PURE__*/_react["default"].createElement(_core.ClickAwayListener, {
212
- onClickAway: handleClose
213
- }, /*#__PURE__*/_react["default"].createElement(_MenuList["default"], {
214
- autoFocusItem: Boolean(anchorEl),
215
- id: "menu-list-grow"
216
- }, options.map(function (option) {
217
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
218
- key: option.value,
219
- value: option.value,
220
- disableRipple: true,
221
- onClick: function onClick(event) {
222
- return handleMenuItemClick(option);
223
- }
224
- }, option.icon ? /*#__PURE__*/_react["default"].createElement(ListIconContainer, {
225
- label: option.label,
226
- iconPosition: optionsIconPosition
227
- }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : /*#__PURE__*/_react["default"].createElement(option.icon)) : option.iconSrc && /*#__PURE__*/_react["default"].createElement(ListIcon, {
228
- label: option.label,
229
- src: option.iconSrc,
230
- iconPosition: optionsIconPosition
231
- }), /*#__PURE__*/_react["default"].createElement("span", {
232
- className: "optionLabel"
233
- }, option.label));
234
- })))));
235
- }))));
284
+ }, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
285
+ sideOffset: 1,
286
+ asChild: true
287
+ }, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
288
+ id: menuId,
289
+ dropdownTriggerId: triggerId,
290
+ options: options,
291
+ iconsPosition: optionsIconPosition,
292
+ visualFocusIndex: visualFocusIndex,
293
+ menuItemOnClick: handleMenuItemOnClick,
294
+ onKeyDown: handleMenuOnKeyDown,
295
+ styles: menuStyles,
296
+ ref: menuRef
297
+ })))));
236
298
  };
237
299
 
238
300
  var sizes = {
@@ -244,14 +306,10 @@ var sizes = {
244
306
  };
245
307
 
246
308
  var calculateWidth = function calculateWidth(margin, size) {
247
- if (size === "fillParent") {
248
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
249
- }
250
-
251
- return sizes[size];
309
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
252
310
  };
253
311
 
254
- var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (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"])), function (props) {
312
+ var DropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-block;\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
255
313
  return calculateWidth(props.margin, props.size);
256
314
  }, function (props) {
257
315
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -265,68 +323,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
265
323
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
266
324
  });
267
325
 
268
- var DXCMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2 || (_templateObject2 = (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"])), function (props) {
269
- return calculateWidth(props.margin, props.size);
270
- }, function (props) {
271
- return props.theme.optionPaddingTop;
272
- }, function (props) {
273
- return props.theme.optionPaddingBottom;
274
- }, function (props) {
275
- return props.theme.optionPaddingLeft;
276
- }, function (props) {
277
- return props.theme.optionPaddingRight;
278
- }, function (props) {
279
- return "".concat(props.width, "px");
280
- }, function (props) {
281
- return props.theme.borderThickness;
282
- }, function (props) {
283
- return props.theme.borderStyle;
284
- }, function (props) {
285
- return props.theme.borderColor;
286
- }, function (props) {
287
- return props.theme.borderRadius;
288
- }, function (props) {
289
- return props.theme.borderRadius;
290
- }, function (props) {
291
- return props.theme.scrollBarTrackColor;
292
- }, function (props) {
293
- return props.theme.scrollBarThumbColor;
294
- }, function (props) {
295
- return props.optionsIconPosition === "after" && "row-reverse" || "row";
296
- }, function (props) {
297
- return props.optionsIconPosition === "after" && "flex-end" || "";
298
- }, function (props) {
299
- return props.theme.optionBackgroundColor;
300
- }, function (props) {
301
- return props.theme.optionFontFamily;
302
- }, function (props) {
303
- return props.theme.optionFontSize;
304
- }, function (props) {
305
- return props.theme.optionFontStyle;
306
- }, function (props) {
307
- return props.theme.optionFontWeight;
308
- }, function (props) {
309
- return props.theme.optionFontColor;
310
- }, function (props) {
311
- return props.theme.focusColor;
312
- }, function (props) {
313
- return props.theme.hoverOptionBackgroundColor;
314
- }, function (props) {
315
- return props.theme.activeOptionBackgroundColor;
316
- }, function (props) {
317
- return props.theme.focusColor;
318
- });
319
-
320
- var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (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"])), function (props) {
321
- return props.disabled ? "not-allowed" : "pointer";
322
- }, function (props) {
323
- return props.theme.buttonFontFamily;
324
- }, function (props) {
325
- return props.theme.buttonFontSize;
326
- }, function (props) {
327
- return props.theme.buttonFontStyle;
326
+ var DropdownTrigger = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ", ";\n width: 100%;\n min-height: 40px;\n min-width: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n cursor: ", ";\n\n ", ";\n"])), function (props) {
327
+ return props.theme.caretIconSpacing;
328
328
  }, function (props) {
329
- return props.theme.buttonFontWeight;
329
+ return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
330
330
  }, function (props) {
331
331
  return props.theme.borderRadius;
332
332
  }, function (props) {
@@ -335,8 +335,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
335
335
  return props.theme.borderStyle;
336
336
  }, function (props) {
337
337
  return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
338
- }, function (props) {
339
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
340
338
  }, function (props) {
341
339
  return props.theme.buttonPaddingTop;
342
340
  }, function (props) {
@@ -350,70 +348,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
350
348
  }, function (props) {
351
349
  return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
352
350
  }, function (props) {
353
- return props.opened ? "0px" : props.theme.borderRadius;
354
- }, function (props) {
355
- return props.opened ? "0px" : props.theme.borderRadius;
351
+ return props.disabled ? "not-allowed" : "pointer";
356
352
  }, function (props) {
357
- 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 ");
353
+ return !props.disabled && "\n &:focus {\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 ");
358
354
  });
359
355
 
360
- var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
361
-
362
- var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-direction: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: ", ";\n white-space: nowrap;\n"])), function (props) {
363
- return props.iconPosition === "after" && "row-reverse" || "row";
364
- }, function (props) {
365
- return props.caretHidden ? "100%" : "calc(100% - 36px)";
356
+ var DropdownTriggerContent = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
357
+ return props.theme.buttonIconSpacing;
366
358
  });
367
359
 
368
- var ButtonIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
369
- return props.theme.buttonIconSize;
360
+ var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n"])), function (props) {
361
+ return props.theme.buttonFontFamily;
370
362
  }, function (props) {
371
- return props.theme.buttonIconSize;
363
+ return props.theme.buttonFontSize;
372
364
  }, function (props) {
373
- return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
365
+ return props.theme.buttonFontStyle;
374
366
  }, function (props) {
375
- return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
367
+ return props.theme.buttonFontWeight;
376
368
  });
377
369
 
378
- var ButtonIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (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"])), function (props) {
370
+ var DropdownTriggerIcon = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
379
371
  return props.theme.buttonIconSize;
380
372
  }, function (props) {
381
373
  return props.theme.buttonIconSize;
382
- }, function (props) {
383
- return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
384
- }, function (props) {
385
- return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
386
374
  }, function (props) {
387
375
  return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
388
376
  });
389
377
 
390
- var ListIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
391
- return props.theme.optionIconSize;
392
- }, function (props) {
393
- return props.theme.optionIconSize;
394
- }, function (props) {
395
- return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
396
- }, function (props) {
397
- return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
398
- });
399
-
400
- var ListIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (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"])), function (props) {
401
- return props.theme.optionIconSize;
402
- }, function (props) {
403
- return props.theme.optionIconSize;
404
- }, function (props) {
405
- return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
406
- }, function (props) {
407
- return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
408
- }, function (props) {
409
- return props.theme.optionIconColor;
410
- });
411
-
412
- var CaretIconContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: ", ";\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
413
- return props.caretHidden ? "none" : "inline-flex";
414
- }, function (props) {
415
- return props.theme.caretIconSpacing;
416
- }, function (props) {
378
+ var CaretIcon = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
417
379
  return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
418
380
  }, function (props) {
419
381
  return props.theme.caretIconSize;
@@ -421,30 +383,5 @@ var CaretIconContainer = _styledComponents["default"].div(_templateObject10 || (
421
383
  return props.theme.caretIconSize;
422
384
  });
423
385
 
424
- DxcDropdown.propTypes = {
425
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
426
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
427
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
428
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
429
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
430
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
431
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
432
- optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
433
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
434
- iconSrc: _propTypes["default"].string,
435
- iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
436
- label: _propTypes["default"].string,
437
- caretHidden: _propTypes["default"].bool,
438
- disabled: _propTypes["default"].bool,
439
- expandOnHover: _propTypes["default"].bool,
440
- onSelectOption: _propTypes["default"].func,
441
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
442
- value: _propTypes["default"].any.isRequired,
443
- label: _propTypes["default"].any.isRequired,
444
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
445
- iconSrc: _propTypes["default"].string
446
- })),
447
- tabIndex: _propTypes["default"].number
448
- };
449
386
  var _default = DxcDropdown;
450
387
  exports["default"] = _default;