@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3ac293

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 (267) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +118 -126
  7. package/accordion/Accordion.stories.tsx +115 -27
  8. package/accordion/Accordion.test.js +26 -12
  9. package/accordion/types.d.ts +9 -4
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +17 -38
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +31 -38
  14. package/accordion-group/types.d.ts +14 -3
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +1 -1
  18. package/badge/Badge.d.ts +1 -1
  19. package/badge/Badge.js +5 -3
  20. package/badge/types.d.ts +1 -0
  21. package/bleed/Bleed.js +1 -34
  22. package/bleed/Bleed.stories.tsx +94 -95
  23. package/bleed/types.d.ts +25 -1
  24. package/box/Box.js +25 -37
  25. package/box/Box.stories.tsx +15 -0
  26. package/box/Box.test.js +1 -1
  27. package/box/types.d.ts +1 -0
  28. package/bulleted-list/BulletedList.d.ts +7 -0
  29. package/bulleted-list/BulletedList.js +123 -0
  30. package/bulleted-list/BulletedList.stories.tsx +200 -0
  31. package/bulleted-list/types.d.ts +11 -0
  32. package/button/Button.js +52 -69
  33. package/button/Button.stories.tsx +159 -8
  34. package/button/Button.test.js +1 -1
  35. package/button/types.d.ts +7 -7
  36. package/card/Card.js +25 -28
  37. package/card/Card.test.js +1 -1
  38. package/card/types.d.ts +1 -0
  39. package/checkbox/Checkbox.d.ts +2 -2
  40. package/checkbox/Checkbox.js +107 -110
  41. package/checkbox/Checkbox.stories.tsx +198 -130
  42. package/checkbox/Checkbox.test.js +101 -11
  43. package/checkbox/types.d.ts +13 -5
  44. package/chip/Chip.js +18 -24
  45. package/chip/Chip.stories.tsx +96 -9
  46. package/chip/Chip.test.js +3 -5
  47. package/chip/types.d.ts +1 -1
  48. package/common/utils.d.ts +1 -0
  49. package/common/utils.js +4 -4
  50. package/common/variables.d.ts +1625 -0
  51. package/common/variables.js +483 -352
  52. package/date-input/Calendar.d.ts +4 -0
  53. package/date-input/Calendar.js +258 -0
  54. package/date-input/DateInput.js +169 -258
  55. package/date-input/DateInput.stories.tsx +199 -33
  56. package/date-input/DateInput.test.js +521 -155
  57. package/date-input/DatePicker.d.ts +4 -0
  58. package/date-input/DatePicker.js +146 -0
  59. package/date-input/Icons.d.ts +6 -0
  60. package/date-input/Icons.js +75 -0
  61. package/date-input/YearPicker.d.ts +4 -0
  62. package/date-input/YearPicker.js +126 -0
  63. package/date-input/types.d.ts +67 -9
  64. package/dialog/Dialog.js +76 -93
  65. package/dialog/Dialog.stories.tsx +230 -123
  66. package/dialog/Dialog.test.js +334 -5
  67. package/dialog/types.d.ts +3 -2
  68. package/dropdown/Dropdown.d.ts +1 -1
  69. package/dropdown/Dropdown.js +246 -253
  70. package/dropdown/Dropdown.stories.tsx +245 -56
  71. package/dropdown/Dropdown.test.js +507 -110
  72. package/dropdown/DropdownMenu.d.ts +4 -0
  73. package/dropdown/DropdownMenu.js +70 -0
  74. package/dropdown/DropdownMenuItem.d.ts +4 -0
  75. package/dropdown/DropdownMenuItem.js +81 -0
  76. package/dropdown/types.d.ts +25 -5
  77. package/file-input/FileInput.d.ts +2 -2
  78. package/file-input/FileInput.js +181 -223
  79. package/file-input/FileInput.stories.tsx +122 -11
  80. package/file-input/FileInput.test.js +14 -14
  81. package/file-input/FileItem.d.ts +4 -14
  82. package/file-input/FileItem.js +44 -66
  83. package/file-input/types.d.ts +17 -0
  84. package/flex/Flex.d.ts +4 -0
  85. package/flex/Flex.js +69 -0
  86. package/flex/Flex.stories.tsx +103 -0
  87. package/flex/types.d.ts +32 -0
  88. package/footer/Footer.js +16 -89
  89. package/footer/Footer.stories.tsx +99 -1
  90. package/footer/Footer.test.js +14 -26
  91. package/footer/Icons.js +1 -1
  92. package/footer/types.d.ts +2 -1
  93. package/header/Header.js +108 -129
  94. package/header/Header.stories.tsx +189 -36
  95. package/header/Header.test.js +20 -4
  96. package/header/Icons.js +2 -2
  97. package/header/types.d.ts +3 -2
  98. package/heading/Heading.js +1 -1
  99. package/heading/Heading.test.js +1 -1
  100. package/inset/Inset.js +1 -34
  101. package/inset/Inset.stories.tsx +36 -36
  102. package/inset/types.d.ts +25 -1
  103. package/layout/ApplicationLayout.d.ts +16 -6
  104. package/layout/ApplicationLayout.js +72 -132
  105. package/layout/ApplicationLayout.stories.tsx +84 -93
  106. package/layout/Icons.d.ts +5 -0
  107. package/layout/Icons.js +13 -2
  108. package/layout/SidenavContext.d.ts +5 -0
  109. package/layout/SidenavContext.js +19 -0
  110. package/layout/types.d.ts +18 -33
  111. package/link/Link.d.ts +3 -2
  112. package/link/Link.js +59 -76
  113. package/link/Link.stories.tsx +155 -53
  114. package/link/Link.test.js +9 -19
  115. package/link/types.d.ts +7 -23
  116. package/main.d.ts +8 -10
  117. package/main.js +46 -56
  118. package/nav-tabs/NavTabs.d.ts +8 -0
  119. package/nav-tabs/NavTabs.js +125 -0
  120. package/nav-tabs/NavTabs.stories.tsx +260 -0
  121. package/nav-tabs/NavTabs.test.js +82 -0
  122. package/nav-tabs/Tab.d.ts +4 -0
  123. package/nav-tabs/Tab.js +150 -0
  124. package/nav-tabs/types.d.ts +53 -0
  125. package/number-input/NumberInput.js +11 -18
  126. package/number-input/NumberInput.stories.tsx +5 -5
  127. package/number-input/NumberInput.test.js +46 -12
  128. package/number-input/types.d.ts +17 -10
  129. package/package.json +20 -23
  130. package/paginator/Icons.d.ts +5 -0
  131. package/paginator/Icons.js +16 -28
  132. package/paginator/Paginator.js +19 -46
  133. package/paginator/Paginator.stories.tsx +24 -0
  134. package/paginator/Paginator.test.js +78 -39
  135. package/paragraph/Paragraph.d.ts +6 -0
  136. package/paragraph/Paragraph.js +38 -0
  137. package/paragraph/Paragraph.stories.tsx +44 -0
  138. package/password-input/PasswordInput.js +7 -4
  139. package/password-input/PasswordInput.test.js +17 -19
  140. package/password-input/types.d.ts +14 -11
  141. package/progress-bar/ProgressBar.d.ts +2 -2
  142. package/progress-bar/ProgressBar.js +61 -55
  143. package/progress-bar/ProgressBar.stories.jsx +47 -12
  144. package/progress-bar/ProgressBar.test.js +68 -23
  145. package/progress-bar/types.d.ts +3 -4
  146. package/quick-nav/QuickNav.d.ts +4 -0
  147. package/quick-nav/QuickNav.js +117 -0
  148. package/quick-nav/QuickNav.stories.tsx +356 -0
  149. package/quick-nav/types.d.ts +21 -0
  150. package/radio-group/Radio.d.ts +1 -1
  151. package/radio-group/Radio.js +43 -28
  152. package/radio-group/RadioGroup.js +32 -28
  153. package/radio-group/RadioGroup.stories.tsx +135 -17
  154. package/radio-group/RadioGroup.test.js +145 -117
  155. package/radio-group/types.d.ts +79 -2
  156. package/resultsetTable/Icons.d.ts +7 -0
  157. package/resultsetTable/Icons.js +51 -0
  158. package/resultsetTable/ResultsetTable.js +49 -108
  159. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  160. package/resultsetTable/ResultsetTable.test.js +61 -42
  161. package/resultsetTable/types.d.ts +2 -2
  162. package/select/Icons.d.ts +10 -0
  163. package/select/Icons.js +93 -0
  164. package/select/Listbox.d.ts +4 -0
  165. package/select/Listbox.js +169 -0
  166. package/select/Option.d.ts +4 -0
  167. package/select/Option.js +97 -0
  168. package/select/Select.js +179 -384
  169. package/select/Select.stories.tsx +531 -142
  170. package/select/Select.test.js +652 -324
  171. package/select/types.d.ts +53 -13
  172. package/sidenav/Sidenav.d.ts +6 -5
  173. package/sidenav/Sidenav.js +183 -53
  174. package/sidenav/Sidenav.stories.tsx +249 -149
  175. package/sidenav/Sidenav.test.js +25 -37
  176. package/sidenav/types.d.ts +50 -27
  177. package/slider/Slider.d.ts +2 -2
  178. package/slider/Slider.js +124 -98
  179. package/slider/Slider.stories.tsx +72 -9
  180. package/slider/Slider.test.js +143 -22
  181. package/slider/types.d.ts +10 -2
  182. package/spinner/Spinner.js +4 -4
  183. package/spinner/Spinner.stories.jsx +27 -1
  184. package/spinner/Spinner.test.js +1 -1
  185. package/switch/Switch.d.ts +2 -2
  186. package/switch/Switch.js +152 -69
  187. package/switch/Switch.stories.tsx +53 -42
  188. package/switch/Switch.test.js +156 -4
  189. package/switch/types.d.ts +12 -4
  190. package/table/Table.js +3 -3
  191. package/table/Table.stories.jsx +80 -1
  192. package/table/Table.test.js +2 -2
  193. package/tabs/Tab.d.ts +4 -0
  194. package/tabs/Tab.js +133 -0
  195. package/tabs/Tabs.d.ts +1 -1
  196. package/tabs/Tabs.js +363 -109
  197. package/tabs/Tabs.stories.tsx +119 -13
  198. package/tabs/Tabs.test.js +241 -14
  199. package/tabs/types.d.ts +19 -5
  200. package/tag/Tag.js +17 -22
  201. package/tag/Tag.stories.tsx +25 -8
  202. package/tag/Tag.test.js +1 -1
  203. package/tag/types.d.ts +1 -1
  204. package/text-input/Icons.d.ts +8 -0
  205. package/text-input/Icons.js +60 -0
  206. package/text-input/Suggestion.d.ts +4 -0
  207. package/text-input/Suggestion.js +84 -0
  208. package/text-input/Suggestions.d.ts +4 -0
  209. package/text-input/Suggestions.js +134 -0
  210. package/text-input/TextInput.js +221 -344
  211. package/text-input/TextInput.stories.tsx +290 -195
  212. package/text-input/TextInput.test.js +763 -731
  213. package/text-input/types.d.ts +50 -12
  214. package/textarea/Textarea.js +17 -26
  215. package/textarea/Textarea.stories.jsx +65 -6
  216. package/textarea/Textarea.test.js +38 -37
  217. package/textarea/types.d.ts +18 -11
  218. package/toggle-group/ToggleGroup.d.ts +1 -1
  219. package/toggle-group/ToggleGroup.js +6 -5
  220. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  221. package/toggle-group/ToggleGroup.test.js +36 -5
  222. package/toggle-group/types.d.ts +9 -1
  223. package/typography/Typography.d.ts +4 -0
  224. package/typography/Typography.js +32 -0
  225. package/typography/Typography.stories.tsx +198 -0
  226. package/typography/types.d.ts +18 -0
  227. package/typography/types.js +5 -0
  228. package/useTheme.d.ts +1234 -1
  229. package/useTheme.js +3 -3
  230. package/useTranslatedLabels.d.ts +85 -0
  231. package/useTranslatedLabels.js +20 -0
  232. package/utils/BaseTypography.d.ts +21 -0
  233. package/utils/BaseTypography.js +108 -0
  234. package/utils/FocusLock.d.ts +13 -0
  235. package/utils/FocusLock.js +139 -0
  236. package/wizard/Wizard.d.ts +1 -1
  237. package/wizard/Wizard.js +59 -55
  238. package/wizard/Wizard.stories.tsx +48 -19
  239. package/wizard/Wizard.test.js +37 -24
  240. package/wizard/types.d.ts +10 -5
  241. package/ThemeContext.d.ts +0 -10
  242. package/ThemeContext.js +0 -243
  243. package/common/RequiredComponent.js +0 -32
  244. package/list/List.d.ts +0 -4
  245. package/list/List.js +0 -47
  246. package/list/List.stories.tsx +0 -95
  247. package/list/types.d.ts +0 -7
  248. package/radio/Radio.d.ts +0 -4
  249. package/radio/Radio.js +0 -174
  250. package/radio/Radio.stories.tsx +0 -192
  251. package/radio/Radio.test.js +0 -71
  252. package/radio/types.d.ts +0 -54
  253. package/row/Row.d.ts +0 -3
  254. package/row/Row.js +0 -127
  255. package/row/Row.stories.tsx +0 -237
  256. package/row/types.d.ts +0 -10
  257. package/stack/Stack.d.ts +0 -3
  258. package/stack/Stack.js +0 -97
  259. package/stack/Stack.stories.tsx +0 -164
  260. package/stack/types.d.ts +0 -9
  261. package/text/Text.d.ts +0 -7
  262. package/text/Text.js +0 -30
  263. package/text/Text.stories.tsx +0 -19
  264. /package/{list → bulleted-list}/types.js +0 -0
  265. /package/{radio → flex}/types.js +0 -0
  266. /package/{row → nav-tabs}/types.js +0 -0
  267. /package/{stack → quick-nav}/types.js +0 -0
