@salutejs/plasma-new-hope 0.119.1-dev.0 → 0.119.2-dev.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Tabs/tokens.js +5 -2
- package/cjs/components/Tabs/tokens.js.map +1 -1
- package/cjs/components/Tabs/ui/TabItem/TabItem.css +1 -1
- package/cjs/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/cjs/components/Tabs/ui/TabItem/TabItem.js.map +1 -1
- package/cjs/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/cjs/components/Tabs/ui/TabItem/variations/_view/base.js.map +1 -1
- package/cjs/components/Tabs/ui/TabItem/variations/_view/base_7pcxtm.css +1 -0
- package/cjs/components/Tabs/ui/Tabs/Tabs.css +6 -6
- package/cjs/components/Tabs/ui/Tabs/Tabs.js +57 -8
- package/cjs/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/ui/Tabs/Tabs.styles.js +7 -7
- package/cjs/components/Tabs/ui/Tabs/Tabs.styles.js.map +1 -1
- package/{es/components/Tabs/ui/Tabs/Tabs.styles_1b8qt33.css → cjs/components/Tabs/ui/Tabs/Tabs.styles_z4dnzh.css} +2 -2
- package/cjs/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/cjs/components/Tabs/ui/Tabs/variations/_stretch/base.js.map +1 -1
- package/{es/components/Tabs/ui/Tabs/variations/_stretch/base_176tz0n.css → cjs/components/Tabs/ui/Tabs/variations/_stretch/base_1c7lnrm.css} +1 -1
- package/cjs/components/Tabs/ui/Tabs/variations/_view/base.js +1 -1
- package/{es/components/Tabs/ui/Tabs/variations/_view/base_4xkt26.css → cjs/components/Tabs/ui/Tabs/variations/_view/base_aij3sf.css} +1 -1
- package/cjs/index.css +7 -7
- package/emotion/cjs/components/Tabs/Tabs.template-doc.mdx +89 -3
- package/emotion/cjs/components/Tabs/tokens.js +5 -2
- package/emotion/cjs/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/emotion/cjs/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/emotion/cjs/components/Tabs/ui/Tabs/Tabs.js +57 -8
- package/emotion/cjs/components/Tabs/ui/Tabs/Tabs.styles.js +8 -16
- package/emotion/cjs/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/emotion/cjs/components/Tabs/ui/Tabs/variations/_view/tokens.json +1 -1
- package/emotion/cjs/examples/plasma_b2c/components/Tabs/TabItem.config.js +15 -15
- package/emotion/cjs/examples/plasma_b2c/components/Tabs/Tabs.config.js +16 -17
- package/emotion/cjs/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +238 -197
- package/emotion/cjs/examples/plasma_web/components/Tabs/TabItem.config.js +15 -15
- package/emotion/cjs/examples/plasma_web/components/Tabs/Tabs.config.js +16 -17
- package/emotion/cjs/examples/plasma_web/components/Tabs/Tabs.stories.tsx +238 -197
- package/emotion/es/components/Tabs/Tabs.template-doc.mdx +89 -3
- package/emotion/es/components/Tabs/tokens.js +5 -2
- package/emotion/es/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/emotion/es/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/emotion/es/components/Tabs/ui/Tabs/Tabs.js +58 -9
- package/emotion/es/components/Tabs/ui/Tabs/Tabs.styles.js +9 -17
- package/emotion/es/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/emotion/es/components/Tabs/ui/Tabs/variations/_view/tokens.json +1 -1
- package/emotion/es/examples/plasma_b2c/components/Tabs/TabItem.config.js +15 -15
- package/emotion/es/examples/plasma_b2c/components/Tabs/Tabs.config.js +16 -17
- package/emotion/es/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +238 -197
- package/emotion/es/examples/plasma_web/components/Tabs/TabItem.config.js +15 -15
- package/emotion/es/examples/plasma_web/components/Tabs/Tabs.config.js +16 -17
- package/emotion/es/examples/plasma_web/components/Tabs/Tabs.stories.tsx +238 -197
- package/es/components/Tabs/tokens.js +5 -2
- package/es/components/Tabs/tokens.js.map +1 -1
- package/es/components/Tabs/ui/TabItem/TabItem.css +1 -1
- package/es/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/es/components/Tabs/ui/TabItem/TabItem.js.map +1 -1
- package/es/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/es/components/Tabs/ui/TabItem/variations/_view/base.js.map +1 -1
- package/es/components/Tabs/ui/TabItem/variations/_view/base_7pcxtm.css +1 -0
- package/es/components/Tabs/ui/Tabs/Tabs.css +6 -6
- package/es/components/Tabs/ui/Tabs/Tabs.js +58 -9
- package/es/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
- package/es/components/Tabs/ui/Tabs/Tabs.styles.js +7 -7
- package/es/components/Tabs/ui/Tabs/Tabs.styles.js.map +1 -1
- package/{cjs/components/Tabs/ui/Tabs/Tabs.styles_1b8qt33.css → es/components/Tabs/ui/Tabs/Tabs.styles_z4dnzh.css} +2 -2
- package/es/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/es/components/Tabs/ui/Tabs/variations/_stretch/base.js.map +1 -1
- package/{cjs/components/Tabs/ui/Tabs/variations/_stretch/base_176tz0n.css → es/components/Tabs/ui/Tabs/variations/_stretch/base_1c7lnrm.css} +1 -1
- package/es/components/Tabs/ui/Tabs/variations/_view/base.js +1 -1
- package/{cjs/components/Tabs/ui/Tabs/variations/_view/base_4xkt26.css → es/components/Tabs/ui/Tabs/variations/_view/base_aij3sf.css} +1 -1
- package/es/index.css +7 -7
- package/package.json +2 -2
- package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +89 -3
- package/styled-components/cjs/components/Tabs/tokens.js +5 -2
- package/styled-components/cjs/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/styled-components/cjs/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/styled-components/cjs/components/Tabs/ui/Tabs/Tabs.js +57 -8
- package/styled-components/cjs/components/Tabs/ui/Tabs/Tabs.styles.js +2 -2
- package/styled-components/cjs/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/styled-components/cjs/components/Tabs/ui/Tabs/variations/_view/tokens.json +1 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Tabs/TabItem.config.js +8 -8
- package/styled-components/cjs/examples/plasma_b2c/components/Tabs/Tabs.config.js +4 -5
- package/styled-components/cjs/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +238 -197
- package/styled-components/cjs/examples/plasma_web/components/Tabs/TabItem.config.js +8 -8
- package/styled-components/cjs/examples/plasma_web/components/Tabs/Tabs.config.js +4 -5
- package/styled-components/cjs/examples/plasma_web/components/Tabs/Tabs.stories.tsx +238 -197
- package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +89 -3
- package/styled-components/es/components/Tabs/tokens.js +5 -2
- package/styled-components/es/components/Tabs/ui/TabItem/TabItem.js +14 -2
- package/styled-components/es/components/Tabs/ui/TabItem/variations/_view/base.js +1 -1
- package/styled-components/es/components/Tabs/ui/Tabs/Tabs.js +58 -9
- package/styled-components/es/components/Tabs/ui/Tabs/Tabs.styles.js +3 -3
- package/styled-components/es/components/Tabs/ui/Tabs/variations/_stretch/base.js +1 -1
- package/styled-components/es/components/Tabs/ui/Tabs/variations/_view/tokens.json +1 -1
- package/styled-components/es/examples/plasma_b2c/components/Tabs/TabItem.config.js +8 -8
- package/styled-components/es/examples/plasma_b2c/components/Tabs/Tabs.config.js +4 -5
- package/styled-components/es/examples/plasma_b2c/components/Tabs/Tabs.stories.tsx +238 -197
- package/styled-components/es/examples/plasma_web/components/Tabs/TabItem.config.js +8 -8
- package/styled-components/es/examples/plasma_web/components/Tabs/Tabs.config.js +4 -5
- package/styled-components/es/examples/plasma_web/components/Tabs/Tabs.stories.tsx +238 -197
- package/types/components/Tabs/tokens.d.ts +3 -0
- package/types/components/Tabs/tokens.d.ts.map +1 -1
- package/types/components/Tabs/ui/TabItem/TabItem.d.ts.map +1 -1
- package/types/components/Tabs/ui/TabItem/variations/_view/base.d.ts.map +1 -1
- package/types/components/Tabs/ui/Tabs/Tabs.d.ts +4 -2
- package/types/components/Tabs/ui/Tabs/Tabs.d.ts.map +1 -1
- package/types/components/Tabs/ui/Tabs/Tabs.styles.d.ts.map +1 -1
- package/types/components/Tabs/ui/Tabs/Tabs.types.d.ts +12 -5
- package/types/components/Tabs/ui/Tabs/Tabs.types.d.ts.map +1 -1
- package/types/components/Tabs/ui/Tabs/variations/_stretch/base.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Tabs/TabItem.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Tabs/Tabs.config.d.ts +0 -1
- package/types/examples/plasma_b2c/components/Tabs/Tabs.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Tabs/Tabs.d.ts +2 -1
- package/types/examples/plasma_b2c/components/Tabs/Tabs.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Tabs/TabItem.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Tabs/Tabs.config.d.ts +0 -1
- package/types/examples/plasma_web/components/Tabs/Tabs.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Tabs/Tabs.d.ts +2 -1
- package/types/examples/plasma_web/components/Tabs/Tabs.d.ts.map +1 -1
- package/types/examples/sds_engineer/components/Tabs/Tabs.d.ts +2 -1
- package/types/examples/sds_engineer/components/Tabs/Tabs.d.ts.map +1 -1
- package/cjs/components/Tabs/ui/TabItem/variations/_view/base_q8xs21.css +0 -1
- package/es/components/Tabs/ui/TabItem/variations/_view/base_q8xs21.css +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["size", "view", "isActive", "selected", "disabled", "pilled", "children", "contentLeft", "contentRight", "animated", "onIndexChange", "itemIndex", "tabIndex", "className"];
|
1
|
+
var _excluded = ["size", "view", "isActive", "selected", "disabled", "pilled", "children", "contentLeft", "contentRight", "animated", "onIndexChange", "itemIndex", "tabIndex", "className", "onClick"];
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
4
4
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
@@ -31,6 +31,7 @@ export var tabItemRoot = function tabItemRoot(Root) {
|
|
31
31
|
itemIndex = props.itemIndex,
|
32
32
|
tabIndex = props.tabIndex,
|
33
33
|
className = props.className,
|
34
|
+
onClick = props.onClick,
|
34
35
|
rest = _objectWithoutProperties(props, _excluded);
|
35
36
|
var innerRef = useRef(null);
|
36
37
|
var ref = useForkRef(outerRef, innerRef);
|
@@ -72,6 +73,16 @@ export var tabItemRoot = function tabItemRoot(Root) {
|
|
72
73
|
onIndexChange === null || onIndexChange === void 0 || onIndexChange(focusIndex);
|
73
74
|
refs.setCurrent(focusIndex);
|
74
75
|
}, [refs, innerRef, onIndexChange, disabled]);
|
76
|
+
var handleClick = function handleClick(event) {
|
77
|
+
event.currentTarget.scrollIntoView({
|
78
|
+
block: 'nearest',
|
79
|
+
inline: 'nearest'
|
80
|
+
});
|
81
|
+
if (!onClick) {
|
82
|
+
return;
|
83
|
+
}
|
84
|
+
onClick(event);
|
85
|
+
};
|
75
86
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
76
87
|
ref: ref,
|
77
88
|
disabled: disabled,
|
@@ -81,7 +92,8 @@ export var tabItemRoot = function tabItemRoot(Root) {
|
|
81
92
|
size: size,
|
82
93
|
onFocus: onItemFocus,
|
83
94
|
tabIndex: hasKeyNavigation ? navigationTabIndex : tabIndex,
|
84
|
-
className: cx(pilledClass, selectedClass, animatedClass, className)
|
95
|
+
className: cx(pilledClass, selectedClass, animatedClass, className),
|
96
|
+
onClick: handleClick
|
85
97
|
}, rest), /*#__PURE__*/React.createElement(React.Fragment, null, contentLeft && /*#__PURE__*/React.createElement(LeftContent, {
|
86
98
|
className: classes.tabLeftContent
|
87
99
|
}, contentLeft), /*#__PURE__*/React.createElement(StyledContent, {
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { css } from 'styled-components';
|
2
2
|
import { classes, tokens } from '../../../../tokens';
|
3
3
|
import { RightContent } from '../../TabItem.styles';
|
4
|
-
export var base = /*#__PURE__*/css(["color:var(", ");background-color:var(", ");margin-left:var(", ",var(", "));&:hover{color:var(", ");background-color:var(", ");", "{color:var(", ");}}&.", "{transition:var(", ");}&.", "{color:var(", ");background-color:var(", ");&:hover{color:var(", ");background-color:var(", ");&::after{background:var(", ");}}", "{color:var(", ");&:hover{color:var(", ");}}&::after{content:'';position:absolute;bottom:0px;left:0;right:0;background:var(", ");height:var(", ");border-radius:1px;}}"], tokens.itemColor, tokens.itemBackgroundColor, tokens.itemMarginLeftFilled, tokens.itemMarginLeft, tokens.itemColorHover, tokens.itemBackgroundColorHover, RightContent, tokens.additionalContentHoverColor, /*#__PURE__*/String(classes.tabItemAnimated), tokens.itemBackgroundTransition, /*#__PURE__*/String(classes.selectedTabsItem), tokens.itemSelectedColor, tokens.itemSelectedBackgroundColor, tokens.itemSelectedColorHover, tokens.itemSelectedBackgroundColorHover, tokens.itemSelectedDividerColorHover, RightContent, tokens.additionalContentSelectedColor, tokens.additionalContentSelectedHoverColor, tokens.itemSelectedDividerColor, tokens.itemSelectedDividerHeight);
|
4
|
+
export var base = /*#__PURE__*/css(["color:var(", ");background-color:var(", ");margin-left:var(", ",var(", "));&:hover{color:var(", ");background-color:var(", ");", "{color:var(", ");}}&:active{color:var(", ");}&.", "{transition:var(", ");}&.", "{color:var(", ");background-color:var(", ");&:hover{color:var(", ");background-color:var(", ");&::after{background:var(", ");}}", "{color:var(", ");&:hover{color:var(", ");}}&::after{content:'';position:absolute;bottom:0px;left:0;right:0;background:var(", ");height:var(", ");border-radius:1px;}}"], tokens.itemColor, tokens.itemBackgroundColor, tokens.itemMarginLeftFilled, tokens.itemMarginLeft, tokens.itemColorHover, tokens.itemBackgroundColorHover, RightContent, tokens.additionalContentHoverColor, tokens.itemColorActive, /*#__PURE__*/String(classes.tabItemAnimated), tokens.itemBackgroundTransition, /*#__PURE__*/String(classes.selectedTabsItem), tokens.itemSelectedColor, tokens.itemSelectedBackgroundColor, tokens.itemSelectedColorHover, tokens.itemSelectedBackgroundColorHover, tokens.itemSelectedDividerColorHover, RightContent, tokens.additionalContentSelectedColor, tokens.additionalContentSelectedHoverColor, tokens.itemSelectedDividerColor, tokens.itemSelectedDividerHeight);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["id", "stretch", "disabled", "size", "view", "children", "pilled", "index", "className"];
|
1
|
+
var _excluded = ["id", "stretch", "disabled", "clip", "size", "view", "children", "pilled", "index", "className"];
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
@@ -9,7 +9,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9
9
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
10
10
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
11
11
|
import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef } from 'react';
|
12
|
-
import {
|
12
|
+
import { safeUseId } from '@salutejs/plasma-core';
|
13
13
|
import { IconDisclosureLeft, IconDisclosureRight } from '../../../_Icon';
|
14
14
|
import { classes, tokens } from '../../tokens';
|
15
15
|
import { cx } from '../../../../utils';
|
@@ -34,10 +34,13 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
34
34
|
stretch = _props$stretch === void 0 ? false : _props$stretch,
|
35
35
|
_props$disabled = props.disabled,
|
36
36
|
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
37
|
+
_props$clip = props.clip,
|
38
|
+
clip = _props$clip === void 0 ? 'scroll' : _props$clip,
|
37
39
|
size = props.size,
|
38
40
|
view = props.view,
|
39
41
|
children = props.children,
|
40
|
-
pilled = props.pilled,
|
42
|
+
_props$pilled = props.pilled,
|
43
|
+
pilled = _props$pilled === void 0 ? false : _props$pilled,
|
41
44
|
index = props.index,
|
42
45
|
className = props.className,
|
43
46
|
rest = _objectWithoutProperties(props, _excluded);
|
@@ -60,14 +63,47 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
60
63
|
var stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;
|
61
64
|
var hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;
|
62
65
|
var hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;
|
66
|
+
var clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;
|
67
|
+
var clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;
|
63
68
|
var scrollRef = useRef(null);
|
64
69
|
var trackRef = useRef(null);
|
70
|
+
var leftArrowRef = useRef(null);
|
65
71
|
var onPrev = useCallback(function () {
|
66
|
-
|
67
|
-
|
72
|
+
var _firstOverflowingTab$;
|
73
|
+
if (disabled || !scrollRef.current) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
var scrollLeft = Math.round(scrollRef.current.scrollLeft);
|
77
|
+
var firstOverflowingTab = refs.items.slice().reverse().find(function (item) {
|
78
|
+
if (!item.current || item.current.offsetLeft === undefined) {
|
79
|
+
return;
|
80
|
+
}
|
81
|
+
var tabStartX = item.current.offsetLeft;
|
82
|
+
return tabStartX < scrollLeft;
|
83
|
+
});
|
84
|
+
firstOverflowingTab === null || firstOverflowingTab === void 0 || (_firstOverflowingTab$ = firstOverflowingTab.current) === null || _firstOverflowingTab$ === void 0 || _firstOverflowingTab$.scrollIntoView({
|
85
|
+
block: 'nearest',
|
86
|
+
inline: 'nearest'
|
87
|
+
});
|
88
|
+
}, [disabled, scrollRef, refs]);
|
68
89
|
var onNext = useCallback(function () {
|
69
|
-
|
70
|
-
|
90
|
+
var _lastOverflowingTab$c;
|
91
|
+
if (disabled || !scrollRef.current) {
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
|
95
|
+
var lastOverflowingTab = refs.items.find(function (item) {
|
96
|
+
if (!item.current || item.current.offsetLeft === undefined) {
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
var tabEndX = item.current.offsetLeft + item.current.offsetWidth;
|
100
|
+
return tabEndX > scrollRight;
|
101
|
+
});
|
102
|
+
lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c = lastOverflowingTab.current) === null || _lastOverflowingTab$c === void 0 || _lastOverflowingTab$c.scrollIntoView({
|
103
|
+
block: 'nearest',
|
104
|
+
inline: 'nearest'
|
105
|
+
});
|
106
|
+
}, [disabled, scrollRef, refs]);
|
71
107
|
var PreviousButton = useMemo(function () {
|
72
108
|
return /*#__PURE__*/React.createElement(StyledArrow, {
|
73
109
|
type: "button",
|
@@ -76,6 +112,7 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
76
112
|
tabIndex: disabled ? -1 : 0,
|
77
113
|
disabled: disabled,
|
78
114
|
isFilled: isFilled,
|
115
|
+
ref: leftArrowRef,
|
79
116
|
isLeftArrow: true
|
80
117
|
}, /*#__PURE__*/React.createElement(IconDisclosureLeft, {
|
81
118
|
color: "var(".concat(tokens.arrowColor, ")")
|
@@ -96,8 +133,9 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
96
133
|
var handleScroll = useCallback(function (event) {
|
97
134
|
event.stopPropagation();
|
98
135
|
var maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;
|
99
|
-
|
100
|
-
|
136
|
+
var scrollLeft = Math.round(event.currentTarget.scrollLeft);
|
137
|
+
setFirstItemVisible(scrollLeft <= 0);
|
138
|
+
setLastItemVisible(scrollLeft >= maxScrollLeft);
|
101
139
|
}, [setFirstItemVisible, setLastItemVisible]);
|
102
140
|
var onKeyDown = useCallback(function (event) {
|
103
141
|
if (index === undefined) {
|
@@ -137,6 +175,16 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
137
175
|
var _scrollRef$current, _scrollRef$current2;
|
138
176
|
setLastItemVisible(((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollWidth) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientWidth));
|
139
177
|
}, []);
|
178
|
+
|
179
|
+
// Этот хук компенсирует появление левой стрелки при прокрутке
|
180
|
+
useEffect(function () {
|
181
|
+
if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {
|
182
|
+
return;
|
183
|
+
}
|
184
|
+
scrollRef.current.scrollTo({
|
185
|
+
left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
|
186
|
+
});
|
187
|
+
}, [firstItemVisible, scrollRef, leftArrowRef]);
|
140
188
|
return /*#__PURE__*/React.createElement(TabsContext.Provider, {
|
141
189
|
value: refs
|
142
190
|
}, /*#__PURE__*/React.createElement(Root, _extends({
|
@@ -150,6 +198,7 @@ export var tabsRoot = function tabsRoot(Root) {
|
|
150
198
|
className: cx(pilledClass, stretchClass, hasLeftArrowClass, hasRightArrowClass, className),
|
151
199
|
onKeyDown: onKeyDown
|
152
200
|
}, rest), !firstItemVisible && PreviousButton, /*#__PURE__*/React.createElement(StyledContentWrapper, {
|
201
|
+
className: cx(clipScrollClass, clipShowAllClass),
|
153
202
|
ref: scrollRef,
|
154
203
|
onScroll: handleScroll
|
155
204
|
}, /*#__PURE__*/React.createElement(StyledContent, {
|
@@ -3,14 +3,14 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
|
|
3
3
|
import { css } from 'styled-components';
|
4
4
|
import styled from 'styled-components';
|
5
5
|
import { addFocus } from '../../../../mixins';
|
6
|
-
import { tokens } from '../../tokens';
|
7
|
-
export var base = /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n position: relative;\n"])));
|
6
|
+
import { classes, tokens } from '../../tokens';
|
7
|
+
export var base = /*#__PURE__*/css(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteral(["\n display: flex;\n gap: 0.125rem;\n align-items: center;\n position: relative;\n"])));
|
8
8
|
export var StyledContent = /*#__PURE__*/styled.div.withConfig({
|
9
9
|
componentId: "plasma-new-hope__sc-1ibkmsl-0"
|
10
10
|
})(["display:inline-flex;flex-direction:row;align-items:center;"]);
|
11
11
|
export var StyledContentWrapper = /*#__PURE__*/styled.div.withConfig({
|
12
12
|
componentId: "plasma-new-hope__sc-1ibkmsl-1"
|
13
|
-
})(["margin:-0.125rem;padding:0.25rem;box-sizing:content-box;
|
13
|
+
})(["margin:-0.125rem;padding:0.25rem;box-sizing:content-box;position:relative;height:100%;width:100%;display:flex;align-items:center;&.", "{overflow:scroll;scroll-padding:0.25rem;overscroll-behavior:contain;scrollbar-width:none;::-webkit-scrollbar{display:none;}}&.", "{overflow:visible;}"], classes.tabsClipScroll, classes.tabsClipShowAll);
|
14
14
|
export var StyledArrow = /*#__PURE__*/styled.button.withConfig({
|
15
15
|
componentId: "plasma-new-hope__sc-1ibkmsl-2"
|
16
16
|
})(["display:flex;cursor:pointer;border:none;background-color:transparent;padding:0;outline:none;", ";&[disabled]{cursor:not-allowed;}--plasma_private-outer-padding:", ";padding-right:", ";padding-left:", ";"], /*#__PURE__*/addFocus({
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { css } from 'styled-components';
|
2
2
|
import { classes } from '../../../../tokens';
|
3
3
|
import { StyledContent, StyledContentWrapper } from '../../Tabs.styles';
|
4
|
-
export var base = /*#__PURE__*/css(["&.", "{width:100%;", ",", ",", " > button{width:100%;}}"], classes.tabsStretch, StyledContentWrapper, StyledContent, StyledContent);
|
4
|
+
export var base = /*#__PURE__*/css(["&.", "{width:100%;", ",", ",", " > button{width:100%;margin-left:0;}}"], classes.tabsStretch, StyledContentWrapper, StyledContent, StyledContent);
|
@@ -1 +1 @@
|
|
1
|
-
["--plasma-tabs-
|
1
|
+
["--plasma-tabs-background-color", "--plasma-tabs-divider-height", "--plasma-tabs-divider-color"]
|
@@ -7,16 +7,16 @@ export var config = {
|
|
7
7
|
},
|
8
8
|
variations: {
|
9
9
|
view: {
|
10
|
-
clear: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--text-
|
11
|
-
secondary: /*#__PURE__*/css(["", ":var(--text-primary);", ":transparent;", ":var(--text-
|
12
|
-
divider: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--text-
|
13
|
-
"default": /*#__PURE__*/css(["", ":var(--text-primary);", ":transparent;", ":var(--text-
|
10
|
+
clear: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--text-secondary-hover);", ":var(--text-secondary-active);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":background-color 0.3s ease-in-out;", ":0;", ":0;", ":var(--plasma-colors-button-focused);", ":0rem;", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-tertiary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-secondary);"], tabsTokens.itemColor, tabsTokens.itemBackgroundColor, tabsTokens.itemColorHover, tabsTokens.itemColorActive, tabsTokens.itemBackgroundColorHover, tabsTokens.itemSelectedColor, tabsTokens.itemSelectedBackgroundColor, tabsTokens.itemSelectedColorHover, tabsTokens.itemSelectedBackgroundColorHover, tabsTokens.itemBackgroundTransition, tabsTokens.itemPaddingClear, tabsTokens.itemContentPaddingClear, tabsTokens.outlineFocusColor, tabsTokens.itemSelectedDividerHeight, tabsTokens.itemSelectedDividerColor, tabsTokens.itemSelectedDividerColorHover, tabsTokens.additionalContentColor, tabsTokens.additionalContentHoverColor, tabsTokens.additionalContentSelectedColor, tabsTokens.additionalContentSelectedHoverColor),
|
11
|
+
secondary: /*#__PURE__*/css(["", ":var(--text-primary);", ":transparent;", ":var(--text-secondary-hover);", ":var(--text-secondary-active);", ":transparent;", ":var(--text-primary);", ":var(--surface-solid-card);", ":var(--text-primary);", ":var(--surface-solid-card);", ":background-color 0.3s ease-in-out;", ":0.125rem;", ":var(--plasma-colors-button-focused);", ":0rem;", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-secondary);"], tabsTokens.itemColor, tabsTokens.itemBackgroundColor, tabsTokens.itemColorHover, tabsTokens.itemColorActive, tabsTokens.itemBackgroundColorHover, tabsTokens.itemSelectedColor, tabsTokens.itemSelectedBackgroundColor, tabsTokens.itemSelectedColorHover, tabsTokens.itemSelectedBackgroundColorHover, tabsTokens.itemBackgroundTransition, tabsTokens.itemMarginLeftFilled, tabsTokens.outlineFocusColor, tabsTokens.itemSelectedDividerHeight, tabsTokens.itemSelectedDividerColor, tabsTokens.itemSelectedDividerColorHover, tabsTokens.itemSelectedDividerColorHover, tabsTokens.additionalContentColor, tabsTokens.additionalContentHoverColor, tabsTokens.additionalContentSelectedColor, tabsTokens.additionalContentSelectedHoverColor),
|
12
|
+
divider: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--text-secondary-hover);", ":var(--text-secondary-active);", ":transparent;", ":var(--text-primary);", ":transparent;", ":var(--text-primary);", ":transparent;", ":background-color 0.3s ease-in-out;", ":0;", ":0;", ":var(--plasma-colors-button-focused);", ":0.125rem;", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-tertiary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--text-secondary);"], tabsTokens.itemColor, tabsTokens.itemBackgroundColor, tabsTokens.itemColorHover, tabsTokens.itemColorActive, tabsTokens.itemBackgroundColorHover, tabsTokens.itemSelectedColor, tabsTokens.itemSelectedBackgroundColor, tabsTokens.itemSelectedColorHover, tabsTokens.itemSelectedBackgroundColorHover, tabsTokens.itemBackgroundTransition, tabsTokens.itemPaddingClear, tabsTokens.itemContentPaddingClear, tabsTokens.outlineFocusColor, tabsTokens.itemSelectedDividerHeight, tabsTokens.itemSelectedDividerColor, tabsTokens.itemSelectedDividerColorHover, tabsTokens.itemSelectedDividerColorHover, tabsTokens.additionalContentColor, tabsTokens.additionalContentHoverColor, tabsTokens.additionalContentSelectedColor, tabsTokens.additionalContentSelectedHoverColor),
|
13
|
+
"default": /*#__PURE__*/css(["", ":var(--text-primary);", ":transparent;", ":var(--text-secondary-hover);", ":var(--text-secondary-active);", ":transparent;", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":var(--inverse-text-primary);", ":var(--surface-solid-default);", ":background-color 0.3s ease-in-out;", ":0.125rem;", ":var(--plasma-colors-button-focused);", ":0rem;", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-primary);", ":var(--text-secondary);", ":var(--text-secondary);", ":var(--inverse-text-secondary);", ":var(--inverse-text-secondary);"], tabsTokens.itemColor, tabsTokens.itemBackgroundColor, tabsTokens.itemColorHover, tabsTokens.itemColorActive, tabsTokens.itemBackgroundColorHover, tabsTokens.itemSelectedColor, tabsTokens.itemSelectedBackgroundColor, tabsTokens.itemSelectedColorHover, tabsTokens.itemSelectedBackgroundColorHover, tabsTokens.itemBackgroundTransition, tabsTokens.itemMarginLeftFilled, tabsTokens.outlineFocusColor, tabsTokens.itemSelectedDividerHeight, tabsTokens.itemSelectedDividerColor, tabsTokens.itemSelectedDividerColorHover, tabsTokens.itemSelectedDividerColorHover, tabsTokens.additionalContentColor, tabsTokens.additionalContentHoverColor, tabsTokens.additionalContentSelectedColor, tabsTokens.additionalContentSelectedHoverColor)
|
14
14
|
},
|
15
15
|
size: {
|
16
|
-
xs: /*#__PURE__*/css(["", ":0.375rem;", ":auto;", ":
|
17
|
-
s: /*#__PURE__*/css(["", ":0.5rem;", ":auto;", ":
|
18
|
-
m: /*#__PURE__*/css(["", ":0.625rem;", ":auto;", ":
|
19
|
-
l: /*#__PURE__*/css(["", ":0.75rem;", ":auto;", ":
|
16
|
+
xs: /*#__PURE__*/css(["", ":0.375rem;", ":auto;", ":2rem;", ":0 0.5rem;", ":0 0.375rem;", ":1.75rem;", ":0.25rem;", ":0.125rem;", ":var(--plasma-typo-body-xs-font-family);", ":var(--plasma-typo-body-xs-font-size);", ":var(--plasma-typo-body-xs-font-style);", ":var(--plasma-typo-body-xs-font-weight);", ":var(--plasma-typo-body-xs-letter-spacing);", ":var(--plasma-typo-body-xs-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemPaddingPilled, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.itemContentPadding, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
17
|
+
s: /*#__PURE__*/css(["", ":0.5rem;", ":auto;", ":2.5rem;", ":0 0.625rem;", ":0 0.5rem;", ":1.75rem;", ":0.25rem;", ":0.125rem;", ":var(--plasma-typo-body-s-font-family);", ":var(--plasma-typo-body-s-font-size);", ":var(--plasma-typo-body-s-font-style);", ":var(--plasma-typo-body-s-font-weight);", ":var(--plasma-typo-body-s-letter-spacing);", ":var(--plasma-typo-body-s-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemPaddingPilled, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.itemContentPadding, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
18
|
+
m: /*#__PURE__*/css(["", ":0.625rem;", ":auto;", ":3rem;", ":0 0.625rem;", ":0 0.5rem;", ":1.75rem;", ":0.375rem;", ":0.125rem;", ":var(--plasma-typo-body-m-font-family);", ":var(--plasma-typo-body-m-font-size);", ":var(--plasma-typo-body-m-font-style);", ":var(--plasma-typo-body-m-font-weight);", ":var(--plasma-typo-body-m-letter-spacing);", ":var(--plasma-typo-body-m-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemPaddingPilled, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.itemContentPadding, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
19
|
+
l: /*#__PURE__*/css(["", ":0.75rem;", ":auto;", ":3.5rem;", ":0 0.875rem;", ":0 0.75rem;", ":1.75rem;", ":0.5rem;", ":0.125rem;", ":var(--plasma-typo-body-l-font-family);", ":var(--plasma-typo-body-l-font-size);", ":var(--plasma-typo-body-l-font-style);", ":var(--plasma-typo-body-l-font-weight);", ":var(--plasma-typo-body-l-letter-spacing);", ":var(--plasma-typo-body-l-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemPaddingPilled, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.itemContentPadding, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
20
20
|
h5: /*#__PURE__*/css(["", ":0.375rem;", ":auto;", ":3rem;", ":0rem;", ":1.75rem;", ":0.625rem;", ":var(--plasma-typo-h5-font-family);", ":var(--plasma-typo-h5-font-size);", ":var(--plasma-typo-h5-font-style);", ":var(--plasma-typo-h5-font-weight);", ":var(--plasma-typo-h5-letter-spacing);", ":var(--plasma-typo-h5-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
21
21
|
h4: /*#__PURE__*/css(["", ":0.375rem;", ":auto;", ":3.25rem;", ":0rem;", ":2rem;", ":0.625rem;", ":var(--plasma-typo-h4-font-family);", ":var(--plasma-typo-h4-font-size);", ":var(--plasma-typo-h4-font-style);", ":var(--plasma-typo-h4-font-weight);", ":var(--plasma-typo-h4-letter-spacing);", ":var(--plasma-typo-h4-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
22
22
|
h3: /*#__PURE__*/css(["", ":0.5rem;", ":auto;", ":3.875rem;", ":0rem;", ":2.25rem;", ":0.75rem;", ":var(--plasma-typo-h3-font-family);", ":var(--plasma-typo-h3-font-size);", ":var(--plasma-typo-h3-font-style);", ":var(--plasma-typo-h3-font-weight);", ":var(--plasma-typo-h3-letter-spacing);", ":var(--plasma-typo-h3-line-height);"], tabsTokens.itemBorderRadius, tabsTokens.itemWidth, tabsTokens.itemHeight, tabsTokens.itemPadding, tabsTokens.itemMarginLeft, tabsTokens.itemContentGap, tabsTokens.fontFamily, tabsTokens.fontSize, tabsTokens.fontStyle, tabsTokens.fontWeight, tabsTokens.letterSpacing, tabsTokens.lineHeight),
|
@@ -3,14 +3,13 @@ import { tabsTokens } from '../../../../components/Tabs';
|
|
3
3
|
export var config = {
|
4
4
|
defaults: {
|
5
5
|
view: 'filled',
|
6
|
-
size: 'xs'
|
7
|
-
disabled: 'false'
|
6
|
+
size: 'xs'
|
8
7
|
},
|
9
8
|
variations: {
|
10
9
|
view: {
|
11
|
-
clear: /*#__PURE__*/css(["", ":var(--text-secondary);", ":
|
12
|
-
filled: /*#__PURE__*/css(["", ":var(--text-secondary);", ":var(--surface-transparent-primary);", ":var(--plasma-colors-button-focused);", ":0rem;", ":
|
13
|
-
divider: /*#__PURE__*/css(["", ":var(--text-secondary);", ":
|
10
|
+
clear: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--plasma-colors-button-focused);", ":0rem;", ":transparent;", ":0rem;"], tabsTokens.arrowColor, tabsTokens.tabsBackgroundColor, tabsTokens.outlineFocusColor, tabsTokens.tabsDividerHeight, tabsTokens.tabsDividerColor, tabsTokens.tabsDividerBorderRadius),
|
11
|
+
filled: /*#__PURE__*/css(["", ":var(--text-secondary);", ":var(--surface-transparent-primary);", ":var(--plasma-colors-button-focused);", ":0rem;", ":transparent;", ":0rem;"], tabsTokens.arrowColor, tabsTokens.tabsBackgroundColor, tabsTokens.outlineFocusColor, tabsTokens.tabsDividerHeight, tabsTokens.tabsDividerColor, tabsTokens.tabsDividerBorderRadius),
|
12
|
+
divider: /*#__PURE__*/css(["", ":var(--text-secondary);", ":transparent;", ":var(--plasma-colors-button-focused);", ":0.0625rem;", ":var(--surface-transparent-tertiary);", ":0.0625rem;"], tabsTokens.arrowColor, tabsTokens.tabsBackgroundColor, tabsTokens.outlineFocusColor, tabsTokens.tabsDividerHeight, tabsTokens.tabsDividerColor, tabsTokens.tabsDividerBorderRadius)
|
14
13
|
},
|
15
14
|
size: {
|
16
15
|
xs: /*#__PURE__*/css(["", ":0.5rem;", ":fit-content;", ":auto;", ":0rem;", ":0.125rem;"], tabsTokens.tabsBorderRadius, tabsTokens.tabsWidth, tabsTokens.tabsHeight, tabsTokens.arrowInnerPadding, tabsTokens.arrowOuterPadding),
|