@ebay/ui-core-react 1.4.0 → 1.4.3
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-dialog-base/dialog-base-with-state.d.ts.map +1 -1
- package/ebay-dialog-base/dialog-base-with-state.js +1 -6
- package/ebay-icon/icon.d.ts.map +1 -1
- package/ebay-icon/icon.js +11 -12
- package/ebay-tabs/tabs.d.ts +2 -17
- package/ebay-tabs/tabs.d.ts.map +1 -1
- package/ebay-tabs/tabs.js +57 -90
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-base-with-state.d.ts","sourceRoot":"","sources":["../../src/ebay-dialog-base/dialog-base-with-state.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,YAAY,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"dialog-base-with-state.d.ts","sourceRoot":"","sources":["../../src/ebay-dialog-base/dialog-base-with-state.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,YAAY,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAc,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAGrE,eAAO,MAAM,mBAAmB,mDAM7B,eAAe,CAAC,WAAW,CAAC,KAAG,YA+BjC,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -40,13 +40,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
40
40
|
}
|
|
41
41
|
return t;
|
|
42
42
|
};
|
|
43
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
|
-
};
|
|
46
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
44
|
exports.DialogBaseWithState = void 0;
|
|
48
45
|
var react_1 = __importStar(require("react"));
|
|
49
|
-
var react_focus_lock_1 = __importDefault(require("react-focus-lock"));
|
|
50
46
|
var react_remove_scroll_1 = require("react-remove-scroll");
|
|
51
47
|
var dialogBase_1 = require("./components/dialogBase");
|
|
52
48
|
var index_1 = require("./index");
|
|
@@ -61,8 +57,7 @@ exports.DialogBaseWithState = function (_a) {
|
|
|
61
57
|
return ![index_1.EbayDialogHeader, index_1.EbayDialogFooter, index_1.EbayDialogCloseButton].some(function (c) { return c === child.type; });
|
|
62
58
|
});
|
|
63
59
|
var dialogBase = (react_1.default.createElement(dialogBase_1.DialogBase, __assign({}, rest, { open: open, isModal: shouldRenderModal, header: header, footer: footer, closeButton: closeButton, animated: animated }), content));
|
|
64
|
-
var renderOverLay = function () { return shouldRenderModal ? (react_1.default.createElement(
|
|
65
|
-
react_1.default.createElement(react_remove_scroll_1.RemoveScroll, { enabled: open }, dialogBase))) : dialogBase; };
|
|
60
|
+
var renderOverLay = function () { return shouldRenderModal ? (react_1.default.createElement(react_remove_scroll_1.RemoveScroll, { enabled: open }, dialogBase)) : dialogBase; };
|
|
66
61
|
return animated || open ? renderOverLay() : null;
|
|
67
62
|
};
|
|
68
63
|
exports.default = exports.DialogBaseWithState;
|
package/ebay-icon/icon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/ebay-icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,GAAG,EAAE,QAAQ,EAAuB,MAAM,OAAO,CAAA;AAIrE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/ebay-icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,GAAG,EAAE,QAAQ,EAAuB,MAAM,OAAO,CAAA;AAIrE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAQ9B,oBAAY,WAAW,GAAG,OAAO,CAAC;AAElC,oBAAY,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAE,eAAe,GAAG,MAAM,CAAA;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CACrC,CAAC;;AAoEF,wBAAuC"}
|
package/ebay-icon/icon.js
CHANGED
|
@@ -48,8 +48,10 @@ var react_1 = __importStar(require("react"));
|
|
|
48
48
|
var classnames_1 = __importDefault(require("classnames"));
|
|
49
49
|
var component_utils_1 = require("../common/component-utils");
|
|
50
50
|
var random_id_1 = require("../common/random-id");
|
|
51
|
-
var
|
|
52
|
-
|
|
51
|
+
var iconPixelSizes = {
|
|
52
|
+
small: 16,
|
|
53
|
+
large: 64
|
|
54
|
+
};
|
|
53
55
|
var DEFAULT_ICON_SIZE = 24;
|
|
54
56
|
var EbayIcon = function (_a) {
|
|
55
57
|
var _b;
|
|
@@ -58,29 +60,26 @@ var EbayIcon = function (_a) {
|
|
|
58
60
|
react_1.useEffect(function () {
|
|
59
61
|
setRandomId(random_id_1.randomId());
|
|
60
62
|
}, []);
|
|
61
|
-
var
|
|
63
|
+
var withAriaLabel = a11yVariant === 'label';
|
|
62
64
|
var a11yTextId = a11yText && "icon-title-" + rId;
|
|
63
65
|
var a11yProps = a11yText ? {
|
|
64
|
-
'aria-labelledby':
|
|
65
|
-
'aria-label':
|
|
66
|
+
'aria-labelledby': withAriaLabel ? undefined : a11yTextId,
|
|
67
|
+
'aria-label': withAriaLabel ? a11yText : undefined,
|
|
66
68
|
role: 'img'
|
|
67
69
|
} : {
|
|
68
70
|
'aria-hidden': true
|
|
69
71
|
};
|
|
70
|
-
var iconSize = getIconSize(name) + "px";
|
|
71
72
|
var prefixSvg = type === 'icon' ? 'icon-' : '';
|
|
72
73
|
var kebabName = kebabCased(name);
|
|
74
|
+
var iconSize = getIconPixelSize(kebabName) + "px";
|
|
73
75
|
var className = classnames_1.default(extraClass, (_b = {}, _b[getIconClass(type, kebabName)] = !noSkinClasses, _b));
|
|
74
76
|
return (react_1.default.createElement("svg", __assign({ height: iconSize, width: iconSize }, rest, { className: className, xmlns: "http://www.w3.org/2000/svg", focusable: false, ref: forwardedRef }, a11yProps),
|
|
75
|
-
a11yText && !
|
|
77
|
+
a11yText && !withAriaLabel && react_1.default.createElement("title", { id: a11yTextId }, a11yText),
|
|
76
78
|
react_1.default.createElement("use", { xlinkHref: "#" + prefixSvg + kebabName })));
|
|
77
79
|
};
|
|
78
|
-
function
|
|
80
|
+
function getIconPixelSize(iconName) {
|
|
79
81
|
var sizeCandidate = iconName.split('-').slice(-1)[0];
|
|
80
|
-
return
|
|
81
|
-
small: SMALL_ICON_SIZE,
|
|
82
|
-
large: LARGE_ICON_SIZE
|
|
83
|
-
}[sizeCandidate] || DEFAULT_ICON_SIZE;
|
|
82
|
+
return iconPixelSizes[sizeCandidate] || DEFAULT_ICON_SIZE;
|
|
84
83
|
}
|
|
85
84
|
function kebabCased(str) {
|
|
86
85
|
return str.replace(/([A-Z])/g, function (s, c) { return "-" + c.toLowerCase(); });
|
package/ebay-tabs/tabs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentProps, FC } from 'react';
|
|
2
2
|
import { Activation, Size } from './types';
|
|
3
3
|
declare type TabsProps = ComponentProps<'div'> & {
|
|
4
4
|
index?: number;
|
|
@@ -8,21 +8,6 @@ declare type TabsProps = ComponentProps<'div'> & {
|
|
|
8
8
|
activation?: Activation;
|
|
9
9
|
onTabSelect?: (index: number) => void;
|
|
10
10
|
};
|
|
11
|
-
declare
|
|
12
|
-
selectedIndex: number;
|
|
13
|
-
focusedIndex: number;
|
|
14
|
-
};
|
|
15
|
-
declare class Tabs extends Component<TabsProps, State> {
|
|
16
|
-
headings: HTMLElement[];
|
|
17
|
-
constructor(props: TabsProps);
|
|
18
|
-
componentDidUpdate(prevProps: TabsProps): void;
|
|
19
|
-
onTabSelect(i: number): void;
|
|
20
|
-
/**
|
|
21
|
-
* Handle a11y for heading
|
|
22
|
-
* https://ebay.gitbooks.io/mindpatterns/content/disclosure/tabs.html
|
|
23
|
-
*/
|
|
24
|
-
onTabKeyDown(ev: KeyboardEvent, index: number): void;
|
|
25
|
-
render(): ReactElement;
|
|
26
|
-
}
|
|
11
|
+
declare const Tabs: FC<TabsProps>;
|
|
27
12
|
export default Tabs;
|
|
28
13
|
//# sourceMappingURL=tabs.d.ts.map
|
package/ebay-tabs/tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ebay-tabs/tabs.tsx"],"names":[],"mappings":"AAAA,OAAc,
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ebay-tabs/tabs.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAgB,cAAc,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAA;AAIpF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAI1C,aAAK,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAE9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CA0GvB,CAAA;AAED,eAAe,IAAI,CAAA"}
|
package/ebay-tabs/tabs.js
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
3
|
if (k2 === undefined) k2 = k;
|
|
17
4
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -41,99 +28,79 @@ var tab_1 = __importDefault(require("./tab"));
|
|
|
41
28
|
var tab_panel_1 = __importDefault(require("./tab-panel"));
|
|
42
29
|
var component_utils_1 = require("../common/component-utils");
|
|
43
30
|
var classnames_1 = __importDefault(require("classnames"));
|
|
44
|
-
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
selectedIndex: index,
|
|
54
|
-
focusedIndex: index
|
|
55
|
-
};
|
|
56
|
-
return _this;
|
|
57
|
-
}
|
|
58
|
-
Tabs.prototype.componentDidUpdate = function (prevProps) {
|
|
59
|
-
var _a;
|
|
60
|
-
if (this.props.index !== prevProps.index) {
|
|
61
|
-
this.onTabSelect(this.props.index);
|
|
62
|
-
}
|
|
63
|
-
(_a = this.headings[this.state.focusedIndex]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
64
|
-
};
|
|
65
|
-
Tabs.prototype.onTabSelect = function (i) {
|
|
66
|
-
if (this.props.onTabSelect) {
|
|
67
|
-
this.props.onTabSelect(i);
|
|
68
|
-
}
|
|
69
|
-
this.setState({
|
|
70
|
-
selectedIndex: i,
|
|
71
|
-
focusedIndex: i
|
|
72
|
-
});
|
|
31
|
+
var Tabs = function (_a) {
|
|
32
|
+
var id = _a.id, className = _a.className, _b = _a.index, index = _b === void 0 ? 0 : _b, _c = _a.size, size = _c === void 0 ? 'medium' : _c, _d = _a.activation, activation = _d === void 0 ? 'auto' : _d, _e = _a.onTabSelect, onTabSelect = _e === void 0 ? function () { } : _e, children = _a.children;
|
|
33
|
+
var headings = [];
|
|
34
|
+
var _f = react_1.useState(index), selectedIndex = _f[0], setSelectedIndex = _f[1];
|
|
35
|
+
var _g = react_1.useState(index), focusedIndex = _g[0], setFocusedIndex = _g[1];
|
|
36
|
+
var onSelect = function (i) {
|
|
37
|
+
onTabSelect(i);
|
|
38
|
+
setSelectedIndex(i);
|
|
39
|
+
setFocusedIndex(i);
|
|
73
40
|
};
|
|
74
41
|
/**
|
|
75
42
|
* Handle a11y for heading
|
|
76
43
|
* https://ebay.gitbooks.io/mindpatterns/content/disclosure/tabs.html
|
|
77
44
|
*/
|
|
78
|
-
|
|
79
|
-
var _this = this;
|
|
80
|
-
var _a = this.props, _b = _a.activation, activation = _b === void 0 ? 'auto' : _b, children = _a.children;
|
|
45
|
+
var onKeyDown = function (ev, i) {
|
|
81
46
|
event_utils_1.handleActionKeydown(ev, function () {
|
|
82
47
|
ev.preventDefault();
|
|
83
48
|
if (activation === 'manual') {
|
|
84
|
-
|
|
49
|
+
onSelect(i);
|
|
85
50
|
}
|
|
86
51
|
});
|
|
87
52
|
event_utils_1.handleLeftRightArrowsKeydown(ev, function () {
|
|
88
53
|
ev.preventDefault();
|
|
89
54
|
var len = component_utils_1.filterByType(children, tab_1.default).length;
|
|
90
55
|
var direction = ['Left', 'ArrowLeft'].includes(ev.key) ? -1 : 1;
|
|
91
|
-
var nextIndex = (
|
|
92
|
-
|
|
56
|
+
var nextIndex = (focusedIndex + len + direction) % len;
|
|
57
|
+
setFocusedIndex(nextIndex);
|
|
93
58
|
if (activation !== 'manual') {
|
|
94
|
-
|
|
59
|
+
onSelect(nextIndex);
|
|
95
60
|
}
|
|
96
61
|
});
|
|
97
62
|
};
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
63
|
+
react_1.useEffect(function () {
|
|
64
|
+
onSelect(index);
|
|
65
|
+
}, [index]);
|
|
66
|
+
react_1.useEffect(function () {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = headings[focusedIndex]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
69
|
+
}, [focusedIndex]);
|
|
70
|
+
var isFake = component_utils_1.filterBy(children, function (_a) {
|
|
71
|
+
var type = _a.type, props = _a.props;
|
|
72
|
+
return type === tab_1.default && props.href;
|
|
73
|
+
}).length > 0;
|
|
74
|
+
var isLarge = size === 'large';
|
|
75
|
+
var tabHeadings = component_utils_1.filterByType(children, tab_1.default).map(function (item, i) {
|
|
76
|
+
var _a = item.props, href = _a.href, content = _a.children;
|
|
77
|
+
var itemProps = {
|
|
78
|
+
refCallback: function (ref) { headings[i] = ref; },
|
|
79
|
+
index: i,
|
|
80
|
+
parentId: id,
|
|
81
|
+
selected: selectedIndex === i,
|
|
82
|
+
href: href,
|
|
83
|
+
children: content,
|
|
84
|
+
onClick: function () { onSelect(i); },
|
|
85
|
+
onKeyDown: function (e) { onKeyDown(e, i); }
|
|
86
|
+
};
|
|
87
|
+
return react_1.cloneElement(item, itemProps);
|
|
88
|
+
});
|
|
89
|
+
var tabPanels = component_utils_1.filterByType(children, tab_panel_1.default).map(function (item, i) {
|
|
90
|
+
var content = item.props.children;
|
|
91
|
+
var itemProps = {
|
|
92
|
+
index: i,
|
|
93
|
+
parentId: id,
|
|
94
|
+
selected: selectedIndex === i,
|
|
95
|
+
fake: isFake,
|
|
96
|
+
children: content
|
|
97
|
+
};
|
|
98
|
+
return react_1.cloneElement(item, itemProps);
|
|
99
|
+
});
|
|
100
|
+
return isFake ? (react_1.default.createElement("div", { id: id, className: classnames_1.default(className, 'fake-tabs') },
|
|
101
|
+
react_1.default.createElement("ul", { className: classnames_1.default('fake-tabs__items', { 'fake-tabs__items--large': isLarge }) }, tabHeadings),
|
|
102
|
+
react_1.default.createElement("div", { className: "fake-tabs__content" }, tabPanels))) : (react_1.default.createElement("div", { id: id, className: classnames_1.default(className, 'tabs') },
|
|
103
|
+
react_1.default.createElement("div", { className: classnames_1.default('tabs__items', { 'tabs__items--large': isLarge }), role: "tablist" }, tabHeadings),
|
|
104
|
+
react_1.default.createElement("div", { className: "tabs__content" }, tabPanels)));
|
|
105
|
+
};
|
|
139
106
|
exports.default = Tabs;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ebay/ui-core-react",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "Skin components build off React",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -49,7 +49,6 @@
|
|
|
49
49
|
"classnames": "^2.2.6",
|
|
50
50
|
"makeup-keyboard-trap": "^0.4.1",
|
|
51
51
|
"makeup-screenreader-trap": "^0.4.1",
|
|
52
|
-
"react-focus-lock": "^2.9.1",
|
|
53
52
|
"react-remove-scroll": "^2.2.0"
|
|
54
53
|
},
|
|
55
54
|
"devDependencies": {
|