@@ -19,30 +19,72 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
22
+ var _variables = require("../common/variables");
23
23
 
24
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
24
+ var _utils = require("../common/utils");
25
25
 
26
- var _core = require("@material-ui/core");
27
-
28
- var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
29
-
30
- var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
31
27
 
32
- var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
28
+ var _uuid = require("uuid");
33
29
 
34
- var _variables = require("../common/variables.js");
30
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
35
31
 
36
- var _utils = require("../common/utils.js");
32
+ var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
37
33
 
38
- var _useTheme = _interopRequireDefault(require("../useTheme"));
39
-
40
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
41
35
 
42
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); }
43
37
 
44
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; }
45
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
+
46
88
  var DxcDropdown = function DxcDropdown(_ref) {
47
89
  var options = _ref.options,
48
90
  _ref$optionsIconPosit = _ref.optionsIconPosition,
@@ -54,171 +96,206 @@ var DxcDropdown = function DxcDropdown(_ref) {
54
96
  label = _ref$label === void 0 ? "" : _ref$label,
55
97
  _ref$caretHidden = _ref.caretHidden,
56
98
  caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
57
- onSelectOption = _ref.onSelectOption,
99
+ _ref$disabled = _ref.disabled,
100
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
58
101
  _ref$expandOnHover = _ref.expandOnHover,
59
102
  expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
103
+ onSelectOption = _ref.onSelectOption,
60
104
  margin = _ref.margin,
61
105
  _ref$size = _ref.size,
62
106
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
63
107
  _ref$tabIndex = _ref.tabIndex,
64
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
65
- _ref$disabled = _ref.disabled,
66
- disabled = _ref$disabled === void 0 ? false : _ref$disabled;
108
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
67
109
 
68
- var _useState = (0, _react.useState)(),
69
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
70
- width = _useState2[0],
71
- 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];
72
125
 
73
126
  var colorsTheme = (0, _useTheme["default"])();
74
- 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);
75
130
 
