@dxc-technology/halstack-react 0.0.0-a4bef7b → 0.0.0-a5074e7

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 (359) 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 +4 -0
  6. package/accordion/Accordion.js +126 -170
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +61 -96
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/types.d.ts +79 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +8 -24
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +6 -4
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -0
  29. package/bleed/Bleed.stories.tsx +341 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/box/Box.js +29 -65
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +44 -0
  37. package/box/types.js +5 -0
  38. package/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +123 -0
  40. package/bulleted-list/BulletedList.stories.tsx +200 -0
  41. package/bulleted-list/types.d.ts +11 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +61 -87
  45. package/button/Button.stories.tsx +275 -2
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +38 -7
  48. package/card/Card.d.ts +4 -0
  49. package/card/Card.js +38 -77
  50. package/card/Card.stories.tsx +201 -0
  51. package/card/Card.test.js +50 -0
  52. package/card/ice-cream.jpg +0 -0
  53. package/card/types.d.ts +68 -0
  54. package/card/types.js +5 -0
  55. package/checkbox/Checkbox.d.ts +4 -0
  56. package/checkbox/Checkbox.js +106 -132
  57. package/checkbox/Checkbox.stories.tsx +208 -0
  58. package/checkbox/Checkbox.test.js +155 -0
  59. package/checkbox/types.d.ts +64 -0
  60. package/checkbox/types.js +5 -0
  61. package/chip/Chip.d.ts +4 -0
  62. package/chip/Chip.js +16 -76
  63. package/chip/Chip.stories.tsx +119 -0
  64. package/chip/Chip.test.js +56 -0
  65. package/chip/types.d.ts +45 -0
  66. package/chip/types.js +5 -0
  67. package/common/variables.js +321 -379
  68. package/date-input/DateInput.d.ts +4 -0
  69. package/date-input/DateInput.js +65 -89
  70. package/date-input/DateInput.stories.tsx +138 -0
  71. package/date-input/DateInput.test.js +479 -0
  72. package/date-input/types.d.ts +107 -0
  73. package/date-input/types.js +5 -0
  74. package/dialog/Dialog.d.ts +4 -0
  75. package/dialog/Dialog.js +52 -74
  76. package/dialog/Dialog.stories.tsx +267 -0
  77. package/dialog/Dialog.test.js +70 -0
  78. package/dialog/types.d.ts +44 -0
  79. package/dialog/types.js +5 -0
  80. package/dropdown/Dropdown.d.ts +4 -0
  81. package/dropdown/Dropdown.js +241 -303
  82. package/dropdown/Dropdown.stories.tsx +312 -0
  83. package/dropdown/Dropdown.test.js +590 -0
  84. package/dropdown/DropdownMenu.d.ts +4 -0
  85. package/dropdown/DropdownMenu.js +80 -0
  86. package/dropdown/DropdownMenuItem.d.ts +4 -0
  87. package/dropdown/DropdownMenuItem.js +92 -0
  88. package/dropdown/types.d.ts +100 -0
  89. package/dropdown/types.js +5 -0
  90. package/file-input/FileInput.d.ts +4 -0
  91. package/file-input/FileInput.js +191 -152
  92. package/file-input/FileInput.stories.tsx +539 -0
  93. package/file-input/FileInput.test.js +498 -0
  94. package/file-input/FileItem.d.ts +14 -0
  95. package/file-input/FileItem.js +36 -55
  96. package/file-input/types.d.ts +112 -0
  97. package/file-input/types.js +5 -0
  98. package/flex/Flex.d.ts +4 -0
  99. package/flex/Flex.js +69 -0
  100. package/flex/Flex.stories.tsx +103 -0
  101. package/flex/types.d.ts +32 -0
  102. package/flex/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +36 -148
  105. package/footer/Footer.stories.tsx +137 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/footer/Icons.js +4 -4
  109. package/footer/types.d.ts +66 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +119 -140
  113. package/header/Header.stories.tsx +172 -0
  114. package/header/Header.test.js +79 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/header/Icons.js +4 -29
  117. package/header/types.d.ts +48 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/heading/Heading.js +7 -24
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +51 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +37 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +20 -0
  131. package/layout/ApplicationLayout.js +71 -135
  132. package/layout/ApplicationLayout.stories.tsx +162 -0
  133. package/layout/Icons.d.ts +5 -0
  134. package/layout/Icons.js +13 -2
  135. package/layout/SidenavContext.d.ts +5 -0
  136. package/layout/SidenavContext.js +19 -0
  137. package/layout/types.d.ts +42 -0
  138. package/layout/types.js +5 -0
  139. package/link/Link.d.ts +4 -0
  140. package/link/Link.js +60 -107
  141. package/link/Link.stories.tsx +193 -0
  142. package/link/Link.test.js +83 -0
  143. package/link/types.d.ts +54 -0
  144. package/link/types.js +5 -0
  145. package/main.d.ts +12 -12
  146. package/main.js +64 -58
  147. package/number-input/NumberInput.d.ts +4 -0
  148. package/number-input/NumberInput.js +16 -68
  149. package/number-input/NumberInput.stories.tsx +115 -0
  150. package/number-input/NumberInput.test.js +543 -0
  151. package/number-input/NumberInputContext.d.ts +4 -0
  152. package/number-input/NumberInputContext.js +5 -2
  153. package/number-input/numberInputContextTypes.d.ts +19 -0
  154. package/number-input/numberInputContextTypes.js +5 -0
  155. package/number-input/types.d.ts +124 -0
  156. package/number-input/types.js +5 -0
  157. package/package.json +20 -14
  158. package/paginator/Paginator.d.ts +4 -0
  159. package/paginator/Paginator.js +19 -69
  160. package/paginator/Paginator.stories.tsx +63 -0
  161. package/paginator/Paginator.test.js +308 -0
  162. package/paginator/types.d.ts +38 -0
  163. package/paginator/types.js +5 -0
  164. package/paragraph/Paragraph.d.ts +6 -0
  165. package/paragraph/Paragraph.js +38 -0
  166. package/paragraph/Paragraph.stories.tsx +44 -0
  167. package/password-input/PasswordInput.d.ts +4 -0
  168. package/password-input/PasswordInput.js +24 -57
  169. package/password-input/PasswordInput.stories.tsx +131 -0
  170. package/password-input/PasswordInput.test.js +181 -0
  171. package/password-input/types.d.ts +110 -0
  172. package/password-input/types.js +5 -0
  173. package/progress-bar/ProgressBar.d.ts +4 -0
  174. package/progress-bar/ProgressBar.js +60 -72
  175. package/progress-bar/ProgressBar.stories.jsx +60 -0
  176. package/progress-bar/ProgressBar.test.js +110 -0
  177. package/progress-bar/types.d.ts +36 -0
  178. package/progress-bar/types.js +5 -0
  179. package/quick-nav/QuickNav.d.ts +4 -0
  180. package/quick-nav/QuickNav.js +117 -0
  181. package/quick-nav/QuickNav.stories.tsx +342 -0
  182. package/quick-nav/types.d.ts +21 -0
  183. package/quick-nav/types.js +5 -0
  184. package/radio-group/Radio.d.ts +4 -0
  185. package/radio-group/Radio.js +156 -0
  186. package/radio-group/RadioGroup.d.ts +4 -0
  187. package/radio-group/RadioGroup.js +283 -0
  188. package/radio-group/RadioGroup.stories.tsx +101 -0
  189. package/radio-group/RadioGroup.test.js +722 -0
  190. package/radio-group/types.d.ts +114 -0
  191. package/radio-group/types.js +5 -0
  192. package/resultsetTable/ResultsetTable.d.ts +4 -0
  193. package/resultsetTable/ResultsetTable.js +10 -32
  194. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  195. package/resultsetTable/ResultsetTable.test.js +348 -0
  196. package/resultsetTable/types.d.ts +67 -0
  197. package/resultsetTable/types.js +5 -0
  198. package/select/Icons.d.ts +10 -0
  199. package/select/Icons.js +93 -0
  200. package/select/Listbox.d.ts +4 -0
  201. package/select/Listbox.js +198 -0
  202. package/select/Option.d.ts +4 -0
  203. package/select/Option.js +110 -0
  204. package/select/Select.d.ts +4 -0
  205. package/select/Select.js +216 -435
  206. package/select/Select.stories.tsx +627 -0
  207. package/select/Select.test.js +2233 -0
  208. package/select/types.d.ts +210 -0
  209. package/select/types.js +5 -0
  210. package/sidenav/Sidenav.d.ts +10 -0
  211. package/sidenav/Sidenav.js +186 -63
  212. package/sidenav/Sidenav.stories.tsx +180 -0
  213. package/sidenav/Sidenav.test.js +44 -0
  214. package/sidenav/types.d.ts +73 -0
  215. package/sidenav/types.js +5 -0
  216. package/slider/Slider.d.ts +4 -0
  217. package/slider/Slider.js +155 -153
  218. package/slider/Slider.stories.tsx +183 -0
  219. package/slider/Slider.test.js +250 -0
  220. package/slider/types.d.ts +82 -0
  221. package/slider/types.js +5 -0
  222. package/spinner/Spinner.d.ts +4 -0
  223. package/spinner/Spinner.js +9 -26
  224. package/spinner/Spinner.stories.jsx +103 -0
  225. package/spinner/Spinner.test.js +64 -0
  226. package/spinner/types.d.ts +32 -0
  227. package/spinner/types.js +5 -0
  228. package/switch/Switch.d.ts +4 -0
  229. package/switch/Switch.js +152 -99
  230. package/switch/Switch.stories.tsx +138 -0
  231. package/switch/Switch.test.js +225 -0
  232. package/switch/types.d.ts +61 -0
  233. package/switch/types.js +5 -0
  234. package/table/Table.d.ts +4 -0
  235. package/table/Table.js +4 -4
  236. package/table/Table.stories.jsx +277 -0
  237. package/table/Table.test.js +26 -0
  238. package/table/types.d.ts +21 -0
  239. package/table/types.js +5 -0
  240. package/tabs/Tab.d.ts +4 -0
  241. package/tabs/Tab.js +135 -0
  242. package/tabs/Tabs.d.ts +4 -0
  243. package/tabs/Tabs.js +364 -156
  244. package/tabs/Tabs.stories.tsx +186 -0
  245. package/tabs/Tabs.test.js +351 -0
  246. package/tabs/types.d.ts +92 -0
  247. package/tabs/types.js +5 -0
  248. package/tabs-nav/NavTabs.d.ts +8 -0
  249. package/tabs-nav/NavTabs.js +125 -0
  250. package/tabs-nav/NavTabs.stories.tsx +170 -0
  251. package/tabs-nav/NavTabs.test.js +82 -0
  252. package/tabs-nav/Tab.d.ts +4 -0
  253. package/tabs-nav/Tab.js +130 -0
  254. package/tabs-nav/types.d.ts +53 -0
  255. package/tabs-nav/types.js +5 -0
  256. package/tag/Tag.d.ts +4 -0
  257. package/tag/Tag.js +35 -60
  258. package/tag/Tag.stories.tsx +142 -0
  259. package/tag/Tag.test.js +60 -0
  260. package/tag/types.d.ts +69 -0
  261. package/tag/types.js +5 -0
  262. package/text-input/Icons.d.ts +8 -0
  263. package/text-input/Icons.js +60 -0
  264. package/text-input/Suggestion.d.ts +4 -0
  265. package/text-input/Suggestion.js +57 -0
  266. package/text-input/Suggestions.d.ts +4 -0
  267. package/text-input/Suggestions.js +134 -0
  268. package/text-input/TextInput.d.ts +4 -0
  269. package/text-input/TextInput.js +251 -392
  270. package/text-input/TextInput.stories.tsx +481 -0
  271. package/text-input/TextInput.test.js +1771 -0
  272. package/text-input/types.d.ts +197 -0
  273. package/text-input/types.js +5 -0
  274. package/textarea/Textarea.d.ts +4 -0
  275. package/textarea/Textarea.js +39 -77
  276. package/textarea/Textarea.stories.jsx +157 -0
  277. package/textarea/Textarea.test.js +437 -0
  278. package/textarea/types.d.ts +137 -0
  279. package/textarea/types.js +5 -0
  280. package/toggle-group/ToggleGroup.d.ts +4 -0
  281. package/toggle-group/ToggleGroup.js +18 -46
  282. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  283. package/toggle-group/ToggleGroup.test.js +156 -0
  284. package/toggle-group/types.d.ts +105 -0
  285. package/toggle-group/types.js +5 -0
  286. package/typography/Typography.d.ts +4 -0
  287. package/typography/Typography.js +131 -0
  288. package/typography/Typography.stories.tsx +198 -0
  289. package/typography/types.d.ts +18 -0
  290. package/typography/types.js +5 -0
  291. package/useTheme.d.ts +2 -0
  292. package/useTheme.js +2 -2
  293. package/useTranslatedLabels.d.ts +2 -0
  294. package/useTranslatedLabels.js +20 -0
  295. package/wizard/Wizard.d.ts +4 -0
  296. package/wizard/Wizard.js +118 -104
  297. package/wizard/Wizard.stories.tsx +233 -0
  298. package/wizard/Wizard.test.js +141 -0
  299. package/wizard/types.d.ts +65 -0
  300. package/wizard/types.js +5 -0
  301. package/ThemeContext.js +0 -246
  302. package/V3Select/V3Select.js +0 -455
  303. package/V3Select/index.d.ts +0 -27
  304. package/V3Textarea/V3Textarea.js +0 -260
  305. package/V3Textarea/index.d.ts +0 -27
  306. package/accordion/index.d.ts +0 -28
  307. package/accordion-group/index.d.ts +0 -16
  308. package/alert/index.d.ts +0 -51
  309. package/box/index.d.ts +0 -25
  310. package/card/index.d.ts +0 -22
  311. package/checkbox/index.d.ts +0 -24
  312. package/chip/index.d.ts +0 -22
  313. package/date/Date.js +0 -373
  314. package/date/index.d.ts +0 -27
  315. package/date-input/index.d.ts +0 -95
  316. package/dialog/index.d.ts +0 -18
  317. package/dropdown/index.d.ts +0 -26
  318. package/file-input/index.d.ts +0 -81
  319. package/footer/index.d.ts +0 -25
  320. package/header/index.d.ts +0 -25
  321. package/heading/index.d.ts +0 -17
  322. package/input-text/Icons.js +0 -22
  323. package/input-text/InputText.js +0 -611
  324. package/input-text/index.d.ts +0 -36
  325. package/link/index.d.ts +0 -23
  326. package/number-input/index.d.ts +0 -113
  327. package/paginator/index.d.ts +0 -20
  328. package/password-input/index.d.ts +0 -94
  329. package/progress-bar/index.d.ts +0 -18
  330. package/radio/Radio.js +0 -195
  331. package/radio/index.d.ts +0 -23
  332. package/resultsetTable/index.d.ts +0 -19
  333. package/select/index.d.ts +0 -131
  334. package/sidenav/index.d.ts +0 -13
  335. package/slider/index.d.ts +0 -29
  336. package/spinner/index.d.ts +0 -17
  337. package/switch/index.d.ts +0 -24
  338. package/table/index.d.ts +0 -13
  339. package/tabs/index.d.ts +0 -19
  340. package/tag/index.d.ts +0 -24
  341. package/text-input/index.d.ts +0 -135
  342. package/textarea/index.d.ts +0 -117
  343. package/toggle/Toggle.js +0 -186
  344. package/toggle/index.d.ts +0 -21
  345. package/toggle-group/index.d.ts +0 -21
  346. package/upload/Upload.js +0 -201
  347. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  348. package/upload/buttons-upload/Icons.js +0 -40
  349. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  350. package/upload/dragAndDropArea/Icons.js +0 -39
  351. package/upload/file-upload/FileToUpload.js +0 -115
  352. package/upload/file-upload/Icons.js +0 -66
  353. package/upload/files-upload/FilesToUpload.js +0 -109
  354. package/upload/index.d.ts +0 -15
  355. package/upload/transaction/Icons.js +0 -160
  356. package/upload/transaction/Transaction.js +0 -104
  357. package/upload/transactions/Transactions.js +0 -94
  358. package/wizard/Icons.js +0 -65
  359. package/wizard/index.d.ts +0 -18
