@dxc-technology/halstack-react 0.0.0-64f5836 → 0.0.0-64fdce7

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 (364) 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 +294 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +121 -171
  7. package/accordion/Accordion.stories.tsx +346 -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 +58 -86
  45. package/button/Button.stories.tsx +316 -282
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +14 -18
  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 +2 -2
  56. package/checkbox/Checkbox.js +108 -111
  57. package/checkbox/Checkbox.stories.tsx +208 -0
  58. package/checkbox/Checkbox.test.js +155 -0
  59. package/checkbox/types.d.ts +15 -8
  60. package/chip/Chip.d.ts +4 -0
  61. package/chip/Chip.js +19 -91
  62. package/chip/Chip.stories.tsx +151 -0
  63. package/chip/Chip.test.js +56 -0
  64. package/chip/types.d.ts +45 -0
  65. package/chip/types.js +5 -0
  66. package/common/variables.js +449 -496
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +258 -0
  69. package/date-input/DateInput.d.ts +4 -0
  70. package/date-input/DateInput.js +173 -300
  71. package/date-input/DateInput.stories.tsx +237 -0
  72. package/date-input/DateInput.test.js +835 -0
  73. package/date-input/DatePicker.d.ts +4 -0
  74. package/date-input/DatePicker.js +146 -0
  75. package/date-input/Icons.d.ts +6 -0
  76. package/date-input/Icons.js +75 -0
  77. package/date-input/YearPicker.d.ts +4 -0
  78. package/date-input/YearPicker.js +126 -0
  79. package/date-input/types.d.ts +158 -0
  80. package/date-input/types.js +5 -0
  81. package/dialog/Dialog.d.ts +4 -0
  82. package/dialog/Dialog.js +52 -74
  83. package/dialog/Dialog.stories.tsx +267 -0
  84. package/dialog/Dialog.test.js +70 -0
  85. package/dialog/types.d.ts +44 -0
  86. package/dialog/types.js +5 -0
  87. package/dropdown/Dropdown.d.ts +4 -0
  88. package/dropdown/Dropdown.js +244 -306
  89. package/dropdown/Dropdown.stories.tsx +393 -0
  90. package/dropdown/Dropdown.test.js +585 -0
  91. package/dropdown/DropdownMenu.d.ts +4 -0
  92. package/dropdown/DropdownMenu.js +70 -0
  93. package/dropdown/DropdownMenuItem.d.ts +4 -0
  94. package/dropdown/DropdownMenuItem.js +81 -0
  95. package/dropdown/types.d.ts +100 -0
  96. package/dropdown/types.js +5 -0
  97. package/file-input/FileInput.d.ts +4 -0
  98. package/file-input/FileInput.js +185 -166
  99. package/file-input/FileInput.stories.tsx +535 -0
  100. package/file-input/FileInput.test.js +498 -0
  101. package/file-input/FileItem.d.ts +4 -0
  102. package/file-input/FileItem.js +49 -81
  103. package/file-input/types.d.ts +129 -0
  104. package/file-input/types.js +5 -0
  105. package/flex/Flex.d.ts +4 -0
  106. package/flex/Flex.js +69 -0
  107. package/flex/Flex.stories.tsx +103 -0
  108. package/flex/types.d.ts +32 -0
  109. package/flex/types.js +5 -0
  110. package/footer/Footer.d.ts +4 -0
  111. package/footer/Footer.js +36 -148
  112. package/footer/Footer.stories.tsx +137 -0
  113. package/footer/Footer.test.js +109 -0
  114. package/footer/Icons.d.ts +2 -0
  115. package/footer/Icons.js +4 -4
  116. package/footer/types.d.ts +66 -0
  117. package/footer/types.js +5 -0
  118. package/header/Header.d.ts +7 -0
  119. package/header/Header.js +126 -149
  120. package/header/Header.stories.tsx +205 -0
  121. package/header/Header.test.js +79 -0
  122. package/header/Icons.d.ts +2 -0
  123. package/header/Icons.js +4 -29
  124. package/header/types.d.ts +48 -0
  125. package/header/types.js +5 -0
  126. package/heading/Heading.d.ts +4 -0
  127. package/heading/Heading.js +7 -24
  128. package/heading/Heading.stories.tsx +54 -0
  129. package/heading/Heading.test.js +186 -0
  130. package/heading/types.d.ts +33 -0
  131. package/heading/types.js +5 -0
  132. package/inset/Inset.d.ts +3 -0
  133. package/inset/Inset.js +51 -0
  134. package/inset/Inset.stories.tsx +229 -0
  135. package/inset/types.d.ts +37 -0
  136. package/inset/types.js +5 -0
  137. package/layout/ApplicationLayout.d.ts +20 -0
  138. package/layout/ApplicationLayout.js +71 -135
  139. package/layout/ApplicationLayout.stories.tsx +162 -0
  140. package/layout/Icons.d.ts +5 -0
  141. package/layout/Icons.js +13 -2
  142. package/layout/SidenavContext.d.ts +5 -0
  143. package/layout/SidenavContext.js +19 -0
  144. package/layout/types.d.ts +42 -0
  145. package/layout/types.js +5 -0
  146. package/link/Link.d.ts +4 -0
  147. package/link/Link.js +61 -108
  148. package/link/Link.stories.tsx +193 -0
  149. package/link/Link.test.js +83 -0
  150. package/link/types.d.ts +54 -0
  151. package/link/types.js +5 -0
  152. package/main.d.ts +12 -12
  153. package/main.js +64 -58
  154. package/number-input/NumberInput.d.ts +4 -0
  155. package/number-input/NumberInput.js +16 -68
  156. package/number-input/NumberInput.stories.tsx +115 -0
  157. package/number-input/NumberInput.test.js +542 -0
  158. package/number-input/NumberInputContext.d.ts +4 -0
  159. package/number-input/NumberInputContext.js +5 -2
  160. package/number-input/numberInputContextTypes.d.ts +19 -0
  161. package/number-input/numberInputContextTypes.js +5 -0
  162. package/number-input/types.d.ts +124 -0
  163. package/number-input/types.js +5 -0
  164. package/package.json +21 -22
  165. package/paginator/Icons.d.ts +5 -0
  166. package/paginator/Icons.js +16 -28
  167. package/paginator/Paginator.js +21 -54
  168. package/paginator/Paginator.stories.tsx +63 -0
  169. package/paginator/Paginator.test.js +315 -0
  170. package/paragraph/Paragraph.d.ts +6 -0
  171. package/paragraph/Paragraph.js +38 -0
  172. package/paragraph/Paragraph.stories.tsx +44 -0
  173. package/password-input/PasswordInput.d.ts +4 -0
  174. package/password-input/PasswordInput.js +24 -57
  175. package/password-input/PasswordInput.stories.tsx +131 -0
  176. package/password-input/PasswordInput.test.js +181 -0
  177. package/password-input/types.d.ts +110 -0
  178. package/password-input/types.js +5 -0
  179. package/progress-bar/ProgressBar.d.ts +4 -0
  180. package/progress-bar/ProgressBar.js +60 -72
  181. package/progress-bar/ProgressBar.stories.jsx +60 -0
  182. package/progress-bar/ProgressBar.test.js +110 -0
  183. package/progress-bar/types.d.ts +36 -0
  184. package/progress-bar/types.js +5 -0
  185. package/quick-nav/QuickNav.d.ts +4 -0
  186. package/quick-nav/QuickNav.js +117 -0
  187. package/quick-nav/QuickNav.stories.tsx +342 -0
  188. package/quick-nav/types.d.ts +21 -0
  189. package/quick-nav/types.js +5 -0
  190. package/radio-group/Radio.d.ts +4 -0
  191. package/radio-group/Radio.js +156 -0
  192. package/radio-group/RadioGroup.d.ts +4 -0
  193. package/radio-group/RadioGroup.js +283 -0
  194. package/radio-group/RadioGroup.stories.tsx +101 -0
  195. package/radio-group/RadioGroup.test.js +722 -0
  196. package/radio-group/types.d.ts +114 -0
  197. package/radio-group/types.js +5 -0
  198. package/resultsetTable/Icons.d.ts +7 -0
  199. package/resultsetTable/Icons.js +51 -0
  200. package/resultsetTable/ResultsetTable.d.ts +4 -0
  201. package/resultsetTable/ResultsetTable.js +53 -132
  202. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  203. package/resultsetTable/ResultsetTable.test.js +325 -0
  204. package/resultsetTable/types.d.ts +67 -0
  205. package/resultsetTable/types.js +5 -0
  206. package/select/Icons.d.ts +10 -0
  207. package/select/Icons.js +93 -0
  208. package/select/Listbox.d.ts +4 -0
  209. package/select/Listbox.js +169 -0
  210. package/select/Option.d.ts +4 -0
  211. package/select/Option.js +97 -0
  212. package/select/Select.d.ts +4 -0
  213. package/select/Select.js +196 -397
  214. package/select/Select.stories.tsx +669 -0
  215. package/select/Select.test.js +2228 -0
  216. package/select/types.d.ts +210 -0
  217. package/select/types.js +5 -0
  218. package/sidenav/Sidenav.d.ts +10 -0
  219. package/sidenav/Sidenav.js +184 -63
  220. package/sidenav/Sidenav.stories.tsx +189 -0
  221. package/sidenav/Sidenav.test.js +44 -0
  222. package/sidenav/types.d.ts +73 -0
  223. package/sidenav/types.js +5 -0
  224. package/slider/Slider.d.ts +4 -0
  225. package/slider/Slider.js +159 -156
  226. package/slider/Slider.stories.tsx +183 -0
  227. package/slider/Slider.test.js +250 -0
  228. package/slider/types.d.ts +86 -0
  229. package/slider/types.js +5 -0
  230. package/spinner/Spinner.d.ts +4 -0
  231. package/spinner/Spinner.js +11 -28
  232. package/spinner/Spinner.stories.jsx +103 -0
  233. package/spinner/Spinner.test.js +64 -0
  234. package/spinner/types.d.ts +32 -0
  235. package/spinner/types.js +5 -0
  236. package/switch/Switch.d.ts +2 -2
  237. package/switch/Switch.js +152 -69
  238. package/switch/Switch.stories.tsx +138 -0
  239. package/switch/Switch.test.js +225 -0
  240. package/switch/types.d.ts +12 -4
  241. package/table/Table.d.ts +4 -0
  242. package/table/Table.js +4 -4
  243. package/table/Table.stories.jsx +277 -0
  244. package/table/Table.test.js +26 -0
  245. package/table/types.d.ts +21 -0
  246. package/table/types.js +5 -0
  247. package/tabs/Tab.d.ts +4 -0
  248. package/tabs/Tab.js +133 -0
  249. package/tabs/Tabs.d.ts +4 -0
  250. package/tabs/Tabs.js +364 -156
  251. package/tabs/Tabs.stories.tsx +188 -0
  252. package/tabs/Tabs.test.js +351 -0
  253. package/tabs/types.d.ts +92 -0
  254. package/tabs/types.js +5 -0
  255. package/tabs-nav/NavTabs.d.ts +8 -0
  256. package/tabs-nav/NavTabs.js +125 -0
  257. package/tabs-nav/NavTabs.stories.tsx +172 -0
  258. package/tabs-nav/NavTabs.test.js +82 -0
  259. package/tabs-nav/Tab.d.ts +4 -0
  260. package/tabs-nav/Tab.js +128 -0
  261. package/tabs-nav/types.d.ts +53 -0
  262. package/tabs-nav/types.js +5 -0
  263. package/tag/Tag.d.ts +4 -0
  264. package/tag/Tag.js +35 -60
  265. package/tag/Tag.stories.tsx +142 -0
  266. package/tag/Tag.test.js +60 -0
  267. package/tag/types.d.ts +69 -0
  268. package/tag/types.js +5 -0
  269. package/text-input/Icons.d.ts +8 -0
  270. package/text-input/Icons.js +60 -0
  271. package/text-input/Suggestion.d.ts +4 -0
  272. package/text-input/Suggestion.js +84 -0
  273. package/text-input/Suggestions.d.ts +4 -0
  274. package/text-input/Suggestions.js +134 -0
  275. package/text-input/TextInput.d.ts +4 -0
  276. package/text-input/TextInput.js +233 -385
  277. package/text-input/TextInput.stories.tsx +501 -0
  278. package/text-input/TextInput.test.js +1724 -0
  279. package/text-input/types.d.ts +197 -0
  280. package/text-input/types.js +5 -0
  281. package/textarea/Textarea.d.ts +4 -0
  282. package/textarea/Textarea.js +39 -79
  283. package/textarea/Textarea.stories.jsx +157 -0
  284. package/textarea/Textarea.test.js +437 -0
  285. package/textarea/types.d.ts +137 -0
  286. package/textarea/types.js +5 -0
  287. package/toggle-group/ToggleGroup.d.ts +4 -0
  288. package/toggle-group/ToggleGroup.js +18 -46
  289. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  290. package/toggle-group/ToggleGroup.test.js +156 -0
  291. package/toggle-group/types.d.ts +105 -0
  292. package/toggle-group/types.js +5 -0
  293. package/typography/Typography.d.ts +4 -0
  294. package/typography/Typography.js +131 -0
  295. package/typography/Typography.stories.tsx +198 -0
  296. package/typography/types.d.ts +18 -0
  297. package/typography/types.js +5 -0
  298. package/useTheme.d.ts +2 -0
  299. package/useTheme.js +2 -2
  300. package/useTranslatedLabels.d.ts +2 -0
  301. package/useTranslatedLabels.js +20 -0
  302. package/wizard/Wizard.d.ts +4 -0
  303. package/wizard/Wizard.js +118 -104
  304. package/wizard/Wizard.stories.tsx +233 -0
  305. package/wizard/Wizard.test.js +141 -0
  306. package/wizard/types.d.ts +65 -0
  307. package/wizard/types.js +5 -0
  308. package/ThemeContext.js +0 -246
  309. package/V3Select/V3Select.js +0 -455
  310. package/V3Select/index.d.ts +0 -27
  311. package/V3Textarea/V3Textarea.js +0 -260
  312. package/V3Textarea/index.d.ts +0 -27
  313. package/accordion/index.d.ts +0 -28
  314. package/accordion-group/index.d.ts +0 -16
  315. package/alert/index.d.ts +0 -51
  316. package/box/index.d.ts +0 -25
  317. package/card/index.d.ts +0 -22
  318. package/chip/index.d.ts +0 -22
  319. package/common/RequiredComponent.js +0 -32
  320. package/date/Date.js +0 -373
  321. package/date/index.d.ts +0 -27
  322. package/date-input/index.d.ts +0 -95
  323. package/dialog/index.d.ts +0 -18
  324. package/dropdown/index.d.ts +0 -26
  325. package/file-input/index.d.ts +0 -81
  326. package/footer/index.d.ts +0 -25
  327. package/header/index.d.ts +0 -25
  328. package/heading/index.d.ts +0 -17
  329. package/input-text/Icons.js +0 -22
  330. package/input-text/InputText.js +0 -611
  331. package/input-text/index.d.ts +0 -36
  332. package/link/index.d.ts +0 -23
  333. package/number-input/index.d.ts +0 -113
  334. package/password-input/index.d.ts +0 -94
  335. package/progress-bar/index.d.ts +0 -18
  336. package/radio/Radio.js +0 -195
  337. package/radio/index.d.ts +0 -23
  338. package/resultsetTable/index.d.ts +0 -19
  339. package/select/index.d.ts +0 -131
  340. package/sidenav/index.d.ts +0 -13
  341. package/slider/index.d.ts +0 -29
  342. package/spinner/index.d.ts +0 -17
  343. package/table/index.d.ts +0 -13
  344. package/tabs/index.d.ts +0 -19
  345. package/tag/index.d.ts +0 -24
  346. package/text-input/index.d.ts +0 -135
  347. package/textarea/index.d.ts +0 -117
  348. package/toggle/Toggle.js +0 -186
  349. package/toggle/index.d.ts +0 -21
  350. package/toggle-group/index.d.ts +0 -21
  351. package/upload/Upload.js +0 -201
  352. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  353. package/upload/buttons-upload/Icons.js +0 -40
  354. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  355. package/upload/dragAndDropArea/Icons.js +0 -39
  356. package/upload/file-upload/FileToUpload.js +0 -115
  357. package/upload/file-upload/Icons.js +0 -66
  358. package/upload/files-upload/FilesToUpload.js +0 -109
  359. package/upload/index.d.ts +0 -15
  360. package/upload/transaction/Icons.js +0 -160
  361. package/upload/transaction/Transaction.js +0 -104
  362. package/upload/transactions/Transactions.js +0 -94
  363. package/wizard/Icons.js +0 -65
  364. 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
