@dxc-technology/halstack-react 0.0.0-e201636 → 0.0.0-e26622f
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/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +2 -3
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +2 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +10 -3
- package/alert/Alert.js +1 -1
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +1 -1
- package/box/types.d.ts +1 -0
- 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 +43 -61
- package/button/Button.stories.tsx +9 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +34 -36
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.js +87 -95
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +2 -2
- package/chip/types.d.ts +1 -1
- package/common/variables.js +56 -18
- package/date-input/DateInput.js +3 -3
- package/dialog/Dialog.js +52 -28
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +244 -247
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +509 -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/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/{row → flex}/types.js +0 -0
- package/footer/Footer.stories.tsx +8 -1
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +74 -72
- package/header/Header.stories.tsx +4 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +37 -65
- package/layout/ApplicationLayout.stories.tsx +80 -44
- package/layout/types.d.ts +17 -27
- package/link/Link.js +1 -1
- package/link/Link.stories.tsx +13 -6
- package/link/types.d.ts +1 -1
- package/main.d.ts +5 -8
- package/main.js +28 -52
- package/number-input/NumberInput.test.js +1 -1
- package/package.json +10 -9
- 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.test.js +13 -12
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +3 -1
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +25 -20
- package/quick-nav/QuickNav.stories.tsx +131 -26
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +26 -29
- package/radio-group/RadioGroup.stories.tsx +1 -0
- package/radio-group/RadioGroup.test.js +28 -58
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/ResultsetTable.test.js +42 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +53 -7
- package/select/Select.js +42 -43
- package/select/Select.stories.tsx +131 -98
- package/select/Select.test.js +105 -50
- package/select/types.d.ts +2 -5
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +176 -55
- package/sidenav/Sidenav.stories.tsx +154 -156
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.js +116 -92
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +2 -2
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +132 -66
- package/switch/Switch.stories.tsx +8 -30
- package/switch/Switch.test.js +144 -17
- package/switch/types.d.ts +3 -4
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/Tab.js +3 -5
- package/tabs-nav/types.d.ts +1 -1
- package/tag/Tag.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +7 -5
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +181 -278
- package/text-input/TextInput.stories.tsx +189 -182
- package/text-input/TextInput.test.js +165 -163
- package/text-input/types.d.ts +22 -3
- package/toggle-group/types.d.ts +1 -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/wizard/Wizard.js +9 -16
- package/wizard/Wizard.stories.tsx +20 -1
- package/wizard/types.d.ts +5 -4
- 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/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,173 +74,228 @@ 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
|
-
_ref$disabled = _ref.disabled,
|
|
66
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
86
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
67
87
|
|
|
68
|
-
var _useState = (0, _react.useState)(),
|
|
69
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState,
|
|
70
|
-
|
|
71
|
-
|
|
88
|
+
var _useState = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
|
|
89
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
90
|
+
triggerId = _useState2[0];
|
|
91
|
+
|
|
92
|
+
var menuId = "menu-".concat(triggerId);
|
|
93
|
+
|
|
94
|
+
var _useState3 = (0, _react.useState)(false),
|
|
95
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
96
|
+
isOpen = _useState4[0],
|
|
97
|
+
changeIsOpen = _useState4[1];
|
|
98
|
+
|
|
99
|
+
var _useState5 = (0, _react.useState)(null),
|
|
100
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
101
|
+
menuStyles = _useState6[0],
|
|
102
|
+
setMenuStyles = _useState6[1];
|
|
103
|
+
|
|
104
|
+
var _useState7 = (0, _react.useState)(0),
|
|
105
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
106
|
+
visualFocusIndex = _useState8[0],
|
|
107
|
+
setVisualFocusIndex = _useState8[1];
|
|
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
|
-
|
|
84
|
-
}
|
|
117
|
+
var handleOnCloseMenu = function handleOnCloseMenu() {
|
|
118
|
+
changeIsOpen(false);
|
|
119
|
+
setVisualFocusIndex(0);
|
|
120
|
+
};
|
|
85
121
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
};
|
|
89
|
-
}, []);
|
|
122
|
+
var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
|
|
123
|
+
var _triggerRef$current;
|
|
90
124
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
function
|
|
97
|
-
|
|
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
|
-
}));
|
|
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();
|
|
124
132
|
};
|
|
125
133
|
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
}));
|
|
134
|
+
var handleTriggerOnClick = function handleTriggerOnClick() {
|
|
135
|
+
changeIsOpen(function (isOpen) {
|
|
136
|
+
return !isOpen;
|
|
137
|
+
});
|
|
139
138
|
};
|
|
140
139
|
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
|
|
141
|
+
switch (event.key) {
|
|
142
|
+
case "Up":
|
|
143
|
+
case "ArrowUp":
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
setVisualFocusIndex(options.length - 1);
|
|
146
|
+
handleOnOpenMenu();
|
|
147
|
+
break;
|
|
148
|
+
|
|
149
|
+
case " ":
|
|
150
|
+
case "Down":
|
|
151
|
+
case "ArrowDown":
|
|
152
|
+
case "Enter":
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
handleOnOpenMenu();
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var setPreviousIndexFocus = function setPreviousIndexFocus() {
|
|
160
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
161
|
+
var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
|
|
162
|
+
return index;
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
var setNextIndexFocus = function setNextIndexFocus() {
|
|
167
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
168
|
+
var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
|
|
169
|
+
return index;
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
|
|
174
|
+
var _triggerRef$current2, _triggerRef$current3;
|
|
175
|
+
|
|
176
|
+
switch (event.key) {
|
|
177
|
+
case "Up":
|
|
178
|
+
case "ArrowUp":
|
|
179
|
+
event.preventDefault();
|
|
180
|
+
setPreviousIndexFocus();
|
|
181
|
+
break;
|
|
182
|
+
|
|
183
|
+
case "Down":
|
|
184
|
+
case "ArrowDown":
|
|
185
|
+
event.preventDefault();
|
|
186
|
+
setNextIndexFocus();
|
|
187
|
+
break;
|
|
188
|
+
|
|
189
|
+
case " ":
|
|
190
|
+
case "Enter":
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
handleMenuItemOnClick(options[visualFocusIndex].value);
|
|
193
|
+
break;
|
|
194
|
+
|
|
195
|
+
case "Esc":
|
|
196
|
+
case "Escape":
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
handleOnCloseMenu();
|
|
199
|
+
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
|
|
200
|
+
break;
|
|
201
|
+
|
|
202
|
+
case "Home":
|
|
203
|
+
case "PageUp":
|
|
204
|
+
event.preventDefault();
|
|
205
|
+
setVisualFocusIndex(0);
|
|
206
|
+
break;
|
|
207
|
+
|
|
208
|
+
case "End":
|
|
209
|
+
case "PageDown":
|
|
210
|
+
event.preventDefault();
|
|
211
|
+
setVisualFocusIndex(options.length - 1);
|
|
212
|
+
break;
|
|
213
|
+
|
|
214
|
+
case "Tab":
|
|
215
|
+
handleOnCloseMenu();
|
|
216
|
+
(_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}, [onSelectOption, visualFocusIndex, options]);
|
|
220
|
+
(0, _react.useLayoutEffect)(function () {
|
|
221
|
+
var _menuRef$current, _visualFocusedMenuIte;
|
|
222
|
+
|
|
223
|
+
var visualFocusedMenuItem = menuRef === null || menuRef === void 0 ? void 0 : (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll("[role='menuitem']")[visualFocusIndex];
|
|
224
|
+
visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
|
|
225
|
+
block: "nearest",
|
|
226
|
+
inline: "start"
|
|
227
|
+
});
|
|
228
|
+
}, [visualFocusIndex]);
|
|
229
|
+
|
|
230
|
+
var handleMenuResize = function handleMenuResize() {
|
|
231
|
+
var _triggerRef$current4;
|
|
232
|
+
|
|
233
|
+
var rect = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.getBoundingClientRect();
|
|
234
|
+
setMenuStyles({
|
|
235
|
+
width: rect === null || rect === void 0 ? void 0 : rect.width
|
|
236
|
+
});
|
|
237
|
+
};
|
|
145
238
|
|
|
239
|
+
(0, _react.useEffect)(function () {
|
|
240
|
+
handleMenuResize();
|
|
241
|
+
window.addEventListener("resize", handleMenuResize);
|
|
242
|
+
return function () {
|
|
243
|
+
window.removeEventListener("resize", handleMenuResize);
|
|
244
|
+
};
|
|
245
|
+
}, []);
|
|
146
246
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
147
247
|
theme: colorsTheme.dropdown
|
|
148
|
-
}, /*#__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,
|
|
149
252
|
margin: margin,
|
|
150
|
-
size: size
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
onBlur: handleCloseOver
|
|
253
|
+
size: size
|
|
254
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
255
|
+
open: isOpen
|
|
256
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
257
|
+
asChild: true,
|
|
258
|
+
type: undefined
|
|
157
259
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
|
|
158
|
-
opened:
|
|
159
|
-
onClick:
|
|
260
|
+
opened: isOpen,
|
|
261
|
+
onClick: handleTriggerOnClick,
|
|
262
|
+
onKeyDown: handleTriggerOnKeyDown,
|
|
263
|
+
onBlur: function onBlur(event) {
|
|
264
|
+
event.stopPropagation();
|
|
265
|
+
},
|
|
160
266
|
disabled: disabled,
|
|
161
267
|
label: label,
|
|
162
|
-
caretHidden: caretHidden,
|
|
163
268
|
margin: margin,
|
|
164
269
|
size: size,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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, {
|
|
170
277
|
label: label,
|
|
171
278
|
iconPosition: iconPosition,
|
|
172
|
-
disabled: disabled
|
|
173
|
-
|
|
279
|
+
disabled: disabled,
|
|
280
|
+
role: typeof icon === "string" ? undefined : "img"
|
|
281
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
174
282
|
src: icon
|
|
175
|
-
}) : icon), iconPosition === "before" &&
|
|
176
|
-
caretHidden: caretHidden,
|
|
283
|
+
}) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
|
|
177
284
|
disabled: disabled
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
}, optionsIconPosition === "after" && /*#__PURE__*/_react["default"].createElement("span", {
|
|
213
|
-
className: "optionLabel"
|
|
214
|
-
}, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(ListIconContainer, {
|
|
215
|
-
label: option.label,
|
|
216
|
-
iconPosition: optionsIconPosition
|
|
217
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ListIcon, {
|
|
218
|
-
src: option.icon
|
|
219
|
-
}) : option.icon), optionsIconPosition === "before" && /*#__PURE__*/_react["default"].createElement("span", {
|
|
220
|
-
className: "optionLabel"
|
|
221
|
-
}, option.label));
|
|
222
|
-
})))));
|
|
223
|
-
}))));
|
|
285
|
+
}, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
286
|
+
sideOffset: 1,
|
|
287
|
+
asChild: true
|
|
288
|
+
}, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
|
|
289
|
+
id: menuId,
|
|
290
|
+
dropdownTriggerId: triggerId,
|
|
291
|
+
options: options,
|
|
292
|
+
iconsPosition: optionsIconPosition,
|
|
293
|
+
visualFocusIndex: visualFocusIndex,
|
|
294
|
+
menuItemOnClick: handleMenuItemOnClick,
|
|
295
|
+
onKeyDown: handleMenuOnKeyDown,
|
|
296
|
+
styles: menuStyles,
|
|
297
|
+
ref: menuRef
|
|
298
|
+
})))));
|
|
224
299
|
};
|
|
225
300
|
|
|
226
301
|
var sizes = {
|
|
@@ -228,18 +303,14 @@ var sizes = {
|
|
|
228
303
|
medium: "240px",
|
|
229
304
|
large: "480px",
|
|
230
305
|
fillParent: "100%",
|
|
231
|
-
fitContent: "
|
|
306
|
+
fitContent: "fit-content"
|
|
232
307
|
};
|
|
233
308
|
|
|
234
309
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
235
|
-
|
|
236
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
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];
|
|
240
311
|
};
|
|
241
312
|
|
|
242
|
-
var
|
|
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) {
|
|
243
314
|
return calculateWidth(props.margin, props.size);
|
|
244
315
|
}, function (props) {
|
|
245
316
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -253,64 +324,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
|
|
|
253
324
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
254
325
|
});
|
|
255
326
|
|
|
256
|
-
var
|
|
257
|
-
return
|
|
258
|
-
}, function (props) {
|
|
259
|
-
return props.theme.optionPaddingTop;
|
|
260
|
-
}, function (props) {
|
|
261
|
-
return props.theme.optionPaddingBottom;
|
|
262
|
-
}, function (props) {
|
|
263
|
-
return props.theme.optionPaddingLeft;
|
|
264
|
-
}, function (props) {
|
|
265
|
-
return props.theme.optionPaddingRight;
|
|
266
|
-
}, function (props) {
|
|
267
|
-
return "".concat(props.width, "px");
|
|
268
|
-
}, function (props) {
|
|
269
|
-
return props.theme.borderThickness;
|
|
270
|
-
}, function (props) {
|
|
271
|
-
return props.theme.borderStyle;
|
|
272
|
-
}, function (props) {
|
|
273
|
-
return props.theme.borderColor;
|
|
274
|
-
}, function (props) {
|
|
275
|
-
return props.theme.borderRadius;
|
|
276
|
-
}, function (props) {
|
|
277
|
-
return props.theme.borderRadius;
|
|
278
|
-
}, function (props) {
|
|
279
|
-
return props.theme.scrollBarTrackColor;
|
|
280
|
-
}, function (props) {
|
|
281
|
-
return props.theme.scrollBarThumbColor;
|
|
282
|
-
}, function (props) {
|
|
283
|
-
return props.theme.optionBackgroundColor;
|
|
284
|
-
}, function (props) {
|
|
285
|
-
return props.theme.optionFontFamily;
|
|
286
|
-
}, function (props) {
|
|
287
|
-
return props.theme.optionFontSize;
|
|
288
|
-
}, function (props) {
|
|
289
|
-
return props.theme.optionFontStyle;
|
|
290
|
-
}, function (props) {
|
|
291
|
-
return props.theme.optionFontWeight;
|
|
292
|
-
}, function (props) {
|
|
293
|
-
return props.theme.optionFontColor;
|
|
294
|
-
}, function (props) {
|
|
295
|
-
return props.theme.focusColor;
|
|
296
|
-
}, function (props) {
|
|
297
|
-
return props.theme.hoverOptionBackgroundColor;
|
|
298
|
-
}, function (props) {
|
|
299
|
-
return props.theme.activeOptionBackgroundColor;
|
|
300
|
-
}, function (props) {
|
|
301
|
-
return props.theme.focusColor;
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
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) {
|
|
305
|
-
return props.disabled ? "not-allowed" : "pointer";
|
|
306
|
-
}, function (props) {
|
|
307
|
-
return props.theme.buttonFontFamily;
|
|
308
|
-
}, function (props) {
|
|
309
|
-
return props.theme.buttonFontSize;
|
|
310
|
-
}, function (props) {
|
|
311
|
-
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;
|
|
312
329
|
}, function (props) {
|
|
313
|
-
return props.
|
|
330
|
+
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
314
331
|
}, function (props) {
|
|
315
332
|
return props.theme.borderRadius;
|
|
316
333
|
}, function (props) {
|
|
@@ -319,8 +336,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
319
336
|
return props.theme.borderStyle;
|
|
320
337
|
}, function (props) {
|
|
321
338
|
return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
|
|
322
|
-
}, function (props) {
|
|
323
|
-
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
324
339
|
}, function (props) {
|
|
325
340
|
return props.theme.buttonPaddingTop;
|
|
326
341
|
}, function (props) {
|
|
@@ -334,52 +349,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
334
349
|
}, function (props) {
|
|
335
350
|
return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
|
|
336
351
|
}, function (props) {
|
|
337
|
-
return props.
|
|
338
|
-
}, function (props) {
|
|
339
|
-
return props.opened ? "0px" : props.theme.borderRadius;
|
|
352
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
340
353
|
}, function (props) {
|
|
341
|
-
return !props.disabled && "
|
|
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 ");
|
|
342
355
|
});
|
|
343
356
|
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-left: 0px;\n margin-right: 0px;\n width: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
347
|
-
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;
|
|
348
359
|
});
|
|
349
360
|
|
|
350
|
-
var
|
|
351
|
-
|
|
352
|
-
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) {
|
|
353
|
-
return props.theme.buttonIconSize;
|
|
354
|
-
}, function (props) {
|
|
355
|
-
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;
|
|
356
363
|
}, function (props) {
|
|
357
|
-
return props.
|
|
364
|
+
return props.theme.buttonFontSize;
|
|
358
365
|
}, function (props) {
|
|
359
|
-
return props.
|
|
366
|
+
return props.theme.buttonFontStyle;
|
|
360
367
|
}, function (props) {
|
|
361
|
-
return props.
|
|
368
|
+
return props.theme.buttonFontWeight;
|
|
362
369
|
});
|
|
363
370
|
|
|
364
|
-
var
|
|
365
|
-
|
|
366
|
-
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) {
|
|
367
|
-
return props.theme.optionIconSize;
|
|
368
|
-
}, function (props) {
|
|
369
|
-
return props.theme.optionIconSize;
|
|
370
|
-
}, function (props) {
|
|
371
|
-
return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
|
|
371
|
+
var DropdownTriggerIcon = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
372
|
+
return props.theme.buttonIconSize;
|
|
372
373
|
}, function (props) {
|
|
373
|
-
return props.
|
|
374
|
+
return props.theme.buttonIconSize;
|
|
374
375
|
}, function (props) {
|
|
375
|
-
return props.theme.
|
|
376
|
+
return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
|
|
376
377
|
});
|
|
377
378
|
|
|
378
|
-
var
|
|
379
|
-
return props.caretHidden ? "none" : "inline-flex";
|
|
380
|
-
}, function (props) {
|
|
381
|
-
return props.theme.caretIconSpacing;
|
|
382
|
-
}, 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) {
|
|
383
380
|
return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
|
|
384
381
|
}, function (props) {
|
|
385
382
|
return props.theme.caretIconSize;
|