76
- var handleResize = function handleResize() {
77
- if (ref.current) setWidth(ref.current.offsetWidth);
131
+ var handleOnOpenMenu = function handleOnOpenMenu() {
132
+ changeIsOpen(true);
78
133
  };
79
134
 
80
- (0, _react.useEffect)(function () {
81
- if (ref.current) {
82
- ref.current.addEventListener("resize", handleResize);
83
- handleResize();
135
+ var handleOnCloseMenu = function handleOnCloseMenu() {
136
+ changeIsOpen(false);
137
+ setVisualFocusIndex(0);
138
+ };
139
+
140
+ var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
141
+ var _triggerRef$current;
142
+
143
+ onSelectOption(value);
144
+ handleOnCloseMenu();
145
+ (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
146
+ }, [onSelectOption]);
147
+
148
+ var handleOnBlur = function handleOnBlur(event) {
149
+ !event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
150
+ };
151
+
152
+ var handleTriggerOnClick = function handleTriggerOnClick() {
153
+ changeIsOpen(function (isOpen) {
154
+ return !isOpen;
155
+ });
156
+ };
157
+
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;
84
174
  }
175
+ };
85
176
 
86
- return function () {
87
- if (ref.current) ref.current.removeEventListener("resize", handleResize);
88
- };
89
- }, []);
90
-
91
- var _useState3 = (0, _react.useState)(null),
92
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
93
- anchorEl = _useState4[0],
94
- setAnchorEl = _useState4[1];
95
-
96
- function handleClickListItem(event) {
97
- setAnchorEl(event.currentTarget);
98
- }
99
-
100
- function handleMenuItemClick(option) {
101
- setAnchorEl(null);
102
- onSelectOption(option.value);
103
- }
104
-
105
- function handleClose() {
106
- setAnchorEl(null);
107
- }
108
-
109
- var handleCloseOver = expandOnHover ? handleClose : undefined;
110
-
111
- var UpArrowIcon = function UpArrowIcon() {
112
- return /*#__PURE__*/_react["default"].createElement("svg", {
113
- xmlns: "http://www.w3.org/2000/svg",
114
- width: "24",
115
- height: "24",
116
- viewBox: "0 0 24 24",
117
- fill: "currentColor"
118
- }, /*#__PURE__*/_react["default"].createElement("path", {
119
- d: "M7 14l5-5 5 5z"
120
- }), /*#__PURE__*/_react["default"].createElement("path", {
121
- d: "M0 0h24v24H0z",
122
- fill: "none"
123
- }));
177
+ var setPreviousIndexFocus = function setPreviousIndexFocus() {
178
+ setVisualFocusIndex(function (currentFocusIndex) {
179
+ var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
180
+ return index;
181
+ });
124
182
  };
125
183
 
126
- var DownArrowIcon = function DownArrowIcon() {
127
- return /*#__PURE__*/_react["default"].createElement("svg", {
128
- xmlns: "http://www.w3.org/2000/svg",
129
- width: "24",
130
- height: "24",
131
- viewBox: "0 0 24 24",
132
- fill: "currentColor"
133
- }, /*#__PURE__*/_react["default"].createElement("path", {
134
- d: "M7 10l5 5 5-5z"
135
- }), /*#__PURE__*/_react["default"].createElement("path", {
136
- d: "M0 0h24v24H0z",
137
- fill: "none"
138
- }));
184
+ var setNextIndexFocus = function setNextIndexFocus() {
185
+ setVisualFocusIndex(function (currentFocusIndex) {
186
+ var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
187
+ return index;
188
+ });
139
189
  };
140
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]);
141
247
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
142
248
  theme: colorsTheme.dropdown