@@ -9,230 +9,293 @@ 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 " ":
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 " ":
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,
258
+ type: undefined
162
259
  }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
163
- opened: anchorEl === null ? false : true,
164
- onClick: handleClickListItem,
260
+ opened: isOpen,
261
+ onClick: handleTriggerOnClick,
262
+ onKeyDown: handleTriggerOnKeyDown,
263
+ onBlur: function onBlur(event) {
264
+ event.stopPropagation();
265
+ },
165
266
  disabled: disabled,
166
267
  label: label,
167
- caretHidden: caretHidden,
168
268
  margin: margin,
169
269
  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, {
270
+ id: triggerId,
271
+ "aria-haspopup": "true",
272
+ "aria-controls": menuId,
273
+ "aria-expanded": isOpen ? true : undefined,
274
+ tabIndex: tabIndex,
275
+ ref: triggerRef
276
+ }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
176
277
  label: label,
177
278
  iconPosition: iconPosition,
279
+ disabled: disabled,
280
+ role: typeof icon === "string" ? undefined : "img"
281
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
282
+ src: icon
283
+ }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
178
284
  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
- }))));
285
+ }, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
286
+ sideOffset: 1,
287
+ asChild: true
288
+ }, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
289
+ id: menuId,
290
+ dropdownTriggerId: triggerId,
291
+ options: options,
292
+ iconsPosition: optionsIconPosition,
293
+ visualFocusIndex: visualFocusIndex,
294
+ menuItemOnClick: handleMenuItemOnClick,
295
+ onKeyDown: handleMenuOnKeyDown,
296
+ styles: menuStyles,
297
+ ref: menuRef
298
+ })))));
236
299
  };
