@ebay/ui-core-react 5.9.4 → 5.10.0
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/ebay-menu-button/README.md +2 -2
- package/ebay-menu-button/index.d.ts +1 -1
- package/ebay-menu-button/index.d.ts.map +1 -1
- package/ebay-menu-button/menu-button.d.ts +3 -26
- package/ebay-menu-button/menu-button.d.ts.map +1 -1
- package/ebay-menu-button/menu-button.js +15 -16
- package/ebay-menu-button/types.d.ts +32 -0
- package/ebay-menu-button/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -50,12 +50,12 @@ Name | Type | Required | Description
|
|
|
50
50
|
`disabled` | Boolean | No | will disable the entire dropdown (disables the ebay-button label) if set to true
|
|
51
51
|
`variant` | String | No | will change the button style: `overflow`, `form` or `button`
|
|
52
52
|
`collapseOnSelect` | Boolean | No | Will collapse whole menu when an item is selected in menu. Typically used in type=`radio`
|
|
53
|
-
`prefixId` | String | No | The id of an external element to use as the prefix label for the menu button. Cannot be used with `prefix-label`
|
|
53
|
+
`prefixId` | String | No | The id of an external element to use as the prefix label for the menu button. Cannot be used with `prefix-label`
|
|
54
54
|
`prefixLabel` | String | No |The label to add before each selected item on the button. Cannot be used with `prefix-id` (NOT YET IMPLEMENTED)
|
|
55
55
|
`onExpand` | Function | No | Called when content is expanded
|
|
56
56
|
`onCollapse` | Function | No | Called when content is collapsed
|
|
57
57
|
`onSelect` | Function | No | props: (e: event, { index: number }), triggered on item clicked (not for type `radio`/`checkbox`)
|
|
58
|
-
`onChange` | Function | No | props: (e: event, { index: number, checked: number[], checkedValues: string[]), triggered on item `checked` change, (for type `radio`/`checkbox` only)
|
|
58
|
+
`onChange` | Function | No | props: (e: event, { index: number, checked: number[], checkedValues: string[] }), triggered on item `checked` change, (for type `radio`/`checkbox` only)
|
|
59
59
|
|
|
60
60
|
## EbayMenuButtonItem Attributes
|
|
61
61
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as EbayMenuButton
|
|
1
|
+
export { default as EbayMenuButton } from './menu-button';
|
|
2
2
|
export { default as EbayMenuButtonItem } from './menu-button-item';
|
|
3
3
|
export { default as EbayMenuButtonSeparator } from './menu-button-separator';
|
|
4
4
|
export { default as EbayMenuButtonLabel } from './menu-button-label';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpE,cAAc,SAAS,CAAA"}
|
|
@@ -1,28 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { EbayMenuButtonVariant } from './index';
|
|
5
|
-
export type EbayMenuButtonProps = {
|
|
6
|
-
a11yText?: string;
|
|
7
|
-
className?: string;
|
|
8
|
-
fixWidth?: boolean;
|
|
9
|
-
reverse?: boolean;
|
|
10
|
-
text?: string;
|
|
11
|
-
type?: EbayMenuType;
|
|
12
|
-
variant?: EbayMenuButtonVariant;
|
|
13
|
-
onCollapse?: () => void;
|
|
14
|
-
onExpand?: () => void;
|
|
15
|
-
onChange?: EbayMenuChangeEventHandler;
|
|
16
|
-
onSelect?: EbayMenuSelectEventHandler;
|
|
17
|
-
expanded?: boolean;
|
|
18
|
-
noToggleIcon?: boolean;
|
|
19
|
-
checked?: number;
|
|
20
|
-
collapseOnSelect?: boolean;
|
|
21
|
-
prefixId?: string;
|
|
22
|
-
prefixLabel?: string;
|
|
23
|
-
};
|
|
24
|
-
type MenuEvents = 'onSelect' | 'onChange';
|
|
25
|
-
type Props = Omit<EbayButtonProps, 'type' | 'variant' | 'onKeyDown'> & Omit<ComponentProps<'button'>, 'type' | MenuEvents> & Omit<ComponentProps<'a'>, MenuEvents> & EbayMenuButtonProps;
|
|
26
|
-
declare const EbayMenuButton: FC<Props>;
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { MenuButtonProps } from './index';
|
|
3
|
+
declare const EbayMenuButton: FC<MenuButtonProps>;
|
|
27
4
|
export default EbayMenuButton;
|
|
28
5
|
//# sourceMappingURL=menu-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/menu-button.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAgB,
|
|
1
|
+
{"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/menu-button.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAgB,EAAE,EAA+B,MAAM,OAAO,CAAA;AAQ5E,OAAO,EAAgF,eAAe,EAAE,MAAM,SAAS,CAAA;AAIvH,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,eAAe,CA8IvC,CAAA;AAcD,eAAe,cAAc,CAAA"}
|
|
@@ -51,15 +51,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
51
51
|
var react_1 = __importStar(require("react"));
|
|
52
52
|
var classnames_1 = __importDefault(require("classnames"));
|
|
53
53
|
var component_utils_1 = require("../common/component-utils");
|
|
54
|
-
var event_utils_1 = require("../common/event-utils");
|
|
55
|
-
var random_id_1 = require("../common/random-id");
|
|
56
54
|
var ebay_menu_1 = require("../ebay-menu");
|
|
57
55
|
var ebay_button_1 = require("../ebay-button");
|
|
58
56
|
var ebay_icon_button_1 = require("../ebay-icon-button");
|
|
59
57
|
var ebay_icon_1 = require("../ebay-icon");
|
|
60
58
|
var index_1 = require("./index");
|
|
59
|
+
var random_id_1 = require("../common/random-id");
|
|
60
|
+
var event_utils_1 = require("../common/event-utils");
|
|
61
61
|
var EbayMenuButton = function (_a) {
|
|
62
|
-
var type = _a.type, _b = _a.variant, variant = _b === void 0 ? 'button' : _b, className = _a.className, _c = _a.text, text = _c === void 0 ? '' : _c, fixWidth = _a.fixWidth, reverse = _a.reverse, defaultExpanded = _a.expanded, noToggleIcon = _a.noToggleIcon, checked = _a.checked, collapseOnSelect = _a.collapseOnSelect, a11yText = _a.a11yText, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d, _e = _a.onExpand, onExpand = _e === void 0 ? function () { } : _e, _f = _a.onCollapse, onCollapse = _f === void 0 ? function () { } : _f, _g = _a.onChange, onChange = _g === void 0 ? function () { } : _g, _h = _a.onSelect, onSelect = _h === void 0 ? function () { } : _h, children = _a.children, rest = __rest(_a, ["type", "variant", "className", "text", "fixWidth", "reverse", "expanded", "noToggleIcon", "checked", "collapseOnSelect", "a11yText", "onClick", "onExpand", "onCollapse", "onChange", "onSelect", "children"]);
|
|
62
|
+
var type = _a.type, _b = _a.variant, variant = _b === void 0 ? 'button' : _b, className = _a.className, _c = _a.text, text = _c === void 0 ? '' : _c, fixWidth = _a.fixWidth, reverse = _a.reverse, defaultExpanded = _a.expanded, noToggleIcon = _a.noToggleIcon, checked = _a.checked, collapseOnSelect = _a.collapseOnSelect, a11yText = _a.a11yText, prefixId = _a.prefixId, prefixLabel = _a.prefixLabel, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d, _e = _a.onExpand, onExpand = _e === void 0 ? function () { } : _e, _f = _a.onCollapse, onCollapse = _f === void 0 ? function () { } : _f, _g = _a.onChange, onChange = _g === void 0 ? function () { } : _g, _h = _a.onSelect, onSelect = _h === void 0 ? function () { } : _h, children = _a.children, rest = __rest(_a, ["type", "variant", "className", "text", "fixWidth", "reverse", "expanded", "noToggleIcon", "checked", "collapseOnSelect", "a11yText", "prefixId", "prefixLabel", "onClick", "onExpand", "onCollapse", "onChange", "onSelect", "children"]);
|
|
63
63
|
var _j = (0, react_1.useState)(defaultExpanded), expanded = _j[0], setExpanded = _j[1];
|
|
64
64
|
var _k = (0, react_1.useState)(), menuId = _k[0], setMenuId = _k[1];
|
|
65
65
|
var buttonRef = (0, react_1.useRef)(null);
|
|
@@ -69,8 +69,7 @@ var EbayMenuButton = function (_a) {
|
|
|
69
69
|
var _l = (0, react_1.useState)(defaultIndexes), checkedIndexes = _l[0], setCheckedIndexes = _l[1];
|
|
70
70
|
var menuButtonLabel = (0, component_utils_1.findComponent)(children, index_1.EbayMenuButtonLabel);
|
|
71
71
|
var icon = (0, component_utils_1.findComponent)(children, ebay_icon_1.EbayIcon);
|
|
72
|
-
var
|
|
73
|
-
var label = labelWithIcon(menuButtonLabel || textLabel, icon);
|
|
72
|
+
var label = labelWithPrefixAndIcon({ text: text, prefixId: prefixId, prefixLabel: prefixLabel, menuButtonLabel: menuButtonLabel, icon: icon });
|
|
74
73
|
var wrapperClasses = (0, classnames_1.default)('menu-button', className);
|
|
75
74
|
var menuClasses = (0, classnames_1.default)('menu-button__menu', {
|
|
76
75
|
'menu-button__menu--fix-width': fixWidth,
|
|
@@ -109,7 +108,7 @@ var EbayMenuButton = function (_a) {
|
|
|
109
108
|
(_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
110
109
|
});
|
|
111
110
|
};
|
|
112
|
-
var buttonProps = __assign({ ref: buttonRef, className: 'menu-button__button', 'aria-expanded': !!expanded, 'aria-haspopup': true, 'aria-label': a11yText, 'aria-controls': menuId, onClick: function (e) {
|
|
111
|
+
var buttonProps = __assign({ ref: buttonRef, className: 'menu-button__button', 'aria-expanded': !!expanded, 'aria-haspopup': true, 'aria-label': a11yText, 'aria-controls': menuId, 'aria-labelledby': prefixId, onClick: function (e) {
|
|
113
112
|
setExpanded(!expanded);
|
|
114
113
|
onClick(e);
|
|
115
114
|
} }, rest);
|
|
@@ -133,15 +132,15 @@ var EbayMenuButton = function (_a) {
|
|
|
133
132
|
return (0, react_1.cloneElement)(item, __assign(__assign({}, item.props), { className: (0, classnames_1.default)(item.props.className, 'menu-button__item'), key: i, checked: checkedIndexes[i] }));
|
|
134
133
|
}))));
|
|
135
134
|
};
|
|
136
|
-
function
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
135
|
+
function labelWithPrefixAndIcon(_a) {
|
|
136
|
+
var text = _a.text, prefixId = _a.prefixId, prefixLabel = _a.prefixLabel, menuButtonLabel = _a.menuButtonLabel, icon = _a.icon;
|
|
137
|
+
var textLabelElement = text.length ? react_1.default.createElement("span", null, text) : null;
|
|
138
|
+
var prefixLabelElement = !prefixId && prefixLabel && [
|
|
139
|
+
react_1.default.createElement("span", { className: "menu-button-prefix-label" }, prefixLabel),
|
|
140
|
+
react_1.default.createElement(react_1.default.Fragment, null, "\u00A0")
|
|
141
|
+
];
|
|
142
|
+
var labelWithPrefix = [prefixLabelElement, menuButtonLabel || textLabelElement];
|
|
143
|
+
var labelArray = [icon, labelWithPrefix].flat().filter(Boolean);
|
|
144
|
+
return labelArray.length ? labelArray : null;
|
|
146
145
|
}
|
|
147
146
|
exports.default = EbayMenuButton;
|
|
@@ -1,2 +1,34 @@
|
|
|
1
|
+
import { EbayMenuChangeEventHandler, EbayMenuSelectEventHandler, EbayMenuType } from '../ebay-menu';
|
|
2
|
+
import { EbayButtonProps } from '../ebay-button';
|
|
3
|
+
import { ComponentProps, ReactElement } from 'react';
|
|
1
4
|
export type EbayMenuButtonVariant = 'overflow' | 'form' | 'button';
|
|
5
|
+
export type EbayMenuButtonProps = {
|
|
6
|
+
a11yText?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
fixWidth?: boolean;
|
|
9
|
+
reverse?: boolean;
|
|
10
|
+
text?: string;
|
|
11
|
+
type?: EbayMenuType;
|
|
12
|
+
variant?: EbayMenuButtonVariant;
|
|
13
|
+
onCollapse?: () => void;
|
|
14
|
+
onExpand?: () => void;
|
|
15
|
+
onChange?: EbayMenuChangeEventHandler;
|
|
16
|
+
onSelect?: EbayMenuSelectEventHandler;
|
|
17
|
+
expanded?: boolean;
|
|
18
|
+
noToggleIcon?: boolean;
|
|
19
|
+
checked?: number;
|
|
20
|
+
collapseOnSelect?: boolean;
|
|
21
|
+
prefixId?: string;
|
|
22
|
+
prefixLabel?: string;
|
|
23
|
+
};
|
|
24
|
+
type MenuEvents = 'onSelect' | 'onChange';
|
|
25
|
+
export type MenuButtonProps = Omit<EbayButtonProps, 'type' | 'variant' | 'onKeyDown'> & Omit<ComponentProps<'button'>, 'type' | MenuEvents> & Omit<ComponentProps<'a'>, MenuEvents> & EbayMenuButtonProps;
|
|
26
|
+
export type LabelProps = {
|
|
27
|
+
text?: string;
|
|
28
|
+
prefixId?: string;
|
|
29
|
+
prefixLabel?: string;
|
|
30
|
+
menuButtonLabel?: ReactElement;
|
|
31
|
+
icon?: JSX.Element;
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
2
34
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ebay-menu-button/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpD,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA;AAElE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,GACnF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,GACnD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GACrC,mBAAmB,CAAA;AAErB,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACpB,CAAA"}
|