+
66
+ var useWidth = function useWidth(target) {
67
+ var _useState = (0, _react.useState)(0),
68
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
69
+ width = _useState2[0],
70
+ setWidth = _useState2[1];
71
+
72
+ (0, _react.useEffect)(function () {
73
+ if (target != null) {
74
+ setWidth(target.getBoundingClientRect().width);
75
+ var triggerObserver = new ResizeObserver(function (entries) {
76
+ var rect = entries[0].target.getBoundingClientRect();
77
+ setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
78
+ });
79
+ triggerObserver.observe(target);
80
+ return function () {
81
+ triggerObserver.unobserve(target);
82
+ };
83
+ }
84
+ }, [target]);
85
+ return width;
86
+ };
87
+
50
88
  var DxcDropdown = function DxcDropdown(_ref) {
51
- var _ref$options = _ref.options,
52
- options = _ref$options === void 0 ? [] : _ref$options,
89
+ var options = _ref.options,
53
90
  _ref$optionsIconPosit = _ref.optionsIconPosition,
54
91
  optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
55
92
  icon = _ref.icon,
56
- _ref$iconSrc = _ref.iconSrc,
57
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
58
93
  _ref$iconPosition = _ref.iconPosition,
59
94
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
60
95
  _ref$label = _ref.label,
61
96
  label = _ref$label === void 0 ? "" : _ref$label,
62
- _ref$disabled = _ref.disabled,
63
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
64
97
  _ref$caretHidden = _ref.caretHidden,
65
98
  caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
99
+ _ref$disabled = _ref.disabled,
100
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
101
+ _ref$expandOnHover = _ref.expandOnHover,
102
+ expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
66
103
  onSelectOption = _ref.onSelectOption,
67
104
  margin = _ref.margin,
68
105
  _ref$size = _ref.size,
69
106
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
70
- _ref$expandOnHover = _ref.expandOnHover,
71
- expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
72
107
  _ref$tabIndex = _ref.tabIndex,
73
108
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
74
109
 
75
- var _useState = (0, _react.useState)(),
76
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
77
- width = _useState2[0],
78
- setWidth = _useState2[1];
110
+ var _useState3 = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
111
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
112
+ triggerId = _useState4[0];
113
+
114
+ var menuId = "menu-".concat(triggerId);
115
+
116
+ var _useState5 = (0, _react.useState)(false),
117
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
118
+ isOpen = _useState6[0],
119
+ changeIsOpen = _useState6[1];
120
+
121
+ var _useState7 = (0, _react.useState)(0),
122
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
123
+ visualFocusIndex = _useState8[0],
124
+ setVisualFocusIndex = _useState8[1];
79
125
 
80
126
  var colorsTheme = (0, _useTheme["default"])();
81
- var ref = (0, _react.useRef)(null);
127
+ var triggerRef = (0, _react.useRef)(null);
128
+ var menuRef = (0, _react.useRef)(null);
129
+ var width = useWidth(triggerRef.current);
82
130
 
83
- var handleResize = function handleResize() {
84
- if (ref.current) setWidth(ref.current.offsetWidth);
131
+ var handleOnOpenMenu = function handleOnOpenMenu() {
132
+ changeIsOpen(true);
85
133
  };
86
134
 
87
- (0, _react.useEffect)(function () {
88
- if (ref.current) {
89
- ref.current.addEventListener("resize", handleResize);
90
- handleResize();
91
- }
135
+ var handleOnCloseMenu = function handleOnCloseMenu() {
136
+ changeIsOpen(false);
137
+ setVisualFocusIndex(0);
138
+ };
92
139
 
93
- return function () {
94
- if (ref.current) ref.current.removeEventListener("resize", handleResize);
95
- };
96
- }, []);
140
+ var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
141
+ var _triggerRef$current;
97
142
 
98
- var _useState3 = (0, _react.useState)(null),
99
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
100
- anchorEl = _useState4[0],
101
- setAnchorEl = _useState4[1];
143
+ onSelectOption(value);
144
+ handleOnCloseMenu();
145
+ (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
146
+ }, [onSelectOption]);
102
147
 
103
- function handleClickListItem(event) {
104
- setAnchorEl(event.currentTarget);
105
- }
148
+ var handleOnBlur = function handleOnBlur(event) {
149
+ !event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
150
+ };
106
151
 
107
- function handleMenuItemClick(option) {
108
- setAnchorEl(null);
152
+ var handleTriggerOnClick = function handleTriggerOnClick() {
153
+ changeIsOpen(function (isOpen) {
154
+ return !isOpen;
155
+ });
156
+ };
109
157
 
110
- if (typeof onSelectOption === "function") {
111
- onSelectOption(option.value);
158
+ var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
159
+ switch (event.key) {
160
+ case "Up":
161
+ case "ArrowUp":
162
+ event.preventDefault();
163
+ setVisualFocusIndex(options.length - 1);
164
+ handleOnOpenMenu();
165
+ break;
166
+
167
+ case " ":
168
+ case "Down":
169
+ case "ArrowDown":
170
+ case "Enter":
171
+ event.preventDefault();
172
+ handleOnOpenMenu();
173
+ break;
112
174
  }
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
175
  };
135
176
 
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
- }));
177
+ var setPreviousIndexFocus = function setPreviousIndexFocus() {
178
+ setVisualFocusIndex(function (currentFocusIndex) {
179
+ var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
180
+ return index;
181
+ });
182
+ };
183
+
184
+ var setNextIndexFocus = function setNextIndexFocus() {
185
+ setVisualFocusIndex(function (currentFocusIndex) {
186
+ var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
187
+ return index;
188
+ });
149
189
  };