143
- }, /*#__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,
144
253
  margin: margin,
145
- size: size,
146
- disabled: disabled
147
- }, /*#__PURE__*/_react["default"].createElement("div", {
148
- onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
149
- onMouseOut: handleCloseOver,
150
- onFocus: handleCloseOver,
151
- 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
152
260
  }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
153
- opened: anchorEl === null ? false : true,
154
- onClick: handleClickListItem,
261
+ onClick: handleTriggerOnClick,
262
+ onKeyDown: handleTriggerOnKeyDown,
263
+ onBlur: function onBlur(event) {
264
+ event.stopPropagation();
265
+ },
155
266
  disabled: disabled,
156
267
  label: label,
157
- caretHidden: caretHidden,
158
268
  margin: margin,
159
269
  size: size,
160
- ref: ref,
161
- tabIndex: tabIndex
162
- }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContainer, {
163
- iconPosition: iconPosition,
164
- caretHidden: caretHidden
165
- }, icon && /*#__PURE__*/_react["default"].createElement(ButtonIconContainer, {
166
- label: label,
167
- iconPosition: iconPosition,
168
- disabled: disabled
169
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
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", {
170
280
  src: icon
171
- }) : icon), /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, {
172
- iconPosition: iconPosition,
173
- label: label
174
- }, label)), /*#__PURE__*/_react["default"].createElement(CaretIconContainer, {
175
- caretHidden: caretHidden,
281
+ }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
176
282
  disabled: disabled
177
- }, !caretHidden && (anchorEl === null ? /*#__PURE__*/_react["default"].createElement(DownArrowIcon, null) : /*#__PURE__*/_react["default"].createElement(UpArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(DXCMenu, {
178
- anchorEl: anchorEl,
179
- open: Boolean(anchorEl),
180
- onClose: handleClose,
181
- getContentAnchorEl: null,
182
- anchorOrigin: {
183
- vertical: "bottom",
184
- horizontal: "left"
185
- },
186
- transformOrigin: {
187
- vertical: "top",
188
- 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
189
296
  },
190
- optionsIconPosition: optionsIconPosition,
191
- size: size,
192
- width: width,
193
- role: undefined,
194
- transition: true,
195
- disablePortal: true,
196
- placement: "bottom-start"
197
- }, function (_ref2) {
198
- var TransitionProps = _ref2.TransitionProps;
199
- return /*#__PURE__*/_react["default"].createElement(_Grow["default"], TransitionProps, /*#__PURE__*/_react["default"].createElement(_Paper["default"], null, /*#__PURE__*/_react["default"].createElement(_core.ClickAwayListener, {
200
- onClickAway: handleClose
201
- }, /*#__PURE__*/_react["default"].createElement(_MenuList["default"], {
202
- autoFocusItem: Boolean(anchorEl),
203
- id: "menu-list-grow"
204
- }, options.map(function (option) {
205
- return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
206
- key: option.value,
207
- value: option.value,
208
- disableRipple: true,
209
- onClick: function onClick(event) {
210
- return handleMenuItemClick(option);
211
- }
212
- }, option.icon && /*#__PURE__*/_react["default"].createElement(ListIconContainer, {
213
- label: option.label,
214
- iconPosition: optionsIconPosition
215
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ListIcon, {
216
- src: option.icon
217
- }) : option.icon), /*#__PURE__*/_react["default"].createElement("span", {
218
- className: "optionLabel"
219
- }, option.label));
220
- })))));
221
- }))));
297
+ ref: menuRef
298
+ })))));
222
299
  };
