@semcore/tab-line 16.0.11 → 17.0.0-prerelease.18

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/cjs/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  var _exportNames = {};
8
8
  Object.defineProperty(exports, "default", {
9
9
  enumerable: true,
10
- get: function get() {
11
- return _TabLine["default"];
10
+ get: function () {
11
+ return _TabLine.default;
12
12
  }
13
13
  });
14
14
  var _TabLine = _interopRequireWildcard(require("./TabLine"));
@@ -18,7 +18,7 @@ Object.keys(_TabLine).forEach(function (key) {
18
18
  if (key in exports && exports[key] === _TabLine[key]) return;
19
19
  Object.defineProperty(exports, key, {
20
20
  enumerable: true,
21
- get: function get() {
21
+ get: function () {
22
22
  return _TabLine[key];
23
23
  }
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_TabLine","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './TabLine';\nexport * from './TabLine';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,QAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,QAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAd,QAAA,CAAAM,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_TabLine","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './TabLine';\nexport * from './TabLine';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,QAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,QAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAd,QAAA,CAAAM,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -97,13 +97,6 @@ STabLineItem[disabled] {
97
97
  pointer-events: none;
98
98
  }
99
99
 
100
- SText {
101
- display: inline-block;
102
- white-space: nowrap;
103
- overflow: hidden;
104
- text-overflow: ellipsis;
105
- }
106
-
107
100
  SAddon {
108
101
  display: inline-flex;
109
102
  align-items: center;
@@ -113,21 +106,11 @@ SAddon {
113
106
  STabLineItem[size='m'] {
114
107
  height: 28px;
115
108
  min-width: 18px;
116
-
117
- & SText {
118
- font-size: var(--intergalactic-fs-200, 14px);
119
- line-height: var(--intergalactic-lh-200, 142%);
120
- }
121
109
  }
122
110
 
123
111
  STabLineItem[size='l'] {
124
112
  height: 40px;
125
113
  min-width: 26px;
126
-
127
- & SText {
128
- font-size: var(--intergalactic-fs-300, 16px);
129
- line-height: var(--intergalactic-lh-300, 150%);
130
- }
131
114
  }
132
115
 
133
116
  STabLineItem[neighborLocation='left'] {
@@ -1,38 +1,33 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
- import _callSuper from "@babel/runtime/helpers/callSuper";
5
- import _inherits from "@babel/runtime/helpers/inherits";
6
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
2
  import { sstyled as _sstyled } from "@semcore/core";
8
3
  import { assignProps as _assignProps4 } from "@semcore/core";
9
4
  import { assignProps as _assignProps3 } from "@semcore/core";
10
5
  import { assignProps as _assignProps2 } from "@semcore/core";
11
6
  import { assignProps as _assignProps } from "@semcore/core";
7
+ import { NeighborLocation, Box } from '@semcore/base-components';
12
8
  import { createComponent, Component, sstyled, Root } from '@semcore/core';
13
9
  import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
14
10
  import a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';
15
- import { Box } from '@semcore/flex-box';
16
- import NeighborLocation from '@semcore/neighbor-location';
11
+ import { Text as UikitText } from '@semcore/typography';
17
12
  import React from 'react';
18
13
  /*!__reshadow-styles__:"./style/tab-line.shadow.css"*/
19
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___STabLine_1y535_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_1y535_gg_.__underlined_1y535_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_1y535_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_1y535_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_1y535_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_1y535_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_1y535_gg_::after,.___STabLineItem_1y535_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_1y535_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_1y535_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_1y535_gg_.__selected_1y535_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_1y535_gg_ .___SAddon_1y535_gg_:not(:last-child),.___STabLineItem_1y535_gg_ .___SText_1y535_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_1y535_gg_{position:absolute;bottom:-1px;height:3px;background:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_1y535_gg_.__selected_1y535_gg_{flex-shrink:0}.___STabLineItem_1y535_gg_.__disabled_1y535_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SText_1y535_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_1y535_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_1y535_gg_._size_m_1y535_gg_{height:28px;min-width:18px}.___STabLineItem_1y535_gg_._size_m_1y535_gg_ .___SText_1y535_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_1y535_gg_._size_l_1y535_gg_{height:40px;min-width:26px}.___STabLineItem_1y535_gg_._size_l_1y535_gg_ .___SText_1y535_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_1y535_gg_._neighborLocation_left_1y535_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_1y535_gg_.__selected_1y535_gg_::after,.___STabLineItem_1y535_gg_::after,.___STabLineItem_1y535_gg_::before{transition:none}.___SCaret_1y535_gg_{display:none}}", /*__inner_css_end__*/"1y535_gg_"),
14
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___STabLine_1i3e2_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_1i3e2_gg_.__underlined_1i3e2_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_1i3e2_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_1i3e2_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_1i3e2_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_1i3e2_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_1i3e2_gg_::after,.___STabLineItem_1i3e2_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_1i3e2_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_1i3e2_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_1i3e2_gg_.__selected_1i3e2_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_1i3e2_gg_ .___SAddon_1i3e2_gg_:not(:last-child),.___STabLineItem_1i3e2_gg_ .___SText_1i3e2_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_1i3e2_gg_{position:absolute;bottom:-1px;height:3px;background:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_1i3e2_gg_.__selected_1i3e2_gg_{flex-shrink:0}.___STabLineItem_1i3e2_gg_.__disabled_1i3e2_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SAddon_1i3e2_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_1i3e2_gg_._size_m_1i3e2_gg_{height:28px;min-width:18px}.___STabLineItem_1i3e2_gg_._size_l_1i3e2_gg_{height:40px;min-width:26px}.___STabLineItem_1i3e2_gg_._neighborLocation_left_1i3e2_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_1i3e2_gg_.__selected_1i3e2_gg_::after,.___STabLineItem_1i3e2_gg_::after,.___STabLineItem_1i3e2_gg_::before{transition:none}.___SCaret_1i3e2_gg_{display:none}}", /*__inner_css_end__*/"1i3e2_gg_"),
20
15
  /*__reshadow_css_end__*/
21
16
  {
22
- "__STabLine": "___STabLine_1y535_gg_",
23
- "_underlined": "__underlined_1y535_gg_",
24
- "__SCaret": "___SCaret_1y535_gg_",
25
- "__STabLineItem": "___STabLineItem_1y535_gg_",
26
- "_selected": "__selected_1y535_gg_",
27
- "_disabled": "__disabled_1y535_gg_",
28
- "__SText": "___SText_1y535_gg_",
29
- "__SAddon": "___SAddon_1y535_gg_",
30
- "_neighborLocation_left": "_neighborLocation_left_1y535_gg_",
31
- "_size_m": "_size_m_1y535_gg_",
32
- "_size_l": "_size_l_1y535_gg_"
17
+ "__STabLine": "___STabLine_1i3e2_gg_",
18
+ "_underlined": "__underlined_1i3e2_gg_",
19
+ "__SCaret": "___SCaret_1i3e2_gg_",
20
+ "__STabLineItem": "___STabLineItem_1i3e2_gg_",
21
+ "_selected": "__selected_1i3e2_gg_",
22
+ "_disabled": "__disabled_1i3e2_gg_",
23
+ "__SAddon": "___SAddon_1i3e2_gg_",
24
+ "_size_m": "_size_m_1i3e2_gg_",
25
+ "_size_l": "_size_l_1i3e2_gg_",
26
+ "_neighborLocation_left": "_neighborLocation_left_1i3e2_gg_",
27
+ "__SText": "___SText_1i3e2_gg_"
33
28
  });
34
- var optionsA11yEnhance = {
35
- onNeighborChange: function onNeighborChange(neighborElement, props) {
29
+ const optionsA11yEnhance = {
30
+ onNeighborChange: (neighborElement, props) => {
36
31
  if (neighborElement) {
37
32
  neighborElement.focus();
38
33
  if (props.behavior === 'auto') {
@@ -42,155 +37,152 @@ var optionsA11yEnhance = {
42
37
  },
43
38
  childSelector: ['role', 'tab']
44
39
  };
45
- var TabLineRoot = /*#__PURE__*/function (_Component) {
46
- function TabLineRoot() {
47
- var _this;
48
- _classCallCheck(this, TabLineRoot);
49
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50
- args[_key] = arguments[_key];
51
- }
52
- _this = _callSuper(this, TabLineRoot, [].concat(args));
53
- _defineProperty(_this, "state", {
40
+ class TabLineRoot extends Component {
41
+ constructor(...args) {
42
+ super(...args);
43
+ _defineProperty(this, "state", {
54
44
  animation: null
55
45
  });
56
- _defineProperty(_this, "prevValue", undefined);
57
- _defineProperty(_this, "itemRefs", {});
58
- _defineProperty(_this, "containerRef", /*#__PURE__*/React.createRef());
59
- _defineProperty(_this, "animationStartTimeout", -1);
60
- _defineProperty(_this, "handleAnimationStart", function () {
61
- var _this$state$animation;
62
- if (((_this$state$animation = _this.state.animation) === null || _this$state$animation === void 0 ? void 0 : _this$state$animation.started) === false) {
63
- _this.setState({
64
- animation: _objectSpread(_objectSpread({}, _this.state.animation), {}, {
46
+ _defineProperty(this, "prevValue", undefined);
47
+ _defineProperty(this, "itemRefs", {});
48
+ _defineProperty(this, "containerRef", /*#__PURE__*/React.createRef());
49
+ _defineProperty(this, "animationStartTimeout", -1);
50
+ _defineProperty(this, "buttonRefsList", []);
51
+ _defineProperty(this, "handleAnimationStart", () => {
52
+ if (this.state.animation?.started === false) {
53
+ this.setState({
54
+ animation: {
55
+ ...this.state.animation,
65
56
  started: true
66
- })
57
+ }
67
58
  });
68
59
  }
69
60
  });
70
- _defineProperty(_this, "handleAnimationEnd", function () {
71
- _this.setState({
61
+ _defineProperty(this, "handleAnimationEnd", () => {
62
+ this.setState({
72
63
  animation: null
73
64
  });
74
65
  });
75
- _defineProperty(_this, "bindHandlerClick", function (value) {
76
- return function (e) {
77
- _this.handlers.value(value, e);
78
- };
66
+ _defineProperty(this, "bindHandlerClick", value => e => {
67
+ this.handlers.value(value, e);
79
68
  });
80
- return _this;
81
69
  }
82
- _inherits(TabLineRoot, _Component);
83
- return _createClass(TabLineRoot, [{
84
- key: "uncontrolledProps",
85
- value: function uncontrolledProps() {
86
- return {
87
- value: null
88
- };
89
- }
90
- }, {
91
- key: "componentDidUpdate",
92
- value: function componentDidUpdate() {
93
- if (this.prevValue !== null && this.asProps.value !== null && this.prevValue !== this.asProps.value) {
94
- this.animate();
95
- }
96
- this.prevValue = this.asProps.value;
97
- }
98
- }, {
99
- key: "componentDidMount",
100
- value: function componentDidMount() {
101
- this.prevValue = this.asProps.value;
102
- }
103
- }, {
104
- key: "componentWillUnmount",
105
- value: function componentWillUnmount() {
106
- clearTimeout(this.animationStartTimeout);
70
+ uncontrolledProps() {
71
+ return {
72
+ value: null
73
+ };
74
+ }
75
+ componentDidUpdate() {
76
+ if (this.prevValue !== null && this.asProps.value !== null && this.prevValue !== this.asProps.value) {
77
+ this.animate();
107
78
  }
108
- }, {
109
- key: "animate",
110
- value: function animate() {
111
- var fromNode = this.itemRefs[this.prevValue];
112
- var toNode = this.itemRefs[this.asProps.value];
113
- var containerNode = this.containerRef.current;
114
- if (!fromNode || !toNode || !containerNode) return;
115
- var containerRect = containerNode.getBoundingClientRect();
116
- var fromRect = fromNode.getBoundingClientRect();
117
- var toRect = toNode.getBoundingClientRect();
118
- var animation = {
119
- fromLeft: fromRect.x - containerRect.x,
120
- fromWidth: fromRect.width,
121
- toLeft: toRect.x - containerRect.x,
122
- toWidth: toRect.width,
123
- started: false
79
+ this.prevValue = this.asProps.value;
80
+ }
81
+ componentDidMount() {
82
+ this.prevValue = this.asProps.value;
83
+ }
84
+ componentWillUnmount() {
85
+ clearTimeout(this.animationStartTimeout);
86
+ }
87
+ animate() {
88
+ const fromNode = this.itemRefs[this.prevValue];
89
+ const toNode = this.itemRefs[this.asProps.value];
90
+ const containerNode = this.containerRef.current;
91
+ if (!fromNode || !toNode || !containerNode) return;
92
+ const containerRect = containerNode.getBoundingClientRect();
93
+ const fromRect = fromNode.getBoundingClientRect();
94
+ const toRect = toNode.getBoundingClientRect();
95
+ const animation = {
96
+ fromLeft: fromRect.x - containerRect.x,
97
+ fromWidth: fromRect.width,
98
+ toLeft: toRect.x - containerRect.x,
99
+ toWidth: toRect.width,
100
+ started: false
101
+ };
102
+ this.setState({
103
+ animation
104
+ });
105
+ clearTimeout(this.animationStartTimeout);
106
+ this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);
107
+ }
108
+ getItemProps(props, index) {
109
+ const {
110
+ value,
111
+ size
112
+ } = this.asProps;
113
+ const isSelected = value === props.value;
114
+ return {
115
+ size,
116
+ 'selected': isSelected,
117
+ 'onClick': this.bindHandlerClick(props.value),
118
+ 'tabIndex': isSelected ? 0 : -1,
119
+ 'aria-selected': isSelected,
120
+ 'ref': node => {
121
+ this.itemRefs[props.value] = node;
122
+ },
123
+ 'buttonRefsList': this.buttonRefsList,
124
+ index
125
+ };
126
+ }
127
+ getItemTextProps(props, index) {
128
+ const {
129
+ size: tabLineSize
130
+ } = this.asProps;
131
+ const size = props.size ? props.size : tabLineSize === 'm' ? 200 : 300;
132
+ return {
133
+ size,
134
+ buttonRefsList: this.buttonRefsList,
135
+ index
136
+ };
137
+ }
138
+ getCaretProps() {
139
+ const {
140
+ animation
141
+ } = this.state;
142
+ if (!animation) return {};
143
+ if (animation.started) {
144
+ return {
145
+ style: {
146
+ left: animation.toLeft,
147
+ width: animation.toWidth
148
+ },
149
+ onTransitionEnd: this.handleAnimationEnd
124
150
  };
125
- this.setState({
126
- animation: animation
127
- });
128
- clearTimeout(this.animationStartTimeout);
129
- this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);
130
- }
131
- }, {
132
- key: "getItemProps",
133
- value: function getItemProps(props, _index) {
134
- var _this2 = this;
135
- var _this$asProps = this.asProps,
136
- value = _this$asProps.value,
137
- size = _this$asProps.size;
138
- var isSelected = value === props.value;
151
+ } else {
139
152
  return {
140
- size: size,
141
- 'selected': isSelected,
142
- 'onClick': this.bindHandlerClick(props.value),
143
- 'tabIndex': isSelected ? 0 : -1,
144
- 'aria-selected': isSelected,
145
- 'ref': function ref(node) {
146
- _this2.itemRefs[props.value] = node;
147
- }
153
+ style: {
154
+ left: animation.fromLeft,
155
+ width: animation.fromWidth
156
+ },
157
+ onTransitionEnd: this.handleAnimationEnd
148
158
  };
149
159
  }
150
- }, {
151
- key: "getCaretProps",
152
- value: function getCaretProps() {
153
- var animation = this.state.animation;
154
- if (!animation) return {};
155
- if (animation.started) {
156
- return {
157
- style: {
158
- left: animation.toLeft,
159
- width: animation.toWidth
160
- },
161
- onTransitionEnd: this.handleAnimationEnd
162
- };
163
- } else {
164
- return {
165
- style: {
166
- left: animation.fromLeft,
167
- width: animation.fromWidth
168
- },
169
- onTransitionEnd: this.handleAnimationEnd
170
- };
171
- }
172
- }
173
- }, {
174
- key: "render",
175
- value: function render() {
176
- var _ref = this.asProps,
177
- _ref5;
178
- var STabLine = Box;
179
- var SCaret = Box;
180
- var _this$asProps2 = this.asProps,
181
- styles = _this$asProps2.styles,
182
- Children = _this$asProps2.Children,
183
- controlsLength = _this$asProps2.controlsLength;
184
- var animation = this.state.animation;
185
- return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(STabLine, _ref5.cn("STabLine", _objectSpread({}, _assignProps({
160
+ }
161
+ render() {
162
+ var _ref = this.asProps,
163
+ _ref5;
164
+ const STabLine = Box;
165
+ const SCaret = Box;
166
+ const {
167
+ styles,
168
+ Children,
169
+ controlsLength
170
+ } = this.asProps;
171
+ const {
172
+ animation
173
+ } = this.state;
174
+ return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(STabLine, _ref5.cn("STabLine", {
175
+ ..._assignProps({
186
176
  "role": 'tablist',
187
177
  "ref": this.containerRef
188
- }, _ref))), /*#__PURE__*/React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
189
- "controlsLength": controlsLength
190
- }), /*#__PURE__*/React.createElement(Children, _ref5.cn("Children", {}))), animation && /*#__PURE__*/React.createElement(SCaret, _ref5.cn("SCaret", _objectSpread({}, this.getCaretProps()))));
191
- }
192
- }]);
193
- }(Component);
178
+ }, _ref)
179
+ }), /*#__PURE__*/React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
180
+ "controlsLength": controlsLength
181
+ }), /*#__PURE__*/React.createElement(Children, _ref5.cn("Children", {}))), animation && /*#__PURE__*/React.createElement(SCaret, _ref5.cn("SCaret", {
182
+ ...this.getCaretProps()
183
+ })));
184
+ }
185
+ }
194
186
  _defineProperty(TabLineRoot, "displayName", 'TabLine');
195
187
  _defineProperty(TabLineRoot, "style", style);
196
188
  _defineProperty(TabLineRoot, "defaultProps", {
@@ -202,23 +194,32 @@ _defineProperty(TabLineRoot, "defaultProps", {
202
194
  _defineProperty(TabLineRoot, "enhance", [a11yEnhance(optionsA11yEnhance)]);
203
195
  function TabLineItem(props) {
204
196
  var _ref2 = arguments[0];
205
- var STabLineItem = Box;
206
- var Children = props.Children,
207
- styles = props.styles,
208
- addonLeft = props.addonLeft,
209
- addonRight = props.addonRight,
210
- neighborLocation = props.neighborLocation;
197
+ const STabLineItem = Box;
198
+ const {
199
+ Children,
200
+ styles,
201
+ addonLeft,
202
+ addonRight,
203
+ neighborLocation,
204
+ buttonRefsList,
205
+ index
206
+ } = props;
207
+ const buttonRef = React.useRef();
208
+ buttonRefsList[index] = buttonRef;
211
209
  return /*#__PURE__*/React.createElement(NeighborLocation.Detect, {
212
210
  neighborLocation: neighborLocation
213
- }, function (neighborLocation) {
211
+ }, neighborLocation => {
214
212
  var _ref6;
215
- return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(STabLineItem, _ref6.cn("STabLineItem", _objectSpread({}, _assignProps2({
216
- "tag": 'button',
217
- "tabIndex": 0,
218
- "neighborLocation": neighborLocation,
219
- "type": 'button',
220
- "role": 'tab'
221
- }, _ref2))), addonLeft ? /*#__PURE__*/React.createElement(TabLine.Item.Addon, {
213
+ return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(STabLineItem, _ref6.cn("STabLineItem", {
214
+ ..._assignProps2({
215
+ "tag": 'button',
216
+ "tabIndex": 0,
217
+ "neighborLocation": neighborLocation,
218
+ "type": 'button',
219
+ "role": 'tab',
220
+ "ref": buttonRef
221
+ }, _ref2)
222
+ }), addonLeft ? /*#__PURE__*/React.createElement(TabLine.Item.Addon, {
222
223
  tag: addonLeft
223
224
  }) : null, addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon), addonRight ? /*#__PURE__*/React.createElement(TabLine.Item.Addon, {
224
225
  tag: addonRight
@@ -228,29 +229,45 @@ function TabLineItem(props) {
228
229
  function Text(props) {
229
230
  var _ref3 = arguments[0],
230
231
  _ref7;
231
- var styles = props.styles;
232
- var SText = Box;
233
- return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SText, _ref7.cn("SText", _objectSpread({}, _assignProps3({
234
- "tag": 'span'
235
- }, _ref3))));
232
+ const {
233
+ styles,
234
+ ellipsis = true,
235
+ size,
236
+ buttonRefsList,
237
+ index,
238
+ hintProps = {}
239
+ } = props;
240
+ const SText = UikitText;
241
+ return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SText, _ref7.cn("SText", {
242
+ ..._assignProps3({
243
+ "ellipsis": ellipsis,
244
+ "size": size,
245
+ "use:hintProps": {
246
+ triggerRef: buttonRefsList[index],
247
+ ...hintProps
248
+ }
249
+ }, _ref3)
250
+ }));
236
251
  }
237
252
  function Addon(props) {
238
253
  var _ref4 = arguments[0],
239
254
  _ref8;
240
- var styles = props.styles;
241
- var SAddon = Box;
242
- return _ref8 = sstyled(styles), /*#__PURE__*/React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, _assignProps4({
243
- "tag": 'span'
244
- }, _ref4))));
255
+ const {
256
+ styles
257
+ } = props;
258
+ const SAddon = Box;
259
+ return _ref8 = sstyled(styles), /*#__PURE__*/React.createElement(SAddon, _ref8.cn("SAddon", {
260
+ ..._assignProps4({
261
+ "tag": 'span'
262
+ }, _ref4)
263
+ }));
245
264
  }
246
- var TabLine = createComponent(TabLineRoot, {
265
+ const TabLine = createComponent(TabLineRoot, {
247
266
  Item: [TabLineItem, {
248
- Text: Text,
249
- Addon: Addon
267
+ Text,
268
+ Addon
250
269
  }]
251
270
  });
252
- export var wrapTabLine = function wrapTabLine(wrapper) {
253
- return wrapper;
254
- };
271
+ export const wrapTabLine = wrapper => wrapper;
255
272
  export default TabLine;
256
273
  //# sourceMappingURL=TabLine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabLine.js","names":["createComponent","Component","sstyled","Root","addonTextChildren","a11yEnhance","Box","NeighborLocation","React","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","animation","undefined","createRef","_this$state$animation","state","started","setState","_objectSpread","value","e","handlers","_inherits","_createClass","key","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","_index","_this2","_this$asProps","size","isSelected","bindHandlerClick","ref","node","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","SCaret","_this$asProps2","styles","Children","controlsLength","createElement","cn","_assignProps","defaultValue","underlined","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","Detect","_ref6","_assignProps2","TabLine","Item","Addon","tag","Text","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapTabLine","wrapper"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import { 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 { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport React from 'react';\n\nimport style from './style/tab-line.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 TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, _index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n 'selected': isSelected,\n 'onClick': this.bindHandlerClick(props.value),\n 'tabIndex': isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n 'ref': (node) => {\n this.itemRefs[props.value] = node;\n },\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = Box;\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n tabIndex={0}\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )}\n </NeighborLocation.Detect>\n );\n}\n\nfunction Text(props) {\n const { styles } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TabLine.js","names":["NeighborLocation","Box","createComponent","Component","sstyled","Root","addonTextChildren","a11yEnhance","Text","UikitText","React","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","constructor","args","_defineProperty","animation","undefined","createRef","state","started","setState","value","e","handlers","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","index","size","isSelected","bindHandlerClick","node","buttonRefsList","getItemTextProps","tabLineSize","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","SCaret","styles","Children","controlsLength","createElement","cn","_assignProps","defaultValue","underlined","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","buttonRef","useRef","Detect","_ref6","_assignProps2","TabLine","Item","Addon","tag","_ref3","_ref7","ellipsis","hintProps","SText","_assignProps3","triggerRef","_ref4","_ref8","SAddon","_assignProps4","wrapTabLine","wrapper"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import { NeighborLocation, Box } from '@semcore/base-components';\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-line.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 TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n buttonRefsList = [];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n 'selected': isSelected,\n 'onClick': this.bindHandlerClick(props.value),\n 'tabIndex': isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n 'ref': (node) => {\n this.itemRefs[props.value] = node;\n },\n 'buttonRefsList': this.buttonRefsList,\n index,\n };\n }\n\n getItemTextProps(props, index) {\n const { size: tabLineSize } = this.asProps;\n const size = props.size\n ? props.size\n : tabLineSize === 'm' ? 200 : 300;\n\n return {\n size,\n buttonRefsList: this.buttonRefsList,\n index,\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = Box;\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation, buttonRefsList, index } = props;\n const buttonRef = React.useRef();\n\n buttonRefsList[index] = buttonRef;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n tabIndex={0}\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n ref={buttonRef}\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )}\n </NeighborLocation.Detect>\n );\n}\n\nfunction Text(props) {\n const { styles, ellipsis = true, size, buttonRefsList, index, hintProps = {} } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={UikitText} ellipsis={ellipsis} size={size} use:hintProps={{ triggerRef: buttonRefsList[index], ...hintProps }} />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport type React from 'react';\n\nexport type TabLineValue = string | number | boolean;\n\n/** @deprecated */\nexport interface ITabLineProps<T extends TabLineValue = TabLineValue>\n extends TabLineProps<T>,\n UnknownProperties {}\nexport type TabLineProps<T extends TabLineValue = TabLineValue> = BoxProps &\n NeighborLocationProps & {\n /** TabLine size\n * @default m\n * */\n size?: 'm' | 'l' | false;\n /** Adds a bottom border for the entire component\n * @default true\n * */\n underlined?: boolean;\n /** Is invoked when changing the selection */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value of the selected tab */\n value?: T;\n /** Default value of the selected tab\n * @default null\n * */\n defaultValue?: T;\n\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\n/** @deprecated */\nexport interface ITabLineItemProps extends TabLineItemProps, UnknownProperties {}\nexport type TabLineItemProps = BoxProps &\n NeighborItemProps & {\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?: TabLineValue;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface ITabLineContext extends TabLineContext, UnknownProperties {}\nexport type TabLineContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface ITabLineHandlers extends TabLineHandlers, UnknownProperties {}\nexport type TabLineHandlers = {\n value: (value: TabLineValue) => void;\n};\n\ntype IntergalacticTabLineComponent<PropsExtending = {}> = (<\n Value extends TabLineValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n TabLineProps<Value>,\n TabLineContext,\n [handlers: TabLineHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', TabLineProps>;\n\ndeclare const TabLine: IntergalacticTabLineComponent & {\n Item: Intergalactic.Component<'div', TabLineItemProps, {}, [handlers: TabLineHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapTabLine: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticTabLineComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticTabLineComponent<PropsExtending>;\nexport { wrapTabLine };\n\nexport default TabLine;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { Box, BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\nexport type TabLineValue = string | number | boolean;\n\nexport type TabLineProps<T extends TabLineValue = TabLineValue> = BoxProps &\n NeighborLocationProps & {\n /** TabLine size\n * @default m\n * */\n size?: 'm' | 'l' | false;\n /** Adds a bottom border for the entire component\n * @default true\n * */\n underlined?: boolean;\n /** Is invoked when changing the selection */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value of the selected tab */\n value?: T;\n /** Default value of the selected tab\n * @default null\n * */\n defaultValue?: T;\n\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\nexport type TabLineItemProps = BoxProps &\n NeighborItemProps & {\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?: TabLineValue;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\nexport type TabLineContext = {\n getItemProps: PropGetterFn;\n};\n\nexport type TabLineHandlers = {\n value: (value: TabLineValue) => void;\n};\n\ntype IntergalacticTabLineComponent<PropsExtending = {}> = (<\n Value extends TabLineValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n TabLineProps<Value>,\n TabLineContext,\n [handlers: TabLineHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', TabLineProps>;\n\ndeclare const TabLine: IntergalacticTabLineComponent & {\n Item: Intergalactic.Component<'div', TabLineItemProps, {}, [handlers: TabLineHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapTabLine: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticTabLineComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticTabLineComponent<PropsExtending>;\nexport { wrapTabLine };\n\nexport default TabLine;\n"],"mappings":"","ignoreList":[]}