150
190
 
191
+ var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
192
+ var _triggerRef$current2, _triggerRef$current3;
193
+
194
+ switch (event.key) {
195
+ case "Up":
196
+ case "ArrowUp":
197
+ event.preventDefault();
198
+ setPreviousIndexFocus();
199
+ break;
200
+
201
+ case "Down":
202
+ case "ArrowDown":
203
+ event.preventDefault();
204
+ setNextIndexFocus();
205
+ break;
206
+
207
+ case " ":
208
+ case "Enter":
209
+ event.preventDefault();
210
+ handleMenuItemOnClick(options[visualFocusIndex].value);
211
+ break;
212
+
213
+ case "Esc":
214
+ case "Escape":
215
+ event.preventDefault();
216
+ handleOnCloseMenu();
217
+ (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
218
+ break;
219
+
220
+ case "Home":
221
+ case "PageUp":
222
+ event.preventDefault();
223
+ setVisualFocusIndex(0);
224
+ break;
225
+
226
+ case "End":
227
+ case "PageDown":
228
+ event.preventDefault();
229
+ setVisualFocusIndex(options.length - 1);
230
+ break;
231
+
232
+ case "Tab":
233
+ handleOnCloseMenu();
234
+ (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
235
+ break;
236
+ }
237
+ }, [onSelectOption, visualFocusIndex, options]);
238
+ (0, _react.useLayoutEffect)(function () {
239
+ var _menuRef$current, _visualFocusedMenuIte;
240
+
241
+ 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];
242
+ visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
243
+ block: "nearest",
244
+ inline: "start"
245
+ });
246
+ }, [visualFocusIndex]);
151
247
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
152
248
  theme: colorsTheme.dropdown