223
300
 
224
301
  var sizes = {
@@ -226,18 +303,14 @@ var sizes = {
226
303
  medium: "240px",
227
304
  large: "480px",
228
305
  fillParent: "100%",
229
- fitContent: "unset"
306
+ fitContent: "fit-content"
230
307
  };
231
308
 
232
309
  var calculateWidth = function calculateWidth(margin, size) {
233
- if (size === "fillParent") {
234
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
235
- }
236
-
237
- 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];
238
311
  };
239
312
 
240
- 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) {
241
314
  return calculateWidth(props.margin, props.size);
242
315
  }, function (props) {
243
316
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -251,68 +324,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
251
324
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
252
325
  });
253
326
 
254
- 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) {
255
- return calculateWidth(props.margin, props.size);
256
- }, function (props) {
257
- return props.theme.optionPaddingTop;
258
- }, function (props) {
259
- return props.theme.optionPaddingBottom;
260
- }, function (props) {
261
- return props.theme.optionPaddingLeft;
262
- }, function (props) {
263
- return props.theme.optionPaddingRight;
264
- }, function (props) {
265
- return "".concat(props.width, "px");
266
- }, function (props) {
267
- return props.theme.borderThickness;
268
- }, function (props) {
269
- return props.theme.borderStyle;
270
- }, function (props) {
271
- return props.theme.borderColor;
272
- }, function (props) {
273
- return props.theme.borderRadius;
274
- }, function (props) {
275
- return props.theme.borderRadius;
276
- }, function (props) {
277
- return props.theme.scrollBarTrackColor;
278
- }, function (props) {
279
- return props.theme.scrollBarThumbColor;
280
- }, function (props) {
281
- return props.optionsIconPosition === "after" && "row-reverse" || "row";
282
- }, function (props) {
283
- return props.optionsIconPosition === "after" && "flex-end" || "";
284
- }, function (props) {
285
- return props.theme.optionBackgroundColor;
286
- }, function (props) {
287
- return props.theme.optionFontFamily;
288
- }, function (props) {
289
- return props.theme.optionFontSize;
290
- }, function (props) {
291
- return props.theme.optionFontStyle;
292
- }, function (props) {
293
- return props.theme.optionFontWeight;
294
- }, function (props) {
295
- return props.theme.optionFontColor;
296
- }, function (props) {
297
- return props.theme.focusColor;
298
- }, function (props) {
299
- return props.theme.hoverOptionBackgroundColor;
300
- }, function (props) {
301
- return props.theme.activeOptionBackgroundColor;
302
- }, function (props) {
303
- return props.theme.focusColor;
304
- });
305
-
306
- 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) {
307
- return props.disabled ? "not-allowed" : "pointer";
308
- }, function (props) {
309
- return props.theme.buttonFontFamily;
310
- }, function (props) {
311
- return props.theme.buttonFontSize;
312
- }, function (props) {
313
- 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;
314
329
  }, function (props) {
315
- return props.theme.buttonFontWeight;
330
+ return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
316
331
  }, function (props) {
317
332
  return props.theme.borderRadius;
318
333
  }, function (props) {
@@ -321,8 +336,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
321
336
  return props.theme.borderStyle;
322
337
  }, function (props) {
323
338
  return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
324
- }, function (props) {
325
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
326
339
  }, function (props) {
327
340
  return props.theme.buttonPaddingTop;
328
341
  }, function (props) {
@@ -336,54 +349,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
336
349
  }, function (props) {
337
350
  return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
338
351
  }, function (props) {
339
- return props.opened ? "0px" : props.theme.borderRadius;
340
- }, function (props) {
341
- return props.opened ? "0px" : props.theme.borderRadius;
352
+ return props.disabled ? "not-allowed" : "pointer";
342
353
  }, function (props) {
343
- 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 ");
344
355
  });
