@semcore/tab-panel 16.0.0-prerelease.4 → 16.0.0-prerelease.7
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/lib/esm/TabPanel.mjs +112 -87
- package/lib/esm/index.mjs +3 -3
- package/package.json +3 -3
package/lib/esm/TabPanel.mjs
CHANGED
|
@@ -1,122 +1,147 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { sstyled
|
|
9
|
-
import
|
|
10
|
-
import { Box
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
var
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
6
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
8
|
+
import { sstyled, createComponent, assignProps, Component } from "@semcore/core";
|
|
9
|
+
import React from "react";
|
|
10
|
+
import { Box } from "@semcore/flex-box";
|
|
11
|
+
import addonTextChildren from "@semcore/core/lib/utils/addonTextChildren";
|
|
12
|
+
import a11yEnhance from "@semcore/core/lib/utils/enhances/a11yEnhance";
|
|
13
|
+
var style = (
|
|
14
14
|
/*__reshadow_css_start__*/
|
|
15
|
-
(
|
|
15
|
+
(sstyled.insert(
|
|
16
16
|
/*__inner_css_start__*/
|
|
17
17
|
'.___STabPanel_1uh8o_gg_{display:flex;width:100%;max-width:100%}.___STabPanel_1uh8o_gg_::after{content:"";position:relative;bottom:-1px;flex:1;border-top:1px solid transparent;border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabPanelItem_1uh8o_gg_{position:relative;bottom:-1px;display:inline-flex;min-width:0;height:32px;color:var(--intergalactic-text-secondary, #6c6e79);border:1px solid transparent;border-bottom:none;border-radius:var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0 0;background:0 0;align-items:center;justify-content:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0 0 1px;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer}.___STabPanelItem_1uh8o_gg_ .___SText_1uh8o_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);font-weight:var(--intergalactic-medium, 500)}.___STabPanelItem_1uh8o_gg_::-moz-focus-inner{border:0;padding:0}.___STabPanelItem_1uh8o_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabPanelItem_1uh8o_gg_:hover{-webkit-text-decoration:none;text-decoration:none;color:var(--intergalactic-text-primary, #191b23)}}.___STabPanelItem_1uh8o_gg_::after{content:"";position:absolute;left:-1px;bottom:0;width:calc(100% + 2px);border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabPanelItem_1uh8o_gg_.__disabled_1uh8o_gg_{cursor:default;pointer-events:none}.___STabPanelItem_1uh8o_gg_.__disabled_1uh8o_gg_ .___SAddon_1uh8o_gg_,.___STabPanelItem_1uh8o_gg_.__disabled_1uh8o_gg_ .___SText_1uh8o_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___STabPanelItem_1uh8o_gg_.__selected_1uh8o_gg_{color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-border-primary, #c4c7cf);flex-shrink:0}@media (hover:hover){.___STabPanelItem_1uh8o_gg_.__selected_1uh8o_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___STabPanelItem_1uh8o_gg_.__selected_1uh8o_gg_::after{border-bottom:none}.___SText_1uh8o_gg_{display:inline-block;margin:auto var(--intergalactic-spacing-2x, 8px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_1uh8o_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_1uh8o_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SAddon_1uh8o_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SAddon_1uh8o_gg_:only-child{margin-right:var(--intergalactic-spacing-2x, 8px);margin-left:var(--intergalactic-spacing-2x, 8px)}',
|
|
18
18
|
"1uh8o_gg_"
|
|
19
19
|
), {
|
|
20
|
-
__SText: "___SText_1uh8o_gg_",
|
|
21
|
-
__SAddon: "___SAddon_1uh8o_gg_",
|
|
22
|
-
__STabPanel: "___STabPanel_1uh8o_gg_",
|
|
23
|
-
__STabPanelItem: "___STabPanelItem_1uh8o_gg_",
|
|
24
|
-
_disabled: "__disabled_1uh8o_gg_",
|
|
25
|
-
_selected: "__selected_1uh8o_gg_"
|
|
20
|
+
"__SText": "___SText_1uh8o_gg_",
|
|
21
|
+
"__SAddon": "___SAddon_1uh8o_gg_",
|
|
22
|
+
"__STabPanel": "___STabPanel_1uh8o_gg_",
|
|
23
|
+
"__STabPanelItem": "___STabPanelItem_1uh8o_gg_",
|
|
24
|
+
"_disabled": "__disabled_1uh8o_gg_",
|
|
25
|
+
"_selected": "__selected_1uh8o_gg_"
|
|
26
26
|
})
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
);
|
|
28
|
+
var optionsA11yEnhance = {
|
|
29
|
+
onNeighborChange: function onNeighborChange(neighborElement, props) {
|
|
30
|
+
if (neighborElement) {
|
|
31
|
+
neighborElement.focus();
|
|
32
|
+
if (props.behavior === "auto") {
|
|
33
|
+
neighborElement.click();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
30
36
|
},
|
|
31
37
|
childSelector: ["role", "tab"]
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
};
|
|
39
|
+
var TabPanelRoot = /* @__PURE__ */ function(_Component) {
|
|
40
|
+
_inherits(TabPanelRoot2, _Component);
|
|
41
|
+
var _super = _createSuper(TabPanelRoot2);
|
|
42
|
+
function TabPanelRoot2() {
|
|
43
|
+
var _this;
|
|
44
|
+
_classCallCheck(this, TabPanelRoot2);
|
|
45
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
46
|
+
args[_key] = arguments[_key];
|
|
47
|
+
}
|
|
48
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
49
|
+
_defineProperty(_assertThisInitialized(_this), "handleClick", function(value) {
|
|
50
|
+
return function(event) {
|
|
51
|
+
_this.handlers.value(value, event);
|
|
43
52
|
};
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
});
|
|
54
|
+
_defineProperty(_assertThisInitialized(_this), "handleKeyDown", function(value) {
|
|
55
|
+
return function(event) {
|
|
56
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
_this.handlers.value(value, event);
|
|
59
|
+
}
|
|
47
60
|
};
|
|
48
|
-
})
|
|
61
|
+
});
|
|
62
|
+
return _this;
|
|
49
63
|
}
|
|
50
|
-
|
|
64
|
+
_createClass(TabPanelRoot2, [{
|
|
51
65
|
key: "uncontrolledProps",
|
|
52
|
-
value: function() {
|
|
66
|
+
value: function uncontrolledProps() {
|
|
53
67
|
return {
|
|
54
68
|
value: null
|
|
55
69
|
};
|
|
56
70
|
}
|
|
57
71
|
}, {
|
|
58
72
|
key: "getItemProps",
|
|
59
|
-
value: function(
|
|
60
|
-
var
|
|
73
|
+
value: function getItemProps(props, index) {
|
|
74
|
+
var value = this.asProps.value;
|
|
75
|
+
var isSelected = value === props.value;
|
|
61
76
|
return {
|
|
62
|
-
selected:
|
|
63
|
-
onClick: this.handleClick(
|
|
64
|
-
onKeyDown: this.handleKeyDown(
|
|
65
|
-
tabIndex:
|
|
66
|
-
"aria-selected":
|
|
77
|
+
selected: isSelected,
|
|
78
|
+
onClick: this.handleClick(props.value),
|
|
79
|
+
onKeyDown: this.handleKeyDown(props.value),
|
|
80
|
+
tabIndex: isSelected ? 0 : -1,
|
|
81
|
+
"aria-selected": isSelected
|
|
67
82
|
};
|
|
68
83
|
}
|
|
69
84
|
}, {
|
|
70
85
|
key: "render",
|
|
71
|
-
value: function() {
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
},
|
|
86
|
+
value: function render() {
|
|
87
|
+
var _ref = this.asProps, _ref5;
|
|
88
|
+
var STabPanel = Box;
|
|
89
|
+
var styles = this.asProps.styles;
|
|
90
|
+
return _ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(STabPanel, _ref5.cn("STabPanel", _objectSpread({}, assignProps({
|
|
91
|
+
"role": "tablist"
|
|
92
|
+
}, _ref))));
|
|
76
93
|
}
|
|
77
|
-
}])
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
}]);
|
|
95
|
+
return TabPanelRoot2;
|
|
96
|
+
}(Component);
|
|
97
|
+
_defineProperty(TabPanelRoot, "displayName", "TabPanel");
|
|
98
|
+
_defineProperty(TabPanelRoot, "style", style);
|
|
99
|
+
_defineProperty(TabPanelRoot, "defaultProps", {
|
|
82
100
|
defaultValue: null,
|
|
83
101
|
behavior: "manual"
|
|
84
102
|
});
|
|
85
|
-
|
|
86
|
-
function
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
tag:
|
|
103
|
+
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance(optionsA11yEnhance)]);
|
|
104
|
+
function TabPanelItem(props) {
|
|
105
|
+
var _ref2 = arguments[0], _ref6;
|
|
106
|
+
var STabPanelItem = Box;
|
|
107
|
+
var Children = props.Children, styles = props.styles, addonLeft = props.addonLeft, addonRight = props.addonRight;
|
|
108
|
+
return _ref6 = sstyled(styles), /* @__PURE__ */ React.createElement(STabPanelItem, _ref6.cn("STabPanelItem", _objectSpread({}, assignProps({
|
|
109
|
+
"type": "button",
|
|
110
|
+
"tag": "button",
|
|
111
|
+
"tabIndex": 0,
|
|
112
|
+
"role": "tab"
|
|
113
|
+
}, _ref2))), addonLeft ? /* @__PURE__ */ React.createElement(TabPanel.Item.Addon, {
|
|
114
|
+
tag: addonLeft
|
|
115
|
+
}) : null, addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon), addonRight ? /* @__PURE__ */ React.createElement(TabPanel.Item.Addon, {
|
|
116
|
+
tag: addonRight
|
|
97
117
|
}) : null);
|
|
98
118
|
}
|
|
99
|
-
function
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
119
|
+
function Text(props) {
|
|
120
|
+
var _ref3 = arguments[0], _ref7;
|
|
121
|
+
var SText = Box;
|
|
122
|
+
var styles = props.styles;
|
|
123
|
+
return _ref7 = sstyled(styles), /* @__PURE__ */ React.createElement(SText, _ref7.cn("SText", _objectSpread({}, assignProps({
|
|
124
|
+
"tag": "span"
|
|
125
|
+
}, _ref3))));
|
|
104
126
|
}
|
|
105
|
-
function
|
|
106
|
-
var
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
},
|
|
127
|
+
function Addon(props) {
|
|
128
|
+
var _ref4 = arguments[0], _ref8;
|
|
129
|
+
var SAddon = Box;
|
|
130
|
+
var styles = props.styles;
|
|
131
|
+
return _ref8 = sstyled(styles), /* @__PURE__ */ React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, assignProps({
|
|
132
|
+
"tag": "span"
|
|
133
|
+
}, _ref4))));
|
|
110
134
|
}
|
|
111
|
-
var
|
|
112
|
-
Item: [
|
|
113
|
-
Text
|
|
114
|
-
Addon
|
|
135
|
+
var TabPanel = createComponent(TabPanelRoot, {
|
|
136
|
+
Item: [TabPanelItem, {
|
|
137
|
+
Text,
|
|
138
|
+
Addon
|
|
115
139
|
}]
|
|
116
|
-
})
|
|
117
|
-
|
|
140
|
+
});
|
|
141
|
+
var wrapTabPanel = function wrapTabPanel2(wrapper) {
|
|
142
|
+
return wrapper;
|
|
118
143
|
};
|
|
119
144
|
export {
|
|
120
|
-
|
|
121
|
-
|
|
145
|
+
TabPanel as default,
|
|
146
|
+
wrapTabPanel
|
|
122
147
|
};
|
package/lib/esm/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/tab-panel",
|
|
3
3
|
"description": "Semrush TabPanel Component",
|
|
4
|
-
"version": "16.0.0-prerelease.
|
|
4
|
+
"version": "16.0.0-prerelease.7",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@semcore/flex-box": "16.0.0-prerelease.
|
|
17
|
+
"@semcore/flex-box": "16.0.0-prerelease.7"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@semcore/base-components": "^16.0.0-prerelease.
|
|
20
|
+
"@semcore/base-components": "^16.0.0-prerelease.7"
|
|
21
21
|
},
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|