153
- }, /*#__PURE__*/_react["default"].createElement(DXCDropdownContainer, {
249
+ }, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
250
+ onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
251
+ onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
252
+ onBlur: !disabled ? handleOnBlur : undefined,
154
253
  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
254
+ size: size
255
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
256
+ open: isOpen
257
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
258
+ asChild: true,
259
+ type: undefined
162
260
  }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
163
- opened: anchorEl === null ? false : true,
164
- onClick: handleClickListItem,
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, {
176
- label: label,
177
- iconPosition: iconPosition,
178
- 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,
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, {
277
+ disabled: disabled,
278
+ role: typeof icon === "string" ? undefined : "img"
279
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
280
+ src: icon
281
+ }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
188
282
  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"
283
+ }, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
284
+ sideOffset: 1,
285
+ asChild: true
286
+ }, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
287
+ id: menuId,
288
+ dropdownTriggerId: triggerId,
289
+ options: options,
290
+ iconsPosition: optionsIconPosition,
291
+ visualFocusIndex: visualFocusIndex,
292
+ menuItemOnClick: handleMenuItemOnClick,
293
+ onKeyDown: handleMenuOnKeyDown,
294
+ styles: {
295
+ width: width
197
296
  },
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
- }))));
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) {
379
- return props.theme.buttonIconSize;
380
- }, function (props) {
381
- 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
- }, function (props) {
371
+ var DropdownTriggerIcon = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
387
372
  return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
388
- });
389
-
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
373
  }, 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";
374
+ return props.theme.buttonIconSize;
408
375
  }, function (props) {
409
- return props.theme.optionIconColor;
376
+ return props.theme.buttonIconSize;
410
377
  });
411
378
 
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;