345
356
 
346
- var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
347
-
348
- 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) {
349
- return props.iconPosition === "after" && "row-reverse" || "row";
350
- }, function (props) {
351
- 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;
352
359
  });
353
360
 
354
- var ButtonIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
355
-
356
- 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) {
357
- return props.theme.buttonIconSize;
358
- }, function (props) {
359
- 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;
360
363
  }, function (props) {
361
- return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
364
+ return props.theme.buttonFontSize;
362
365
  }, function (props) {
363
- return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
366
+ return props.theme.buttonFontStyle;
364
367
  }, function (props) {
365
- return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
368
+ return props.theme.buttonFontWeight;
366
369
  });
367
370
 
368
- var ListIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
369
-
370
- 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) {
371
- return props.theme.optionIconSize;
372
- }, function (props) {
373
- return props.theme.optionIconSize;
374
- }, function (props) {
375
- return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
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) {
372
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
376
373
  }, function (props) {
377
- return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
374
+ return props.theme.buttonIconSize;
378
375
  }, function (props) {
379
- return props.theme.optionIconColor;
376
+ return props.theme.buttonIconSize;
380
377
  });
381
378
 
382
- 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) {
383
- return props.caretHidden ? "none" : "inline-flex";
384
- }, function (props) {
385
- return props.theme.caretIconSpacing;
386
- }, 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) {
387
380
  return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
388
381
  }, function (props) {
389
382
  return props.theme.caretIconSize;