237
300
 
238
301
  var sizes = {
@@ -240,18 +303,14 @@ var sizes = {
240
303
  medium: "240px",
241
304
  large: "480px",
242
305
  fillParent: "100%",
243
- fitContent: "unset"
306
+ fitContent: "fit-content"
244
307
  };
245
308
 
246
309
  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];
310
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
252
311
  };
253
312
 
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) {
313
+ 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
314
  return calculateWidth(props.margin, props.size);
256
315
  }, function (props) {
257
316
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -265,68 +324,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
265
324
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
266
325
  });
267
326
 
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;
327
+ 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) {
328
+ return props.theme.caretIconSpacing;
328
329
  }, function (props) {
329
- return props.theme.buttonFontWeight;
330
+ return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
330
331
  }, function (props) {
331
332
  return props.theme.borderRadius;
332
333
  }, function (props) {
@@ -335,8 +336,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
335
336
  return props.theme.borderStyle;
336
337
  }, function (props) {
337
338
  return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
338
- }, function (props) {
339
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
340
339
  }, function (props) {
341
340
  return props.theme.buttonPaddingTop;
342
341
  }, function (props) {
@@ -350,70 +349,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
350
349
  }, function (props) {
351
350
  return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
352
351
  }, function (props) {
353
- return props.opened ? "0px" : props.theme.borderRadius;
354
- }, function (props) {
355
- return props.opened ? "0px" : props.theme.borderRadius;
352
+ return props.disabled ? "not-allowed" : "pointer";
356
353
  }, 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 ");
354
+ 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
355
  });
359
356
 
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)";
357
+ 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) {
358
+ return props.theme.buttonIconSpacing;
366
359
  });
367
360
 
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;
361
+ 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) {
362
+ return props.theme.buttonFontFamily;
370
363
  }, function (props) {
371
- return props.theme.buttonIconSize;
364
+ return props.theme.buttonFontSize;
372
365
  }, function (props) {
373
- return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
366
+ return props.theme.buttonFontStyle;
374
367
  }, function (props) {
375
- return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
368
+ return props.theme.buttonFontWeight;
376
369
  });
377
370
 
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) {
371
+ 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
372
  return props.theme.buttonIconSize;
380
373
  }, function (props) {
381
374
  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
375
  }, function (props) {
387
376
  return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
388
377
  });
389
378
 
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) {
379
+ 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
380
  return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
418
381
  }, function (props) {
419
382
  return props.theme.caretIconSize;
@@ -421,30 +384,5 @@ var CaretIconContainer = _styledComponents["default"].div(_templateObject10 || (
421
384
  return props.theme.caretIconSize;
422
385
  });
423
386
 
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
387
  var _default = DxcDropdown;
450
388
  exports["default"] = _default;