@semcore/tab-panel 2.6.5 → 3.0.1
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/CHANGELOG.md +18 -0
- package/lib/cjs/TabPanel.js +13 -13
- package/lib/cjs/TabPanel.js.map +1 -1
- package/lib/cjs/index.d.ts +49 -0
- package/lib/cjs/index.js +2 -19
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/tab-panel.shadow.css +9 -11
- package/lib/es6/TabPanel.js +13 -13
- package/lib/es6/TabPanel.js.map +1 -1
- package/lib/es6/index.d.ts +49 -0
- package/lib/es6/index.js +0 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/tab-panel.shadow.css +9 -11
- package/package.json +4 -1
- package/src/{TabPanel.js → TabPanel.jsx} +0 -0
- package/src/index.js +0 -1
- package/src/style/tab-panel.shadow.css +9 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [3.0.1] - 2022-05-19
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.32.0 ~> 3.32.1], `@semcore/flex-box` [4.5.1 ~> 4.5.3]).
|
|
10
|
+
|
|
11
|
+
## [3.0.0] - 2022-05-17
|
|
12
|
+
|
|
13
|
+
### BREAK
|
|
14
|
+
|
|
15
|
+
- Updated styles according to the library redesign policy.
|
|
16
|
+
|
|
17
|
+
## [2.6.6] - 2022-03-14
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2], `@semcore/flex-box` [4.5.0 ~> 4.5.1]).
|
|
22
|
+
|
|
5
23
|
## [2.6.5] - 2022-02-24
|
|
6
24
|
|
|
7
25
|
### Added
|
package/lib/cjs/TabPanel.js
CHANGED
|
@@ -52,18 +52,18 @@ var style = (
|
|
|
52
52
|
/*__reshadow_css_start__*/
|
|
53
53
|
_core.sstyled.insert(
|
|
54
54
|
/*__inner_css_start__*/
|
|
55
|
-
".
|
|
55
|
+
".___STabPanel_1fc5y_gg_{display:flex;width:100%;max-width:100%;border-bottom:1px solid #c4c7cf}.___STabPanelItem_1fc5y_gg_{position:relative;bottom:-1px;display:inline-flex;min-width:0;height:32px;font-size:14px;color:#6c6e79;border:1px solid transparent;border-radius:6px 6px 0 0;background:transparent;align-items:center;justify-content:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;outline:none;text-decoration:none;-webkit-tap-highlight-color:transparent;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer}.___STabPanelItem_1fc5y_gg_::-moz-focus-inner{border:none;padding:0}.___STabPanelItem_1fc5y_gg_:active,.___STabPanelItem_1fc5y_gg_:focus,.___STabPanelItem_1fc5y_gg_:hover{outline:0;text-decoration:none}.___STabPanelItem_1fc5y_gg_:hover{color:#191b23}.___STabPanelItem_1fc5y_gg_.__disabled_1fc5y_gg_{opacity:0.3;cursor:default;pointer-events:none}.___STabPanelItem_1fc5y_gg_.__keyboardFocused_1fc5y_gg_{box-shadow:0 0 0 3px rgba(0, 143, 248, 0.2)}.___STabPanelItem_1fc5y_gg_.__selected_1fc5y_gg_{color:#006dca;border-color:#c4c7cf;border-bottom-color:#ffffff;flex-shrink:0}.___STabPanelItem_1fc5y_gg_.__selected_1fc5y_gg_:hover{color:#006dca}.___SText_1fc5y_gg_{display:inline-block;margin:auto 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_1fc5y_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_1fc5y_gg_:not(:only-child):first-child{margin-left:8px}.___SAddon_1fc5y_gg_:not(:only-child):last-child{margin-right:8px}"
|
|
56
56
|
/*__inner_css_end__*/
|
|
57
|
-
, "
|
|
57
|
+
, "16jopra_gg_")
|
|
58
58
|
/*__reshadow_css_end__*/
|
|
59
59
|
, {
|
|
60
|
-
"__STabPanel": "
|
|
61
|
-
"__STabPanelItem": "
|
|
62
|
-
"_disabled": "
|
|
63
|
-
"_keyboardFocused": "
|
|
64
|
-
"_selected": "
|
|
65
|
-
"__SText": "
|
|
66
|
-
"__SAddon": "
|
|
60
|
+
"__STabPanel": "___STabPanel_1fc5y_gg_",
|
|
61
|
+
"__STabPanelItem": "___STabPanelItem_1fc5y_gg_",
|
|
62
|
+
"_disabled": "__disabled_1fc5y_gg_",
|
|
63
|
+
"_keyboardFocused": "__keyboardFocused_1fc5y_gg_",
|
|
64
|
+
"_selected": "__selected_1fc5y_gg_",
|
|
65
|
+
"__SText": "___SText_1fc5y_gg_",
|
|
66
|
+
"__SAddon": "___SAddon_1fc5y_gg_"
|
|
67
67
|
});
|
|
68
68
|
var optionsA11yEnhance = {
|
|
69
69
|
onNeighborChange: function onNeighborChange(neighborElement) {
|
|
@@ -121,7 +121,7 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
121
121
|
}, {
|
|
122
122
|
key: "render",
|
|
123
123
|
value: function render() {
|
|
124
|
-
var _ref = this
|
|
124
|
+
var _ref = this.asProps,
|
|
125
125
|
_ref5;
|
|
126
126
|
|
|
127
127
|
var STabPanel = _flexBox.Box;
|
|
@@ -142,7 +142,7 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
142
142
|
(0, _defineProperty2["default"])(TabPanelRoot, "enhance", [(0, _a11yEnhance["default"])(optionsA11yEnhance)]);
|
|
143
143
|
|
|
144
144
|
function TabPanelItem(props) {
|
|
145
|
-
var _ref2 =
|
|
145
|
+
var _ref2 = arguments[0],
|
|
146
146
|
_ref6;
|
|
147
147
|
|
|
148
148
|
var STabPanelItem = _flexBox.Box;
|
|
@@ -164,7 +164,7 @@ function TabPanelItem(props) {
|
|
|
164
164
|
TabPanelItem.enhance = [(0, _keyboardFocusEnhance["default"])()];
|
|
165
165
|
|
|
166
166
|
function Text(props) {
|
|
167
|
-
var _ref3 =
|
|
167
|
+
var _ref3 = arguments[0],
|
|
168
168
|
_ref7;
|
|
169
169
|
|
|
170
170
|
var SText = _flexBox.Box;
|
|
@@ -175,7 +175,7 @@ function Text(props) {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
function Addon(props) {
|
|
178
|
-
var _ref4 =
|
|
178
|
+
var _ref4 = arguments[0],
|
|
179
179
|
_ref8;
|
|
180
180
|
|
|
181
181
|
var SAddon = _flexBox.Box;
|
package/lib/cjs/TabPanel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/TabPanel.
|
|
1
|
+
{"version":3,"sources":["../../src/TabPanel.jsx"],"names":["optionsA11yEnhance","onNeighborChange","neighborElement","focus","click","childSelector","TabPanelRoot","value","e","handlers","props","asProps","isSelected","selected","onClick","bindHandlerClick","tabIndex","STabPanel","Box","styles","Component","style","defaultValue","TabPanelItem","STabPanelItem","Children","addonLeft","addonRight","TabPanel","Item","Text","Addon","enhance","SText","SAddon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport style from './style/tab-panel.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement) => {\n if (neighborElement) {\n neighborElement.focus();\n neighborElement.click();\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabPanelRoot extends Component {\n static displayName = 'TabPanel';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props) {\n const { value } = this.asProps;\n const isSelected = value === props.value;\n return {\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-posinset': value,\n 'aria-selected': isSelected,\n };\n }\n\n render() {\n const STabPanel = Root;\n const { styles } = this.asProps;\n\n return sstyled(styles)(<STabPanel render={Box} role=\"tablist\" />);\n }\n}\n\nfunction TabPanelItem(props) {\n const STabPanelItem = Root;\n const { Children, styles, addonLeft, addonRight } = props;\n\n return sstyled(styles)(\n <STabPanelItem render={Box} type=\"button\" tag=\"button\" role=\"tab\">\n {addonLeft ? <TabPanel.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon)}\n {addonRight ? <TabPanel.Item.Addon tag={addonRight} /> : null}\n </STabPanelItem>,\n );\n}\n\nTabPanelItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n const { styles } = props;\n return sstyled(styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles } = props;\n return sstyled(styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst TabPanel = createComponent(TabPanelRoot, {\n Item: [TabPanelItem, { Text, Addon }],\n});\n\nexport default TabPanel;\n"],"file":"TabPanel.js"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CProps, PropGetterFn, ReturnEl } from '@semcore/core';
|
|
3
|
+
import { Box, IBoxProps } from '@semcore/flex-box';
|
|
4
|
+
import { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
5
|
+
|
|
6
|
+
export type TabPanelValue = string | number | boolean;
|
|
7
|
+
|
|
8
|
+
export interface ITabPanelProps<T extends TabPanelValue = TabPanelValue> extends IBoxProps {
|
|
9
|
+
/** Is invoked when changing the selection */
|
|
10
|
+
onChange?: (value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void;
|
|
11
|
+
/** Value of the selected tab */
|
|
12
|
+
value?: T;
|
|
13
|
+
/** Default value of the selected tab
|
|
14
|
+
* @default null
|
|
15
|
+
* */
|
|
16
|
+
defaultValue?: T;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ITabPanelItemProps extends IBoxProps, IKeyboardFocusProps {
|
|
20
|
+
/** Makes a tab selected. This property is determined automatically depending on the value. */
|
|
21
|
+
selected?: boolean;
|
|
22
|
+
/** Disabled state */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** Tab value */
|
|
25
|
+
value?: TabPanelValue;
|
|
26
|
+
/** Left addon tag */
|
|
27
|
+
addonLeft?: React.ElementType;
|
|
28
|
+
/** Right addon tag */
|
|
29
|
+
addonRight?: React.ElementType;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ITabPanelContext {
|
|
33
|
+
getItemProps: PropGetterFn;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface ITabPanelHandlers {
|
|
37
|
+
value: (value: TabPanelValue) => void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare const TabPanel: (<T, V extends TabPanelValue = TabPanelValue>(
|
|
41
|
+
props: CProps<ITabPanelProps<V> & T, ITabPanelContext, ITabPanelHandlers>,
|
|
42
|
+
) => ReturnEl) & {
|
|
43
|
+
Item: (<T>(props: CProps<ITabPanelItemProps & T, {}, ITabPanelHandlers>) => ReturnEl) & {
|
|
44
|
+
Text: typeof Box;
|
|
45
|
+
Addon: typeof Box;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default TabPanel;
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
var _exportNames = {};
|
|
9
8
|
Object.defineProperty(exports, "default", {
|
|
10
9
|
enumerable: true,
|
|
11
10
|
get: function get() {
|
|
@@ -13,21 +12,5 @@ Object.defineProperty(exports, "default", {
|
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
14
|
|
|
16
|
-
var _TabPanel =
|
|
17
|
-
|
|
18
|
-
Object.keys(_TabPanel).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
21
|
-
if (key in exports && exports[key] === _TabPanel[key]) return;
|
|
22
|
-
Object.defineProperty(exports, key, {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function get() {
|
|
25
|
-
return _TabPanel[key];
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
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); }
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
15
|
+
var _TabPanel = _interopRequireDefault(require("./TabPanel"));
|
|
33
16
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './TabPanel';\n"],"file":"index.js"}
|
|
@@ -4,7 +4,7 @@ STabPanel {
|
|
|
4
4
|
display: flex;
|
|
5
5
|
width: 100%;
|
|
6
6
|
max-width: 100%;
|
|
7
|
-
border-bottom: 1px solid var(--
|
|
7
|
+
border-bottom: 1px solid var(--gray-200);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
STabPanelItem {
|
|
@@ -14,10 +14,9 @@ STabPanelItem {
|
|
|
14
14
|
min-width: 0;
|
|
15
15
|
height: 32px;
|
|
16
16
|
font-size: var(--fs-200);
|
|
17
|
-
|
|
18
|
-
color: var(--gray40);
|
|
17
|
+
color: var(--gray-500);
|
|
19
18
|
border: 1px solid transparent;
|
|
20
|
-
border-radius:
|
|
19
|
+
border-radius: 6px 6px 0 0;
|
|
21
20
|
background: transparent;
|
|
22
21
|
align-items: center;
|
|
23
22
|
justify-content: center;
|
|
@@ -49,7 +48,7 @@ STabPanelItem {
|
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
&:hover {
|
|
52
|
-
color: var(--
|
|
51
|
+
color: var(--gray-800);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -60,17 +59,17 @@ STabPanelItem[disabled] {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
STabPanelItem[keyboardFocused] {
|
|
63
|
-
box-shadow: var(--
|
|
62
|
+
box-shadow: var(--keyboard-focus);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
STabPanelItem[selected] {
|
|
67
|
-
color: var(--
|
|
68
|
-
border-color: var(--
|
|
69
|
-
border-bottom-color: white;
|
|
66
|
+
color: var(--blue-500);
|
|
67
|
+
border-color: var(--gray-200);
|
|
68
|
+
border-bottom-color: var(--white);
|
|
70
69
|
flex-shrink: 0;
|
|
71
70
|
|
|
72
71
|
&:hover {
|
|
73
|
-
color: var(--
|
|
72
|
+
color: var(--blue-500);
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
|
|
@@ -80,7 +79,6 @@ SText {
|
|
|
80
79
|
white-space: nowrap;
|
|
81
80
|
overflow: hidden;
|
|
82
81
|
text-overflow: ellipsis;
|
|
83
|
-
line-height: 1.1;
|
|
84
82
|
}
|
|
85
83
|
|
|
86
84
|
SAddon {
|
package/lib/es6/TabPanel.js
CHANGED
|
@@ -31,18 +31,18 @@ var style = (
|
|
|
31
31
|
/*__reshadow_css_start__*/
|
|
32
32
|
_sstyled.insert(
|
|
33
33
|
/*__inner_css_start__*/
|
|
34
|
-
".
|
|
34
|
+
".___STabPanel_1fc5y_gg_{display:flex;width:100%;max-width:100%;border-bottom:1px solid #c4c7cf}.___STabPanelItem_1fc5y_gg_{position:relative;bottom:-1px;display:inline-flex;min-width:0;height:32px;font-size:14px;color:#6c6e79;border:1px solid transparent;border-radius:6px 6px 0 0;background:transparent;align-items:center;justify-content:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;outline:none;text-decoration:none;-webkit-tap-highlight-color:transparent;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer}.___STabPanelItem_1fc5y_gg_::-moz-focus-inner{border:none;padding:0}.___STabPanelItem_1fc5y_gg_:active,.___STabPanelItem_1fc5y_gg_:focus,.___STabPanelItem_1fc5y_gg_:hover{outline:0;text-decoration:none}.___STabPanelItem_1fc5y_gg_:hover{color:#191b23}.___STabPanelItem_1fc5y_gg_.__disabled_1fc5y_gg_{opacity:0.3;cursor:default;pointer-events:none}.___STabPanelItem_1fc5y_gg_.__keyboardFocused_1fc5y_gg_{box-shadow:0 0 0 3px rgba(0, 143, 248, 0.2)}.___STabPanelItem_1fc5y_gg_.__selected_1fc5y_gg_{color:#006dca;border-color:#c4c7cf;border-bottom-color:#ffffff;flex-shrink:0}.___STabPanelItem_1fc5y_gg_.__selected_1fc5y_gg_:hover{color:#006dca}.___SText_1fc5y_gg_{display:inline-block;margin:auto 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_1fc5y_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_1fc5y_gg_:not(:only-child):first-child{margin-left:8px}.___SAddon_1fc5y_gg_:not(:only-child):last-child{margin-right:8px}"
|
|
35
35
|
/*__inner_css_end__*/
|
|
36
|
-
, "
|
|
36
|
+
, "16jopra_gg_")
|
|
37
37
|
/*__reshadow_css_end__*/
|
|
38
38
|
, {
|
|
39
|
-
"__STabPanel": "
|
|
40
|
-
"__STabPanelItem": "
|
|
41
|
-
"_disabled": "
|
|
42
|
-
"_keyboardFocused": "
|
|
43
|
-
"_selected": "
|
|
44
|
-
"__SText": "
|
|
45
|
-
"__SAddon": "
|
|
39
|
+
"__STabPanel": "___STabPanel_1fc5y_gg_",
|
|
40
|
+
"__STabPanelItem": "___STabPanelItem_1fc5y_gg_",
|
|
41
|
+
"_disabled": "__disabled_1fc5y_gg_",
|
|
42
|
+
"_keyboardFocused": "__keyboardFocused_1fc5y_gg_",
|
|
43
|
+
"_selected": "__selected_1fc5y_gg_",
|
|
44
|
+
"__SText": "___SText_1fc5y_gg_",
|
|
45
|
+
"__SAddon": "___SAddon_1fc5y_gg_"
|
|
46
46
|
});
|
|
47
47
|
var optionsA11yEnhance = {
|
|
48
48
|
onNeighborChange: function onNeighborChange(neighborElement) {
|
|
@@ -102,7 +102,7 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
102
102
|
}, {
|
|
103
103
|
key: "render",
|
|
104
104
|
value: function render() {
|
|
105
|
-
var _ref = this
|
|
105
|
+
var _ref = this.asProps,
|
|
106
106
|
_ref5;
|
|
107
107
|
|
|
108
108
|
var STabPanel = Box;
|
|
@@ -127,7 +127,7 @@ _defineProperty(TabPanelRoot, "defaultProps", {
|
|
|
127
127
|
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance(optionsA11yEnhance)]);
|
|
128
128
|
|
|
129
129
|
function TabPanelItem(props) {
|
|
130
|
-
var _ref2 =
|
|
130
|
+
var _ref2 = arguments[0],
|
|
131
131
|
_ref6;
|
|
132
132
|
|
|
133
133
|
var STabPanelItem = Box;
|
|
@@ -149,7 +149,7 @@ function TabPanelItem(props) {
|
|
|
149
149
|
TabPanelItem.enhance = [keyboardFocusEnhance()];
|
|
150
150
|
|
|
151
151
|
function Text(props) {
|
|
152
|
-
var _ref3 =
|
|
152
|
+
var _ref3 = arguments[0],
|
|
153
153
|
_ref7;
|
|
154
154
|
|
|
155
155
|
var SText = Box;
|
|
@@ -160,7 +160,7 @@ function Text(props) {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
function Addon(props) {
|
|
163
|
-
var _ref4 =
|
|
163
|
+
var _ref4 = arguments[0],
|
|
164
164
|
_ref8;
|
|
165
165
|
|
|
166
166
|
var SAddon = Box;
|
package/lib/es6/TabPanel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/TabPanel.
|
|
1
|
+
{"version":3,"sources":["../../src/TabPanel.jsx"],"names":["React","createComponent","Component","sstyled","Root","Box","addonTextChildren","a11yEnhance","keyboardFocusEnhance","optionsA11yEnhance","onNeighborChange","neighborElement","focus","click","childSelector","TabPanelRoot","value","e","handlers","props","asProps","isSelected","selected","onClick","bindHandlerClick","tabIndex","STabPanel","styles","style","defaultValue","TabPanelItem","STabPanelItem","Children","addonLeft","addonRight","TabPanel","Item","Text","Addon","enhance","SText","SAddon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport style from './style/tab-panel.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement) => {\n if (neighborElement) {\n neighborElement.focus();\n neighborElement.click();\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabPanelRoot extends Component {\n static displayName = 'TabPanel';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props) {\n const { value } = this.asProps;\n const isSelected = value === props.value;\n return {\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-posinset': value,\n 'aria-selected': isSelected,\n };\n }\n\n render() {\n const STabPanel = Root;\n const { styles } = this.asProps;\n\n return sstyled(styles)(<STabPanel render={Box} role=\"tablist\" />);\n }\n}\n\nfunction TabPanelItem(props) {\n const STabPanelItem = Root;\n const { Children, styles, addonLeft, addonRight } = props;\n\n return sstyled(styles)(\n <STabPanelItem render={Box} type=\"button\" tag=\"button\" role=\"tab\">\n {addonLeft ? <TabPanel.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon)}\n {addonRight ? <TabPanel.Item.Addon tag={addonRight} /> : null}\n </STabPanelItem>,\n );\n}\n\nTabPanelItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n const { styles } = props;\n return sstyled(styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles } = props;\n return sstyled(styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst TabPanel = createComponent(TabPanelRoot, {\n Item: [TabPanelItem, { Text, Addon }],\n});\n\nexport default TabPanel;\n"],"file":"TabPanel.js"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CProps, PropGetterFn, ReturnEl } from '@semcore/core';
|
|
3
|
+
import { Box, IBoxProps } from '@semcore/flex-box';
|
|
4
|
+
import { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
5
|
+
|
|
6
|
+
export type TabPanelValue = string | number | boolean;
|
|
7
|
+
|
|
8
|
+
export interface ITabPanelProps<T extends TabPanelValue = TabPanelValue> extends IBoxProps {
|
|
9
|
+
/** Is invoked when changing the selection */
|
|
10
|
+
onChange?: (value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void;
|
|
11
|
+
/** Value of the selected tab */
|
|
12
|
+
value?: T;
|
|
13
|
+
/** Default value of the selected tab
|
|
14
|
+
* @default null
|
|
15
|
+
* */
|
|
16
|
+
defaultValue?: T;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ITabPanelItemProps extends IBoxProps, IKeyboardFocusProps {
|
|
20
|
+
/** Makes a tab selected. This property is determined automatically depending on the value. */
|
|
21
|
+
selected?: boolean;
|
|
22
|
+
/** Disabled state */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** Tab value */
|
|
25
|
+
value?: TabPanelValue;
|
|
26
|
+
/** Left addon tag */
|
|
27
|
+
addonLeft?: React.ElementType;
|
|
28
|
+
/** Right addon tag */
|
|
29
|
+
addonRight?: React.ElementType;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ITabPanelContext {
|
|
33
|
+
getItemProps: PropGetterFn;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface ITabPanelHandlers {
|
|
37
|
+
value: (value: TabPanelValue) => void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare const TabPanel: (<T, V extends TabPanelValue = TabPanelValue>(
|
|
41
|
+
props: CProps<ITabPanelProps<V> & T, ITabPanelContext, ITabPanelHandlers>,
|
|
42
|
+
) => ReturnEl) & {
|
|
43
|
+
Item: (<T>(props: CProps<ITabPanelItemProps & T, {}, ITabPanelHandlers>) => ReturnEl) & {
|
|
44
|
+
Text: typeof Box;
|
|
45
|
+
Addon: typeof Box;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default TabPanel;
|
package/lib/es6/index.js
CHANGED
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":["default"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB","sourcesContent":["export { default } from './TabPanel';\n"],"file":"index.js"}
|
|
@@ -4,7 +4,7 @@ STabPanel {
|
|
|
4
4
|
display: flex;
|
|
5
5
|
width: 100%;
|
|
6
6
|
max-width: 100%;
|
|
7
|
-
border-bottom: 1px solid var(--
|
|
7
|
+
border-bottom: 1px solid var(--gray-200);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
STabPanelItem {
|
|
@@ -14,10 +14,9 @@ STabPanelItem {
|
|
|
14
14
|
min-width: 0;
|
|
15
15
|
height: 32px;
|
|
16
16
|
font-size: var(--fs-200);
|
|
17
|
-
|
|
18
|
-
color: var(--gray40);
|
|
17
|
+
color: var(--gray-500);
|
|
19
18
|
border: 1px solid transparent;
|
|
20
|
-
border-radius:
|
|
19
|
+
border-radius: 6px 6px 0 0;
|
|
21
20
|
background: transparent;
|
|
22
21
|
align-items: center;
|
|
23
22
|
justify-content: center;
|
|
@@ -49,7 +48,7 @@ STabPanelItem {
|
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
&:hover {
|
|
52
|
-
color: var(--
|
|
51
|
+
color: var(--gray-800);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -60,17 +59,17 @@ STabPanelItem[disabled] {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
STabPanelItem[keyboardFocused] {
|
|
63
|
-
box-shadow: var(--
|
|
62
|
+
box-shadow: var(--keyboard-focus);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
STabPanelItem[selected] {
|
|
67
|
-
color: var(--
|
|
68
|
-
border-color: var(--
|
|
69
|
-
border-bottom-color: white;
|
|
66
|
+
color: var(--blue-500);
|
|
67
|
+
border-color: var(--gray-200);
|
|
68
|
+
border-bottom-color: var(--white);
|
|
70
69
|
flex-shrink: 0;
|
|
71
70
|
|
|
72
71
|
&:hover {
|
|
73
|
-
color: var(--
|
|
72
|
+
color: var(--blue-500);
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
|
|
@@ -80,7 +79,6 @@ SText {
|
|
|
80
79
|
white-space: nowrap;
|
|
81
80
|
overflow: hidden;
|
|
82
81
|
text-overflow: ellipsis;
|
|
83
|
-
line-height: 1.1;
|
|
84
82
|
}
|
|
85
83
|
|
|
86
84
|
SAddon {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/tab-panel",
|
|
3
3
|
"description": "SEMRush TabPanel Component",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.1",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -27,5 +27,8 @@
|
|
|
27
27
|
"type": "git",
|
|
28
28
|
"url": "https://github.com/semrush/intergalactic.git",
|
|
29
29
|
"directory": "semcore/tab-panel"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@semcore/jest-preset-ui": "1.0.0"
|
|
30
33
|
}
|
|
31
34
|
}
|
|
File without changes
|
package/src/index.js
CHANGED
|
@@ -4,7 +4,7 @@ STabPanel {
|
|
|
4
4
|
display: flex;
|
|
5
5
|
width: 100%;
|
|
6
6
|
max-width: 100%;
|
|
7
|
-
border-bottom: 1px solid var(--
|
|
7
|
+
border-bottom: 1px solid var(--gray-200);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
STabPanelItem {
|
|
@@ -14,10 +14,9 @@ STabPanelItem {
|
|
|
14
14
|
min-width: 0;
|
|
15
15
|
height: 32px;
|
|
16
16
|
font-size: var(--fs-200);
|
|
17
|
-
|
|
18
|
-
color: var(--gray40);
|
|
17
|
+
color: var(--gray-500);
|
|
19
18
|
border: 1px solid transparent;
|
|
20
|
-
border-radius:
|
|
19
|
+
border-radius: 6px 6px 0 0;
|
|
21
20
|
background: transparent;
|
|
22
21
|
align-items: center;
|
|
23
22
|
justify-content: center;
|
|
@@ -49,7 +48,7 @@ STabPanelItem {
|
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
&:hover {
|
|
52
|
-
color: var(--
|
|
51
|
+
color: var(--gray-800);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -60,17 +59,17 @@ STabPanelItem[disabled] {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
STabPanelItem[keyboardFocused] {
|
|
63
|
-
box-shadow: var(--
|
|
62
|
+
box-shadow: var(--keyboard-focus);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
STabPanelItem[selected] {
|
|
67
|
-
color: var(--
|
|
68
|
-
border-color: var(--
|
|
69
|
-
border-bottom-color: white;
|
|
66
|
+
color: var(--blue-500);
|
|
67
|
+
border-color: var(--gray-200);
|
|
68
|
+
border-bottom-color: var(--white);
|
|
70
69
|
flex-shrink: 0;
|
|
71
70
|
|
|
72
71
|
&:hover {
|
|
73
|
-
color: var(--
|
|
72
|
+
color: var(--blue-500);
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
|
|
@@ -80,7 +79,6 @@ SText {
|
|
|
80
79
|
white-space: nowrap;
|
|
81
80
|
overflow: hidden;
|
|
82
81
|
text-overflow: ellipsis;
|
|
83
|
-
line-height: 1.1;
|
|
84
82
|
}
|
|
85
83
|
|
|
86
84
|
SAddon {
|