@semcore/tab-panel 4.42.4-prerelease.0 → 4.43.0-prerelease.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/CHANGELOG.md +6 -0
- package/lib/cjs/TabPanel.js +71 -56
- package/lib/cjs/TabPanel.js.map +1 -1
- package/lib/cjs/TabPanel.type.js +2 -0
- package/lib/cjs/TabPanel.type.js.map +1 -0
- package/lib/cjs/index.js +14 -5
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/tab-panel.shadow.css +10 -27
- package/lib/es6/TabPanel.js +65 -46
- package/lib/es6/TabPanel.js.map +1 -1
- package/lib/es6/TabPanel.type.js +2 -0
- package/lib/es6/TabPanel.type.js.map +1 -0
- package/lib/es6/index.js +2 -2
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/tab-panel.shadow.css +10 -27
- package/lib/esm/TabPanel.mjs +65 -53
- package/lib/esm/TabPanel.type.mjs +1 -0
- package/lib/esm/index.mjs +1 -0
- package/lib/esm/style/tab-panel.shadow.css +10 -27
- package/lib/types/TabPanel.d.ts +6 -0
- package/lib/types/TabPanel.type.d.ts +71 -0
- package/lib/types/index.d.ts +2 -92
- package/package.json +4 -4
- package/lib/cjs/index.d.js +0 -2
- package/lib/cjs/index.d.js.map +0 -1
- package/lib/es6/index.d.js +0 -2
- package/lib/es6/index.d.js.map +0 -1
package/lib/es6/TabPanel.js
CHANGED
|
@@ -1,60 +1,46 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import
|
|
4
|
+
import _callSuper from "@babel/runtime/helpers/callSuper";
|
|
5
5
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
-
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
7
6
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
import { sstyled as _sstyled } from "@semcore/
|
|
7
|
+
import { sstyled as _sstyled } from "@semcore/core";
|
|
9
8
|
import { assignProps as _assignProps4 } from "@semcore/core";
|
|
10
9
|
import { assignProps as _assignProps3 } from "@semcore/core";
|
|
11
10
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
12
11
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
12
|
+
import { Box } from '@semcore/base-components';
|
|
13
|
+
import { createComponent, Component, sstyled, Root } from '@semcore/core';
|
|
14
|
+
import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
|
|
15
|
+
import a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';
|
|
16
|
+
import { Text as UikitText } from '@semcore/typography';
|
|
13
17
|
import React from 'react';
|
|
14
|
-
import createComponent, { Component, sstyled, Root } from '@semcore/core';
|
|
15
|
-
import { Box } from '@semcore/flex-box';
|
|
16
|
-
import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
|
|
17
|
-
import a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';
|
|
18
|
-
import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
19
18
|
/*!__reshadow-styles__:"./style/tab-panel.shadow.css"*/
|
|
20
|
-
var style = (
|
|
19
|
+
var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___STabPanel_l0sw7_gg_{display:flex;width:100%;max-width:100%}.___STabPanel_l0sw7_gg_::after{content:\"\";position:relative;bottom:-1px;flex:1;border-top:1px solid transparent;border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@supports (color:color(display-p3 0 0 0%)){.___STabPanel_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanel_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___STabPanelItem_l0sw7_gg_{position:relative;bottom:-1px;display:inline-flex;min-width:0;height:32px;color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));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}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___STabPanelItem_l0sw7_gg_::-moz-focus-inner{border:0;padding:0}.___STabPanelItem_l0sw7_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabPanelItem_l0sw7_gg_:hover{-webkit-text-decoration:none;text-decoration:none;color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899))}}.___STabPanelItem_l0sw7_gg_::after{content:\"\";position:absolute;left:-1px;bottom:0;width:calc(100% + 2px);border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_{cursor:default;pointer-events:none}.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_ .___SAddon_l0sw7_gg_,.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_ .___SText_l0sw7_gg_{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{color:var(--intergalactic-text-link, rgb(36, 93, 229));border-color:var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));flex-shrink:0}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{border-color:var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{border-color:var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}@media (hover:hover){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_:hover{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}}.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_::after{border-bottom:none}.___SText_l0sw7_gg_{margin:auto var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_l0sw7_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_:only-child{margin-right:var(--intergalactic-spacing-2x, 8px);margin-left:var(--intergalactic-spacing-2x, 8px)}", /*__inner_css_end__*/"l0sw7_gg_"),
|
|
21
20
|
/*__reshadow_css_end__*/
|
|
22
21
|
{
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"_selected": "__selected_1cybh_gg_"
|
|
22
|
+
"__SText": "___SText_l0sw7_gg_",
|
|
23
|
+
"__SAddon": "___SAddon_l0sw7_gg_",
|
|
24
|
+
"__STabPanel": "___STabPanel_l0sw7_gg_",
|
|
25
|
+
"__STabPanelItem": "___STabPanelItem_l0sw7_gg_",
|
|
26
|
+
"_disabled": "__disabled_l0sw7_gg_",
|
|
27
|
+
"_selected": "__selected_l0sw7_gg_"
|
|
30
28
|
});
|
|
31
|
-
var optionsA11yEnhance = {
|
|
32
|
-
onNeighborChange: function onNeighborChange(neighborElement, props) {
|
|
33
|
-
if (neighborElement) {
|
|
34
|
-
neighborElement.focus();
|
|
35
|
-
if (props.behavior === 'auto') {
|
|
36
|
-
neighborElement.click();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
childSelector: ['role', 'tab']
|
|
41
|
-
};
|
|
42
29
|
var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
43
|
-
_inherits(TabPanelRoot, _Component);
|
|
44
|
-
var _super = _createSuper(TabPanelRoot);
|
|
45
30
|
function TabPanelRoot() {
|
|
46
31
|
var _this;
|
|
47
32
|
_classCallCheck(this, TabPanelRoot);
|
|
48
33
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
49
34
|
args[_key] = arguments[_key];
|
|
50
35
|
}
|
|
51
|
-
_this =
|
|
52
|
-
_defineProperty(
|
|
36
|
+
_this = _callSuper(this, TabPanelRoot, [].concat(args));
|
|
37
|
+
_defineProperty(_this, "buttonRefsList", []);
|
|
38
|
+
_defineProperty(_this, "handleClick", function (value) {
|
|
53
39
|
return function (event) {
|
|
54
40
|
_this.handlers.value(value, event);
|
|
55
41
|
};
|
|
56
42
|
});
|
|
57
|
-
_defineProperty(
|
|
43
|
+
_defineProperty(_this, "handleKeyDown", function (value) {
|
|
58
44
|
return function (event) {
|
|
59
45
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
60
46
|
event.preventDefault();
|
|
@@ -64,7 +50,8 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
64
50
|
});
|
|
65
51
|
return _this;
|
|
66
52
|
}
|
|
67
|
-
|
|
53
|
+
_inherits(TabPanelRoot, _Component);
|
|
54
|
+
return _createClass(TabPanelRoot, [{
|
|
68
55
|
key: "uncontrolledProps",
|
|
69
56
|
value: function uncontrolledProps() {
|
|
70
57
|
return {
|
|
@@ -77,11 +64,21 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
77
64
|
var value = this.asProps.value;
|
|
78
65
|
var isSelected = value === props.value;
|
|
79
66
|
return {
|
|
80
|
-
selected: isSelected,
|
|
81
|
-
onClick: this.handleClick(props.value),
|
|
82
|
-
onKeyDown: this.handleKeyDown(props.value),
|
|
83
|
-
tabIndex: isSelected ? 0 : -1,
|
|
84
|
-
'aria-selected': isSelected
|
|
67
|
+
'selected': isSelected,
|
|
68
|
+
'onClick': this.handleClick(props.value),
|
|
69
|
+
'onKeyDown': this.handleKeyDown(props.value),
|
|
70
|
+
'tabIndex': isSelected ? 0 : -1,
|
|
71
|
+
'aria-selected': isSelected,
|
|
72
|
+
'buttonRefsList': this.buttonRefsList,
|
|
73
|
+
index: index
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "getItemTextProps",
|
|
78
|
+
value: function getItemTextProps(_, index) {
|
|
79
|
+
return {
|
|
80
|
+
buttonRefsList: this.buttonRefsList,
|
|
81
|
+
index: index
|
|
85
82
|
};
|
|
86
83
|
}
|
|
87
84
|
}, {
|
|
@@ -96,7 +93,6 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
|
96
93
|
}, _ref))));
|
|
97
94
|
}
|
|
98
95
|
}]);
|
|
99
|
-
return TabPanelRoot;
|
|
100
96
|
}(Component);
|
|
101
97
|
_defineProperty(TabPanelRoot, "displayName", 'TabPanel');
|
|
102
98
|
_defineProperty(TabPanelRoot, "style", style);
|
|
@@ -104,7 +100,18 @@ _defineProperty(TabPanelRoot, "defaultProps", {
|
|
|
104
100
|
defaultValue: null,
|
|
105
101
|
behavior: 'manual'
|
|
106
102
|
});
|
|
107
|
-
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance(
|
|
103
|
+
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance({
|
|
104
|
+
onNeighborChange: function onNeighborChange(neighborElement, props) {
|
|
105
|
+
if (neighborElement) {
|
|
106
|
+
neighborElement.focus();
|
|
107
|
+
if (props.behavior === 'auto') {
|
|
108
|
+
neighborElement.click();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
childSelector: ['role', 'tab']
|
|
113
|
+
})]);
|
|
114
|
+
;
|
|
108
115
|
function TabPanelItem(props) {
|
|
109
116
|
var _ref2 = arguments[0],
|
|
110
117
|
_ref6;
|
|
@@ -112,25 +119,37 @@ function TabPanelItem(props) {
|
|
|
112
119
|
var Children = props.Children,
|
|
113
120
|
styles = props.styles,
|
|
114
121
|
addonLeft = props.addonLeft,
|
|
115
|
-
addonRight = props.addonRight
|
|
122
|
+
addonRight = props.addonRight,
|
|
123
|
+
buttonRefsList = props.buttonRefsList,
|
|
124
|
+
index = props.index;
|
|
125
|
+
var buttonRef = React.useRef();
|
|
126
|
+
buttonRefsList[index] = buttonRef;
|
|
116
127
|
return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(STabPanelItem, _ref6.cn("STabPanelItem", _objectSpread({}, _assignProps2({
|
|
117
128
|
"type": 'button',
|
|
118
129
|
"tag": 'button',
|
|
119
|
-
"
|
|
130
|
+
"tabIndex": 0,
|
|
131
|
+
"role": 'tab',
|
|
132
|
+
"ref": buttonRef
|
|
120
133
|
}, _ref2))), addonLeft ? /*#__PURE__*/React.createElement(TabPanel.Item.Addon, {
|
|
121
134
|
tag: addonLeft
|
|
122
135
|
}) : null, addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon), addonRight ? /*#__PURE__*/React.createElement(TabPanel.Item.Addon, {
|
|
123
136
|
tag: addonRight
|
|
124
137
|
}) : null);
|
|
125
138
|
}
|
|
126
|
-
TabPanelItem.enhance = [keyboardFocusEnhance()];
|
|
127
139
|
function Text(props) {
|
|
128
140
|
var _ref3 = arguments[0],
|
|
129
141
|
_ref7;
|
|
130
|
-
var SText =
|
|
131
|
-
var styles = props.styles
|
|
142
|
+
var SText = UikitText;
|
|
143
|
+
var styles = props.styles,
|
|
144
|
+
_props$ellipsis = props.ellipsis,
|
|
145
|
+
ellipsis = _props$ellipsis === void 0 ? true : _props$ellipsis,
|
|
146
|
+
buttonRefsList = props.buttonRefsList,
|
|
147
|
+
index = props.index;
|
|
132
148
|
return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SText, _ref7.cn("SText", _objectSpread({}, _assignProps3({
|
|
133
|
-
"
|
|
149
|
+
"size": 200,
|
|
150
|
+
"ellipsis": ellipsis,
|
|
151
|
+
"medium": true,
|
|
152
|
+
"hint:triggerRef": buttonRefsList[index]
|
|
134
153
|
}, _ref3))));
|
|
135
154
|
}
|
|
136
155
|
function Addon(props) {
|
package/lib/es6/TabPanel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanel.js","names":["React","createComponent","Component","sstyled","Root","Box","addonTextChildren","a11yEnhance","keyboardFocusEnhance","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabPanelRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","event","handlers","key","preventDefault","_createClass","uncontrolledProps","getItemProps","index","asProps","isSelected","selected","onClick","handleClick","onKeyDown","handleKeyDown","tabIndex","render","_ref","_ref5","STabPanel","styles","createElement","cn","_objectSpread","_assignProps","defaultValue","TabPanelItem","_ref2","arguments[0]","_ref6","STabPanelItem","Children","addonLeft","addonRight","_assignProps2","TabPanel","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapTabPanel","wrapper"],"sources":["../../src/TabPanel.jsx"],"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, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\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 behavior: 'manual',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleClick = (value) => (event) => {\n this.handlers.value(value, event);\n };\n\n handleKeyDown = (value) => (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value } = this.asProps;\n const isSelected = value === props.value;\n return {\n selected: isSelected,\n onClick: this.handleClick(props.value),\n onKeyDown: this.handleKeyDown(props.value),\n tabIndex: isSelected ? 0 : -1,\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 const wrapTabPanel = (wrapper) => wrapper;\n\nexport default TabPanel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabPanel.js","names":["Box","createComponent","Component","sstyled","Root","addonTextChildren","a11yEnhance","Text","UikitText","React","style","_sstyled","insert","TabPanelRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","value","event","handlers","key","preventDefault","_inherits","_createClass","uncontrolledProps","getItemProps","props","index","asProps","isSelected","handleClick","handleKeyDown","buttonRefsList","getItemTextProps","_","render","_ref","_ref5","STabPanel","styles","createElement","cn","_objectSpread","_assignProps","defaultValue","behavior","onNeighborChange","neighborElement","focus","click","childSelector","TabPanelItem","_ref2","arguments[0]","_ref6","STabPanelItem","Children","addonLeft","addonRight","buttonRef","useRef","_assignProps2","TabPanel","Item","Addon","tag","_ref3","_ref7","SText","_props$ellipsis","ellipsis","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapTabPanel","wrapper"],"sources":["../../src/TabPanel.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';\nimport { Text as UikitText } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/tab-panel.shadow.css';\nimport type { NSTabPanel } from './TabPanel.type';\n\nclass TabPanelRoot extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSTabPanel.Component>,\n typeof TabPanelRoot.enhance,\n NSTabPanel.Handlers\n> {\n static displayName = 'TabPanel';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n behavior: 'manual',\n };\n\n static enhance = [\n a11yEnhance({\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n }),\n ] as const;\n\n buttonRefsList: Array<React.MutableRefObject<HTMLButtonElement | undefined>> = [];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleClick = (value: NSTabPanel.Props['value']) => (event: React.MouseEvent<HTMLButtonElement>) => {\n this.handlers.value(value, event);\n };\n\n handleKeyDown = (value: NSTabPanel.Props['value']) => (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props: NSTabPanel.Item.Props, index: number) {\n const { value } = this.asProps;\n const isSelected = value === props.value;\n return {\n 'selected': isSelected,\n 'onClick': this.handleClick(props.value),\n 'onKeyDown': this.handleKeyDown(props.value),\n 'tabIndex': isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n 'buttonRefsList': this.buttonRefsList,\n index,\n };\n }\n\n getItemTextProps(_: NSTabPanel.Item.Text.Props, index: number) {\n return {\n buttonRefsList: this.buttonRefsList,\n index,\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(\n props: Intergalactic.InternalTypings.InferChildComponentProps<\n NSTabPanel.Item.Component,\n typeof TabPanelRoot,\n 'Item'\n >,\n) {\n const STabPanelItem = Root;\n const { Children, styles, addonLeft, addonRight, buttonRefsList, index } = props;\n const buttonRef = React.useRef<HTMLButtonElement>();\n\n buttonRefsList[index] = buttonRef;\n\n return sstyled(styles)(\n <STabPanelItem render={Box} type='button' tag='button' tabIndex={0} role='tab' ref={buttonRef}>\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\nfunction Text(\n props: Intergalactic.InternalTypings.InferChildComponentProps<\n NSTabPanel.Item.Text.Component,\n typeof TabPanelRoot,\n 'ItemText'\n >,\n) {\n const SText = Root;\n const { styles, ellipsis = true, buttonRefsList, index } = props;\n return sstyled(styles)(<SText render={UikitText} size={200} ellipsis={ellipsis} medium hint:triggerRef={buttonRefsList[index]} />);\n}\n\nfunction Addon(\n props: Intergalactic.InternalTypings.InferComponentProps<NSTabPanel.Item.Addon.Component>,\n) {\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}) as unknown as NSTabPanel.Component;\n\nexport const wrapTabPanel = <PropsExtending extends {}>(wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<NSTabPanel.WrapperComponent>\n > &\n PropsExtending,\n) => React.ReactNode) => wrapper as NSTabPanel.WrapperComponent<PropsExtending>;\n\nexport default TabPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabPanel.type.js","names":[],"sources":["../../src/TabPanel.type.ts"],"sourcesContent":["import type { Box, BoxProps } from '@semcore/base-components';\nimport type { Intergalactic, PropGetterFn } from '@semcore/core';\nimport type { NSText } from '@semcore/typography';\n\ndeclare namespace NSTabPanel {\n type Value = string | number | boolean;\n type Props<V extends NSTabPanel.Value = NSTabPanel.Value> = BoxProps & {\n /** Is invoked when changing the selection */\n onChange?:\n | ((value: V, e?: React.SyntheticEvent<HTMLButtonElement>) => void)\n | React.Dispatch<React.SetStateAction<V>>;\n /** Value of the selected tab */\n value?: V;\n /** Default value of the selected tab\n * @default null\n * */\n defaultValue?: V;\n /**\n * Behavior of tabs.\n * In `auto`, changes the tab immediately when press arrow.\n * In `manual`, needs to press `space` or `enter` for select a choice.\n * @default 'auto'\n */\n behavior?: 'auto' | 'manual';\n };\n type Ctx = {\n getItemProps: PropGetterFn;\n };\n type Handlers = {\n value: null;\n };\n\n namespace Item {\n type Props = BoxProps & {\n /** Makes a tab selected. This property is determined automatically depending on the value. */\n selected?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tab value */\n value?: NSTabPanel.Value;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n namespace Text {\n type Props = NSText.Props;\n type Component = NSText.Component;\n }\n\n namespace Addon {\n type Component = typeof Box;\n }\n\n type Component = Intergalactic.Component<'div', Props, {}, [handlers: NSTabPanel.Handlers]> & {\n Text: Text.Component;\n Addon: Addon.Component;\n };\n }\n\n type WrapperComponent<PropsExtending = {}> = (<\n V extends NSTabPanel.Value,\n Tag extends Intergalactic.Tag = 'div',\n >(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n Props<V>,\n Ctx,\n [handlers: Handlers]\n > &\n PropsExtending,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', Props>;\n\n type Component = WrapperComponent & {\n Item: Item.Component;\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type TabPanelValue = NSTabPanel.Value;\n/** @deprecated It will be removed in v18. */\nexport type TabPanelProps<T extends TabPanelValue = TabPanelValue> = NSTabPanel.Props<T>;\n/** @deprecated It will be removed in v18. */\nexport type TabPanelItemProps = NSTabPanel.Item.Props;\n/** @deprecated It will be removed in v18. */\nexport type TabPanelContext = NSTabPanel.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type TabPanelHandlers = NSTabPanel.Handlers;\n\nexport type { NSTabPanel };\n"],"mappings":"","ignoreList":[]}
|
package/lib/es6/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default } from './TabPanel';
|
|
2
|
-
export * from './TabPanel';
|
|
1
|
+
export { default, wrapTabPanel } from './TabPanel';
|
|
2
|
+
export * from './TabPanel.type';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","wrapTabPanel"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, wrapTabPanel } from './TabPanel';\nexport * from './TabPanel.type';\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,YAAY,QAAQ,YAAY;AAClD,cAAc,iBAAiB","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ STabPanel {
|
|
|
9
9
|
bottom: -1px;
|
|
10
10
|
flex: 1;
|
|
11
11
|
border-top: 1px solid transparent;
|
|
12
|
-
border-bottom: 1px solid var(--intergalactic-border-primary,
|
|
12
|
+
border-bottom: 1px solid var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ STabPanelItem {
|
|
|
19
19
|
display: inline-flex;
|
|
20
20
|
min-width: 0;
|
|
21
21
|
height: 32px;
|
|
22
|
-
color: var(--intergalactic-text-secondary,
|
|
22
|
+
color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
|
|
23
23
|
border: 1px solid transparent;
|
|
24
24
|
border-bottom: none;
|
|
25
25
|
border-radius: var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px) 0 0;
|
|
@@ -35,32 +35,23 @@ STabPanelItem {
|
|
|
35
35
|
box-shadow: none;
|
|
36
36
|
text-decoration: none;
|
|
37
37
|
-webkit-tap-highlight-color: transparent;
|
|
38
|
-
outline: 0;
|
|
39
38
|
text-align: center;
|
|
40
39
|
vertical-align: middle;
|
|
41
40
|
font-family: inherit;
|
|
42
41
|
cursor: pointer;
|
|
43
42
|
|
|
44
|
-
& SText {
|
|
45
|
-
font-size: var(--intergalactic-fs-200, 14px);
|
|
46
|
-
line-height: var(--intergalactic-lh-200, 142%);
|
|
47
|
-
font-weight: var(--intergalactic-medium, 500);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
43
|
&::-moz-focus-inner {
|
|
51
44
|
border: none;
|
|
52
45
|
padding: 0;
|
|
53
46
|
}
|
|
54
47
|
|
|
55
48
|
&:active,
|
|
56
|
-
&:hover
|
|
57
|
-
&:focus {
|
|
58
|
-
outline: 0;
|
|
49
|
+
&:hover {
|
|
59
50
|
text-decoration: none;
|
|
60
51
|
}
|
|
61
52
|
|
|
62
53
|
&:hover {
|
|
63
|
-
color: var(--intergalactic-text-primary,
|
|
54
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
64
55
|
}
|
|
65
56
|
|
|
66
57
|
&::after {
|
|
@@ -69,7 +60,7 @@ STabPanelItem {
|
|
|
69
60
|
left: -1px;
|
|
70
61
|
bottom: 0px;
|
|
71
62
|
width: calc(100% + 2px);
|
|
72
|
-
border-bottom: 1px solid var(--intergalactic-border-primary,
|
|
63
|
+
border-bottom: 1px solid var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
|
|
73
64
|
}
|
|
74
65
|
}
|
|
75
66
|
|
|
@@ -80,21 +71,17 @@ STabPanelItem[disabled] {
|
|
|
80
71
|
|
|
81
72
|
& SText,
|
|
82
73
|
& SAddon {
|
|
83
|
-
opacity: var(--intergalactic-disabled-opacity, 0.
|
|
74
|
+
opacity: var(--intergalactic-disabled-opacity, 0.4);
|
|
84
75
|
}
|
|
85
76
|
}
|
|
86
77
|
|
|
87
|
-
STabPanelItem[keyboardFocused] {
|
|
88
|
-
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
78
|
STabPanelItem[selected] {
|
|
92
|
-
color: var(--intergalactic-text-link,
|
|
93
|
-
border-color: var(--intergalactic-border-primary,
|
|
79
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.214 263.4));
|
|
80
|
+
border-color: var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
|
|
94
81
|
flex-shrink: 0;
|
|
95
82
|
|
|
96
83
|
&:hover {
|
|
97
|
-
color: var(--intergalactic-text-link-hover-active,
|
|
84
|
+
color: var(--intergalactic-text-link-hover-active, oklch(0.51 0.206 263.4));
|
|
98
85
|
}
|
|
99
86
|
|
|
100
87
|
&::after {
|
|
@@ -103,11 +90,7 @@ STabPanelItem[selected] {
|
|
|
103
90
|
}
|
|
104
91
|
|
|
105
92
|
SText {
|
|
106
|
-
display: inline-block;
|
|
107
93
|
margin: auto var(--intergalactic-spacing-2x, 8px);
|
|
108
|
-
white-space: nowrap;
|
|
109
|
-
overflow: hidden;
|
|
110
|
-
text-overflow: ellipsis;
|
|
111
94
|
}
|
|
112
95
|
|
|
113
96
|
SAddon {
|
|
@@ -127,4 +110,4 @@ SAddon:not(:only-child):last-child {
|
|
|
127
110
|
SAddon:only-child {
|
|
128
111
|
margin-right: var(--intergalactic-spacing-2x, 8px);
|
|
129
112
|
margin-left: var(--intergalactic-spacing-2x, 8px);
|
|
130
|
-
}
|
|
113
|
+
}
|
package/lib/esm/TabPanel.mjs
CHANGED
|
@@ -1,63 +1,48 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
3
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
-
import
|
|
4
|
+
import _callSuper from "@babel/runtime/helpers/esm/callSuper";
|
|
5
5
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
6
|
-
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
7
6
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
8
|
-
import { sstyled } from "@semcore/
|
|
9
|
-
import
|
|
7
|
+
import { sstyled, assignProps, Component, createComponent } from "@semcore/core";
|
|
8
|
+
import { Box } from "@semcore/base-components";
|
|
9
|
+
import addonTextChildren from "@semcore/core/lib/utils/addonTextChildren";
|
|
10
|
+
import a11yEnhance from "@semcore/core/lib/utils/enhances/a11yEnhance";
|
|
11
|
+
import { Text as Text$1 } from "@semcore/typography";
|
|
10
12
|
import React from "react";
|
|
11
|
-
import { Box } from "@semcore/flex-box";
|
|
12
|
-
import addonTextChildren from "@semcore/utils/lib/addonTextChildren";
|
|
13
|
-
import a11yEnhance from "@semcore/utils/lib/enhances/a11yEnhance";
|
|
14
|
-
import keyboardFocusEnhance from "@semcore/utils/lib/enhances/keyboardFocusEnhance";
|
|
15
13
|
/*!__reshadow-styles__:"./style/tab-panel.shadow.css"*/
|
|
16
14
|
var style = (
|
|
17
15
|
/*__reshadow_css_start__*/
|
|
18
16
|
(sstyled.insert(
|
|
19
17
|
/*__inner_css_start__*/
|
|
20
|
-
'.
|
|
18
|
+
'.___STabPanel_l0sw7_gg_{display:flex;width:100%;max-width:100%}.___STabPanel_l0sw7_gg_::after{content:"";position:relative;bottom:-1px;flex:1;border-top:1px solid transparent;border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@supports (color:color(display-p3 0 0 0%)){.___STabPanel_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanel_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___STabPanelItem_l0sw7_gg_{position:relative;bottom:-1px;display:inline-flex;min-width:0;height:32px;color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));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}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___STabPanelItem_l0sw7_gg_::-moz-focus-inner{border:0;padding:0}.___STabPanelItem_l0sw7_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabPanelItem_l0sw7_gg_:hover{-webkit-text-decoration:none;text-decoration:none;color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899))}}.___STabPanelItem_l0sw7_gg_::after{content:"";position:absolute;left:-1px;bottom:0;width:calc(100% + 2px);border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_::after{border-bottom:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_{cursor:default;pointer-events:none}.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_ .___SAddon_l0sw7_gg_,.___STabPanelItem_l0sw7_gg_.__disabled_l0sw7_gg_ .___SText_l0sw7_gg_{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{color:var(--intergalactic-text-link, rgb(36, 93, 229));border-color:var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));flex-shrink:0}@supports (color:color(display-p3 0 0 0%)){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{border-color:var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_{border-color:var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}@media (hover:hover){.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_:hover{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}}.___STabPanelItem_l0sw7_gg_.__selected_l0sw7_gg_::after{border-bottom:none}.___SText_l0sw7_gg_{margin:auto var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_l0sw7_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SAddon_l0sw7_gg_:only-child{margin-right:var(--intergalactic-spacing-2x, 8px);margin-left:var(--intergalactic-spacing-2x, 8px)}',
|
|
21
19
|
/*__inner_css_end__*/
|
|
22
|
-
"
|
|
20
|
+
"l0sw7_gg_"
|
|
23
21
|
), /*__reshadow_css_end__*/
|
|
24
22
|
{
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"_selected": "__selected_1cybh_gg_"
|
|
23
|
+
"__SText": "___SText_l0sw7_gg_",
|
|
24
|
+
"__SAddon": "___SAddon_l0sw7_gg_",
|
|
25
|
+
"__STabPanel": "___STabPanel_l0sw7_gg_",
|
|
26
|
+
"__STabPanelItem": "___STabPanelItem_l0sw7_gg_",
|
|
27
|
+
"_disabled": "__disabled_l0sw7_gg_",
|
|
28
|
+
"_selected": "__selected_l0sw7_gg_"
|
|
32
29
|
})
|
|
33
30
|
);
|
|
34
|
-
var
|
|
35
|
-
onNeighborChange: function onNeighborChange(neighborElement, props) {
|
|
36
|
-
if (neighborElement) {
|
|
37
|
-
neighborElement.focus();
|
|
38
|
-
if (props.behavior === "auto") {
|
|
39
|
-
neighborElement.click();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
childSelector: ["role", "tab"]
|
|
44
|
-
};
|
|
45
|
-
var TabPanelRoot = /* @__PURE__ */ function(_Component) {
|
|
46
|
-
_inherits(TabPanelRoot2, _Component);
|
|
47
|
-
var _super = _createSuper(TabPanelRoot2);
|
|
31
|
+
var TabPanelRoot = /* @__PURE__ */ (function(_Component) {
|
|
48
32
|
function TabPanelRoot2() {
|
|
49
33
|
var _this;
|
|
50
34
|
_classCallCheck(this, TabPanelRoot2);
|
|
51
35
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
52
36
|
args[_key] = arguments[_key];
|
|
53
37
|
}
|
|
54
|
-
_this =
|
|
55
|
-
_defineProperty(
|
|
38
|
+
_this = _callSuper(this, TabPanelRoot2, [].concat(args));
|
|
39
|
+
_defineProperty(_this, "buttonRefsList", []);
|
|
40
|
+
_defineProperty(_this, "handleClick", function(value) {
|
|
56
41
|
return function(event) {
|
|
57
42
|
_this.handlers.value(value, event);
|
|
58
43
|
};
|
|
59
44
|
});
|
|
60
|
-
_defineProperty(
|
|
45
|
+
_defineProperty(_this, "handleKeyDown", function(value) {
|
|
61
46
|
return function(event) {
|
|
62
47
|
if (event.key === "Enter" || event.key === " ") {
|
|
63
48
|
event.preventDefault();
|
|
@@ -67,7 +52,8 @@ var TabPanelRoot = /* @__PURE__ */ function(_Component) {
|
|
|
67
52
|
});
|
|
68
53
|
return _this;
|
|
69
54
|
}
|
|
70
|
-
|
|
55
|
+
_inherits(TabPanelRoot2, _Component);
|
|
56
|
+
return _createClass(TabPanelRoot2, [{
|
|
71
57
|
key: "uncontrolledProps",
|
|
72
58
|
value: function uncontrolledProps() {
|
|
73
59
|
return {
|
|
@@ -80,11 +66,21 @@ var TabPanelRoot = /* @__PURE__ */ function(_Component) {
|
|
|
80
66
|
var value = this.asProps.value;
|
|
81
67
|
var isSelected = value === props.value;
|
|
82
68
|
return {
|
|
83
|
-
selected: isSelected,
|
|
84
|
-
onClick: this.handleClick(props.value),
|
|
85
|
-
onKeyDown: this.handleKeyDown(props.value),
|
|
86
|
-
tabIndex: isSelected ? 0 : -1,
|
|
87
|
-
"aria-selected": isSelected
|
|
69
|
+
"selected": isSelected,
|
|
70
|
+
"onClick": this.handleClick(props.value),
|
|
71
|
+
"onKeyDown": this.handleKeyDown(props.value),
|
|
72
|
+
"tabIndex": isSelected ? 0 : -1,
|
|
73
|
+
"aria-selected": isSelected,
|
|
74
|
+
"buttonRefsList": this.buttonRefsList,
|
|
75
|
+
index
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "getItemTextProps",
|
|
80
|
+
value: function getItemTextProps(_, index) {
|
|
81
|
+
return {
|
|
82
|
+
buttonRefsList: this.buttonRefsList,
|
|
83
|
+
index
|
|
88
84
|
};
|
|
89
85
|
}
|
|
90
86
|
}, {
|
|
@@ -93,48 +89,64 @@ var TabPanelRoot = /* @__PURE__ */ function(_Component) {
|
|
|
93
89
|
var _ref = this.asProps, _ref5;
|
|
94
90
|
var STabPanel = Box;
|
|
95
91
|
var styles = this.asProps.styles;
|
|
96
|
-
return _ref5 = sstyled
|
|
92
|
+
return _ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(STabPanel, _ref5.cn("STabPanel", _objectSpread({}, assignProps({
|
|
97
93
|
"role": "tablist"
|
|
98
94
|
}, _ref))));
|
|
99
95
|
}
|
|
100
96
|
}]);
|
|
101
|
-
|
|
102
|
-
}(Component);
|
|
97
|
+
})(Component);
|
|
103
98
|
_defineProperty(TabPanelRoot, "displayName", "TabPanel");
|
|
104
99
|
_defineProperty(TabPanelRoot, "style", style);
|
|
105
100
|
_defineProperty(TabPanelRoot, "defaultProps", {
|
|
106
101
|
defaultValue: null,
|
|
107
102
|
behavior: "manual"
|
|
108
103
|
});
|
|
109
|
-
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance(
|
|
104
|
+
_defineProperty(TabPanelRoot, "enhance", [a11yEnhance({
|
|
105
|
+
onNeighborChange: function onNeighborChange(neighborElement, props) {
|
|
106
|
+
if (neighborElement) {
|
|
107
|
+
neighborElement.focus();
|
|
108
|
+
if (props.behavior === "auto") {
|
|
109
|
+
neighborElement.click();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
childSelector: ["role", "tab"]
|
|
114
|
+
})]);
|
|
115
|
+
;
|
|
110
116
|
function TabPanelItem(props) {
|
|
111
117
|
var _ref2 = arguments[0], _ref6;
|
|
112
118
|
var STabPanelItem = Box;
|
|
113
|
-
var Children = props.Children, styles = props.styles, addonLeft = props.addonLeft, addonRight = props.addonRight;
|
|
114
|
-
|
|
119
|
+
var Children = props.Children, styles = props.styles, addonLeft = props.addonLeft, addonRight = props.addonRight, buttonRefsList = props.buttonRefsList, index = props.index;
|
|
120
|
+
var buttonRef = React.useRef();
|
|
121
|
+
buttonRefsList[index] = buttonRef;
|
|
122
|
+
return _ref6 = sstyled(styles), /* @__PURE__ */ React.createElement(STabPanelItem, _ref6.cn("STabPanelItem", _objectSpread({}, assignProps({
|
|
115
123
|
"type": "button",
|
|
116
124
|
"tag": "button",
|
|
117
|
-
"
|
|
125
|
+
"tabIndex": 0,
|
|
126
|
+
"role": "tab",
|
|
127
|
+
"ref": buttonRef
|
|
118
128
|
}, _ref2))), addonLeft ? /* @__PURE__ */ React.createElement(TabPanel.Item.Addon, {
|
|
119
129
|
tag: addonLeft
|
|
120
130
|
}) : null, addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon), addonRight ? /* @__PURE__ */ React.createElement(TabPanel.Item.Addon, {
|
|
121
131
|
tag: addonRight
|
|
122
132
|
}) : null);
|
|
123
133
|
}
|
|
124
|
-
TabPanelItem.enhance = [keyboardFocusEnhance()];
|
|
125
134
|
function Text(props) {
|
|
126
135
|
var _ref3 = arguments[0], _ref7;
|
|
127
|
-
var SText =
|
|
128
|
-
var styles = props.styles;
|
|
129
|
-
return _ref7 = sstyled
|
|
130
|
-
"
|
|
136
|
+
var SText = Text$1;
|
|
137
|
+
var styles = props.styles, _props$ellipsis = props.ellipsis, ellipsis = _props$ellipsis === void 0 ? true : _props$ellipsis, buttonRefsList = props.buttonRefsList, index = props.index;
|
|
138
|
+
return _ref7 = sstyled(styles), /* @__PURE__ */ React.createElement(SText, _ref7.cn("SText", _objectSpread({}, assignProps({
|
|
139
|
+
"size": 200,
|
|
140
|
+
"ellipsis": ellipsis,
|
|
141
|
+
"medium": true,
|
|
142
|
+
"hint:triggerRef": buttonRefsList[index]
|
|
131
143
|
}, _ref3))));
|
|
132
144
|
}
|
|
133
145
|
function Addon(props) {
|
|
134
146
|
var _ref4 = arguments[0], _ref8;
|
|
135
147
|
var SAddon = Box;
|
|
136
148
|
var styles = props.styles;
|
|
137
|
-
return _ref8 = sstyled
|
|
149
|
+
return _ref8 = sstyled(styles), /* @__PURE__ */ React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, assignProps({
|
|
138
150
|
"tag": "span"
|
|
139
151
|
}, _ref4))));
|
|
140
152
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|