@dxc-technology/halstack-react 0.0.0-ebf4fe2 → 0.0.0-ec06b53
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.js +7 -8
- 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 +1 -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.stories.tsx +63 -63
- 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/{inline → 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/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +92 -99
- package/checkbox/Checkbox.stories.tsx +79 -59
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +6 -2
- package/chip/types.d.ts +1 -1
- package/common/variables.js +75 -33
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +77 -222
- package/date-input/DateInput.stories.tsx +30 -17
- package/date-input/DateInput.test.js +411 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +160 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +115 -0
- package/date-input/types.d.ts +53 -0
- 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 +247 -247
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +504 -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.d.ts +2 -2
- package/file-input/FileInput.js +177 -219
- package/file-input/FileInput.stories.tsx +38 -10
- package/file-input/FileInput.test.js +53 -12
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +38 -63
- package/file-input/types.d.ts +17 -0
- 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/{list → flex}/types.js +0 -0
- package/footer/Footer.stories.tsx +8 -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.stories.tsx +4 -4
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +36 -64
- package/layout/ApplicationLayout.stories.tsx +80 -44
- package/layout/types.d.ts +17 -27
- package/link/Link.js +2 -2
- package/link/Link.stories.tsx +13 -6
- package/link/types.d.ts +1 -1
- package/main.d.ts +5 -9
- package/main.js +27 -59
- package/number-input/NumberInput.test.js +43 -7
- package/package.json +16 -20
- package/paginator/Paginator.js +2 -2
- package/paginator/Paginator.test.js +1 -1
- 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 +18 -17
- 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 +23 -22
- package/radio-group/RadioGroup.stories.tsx +1 -0
- package/radio-group/RadioGroup.test.js +123 -96
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +48 -107
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +23 -41
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +25 -2
- package/select/Select.js +17 -32
- package/select/Select.stories.tsx +6 -5
- package/select/Select.test.js +321 -250
- package/select/types.d.ts +2 -4
- 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.d.ts +2 -2
- package/slider/Slider.js +120 -95
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +6 -2
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +135 -68
- package/switch/Switch.stories.tsx +8 -30
- package/switch/Switch.test.js +144 -17
- package/switch/types.d.ts +6 -2
- package/table/Table.js +1 -1
- package/table/Table.test.js +1 -1
- 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 +189 -282
- package/text-input/TextInput.stories.tsx +189 -182
- package/text-input/TextInput.test.js +639 -727
- 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/{row → 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/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -60
- package/inline/Inline.stories.tsx +0 -305
- package/inline/types.d.ts +0 -36
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -89
- 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 -4
- package/stack/Stack.js +0 -52
- package/stack/Stack.stories.tsx +0 -225
- package/stack/types.d.ts +0 -28
- package/stack/types.js +0 -5
- 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,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"));
|
|
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
|
+
|
|
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,173 +96,209 @@ 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
|
-
|
|
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
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
127
|
+
var triggerRef = (0, _react.useRef)(null);
|
|
128
|
+
var menuRef = (0, _react.useRef)(null);
|
|
129
|
+
var width = useWidth(triggerRef.current);
|
|
75
130
|
|
|
76
|
-
var
|
|
77
|
-
|
|
131
|
+
var handleOnOpenMenu = function handleOnOpenMenu() {
|
|
132
|
+
changeIsOpen(true);
|
|
78
133
|
};
|
|
79
134
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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]);
|
|
85
147
|
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
}));
|
|
148
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
149
|
+
!event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
|
|
124
150
|
};
|
|
125
151
|
|
|
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
|
-
}));
|
|
152
|
+
var handleTriggerOnClick = function handleTriggerOnClick() {
|
|
153
|
+
changeIsOpen(function (isOpen) {
|
|
154
|
+
return !isOpen;
|
|
155
|
+
});
|
|
139
156
|
};
|
|
140
157
|
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
145
176
|
|
|
177
|
+
var setPreviousIndexFocus = function setPreviousIndexFocus() {
|
|
178
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
179
|
+
var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
|
|
180
|
+
return index;
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
var setNextIndexFocus = function setNextIndexFocus() {
|
|
185
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
186
|
+
var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
|
|
187
|
+
return index;
|
|
188
|
+
});
|
|
189
|
+
};
|
|
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]);
|
|
146
247
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
147
248
|
theme: colorsTheme.dropdown
|
|
148
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
249
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
|
|
250
|
+
onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
|
|
251
|
+
onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
|
|
252
|
+
onBlur: !disabled ? handleOnBlur : undefined,
|
|
149
253
|
margin: margin,
|
|
150
|
-
size: size
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
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
|
|
157
260
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
|
|
158
|
-
opened:
|
|
159
|
-
onClick:
|
|
261
|
+
opened: isOpen,
|
|
262
|
+
onClick: handleTriggerOnClick,
|
|
263
|
+
onKeyDown: handleTriggerOnKeyDown,
|
|
264
|
+
onBlur: function onBlur(event) {
|
|
265
|
+
event.stopPropagation();
|
|
266
|
+
},
|
|
160
267
|
disabled: disabled,
|
|
161
268
|
label: label,
|
|
162
|
-
caretHidden: caretHidden,
|
|
163
269
|
margin: margin,
|
|
164
270
|
size: size,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
271
|
+
id: triggerId,
|
|
272
|
+
"aria-haspopup": "true",
|
|
273
|
+
"aria-controls": menuId,
|
|
274
|
+
"aria-expanded": isOpen ? true : undefined,
|
|
275
|
+
tabIndex: tabIndex,
|
|
276
|
+
ref: triggerRef
|
|
277
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
|
|
170
278
|
label: label,
|
|
171
279
|
iconPosition: iconPosition,
|
|
172
|
-
disabled: disabled
|
|
173
|
-
|
|
280
|
+
disabled: disabled,
|
|
281
|
+
role: typeof icon === "string" ? undefined : "img"
|
|
282
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
174
283
|
src: icon
|
|
175
|
-
}) : icon), iconPosition === "before" &&
|
|
176
|
-
caretHidden: caretHidden,
|
|
284
|
+
}) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
|
|
177
285
|
disabled: disabled
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
286
|
+
}, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
287
|
+
sideOffset: 1,
|
|
288
|
+
asChild: true
|
|
289
|
+
}, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
|
|
290
|
+
id: menuId,
|
|
291
|
+
dropdownTriggerId: triggerId,
|
|
292
|
+
options: options,
|
|
293
|
+
iconsPosition: optionsIconPosition,
|
|
294
|
+
visualFocusIndex: visualFocusIndex,
|
|
295
|
+
menuItemOnClick: handleMenuItemOnClick,
|
|
296
|
+
onKeyDown: handleMenuOnKeyDown,
|
|
297
|
+
styles: {
|
|
298
|
+
width: width
|
|
190
299
|
},
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
}))));
|
|
300
|
+
ref: menuRef
|
|
301
|
+
})))));
|
|
224
302
|
};
|
|
225
303
|
|
|
226
304
|
var sizes = {
|
|
@@ -228,18 +306,14 @@ var sizes = {
|
|
|
228
306
|
medium: "240px",
|
|
229
307
|
large: "480px",
|
|
230
308
|
fillParent: "100%",
|
|
231
|
-
fitContent: "
|
|
309
|
+
fitContent: "fit-content"
|
|
232
310
|
};
|
|
233
311
|
|
|
234
312
|
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];
|
|
313
|
+
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
240
314
|
};
|
|
241
315
|
|
|
242
|
-
var
|
|
316
|
+
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
317
|
return calculateWidth(props.margin, props.size);
|
|
244
318
|
}, function (props) {
|
|
245
319
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -253,64 +327,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
|
|
|
253
327
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
254
328
|
});
|
|
255
329
|
|
|
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;
|
|
330
|
+
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) {
|
|
331
|
+
return props.theme.caretIconSpacing;
|
|
312
332
|
}, function (props) {
|
|
313
|
-
return props.
|
|
333
|
+
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
314
334
|
}, function (props) {
|
|
315
335
|
return props.theme.borderRadius;
|
|
316
336
|
}, function (props) {
|
|
@@ -319,8 +339,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
319
339
|
return props.theme.borderStyle;
|
|
320
340
|
}, function (props) {
|
|
321
341
|
return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
|
|
322
|
-
}, function (props) {
|
|
323
|
-
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
324
342
|
}, function (props) {
|
|
325
343
|
return props.theme.buttonPaddingTop;
|
|
326
344
|
}, function (props) {
|
|
@@ -334,52 +352,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
334
352
|
}, function (props) {
|
|
335
353
|
return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
|
|
336
354
|
}, function (props) {
|
|
337
|
-
return props.
|
|
338
|
-
}, function (props) {
|
|
339
|
-
return props.opened ? "0px" : props.theme.borderRadius;
|
|
355
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
340
356
|
}, function (props) {
|
|
341
|
-
return !props.disabled && "
|
|
357
|
+
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
358
|
});
|
|
343
359
|
|
|
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)";
|
|
360
|
+
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) {
|
|
361
|
+
return props.theme.buttonIconSpacing;
|
|
348
362
|
});
|
|
349
363
|
|
|
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;
|
|
364
|
+
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) {
|
|
365
|
+
return props.theme.buttonFontFamily;
|
|
356
366
|
}, function (props) {
|
|
357
|
-
return props.
|
|
367
|
+
return props.theme.buttonFontSize;
|
|
358
368
|
}, function (props) {
|
|
359
|
-
return props.
|
|
369
|
+
return props.theme.buttonFontStyle;
|
|
360
370
|
}, function (props) {
|
|
361
|
-
return props.
|
|
371
|
+
return props.theme.buttonFontWeight;
|
|
362
372
|
});
|
|
363
373
|
|
|
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";
|
|
374
|
+
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) {
|
|
375
|
+
return props.theme.buttonIconSize;
|
|
372
376
|
}, function (props) {
|
|
373
|
-
return props.
|
|
377
|
+
return props.theme.buttonIconSize;
|
|
374
378
|
}, function (props) {
|
|
375
|
-
return props.theme.
|
|
379
|
+
return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
|
|
376
380
|
});
|
|
377
381
|
|
|
378
|
-
var
|
|
379
|
-
return props.caretHidden ? "none" : "inline-flex";
|
|
380
|
-
}, function (props) {
|
|
381
|
-
return props.theme.caretIconSpacing;
|
|
382
|
-
}, function (props) {
|
|
382
|
+
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
383
|
return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
|
|
384
384
|
}, function (props) {
|
|
385
385
|
return props.theme.caretIconSize;
|