@dxc-technology/halstack-react 0.0.0-fdc49d2 → 0.0.0-feed711
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.
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.js +5 -27
- package/accordion/Accordion.stories.tsx +4 -4
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +14 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +24 -6
- package/accordion-group/types.d.ts +5 -1
- package/alert/Alert.js +4 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +22 -32
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/{list → bulleted-list}/types.js +0 -0
- package/button/Button.js +53 -68
- package/button/Button.stories.tsx +9 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +24 -27
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +38 -28
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/types.d.ts +3 -3
- package/chip/types.d.ts +1 -1
- package/common/variables.js +229 -98
- package/date-input/DateInput.js +41 -23
- package/date-input/DateInput.test.js +9 -22
- package/date-input/types.d.ts +12 -9
- package/dialog/Dialog.js +46 -50
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +242 -250
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +510 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.js +9 -6
- package/file-input/FileItem.js +7 -5
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/{radio → flex}/types.js +0 -0
- package/footer/Footer.js +15 -88
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +1 -1
- package/header/Header.js +95 -114
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +18 -2
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -131
- package/layout/ApplicationLayout.stories.tsx +83 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +57 -74
- package/link/Link.stories.tsx +95 -53
- package/link/Link.test.js +7 -15
- package/link/types.d.ts +7 -23
- package/main.d.ts +7 -10
- package/main.js +43 -61
- package/number-input/NumberInput.test.js +2 -4
- package/number-input/types.d.ts +13 -10
- package/package.json +14 -12
- package/paginator/Paginator.js +17 -38
- package/paginator/Paginator.test.js +42 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +3 -6
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +57 -51
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +83 -25
- package/quick-nav/QuickNav.stories.tsx +43 -16
- package/quick-nav/types.d.ts +4 -8
- package/radio-group/Radio.js +1 -1
- package/radio-group/RadioGroup.js +21 -20
- package/resultsetTable/ResultsetTable.test.js +42 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +199 -0
- package/select/Option.js +1 -1
- package/select/Select.js +102 -199
- package/select/Select.stories.tsx +145 -100
- package/select/Select.test.js +440 -281
- package/select/types.d.ts +31 -12
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +184 -52
- package/sidenav/Sidenav.stories.tsx +154 -156
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +5 -4
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +68 -10
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +113 -54
- package/switch/Switch.stories.tsx +16 -38
- package/switch/Switch.test.js +122 -8
- package/switch/types.d.ts +5 -6
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +9 -11
- package/tabs/Tabs.stories.tsx +0 -8
- package/tabs/Tabs.test.js +26 -9
- package/tabs/types.d.ts +5 -1
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/{row → tabs-nav}/types.js +0 -0
- package/tag/Tag.js +5 -8
- package/tag/types.d.ts +1 -1
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +60 -97
- package/text-input/TextInput.stories.tsx +1 -2
- package/text-input/TextInput.test.js +22 -35
- package/text-input/types.d.ts +27 -12
- package/textarea/Textarea.js +10 -19
- package/textarea/types.d.ts +10 -7
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +35 -4
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/{stack → typography}/types.js +0 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.js +43 -44
- package/wizard/Wizard.stories.tsx +20 -1
- package/wizard/types.d.ts +5 -4
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
package/dropdown/Dropdown.js
CHANGED
|
@@ -19,30 +19,50 @@ 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"));
|
|
23
|
-
|
|
24
|
-
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
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"));
|
|
31
|
-
|
|
32
|
-
var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
|
|
33
|
-
|
|
34
22
|
var _variables = require("../common/variables.js");
|
|
35
23
|
|
|
36
24
|
var _utils = require("../common/utils.js");
|
|
37
25
|
|
|
38
26
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
39
27
|
|
|
40
|
-
var
|
|
28
|
+
var _uuid = require("uuid");
|
|
29
|
+
|
|
30
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
31
|
+
|
|
32
|
+
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
33
|
+
|
|
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
|
+
|
|
46
66
|
var DxcDropdown = function DxcDropdown(_ref) {
|
|
47
67
|
var options = _ref.options,
|
|
48
68
|
_ref$optionsIconPosit = _ref.optionsIconPosition,
|
|
@@ -54,171 +74,227 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
54
74
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
55
75
|
_ref$caretHidden = _ref.caretHidden,
|
|
56
76
|
caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
|
|
57
|
-
|
|
77
|
+
_ref$disabled = _ref.disabled,
|
|
78
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
58
79
|
_ref$expandOnHover = _ref.expandOnHover,
|
|
59
80
|
expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
|
|
81
|
+
onSelectOption = _ref.onSelectOption,
|
|
60
82
|
margin = _ref.margin,
|
|
61
83
|
_ref$size = _ref.size,
|
|
62
84
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
63
85
|
_ref$tabIndex = _ref.tabIndex,
|
|
64
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
87
|
+
|
|
88
|
+
var _useState = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
|
|
89
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
90
|
+
triggerId = _useState2[0];
|
|
67
91
|
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
92
|
+
var menuId = "menu-".concat(triggerId);
|
|
93
|
+
|
|
94
|
+
var _useState3 = (0, _react.useState)(false),
|
|
95
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
96
|
+
isOpen = _useState4[0],
|
|
97
|
+
changeIsOpen = _useState4[1];
|
|
98
|
+
|
|
99
|
+
var _useState5 = (0, _react.useState)(null),
|
|
100
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
101
|
+
menuStyles = _useState6[0],
|
|
102
|
+
setMenuStyles = _useState6[1];
|
|
103
|
+
|
|
104
|
+
var _useState7 = (0, _react.useState)(0),
|
|
105
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
106
|
+
visualFocusIndex = _useState8[0],
|
|
107
|
+
setVisualFocusIndex = _useState8[1];
|
|
72
108
|
|
|
73
109
|
var colorsTheme = (0, _useTheme["default"])();
|
|
74
|
-
var
|
|
110
|
+
var triggerRef = (0, _react.useRef)(null);
|
|
111
|
+
var menuRef = (0, _react.useRef)(null);
|
|
75
112
|
|
|
76
|
-
var
|
|
77
|
-
|
|
113
|
+
var handleOnOpenMenu = function handleOnOpenMenu() {
|
|
114
|
+
changeIsOpen(true);
|
|
78
115
|
};
|
|
79
116
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
117
|
+
var handleOnCloseMenu = function handleOnCloseMenu() {
|
|
118
|
+
changeIsOpen(false);
|
|
119
|
+
setVisualFocusIndex(0);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
|
|
123
|
+
var _triggerRef$current;
|
|
124
|
+
|
|
125
|
+
onSelectOption(value);
|
|
126
|
+
handleOnCloseMenu();
|
|
127
|
+
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
|
|
128
|
+
}, [onSelectOption]);
|
|
129
|
+
|
|
130
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
131
|
+
!event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var handleTriggerOnClick = function handleTriggerOnClick() {
|
|
135
|
+
changeIsOpen(function (isOpen) {
|
|
136
|
+
return !isOpen;
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
|
|
141
|
+
switch (event.key) {
|
|
142
|
+
case "Up":
|
|
143
|
+
case "ArrowUp":
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
setVisualFocusIndex(options.length - 1);
|
|
146
|
+
handleOnOpenMenu();
|
|
147
|
+
break;
|
|
148
|
+
|
|
149
|
+
case "Space":
|
|
150
|
+
case "Down":
|
|
151
|
+
case "ArrowDown":
|
|
152
|
+
case "Enter":
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
handleOnOpenMenu();
|
|
155
|
+
break;
|
|
84
156
|
}
|
|
157
|
+
};
|
|
85
158
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
159
|
+
var setPreviousIndexFocus = function setPreviousIndexFocus() {
|
|
160
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
161
|
+
var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
|
|
162
|
+
return index;
|
|
163
|
+
});
|
|
164
|
+
};
|
|
90
165
|
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
}));
|
|
166
|
+
var setNextIndexFocus = function setNextIndexFocus() {
|
|
167
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
168
|
+
var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
|
|
169
|
+
return index;
|
|
170
|
+
});
|
|
124
171
|
};
|
|
125
172
|
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
173
|
+
var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
|
|
174
|
+
var _triggerRef$current2, _triggerRef$current3;
|
|
175
|
+
|
|
176
|
+
switch (event.key) {
|
|
177
|
+
case "Up":
|
|
178
|
+
case "ArrowUp":
|
|
179
|
+
event.preventDefault();
|
|
180
|
+
setPreviousIndexFocus();
|
|
181
|
+
break;
|
|
182
|
+
|
|
183
|
+
case "Down":
|
|
184
|
+
case "ArrowDown":
|
|
185
|
+
event.preventDefault();
|
|
186
|
+
setNextIndexFocus();
|
|
187
|
+
break;
|
|
188
|
+
|
|
189
|
+
case "Space":
|
|
190
|
+
case "Enter":
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
handleMenuItemOnClick(options[visualFocusIndex].value);
|
|
193
|
+
break;
|
|
194
|
+
|
|
195
|
+
case "Esc":
|
|
196
|
+
case "Escape":
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
handleOnCloseMenu();
|
|
199
|
+
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
|
|
200
|
+
break;
|
|
201
|
+
|
|
202
|
+
case "Home":
|
|
203
|
+
case "PageUp":
|
|
204
|
+
event.preventDefault();
|
|
205
|
+
setVisualFocusIndex(0);
|
|
206
|
+
break;
|
|
207
|
+
|
|
208
|
+
case "End":
|
|
209
|
+
case "PageDown":
|
|
210
|
+
event.preventDefault();
|
|
211
|
+
setVisualFocusIndex(options.length - 1);
|
|
212
|
+
break;
|
|
213
|
+
|
|
214
|
+
case "Tab":
|
|
215
|
+
handleOnCloseMenu();
|
|
216
|
+
(_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}, [onSelectOption, visualFocusIndex, options]);
|
|
220
|
+
(0, _react.useLayoutEffect)(function () {
|
|
221
|
+
var _menuRef$current, _visualFocusedMenuIte;
|
|
222
|
+
|
|
223
|
+
var visualFocusedMenuItem = menuRef === null || menuRef === void 0 ? void 0 : (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll("[role='menuitem']")[visualFocusIndex];
|
|
224
|
+
visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
|
|
225
|
+
block: "nearest",
|
|
226
|
+
inline: "start"
|
|
227
|
+
});
|
|
228
|
+
}, [visualFocusIndex]);
|
|
229
|
+
|
|
230
|
+
var handleMenuResize = function handleMenuResize() {
|
|
231
|
+
var _triggerRef$current4;
|
|
232
|
+
|
|
233
|
+
var rect = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.getBoundingClientRect();
|
|
234
|
+
setMenuStyles({
|
|
235
|
+
width: rect === null || rect === void 0 ? void 0 : rect.width
|
|
236
|
+
});
|
|
139
237
|
};
|
|
140
238
|
|
|
239
|
+
(0, _react.useEffect)(function () {
|
|
240
|
+
handleMenuResize();
|
|
241
|
+
window.addEventListener("resize", handleMenuResize);
|
|
242
|
+
return function () {
|
|
243
|
+
window.removeEventListener("resize", handleMenuResize);
|
|
244
|
+
};
|
|
245
|
+
}, []);
|
|
141
246
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
142
247
|
theme: colorsTheme.dropdown
|
|
143
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
248
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
|
|
249
|
+
onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
|
|
250
|
+
onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
|
|
251
|
+
onBlur: !disabled ? handleOnBlur : undefined,
|
|
144
252
|
margin: margin,
|
|
145
|
-
size: size
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
onFocus: handleCloseOver,
|
|
151
|
-
onBlur: handleCloseOver
|
|
253
|
+
size: size
|
|
254
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
255
|
+
open: isOpen
|
|
256
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
257
|
+
asChild: true
|
|
152
258
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
|
|
153
|
-
opened:
|
|
154
|
-
onClick:
|
|
259
|
+
opened: isOpen,
|
|
260
|
+
onClick: handleTriggerOnClick,
|
|
261
|
+
onKeyDown: handleTriggerOnKeyDown,
|
|
262
|
+
onBlur: function onBlur(event) {
|
|
263
|
+
event.stopPropagation();
|
|
264
|
+
},
|
|
155
265
|
disabled: disabled,
|
|
156
266
|
label: label,
|
|
157
|
-
caretHidden: caretHidden,
|
|
158
267
|
margin: margin,
|
|
159
268
|
size: size,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
269
|
+
id: triggerId,
|
|
270
|
+
"aria-disabled": disabled,
|
|
271
|
+
"aria-haspopup": "true",
|
|
272
|
+
"aria-expanded": isOpen ? true : undefined,
|
|
273
|
+
tabIndex: tabIndex,
|
|
274
|
+
ref: triggerRef
|
|
275
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
|
|
166
276
|
label: label,
|
|
167
277
|
iconPosition: iconPosition,
|
|
168
|
-
disabled: disabled
|
|
169
|
-
|
|
278
|
+
disabled: disabled,
|
|
279
|
+
role: typeof icon === "string" ? undefined : "img"
|
|
280
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
170
281
|
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,
|
|
282
|
+
}) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
|
|
176
283
|
disabled: disabled
|
|
177
|
-
},
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
}))));
|
|
284
|
+
}, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
285
|
+
sideOffset: 1,
|
|
286
|
+
asChild: true
|
|
287
|
+
}, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
|
|
288
|
+
id: menuId,
|
|
289
|
+
dropdownTriggerId: triggerId,
|
|
290
|
+
options: options,
|
|
291
|
+
iconsPosition: optionsIconPosition,
|
|
292
|
+
visualFocusIndex: visualFocusIndex,
|
|
293
|
+
menuItemOnClick: handleMenuItemOnClick,
|
|
294
|
+
onKeyDown: handleMenuOnKeyDown,
|
|
295
|
+
styles: menuStyles,
|
|
296
|
+
ref: menuRef
|
|
297
|
+
})))));
|
|
222
298
|
};
|
|
223
299
|
|
|
224
300
|
var sizes = {
|
|
@@ -230,14 +306,10 @@ var sizes = {
|
|
|
230
306
|
};
|
|
231
307
|
|
|
232
308
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
233
|
-
|
|
234
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
return sizes[size];
|
|
309
|
+
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
238
310
|
};
|
|
239
311
|
|
|
240
|
-
var
|
|
312
|
+
var DropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-block;\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
241
313
|
return calculateWidth(props.margin, props.size);
|
|
242
314
|
}, function (props) {
|
|
243
315
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -251,68 +323,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
|
|
|
251
323
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
252
324
|
});
|
|
253
325
|
|
|
254
|
-
var
|
|
255
|
-
return
|
|
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;
|
|
326
|
+
var DropdownTrigger = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ", ";\n width: 100%;\n min-height: 40px;\n min-width: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n cursor: ", ";\n\n ", ";\n"])), function (props) {
|
|
327
|
+
return props.theme.caretIconSpacing;
|
|
314
328
|
}, function (props) {
|
|
315
|
-
return props.
|
|
329
|
+
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
316
330
|
}, function (props) {
|
|
317
331
|
return props.theme.borderRadius;
|
|
318
332
|
}, function (props) {
|
|
@@ -321,8 +335,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
321
335
|
return props.theme.borderStyle;
|
|
322
336
|
}, function (props) {
|
|
323
337
|
return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
|
|
324
|
-
}, function (props) {
|
|
325
|
-
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
326
338
|
}, function (props) {
|
|
327
339
|
return props.theme.buttonPaddingTop;
|
|
328
340
|
}, function (props) {
|
|
@@ -336,54 +348,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
336
348
|
}, function (props) {
|
|
337
349
|
return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
|
|
338
350
|
}, function (props) {
|
|
339
|
-
return props.
|
|
340
|
-
}, function (props) {
|
|
341
|
-
return props.opened ? "0px" : props.theme.borderRadius;
|
|
351
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
342
352
|
}, function (props) {
|
|
343
|
-
return !props.disabled && "
|
|
353
|
+
return !props.disabled && "\n &:focus {\n outline: ".concat(props.theme.focusColor, " solid 2px;\n outline-offset: -2px;\n }\n &:hover {\n background-color: ").concat(props.theme.hoverButtonBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeButtonBackgroundColor, ";\n }\n ");
|
|
344
354
|
});
|
|
345
355
|
|
|
346
|
-
var
|
|
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)";
|
|
356
|
+
var DropdownTriggerContent = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
357
|
+
return props.theme.buttonIconSpacing;
|
|
352
358
|
});
|
|
353
359
|
|
|
354
|
-
var
|
|
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;
|
|
360
|
+
var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n"])), function (props) {
|
|
361
|
+
return props.theme.buttonFontFamily;
|
|
360
362
|
}, function (props) {
|
|
361
|
-
return props.
|
|
363
|
+
return props.theme.buttonFontSize;
|
|
362
364
|
}, function (props) {
|
|
363
|
-
return props.
|
|
365
|
+
return props.theme.buttonFontStyle;
|
|
364
366
|
}, function (props) {
|
|
365
|
-
return props.
|
|
367
|
+
return props.theme.buttonFontWeight;
|
|
366
368
|
});
|
|
367
369
|
|
|
368
|
-
var
|
|
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";
|
|
370
|
+
var DropdownTriggerIcon = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
371
|
+
return props.theme.buttonIconSize;
|
|
376
372
|
}, function (props) {
|
|
377
|
-
return props.
|
|
373
|
+
return props.theme.buttonIconSize;
|
|
378
374
|
}, function (props) {
|
|
379
|
-
return props.theme.
|
|
375
|
+
return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
|
|
380
376
|
});
|
|
381
377
|
|
|
382
|
-
var
|
|
383
|
-
return props.caretHidden ? "none" : "inline-flex";
|
|
384
|
-
}, function (props) {
|
|
385
|
-
return props.theme.caretIconSpacing;
|
|
386
|
-
}, function (props) {
|
|
378
|
+
var CaretIcon = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
387
379
|
return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
|
|
388
380
|
}, function (props) {
|
|
389
381
|
return props.theme.caretIconSize;
|