@synerise/ds-tabs 1.1.23 → 1.1.24
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 +4 -0
- package/dist/Tab/Tab.d.ts +2 -2
- package/dist/Tab/Tab.js +40 -60
- package/dist/Tab/Tab.styles.d.ts +6 -6
- package/dist/Tab/Tab.styles.js +110 -95
- package/dist/Tab/Tab.types.d.ts +2 -2
- package/dist/Tab/Tab.types.js +1 -1
- package/dist/Tabs.d.ts +2 -2
- package/dist/Tabs.js +106 -160
- package/dist/Tabs.styles.d.ts +7 -7
- package/dist/Tabs.styles.js +27 -24
- package/dist/Tabs.types.d.ts +2 -2
- package/dist/Tabs.types.js +1 -1
- package/dist/index.js +4 -1
- package/dist/modules.d.js +1 -1
- package/dist/modules.d.ts +0 -0
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.1.24](https://github.com/synerise/synerise-design/compare/@synerise/ds-tabs@1.1.23...@synerise/ds-tabs@1.1.24) (2026-03-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @synerise/ds-tabs
|
|
9
|
+
|
|
6
10
|
## [1.1.23](https://github.com/synerise/synerise-design/compare/@synerise/ds-tabs@1.1.22...@synerise/ds-tabs@1.1.23) (2026-03-20)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @synerise/ds-tabs
|
package/dist/Tab/Tab.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TabProps } from './Tab.types';
|
|
3
3
|
declare const Tab: {
|
|
4
4
|
({ index, label, icon, isActive, disabled, onClick, forwardedRef, underscore, className, block, suffixel, tooltip, tooltipProps, }: TabProps): React.JSX.Element;
|
|
5
5
|
defaultProps: {
|
package/dist/Tab/Tab.js
CHANGED
|
@@ -1,75 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
import classNames from
|
|
3
|
-
import
|
|
4
|
-
import Icon from
|
|
5
|
-
import Tooltip from
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var handleClick = function handleClick() {
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import Icon from "@synerise/ds-icon";
|
|
5
|
+
import Tooltip from "@synerise/ds-tooltip";
|
|
6
|
+
import { TabContainer, BlockContentWrapper, TabContent, TabLabel, SuffixWrapper, DefaultSuffixWrapper } from "./Tab.styles.js";
|
|
7
|
+
const Tab = ({
|
|
8
|
+
index,
|
|
9
|
+
label,
|
|
10
|
+
icon,
|
|
11
|
+
isActive,
|
|
12
|
+
disabled,
|
|
13
|
+
onClick,
|
|
14
|
+
forwardedRef,
|
|
15
|
+
underscore,
|
|
16
|
+
className,
|
|
17
|
+
block,
|
|
18
|
+
suffixel,
|
|
19
|
+
tooltip,
|
|
20
|
+
tooltipProps
|
|
21
|
+
}) => {
|
|
22
|
+
const [isPressed, setPressed] = useState(false);
|
|
23
|
+
const handleClick = () => {
|
|
25
24
|
onClick(index);
|
|
26
25
|
};
|
|
27
|
-
|
|
26
|
+
const handleMouseDown = () => {
|
|
28
27
|
setPressed(true);
|
|
29
28
|
};
|
|
30
|
-
|
|
29
|
+
const handleMouseUp = () => {
|
|
31
30
|
setPressed(false);
|
|
32
31
|
};
|
|
33
|
-
|
|
34
|
-
underscore
|
|
32
|
+
const containerClasses = classNames(className, {
|
|
33
|
+
underscore,
|
|
35
34
|
active: isActive,
|
|
36
35
|
pressed: isPressed
|
|
37
36
|
});
|
|
38
|
-
|
|
39
|
-
if (typeof suffixel ===
|
|
40
|
-
return
|
|
37
|
+
const renderSuffixel = () => {
|
|
38
|
+
if (typeof suffixel === "string" || typeof suffixel === "number") {
|
|
39
|
+
return /* @__PURE__ */ jsx(SuffixWrapper, { children: suffixel });
|
|
41
40
|
}
|
|
42
|
-
return
|
|
41
|
+
return /* @__PURE__ */ jsx(DefaultSuffixWrapper, { children: suffixel });
|
|
43
42
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"data-testid": "ds-tabs-tab-icon",
|
|
51
|
-
component: icon,
|
|
52
|
-
size: 24
|
|
53
|
-
}), label && /*#__PURE__*/React.createElement(S.TabLabel, {
|
|
54
|
-
"data-testid": "ds-tabs-tab-label"
|
|
55
|
-
}, label), !!suffixel && renderSuffixel()));
|
|
56
|
-
return /*#__PURE__*/React.createElement(S.TabContainer, {
|
|
57
|
-
className: containerClasses,
|
|
58
|
-
onClick: handleClick,
|
|
59
|
-
onMouseDown: handleMouseDown,
|
|
60
|
-
onMouseUp: handleMouseUp,
|
|
61
|
-
onMouseOut: handleMouseUp,
|
|
62
|
-
onBlur: handleMouseUp,
|
|
63
|
-
disabled: disabled,
|
|
64
|
-
ref: forwardedRef,
|
|
65
|
-
type: "button",
|
|
66
|
-
"data-testid": "tab-container",
|
|
67
|
-
block: block
|
|
68
|
-
}, tooltip ? /*#__PURE__*/React.createElement(Tooltip, _extends({
|
|
69
|
-
title: tooltip
|
|
70
|
-
}, tooltipProps), tabContent) : tabContent);
|
|
43
|
+
const tabContent = /* @__PURE__ */ jsx(BlockContentWrapper, { block, children: /* @__PURE__ */ jsxs(TabContent, { className: "tab-content", "data-testid": "ds-tabs-tab-content", children: [
|
|
44
|
+
icon && /* @__PURE__ */ jsx(Icon, { "data-testid": "ds-tabs-tab-icon", component: icon, size: 24 }),
|
|
45
|
+
label && /* @__PURE__ */ jsx(TabLabel, { "data-testid": "ds-tabs-tab-label", children: label }),
|
|
46
|
+
!!suffixel && renderSuffixel()
|
|
47
|
+
] }) });
|
|
48
|
+
return /* @__PURE__ */ jsx(TabContainer, { className: containerClasses, onClick: handleClick, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onMouseOut: handleMouseUp, onBlur: handleMouseUp, disabled, ref: forwardedRef, type: "button", "data-testid": "tab-container", block, children: tooltip ? /* @__PURE__ */ jsx(Tooltip, { title: tooltip, ...tooltipProps, children: tabContent }) : tabContent });
|
|
71
49
|
};
|
|
72
50
|
Tab.defaultProps = {
|
|
73
51
|
underscore: true
|
|
74
52
|
};
|
|
75
|
-
export
|
|
53
|
+
export {
|
|
54
|
+
Tab as default
|
|
55
|
+
};
|
package/dist/Tab/Tab.styles.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare const TabLabel: import(
|
|
2
|
-
export declare const BlockContentWrapper: import(
|
|
1
|
+
export declare const TabLabel: import('styled-components').StyledComponent<"span", any, {}, never>;
|
|
2
|
+
export declare const BlockContentWrapper: import('styled-components').StyledComponent<"div", any, {
|
|
3
3
|
block?: boolean;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const TabContent: import(
|
|
6
|
-
export declare const TabContainer: import(
|
|
5
|
+
export declare const TabContent: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
6
|
+
export declare const TabContainer: import('styled-components').StyledComponent<"button", any, {
|
|
7
7
|
block?: boolean;
|
|
8
8
|
}, never>;
|
|
9
|
-
export declare const SuffixWrapper: import(
|
|
10
|
-
export declare const DefaultSuffixWrapper: import(
|
|
9
|
+
export declare const SuffixWrapper: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
10
|
+
export declare const DefaultSuffixWrapper: import('styled-components').StyledComponent<"div", any, {}, never>;
|
package/dist/Tab/Tab.styles.js
CHANGED
|
@@ -1,109 +1,124 @@
|
|
|
1
|
-
import styled from
|
|
2
|
-
import { IconContainer } from
|
|
3
|
-
import { macro } from
|
|
4
|
-
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
import { IconContainer } from "@synerise/ds-icon";
|
|
3
|
+
import { macro } from "@synerise/ds-typography";
|
|
4
|
+
const TabLabel = /* @__PURE__ */ styled.span.withConfig({
|
|
5
5
|
displayName: "Tabstyles__TabLabel",
|
|
6
6
|
componentId: "sc-8a5swe-0"
|
|
7
|
-
})(["", " line-height:20px;white-space:nowrap;color:", ";"], macro.h300,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export var BlockContentWrapper = styled.div.withConfig({
|
|
7
|
+
})(["", " line-height:20px;white-space:nowrap;color:", ";"], macro.h300, ({
|
|
8
|
+
theme
|
|
9
|
+
}) => theme.palette["grey-700"]);
|
|
10
|
+
const BlockContentWrapper = /* @__PURE__ */ styled.div.withConfig({
|
|
12
11
|
displayName: "Tabstyles__BlockContentWrapper",
|
|
13
12
|
componentId: "sc-8a5swe-1"
|
|
14
|
-
})(["", ""],
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
})(["", ""], (props) => props.block ? `display: flex;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
align-items: center;
|
|
16
|
+
position: absolute;
|
|
17
|
+
width: 100%;
|
|
18
|
+
left: 0;
|
|
19
|
+
top: 0;
|
|
20
|
+
` : ``);
|
|
21
|
+
const TabContent = /* @__PURE__ */ styled.div.withConfig({
|
|
18
22
|
displayName: "Tabstyles__TabContent",
|
|
19
23
|
componentId: "sc-8a5swe-2"
|
|
20
24
|
})(["display:flex;flex-direction:row;align-self:center;align-items:center;justify-content:flex-start;height:24px;overflow:hidden;text-overflow:ellipsis;"]);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
const applyBlockStyles = (props) => `
|
|
26
|
+
margin-right: 0;
|
|
27
|
+
flex: 1;
|
|
28
|
+
${TabContent} {
|
|
29
|
+
border-left: 5px solid transparent;
|
|
30
|
+
border-right: 5px solid transparent;
|
|
31
|
+
}
|
|
32
|
+
&: after {
|
|
33
|
+
background-color:${props.theme.palette["grey-200"]};
|
|
34
|
+
height:1px;
|
|
35
|
+
}
|
|
36
|
+
&: hover {
|
|
37
|
+
&::after {
|
|
38
|
+
background-color:${props.theme.palette["grey-300"]};
|
|
39
|
+
height: 1px;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
&:focus:active:not(:hover) {
|
|
43
|
+
&::after {
|
|
44
|
+
background-color:${props.theme.palette["blue-600"]};
|
|
45
|
+
background-image:none;
|
|
46
|
+
height: 1px;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
&.pressed {
|
|
50
|
+
&& {
|
|
51
|
+
&::after {
|
|
52
|
+
height: 1px;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
const TabContainer = /* @__PURE__ */ styled.button.withConfig({
|
|
25
58
|
displayName: "Tabstyles__TabContainer",
|
|
26
59
|
componentId: "sc-8a5swe-3"
|
|
27
|
-
})(["display:flex;height:34px;flex-direction:column;align-items:flex-start;justify-content:center;margin-right:24px;cursor:pointer;box-sizing:content-box;user-select:none;position:relative;background-color:transparent;background-image:none;border:0;outline:0;padding:0;pointer-events:", ";opacity:", ";margin-top:4px;", "{margin-right:4px;}&::after{content:'';display:flex;position:absolute;transition:background-color 0.15s ease-in-out;bottom:0;left:1px;width:100%;height:1px;background-color:transparent;background-image:none;}&:hover{", "{color:", ";}&:focus:active{", "{color:", ";}}svg{color:", ";fill:", ";}&::after{height:0;}}svg{color:", ";fill:", ";}&:focus{", "{color:", ";}svg{color:", ";fill:", ";}&:active{", "{color:", ";}svg{color:", ";fill:", ";}}&::after{height:1px;background-color:transparent;background-image:linear-gradient( to right,", " 66%,", " 34% );background-position:top;background-size:5px 1px;background-repeat:repeat-x;}}", "{color:", ";}&.active{svg{color:", ";fill:", ";}", "{color:", ";}&&{&.underscore::after{height:1px;background-color:", ";background-image:none;}}&::after{background-color:transparent;background-image:none;}}&.pressed{svg{color:", ";fill:", ";}", "{color:", ";}&&{&::after{height:0;}}&::after{background-color:transparent;background-image:none;}}", ""],
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return theme.palette['grey-700'];
|
|
78
|
-
}, function (_ref17) {
|
|
79
|
-
var theme = _ref17.theme;
|
|
80
|
-
return theme.palette['blue-600'];
|
|
81
|
-
}, function (_ref18) {
|
|
82
|
-
var theme = _ref18.theme;
|
|
83
|
-
return theme.palette['blue-600'];
|
|
84
|
-
}, TabLabel, function (_ref19) {
|
|
85
|
-
var theme = _ref19.theme;
|
|
86
|
-
return theme.palette['blue-600'];
|
|
87
|
-
}, function (_ref20) {
|
|
88
|
-
var theme = _ref20.theme;
|
|
89
|
-
return theme.palette['blue-600'];
|
|
90
|
-
}, function (_ref21) {
|
|
91
|
-
var theme = _ref21.theme;
|
|
92
|
-
return theme.palette['blue-700'];
|
|
93
|
-
}, function (_ref22) {
|
|
94
|
-
var theme = _ref22.theme;
|
|
95
|
-
return theme.palette['blue-700'];
|
|
96
|
-
}, TabLabel, function (_ref23) {
|
|
97
|
-
var theme = _ref23.theme;
|
|
98
|
-
return theme.palette['blue-700'];
|
|
99
|
-
}, function (props) {
|
|
100
|
-
return !!props.block && applyBlockStyles(props);
|
|
101
|
-
});
|
|
102
|
-
export var SuffixWrapper = styled.div.withConfig({
|
|
60
|
+
})(["display:flex;height:34px;flex-direction:column;align-items:flex-start;justify-content:center;margin-right:24px;cursor:pointer;box-sizing:content-box;user-select:none;position:relative;background-color:transparent;background-image:none;border:0;outline:0;padding:0;pointer-events:", ";opacity:", ";margin-top:4px;", "{margin-right:4px;}&::after{content:'';display:flex;position:absolute;transition:background-color 0.15s ease-in-out;bottom:0;left:1px;width:100%;height:1px;background-color:transparent;background-image:none;}&:hover{", "{color:", ";}&:focus:active{", "{color:", ";}}svg{color:", ";fill:", ";}&::after{height:0;}}svg{color:", ";fill:", ";}&:focus{", "{color:", ";}svg{color:", ";fill:", ";}&:active{", "{color:", ";}svg{color:", ";fill:", ";}}&::after{height:1px;background-color:transparent;background-image:linear-gradient( to right,", " 66%,", " 34% );background-position:top;background-size:5px 1px;background-repeat:repeat-x;}}", "{color:", ";}&.active{svg{color:", ";fill:", ";}", "{color:", ";}&&{&.underscore::after{height:1px;background-color:", ";background-image:none;}}&::after{background-color:transparent;background-image:none;}}&.pressed{svg{color:", ";fill:", ";}", "{color:", ";}&&{&::after{height:0;}}&::after{background-color:transparent;background-image:none;}}", ""], ({
|
|
61
|
+
disabled
|
|
62
|
+
}) => disabled ? "none" : "all", ({
|
|
63
|
+
disabled
|
|
64
|
+
}) => disabled ? "0.4" : "1", IconContainer, TabLabel, ({
|
|
65
|
+
theme
|
|
66
|
+
}) => theme.palette["grey-800"], TabLabel, ({
|
|
67
|
+
theme
|
|
68
|
+
}) => theme.palette["blue-700"], ({
|
|
69
|
+
theme
|
|
70
|
+
}) => theme.palette["grey-800"], ({
|
|
71
|
+
theme
|
|
72
|
+
}) => theme.palette["grey-800"], ({
|
|
73
|
+
theme
|
|
74
|
+
}) => theme.palette["grey-600"], ({
|
|
75
|
+
theme
|
|
76
|
+
}) => theme.palette["grey-600"], TabLabel, ({
|
|
77
|
+
theme
|
|
78
|
+
}) => theme.palette["blue-500"], ({
|
|
79
|
+
theme
|
|
80
|
+
}) => theme.palette["blue-500"], ({
|
|
81
|
+
theme
|
|
82
|
+
}) => theme.palette["blue-500"], TabLabel, ({
|
|
83
|
+
theme
|
|
84
|
+
}) => theme.palette["blue-600"], ({
|
|
85
|
+
theme
|
|
86
|
+
}) => theme.palette["blue-600"], ({
|
|
87
|
+
theme
|
|
88
|
+
}) => theme.palette["blue-600"], ({
|
|
89
|
+
theme
|
|
90
|
+
}) => theme.palette.white, ({
|
|
91
|
+
theme
|
|
92
|
+
}) => theme.palette["blue-600"], TabLabel, ({
|
|
93
|
+
theme
|
|
94
|
+
}) => theme.palette["grey-700"], ({
|
|
95
|
+
theme
|
|
96
|
+
}) => theme.palette["blue-600"], ({
|
|
97
|
+
theme
|
|
98
|
+
}) => theme.palette["blue-600"], TabLabel, ({
|
|
99
|
+
theme
|
|
100
|
+
}) => theme.palette["blue-600"], ({
|
|
101
|
+
theme
|
|
102
|
+
}) => theme.palette["blue-600"], ({
|
|
103
|
+
theme
|
|
104
|
+
}) => theme.palette["blue-700"], ({
|
|
105
|
+
theme
|
|
106
|
+
}) => theme.palette["blue-700"], TabLabel, ({
|
|
107
|
+
theme
|
|
108
|
+
}) => theme.palette["blue-700"], (props) => !!props.block && applyBlockStyles(props));
|
|
109
|
+
const SuffixWrapper = /* @__PURE__ */ styled.div.withConfig({
|
|
103
110
|
displayName: "Tabstyles__SuffixWrapper",
|
|
104
111
|
componentId: "sc-8a5swe-4"
|
|
105
112
|
})([""]);
|
|
106
|
-
|
|
113
|
+
const DefaultSuffixWrapper = /* @__PURE__ */ styled.div.withConfig({
|
|
107
114
|
displayName: "Tabstyles__DefaultSuffixWrapper",
|
|
108
115
|
componentId: "sc-8a5swe-5"
|
|
109
|
-
})(["font-size:13px;line-height:10px;text-align:center;&& .ant-badge-count{padding:0 0 0 3px;}"]);
|
|
116
|
+
})(["font-size:13px;line-height:10px;text-align:center;&& .ant-badge-count{padding:0 0 0 3px;}"]);
|
|
117
|
+
export {
|
|
118
|
+
BlockContentWrapper,
|
|
119
|
+
DefaultSuffixWrapper,
|
|
120
|
+
SuffixWrapper,
|
|
121
|
+
TabContainer,
|
|
122
|
+
TabContent,
|
|
123
|
+
TabLabel
|
|
124
|
+
};
|
package/dist/Tab/Tab.types.d.ts
CHANGED
package/dist/Tab/Tab.types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/Tabs.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { TabsProps } from './Tabs.types';
|
|
3
3
|
declare const Tabs: {
|
|
4
4
|
({ activeTab, tabs, handleTabClick, configuration, underscore, block, }: TabsProps): React.JSX.Element;
|
|
5
5
|
defaultProps: {
|
package/dist/Tabs.js
CHANGED
|
@@ -1,94 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var DROPDOWN_TRIGGER_SIZE = 32;
|
|
15
|
-
var DROPDOWN_OVERLAY_STYLE = {
|
|
16
|
-
zIndex: parseInt(theme.variables['zindex-modal'], 10) - 1
|
|
1
|
+
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import debounce from "lodash.debounce";
|
|
3
|
+
import { useState, useRef, useMemo, useEffect, createRef, useCallback } from "react";
|
|
4
|
+
import { theme } from "@synerise/ds-core";
|
|
5
|
+
import { DropdownMenu } from "@synerise/ds-dropdown";
|
|
6
|
+
import Icon, { OptionHorizontalM } from "@synerise/ds-icon";
|
|
7
|
+
import { useResizeObserver, NOOP } from "@synerise/ds-utils";
|
|
8
|
+
import Tab from "./Tab/Tab.js";
|
|
9
|
+
import { HiddenTabs, TabsContainer, ShowHiddenTabsTrigger } from "./Tabs.styles.js";
|
|
10
|
+
const MARGIN_BETWEEN_TABS = 24;
|
|
11
|
+
const DROPDOWN_TRIGGER_SIZE = 32;
|
|
12
|
+
const DROPDOWN_OVERLAY_STYLE = {
|
|
13
|
+
zIndex: parseInt(theme.variables["zindex-modal"], 10) - 1
|
|
17
14
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
helperWidth
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
setVisibleTabs = _useState4[1];
|
|
43
|
-
var _useState5 = useState(false),
|
|
44
|
-
isDropdownVisible = _useState5[0],
|
|
45
|
-
setIsDropdownVisible = _useState5[1];
|
|
46
|
-
var _useState6 = useState([]),
|
|
47
|
-
hiddenTabs = _useState6[0],
|
|
48
|
-
setHiddenTabs = _useState6[1];
|
|
49
|
-
var debouncedEventHandler = useMemo(function () {
|
|
50
|
-
return debounce(function (newWidth) {
|
|
51
|
-
return setContainerWidth(newWidth);
|
|
52
|
-
}, 200);
|
|
53
|
-
}, []);
|
|
54
|
-
useEffect(function () {
|
|
15
|
+
const Tabs = ({
|
|
16
|
+
activeTab,
|
|
17
|
+
tabs,
|
|
18
|
+
handleTabClick,
|
|
19
|
+
configuration,
|
|
20
|
+
underscore,
|
|
21
|
+
block
|
|
22
|
+
}) => {
|
|
23
|
+
const [containerWidth, setContainerWidth] = useState(0);
|
|
24
|
+
const containerRef = useRef(null);
|
|
25
|
+
const helperContainerRef = useRef(null);
|
|
26
|
+
const {
|
|
27
|
+
width
|
|
28
|
+
} = useResizeObserver(containerRef);
|
|
29
|
+
const {
|
|
30
|
+
width: helperWidth
|
|
31
|
+
} = useResizeObserver(helperContainerRef);
|
|
32
|
+
const [items, setItems] = useState([]);
|
|
33
|
+
const [itemsWidths, setItemsWidths] = useState([]);
|
|
34
|
+
const [visibleTabs, setVisibleTabs] = useState([]);
|
|
35
|
+
const [isDropdownVisible, setIsDropdownVisible] = useState(false);
|
|
36
|
+
const [hiddenTabs, setHiddenTabs] = useState([]);
|
|
37
|
+
const debouncedEventHandler = useMemo(() => debounce((newWidth) => setContainerWidth(newWidth), 200), []);
|
|
38
|
+
useEffect(() => {
|
|
55
39
|
debouncedEventHandler(width);
|
|
56
40
|
}, [width, debouncedEventHandler]);
|
|
57
|
-
useEffect(
|
|
58
|
-
|
|
59
|
-
containerRef.current && setContainerWidth((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.offsetWidth);
|
|
60
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
containerRef.current && setContainerWidth(containerRef.current?.offsetWidth);
|
|
61
43
|
}, [containerRef.current]);
|
|
62
|
-
useEffect(
|
|
63
|
-
|
|
64
|
-
return
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
const newTabs = tabs.map((tab) => {
|
|
46
|
+
return {
|
|
47
|
+
...tab,
|
|
48
|
+
ref: createRef()
|
|
49
|
+
};
|
|
67
50
|
});
|
|
68
51
|
setItems(newTabs);
|
|
69
52
|
}, [tabs]);
|
|
70
|
-
|
|
71
|
-
useEffect(
|
|
53
|
+
const widthsAreNonZero = containerWidth > 0 && helperWidth > 0;
|
|
54
|
+
useEffect(() => {
|
|
72
55
|
if (widthsAreNonZero) {
|
|
73
|
-
|
|
74
|
-
items.forEach(
|
|
56
|
+
const itemsWithWidths = [];
|
|
57
|
+
items.forEach((item, index) => {
|
|
75
58
|
itemsWithWidths[index] = item.ref.current !== null ? item.ref.current.offsetWidth + MARGIN_BETWEEN_TABS : 0;
|
|
76
59
|
});
|
|
77
60
|
setItemsWidths(itemsWithWidths);
|
|
78
61
|
}
|
|
79
62
|
}, [items, widthsAreNonZero]);
|
|
80
|
-
useEffect(
|
|
63
|
+
useEffect(() => {
|
|
81
64
|
if (block) {
|
|
82
65
|
setVisibleTabs(items);
|
|
83
66
|
setHiddenTabs([]);
|
|
84
67
|
}
|
|
85
68
|
}, [items, block]);
|
|
86
|
-
useEffect(
|
|
69
|
+
useEffect(() => {
|
|
87
70
|
if (!block) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
itemsWidths.forEach(
|
|
71
|
+
let tabsWidth = DROPDOWN_TRIGGER_SIZE + MARGIN_BETWEEN_TABS;
|
|
72
|
+
const visibleItems = [];
|
|
73
|
+
const hiddenItems = [];
|
|
74
|
+
itemsWidths.forEach((itemWidth, index) => {
|
|
92
75
|
if (containerRef && tabsWidth + itemWidth < containerWidth) {
|
|
93
76
|
visibleItems.push(items[index]);
|
|
94
77
|
} else {
|
|
@@ -99,118 +82,81 @@ var Tabs = function Tabs(_ref) {
|
|
|
99
82
|
setVisibleTabs(visibleItems);
|
|
100
83
|
setHiddenTabs(hiddenItems);
|
|
101
84
|
}
|
|
102
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
85
|
}, [block, itemsWidths, containerWidth]);
|
|
104
|
-
|
|
86
|
+
const handleConfigurationAction = useCallback(() => {
|
|
105
87
|
configuration && configuration.action();
|
|
106
88
|
setIsDropdownVisible(false);
|
|
107
89
|
}, [configuration]);
|
|
108
|
-
|
|
90
|
+
const handleHiddenTabClick = useCallback((index) => {
|
|
109
91
|
setIsDropdownVisible(false);
|
|
110
92
|
handleTabClick(index);
|
|
111
93
|
}, [handleTabClick]);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
var hiddenTabsItems = useMemo(function () {
|
|
123
|
-
var temp = hiddenTabs.length > 0 ? [].concat(dropdownMenuItems) : [];
|
|
94
|
+
const dropdownMenuItems = hiddenTabs.map((item, index) => ({
|
|
95
|
+
key: `${item.label}-dropdown-${index}`,
|
|
96
|
+
onClick: () => handleHiddenTabClick(visibleTabs.length + index),
|
|
97
|
+
disabled: item.disabled,
|
|
98
|
+
text: item.label
|
|
99
|
+
}));
|
|
100
|
+
const hiddenTabsItems = useMemo(() => {
|
|
101
|
+
const temp = hiddenTabs.length > 0 ? [...dropdownMenuItems] : [];
|
|
124
102
|
if (hiddenTabs.length > 0 && configuration) {
|
|
125
103
|
temp.push({
|
|
126
|
-
type:
|
|
104
|
+
type: "divider"
|
|
127
105
|
});
|
|
128
106
|
}
|
|
129
107
|
if (configuration) {
|
|
130
108
|
temp.push({
|
|
131
|
-
key:
|
|
109
|
+
key: "configuration-btn",
|
|
132
110
|
onClick: handleConfigurationAction,
|
|
133
|
-
disabled: !!
|
|
111
|
+
disabled: !!configuration?.disabled,
|
|
134
112
|
text: configuration.label
|
|
135
113
|
});
|
|
136
114
|
}
|
|
137
115
|
return temp;
|
|
138
116
|
}, [hiddenTabs.length, dropdownMenuItems, configuration, handleConfigurationAction]);
|
|
139
|
-
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
popoverProps: {
|
|
149
|
-
testId: 'tabs-hidden',
|
|
150
|
-
autoUpdate: {
|
|
151
|
-
ancestorScroll: true,
|
|
152
|
-
ancestorResize: true,
|
|
153
|
-
elementResize: true,
|
|
154
|
-
layoutShift: true,
|
|
155
|
-
animationFrame: true
|
|
156
|
-
}
|
|
117
|
+
const renderDropdown = () => {
|
|
118
|
+
return /* @__PURE__ */ jsx(Fragment, { children: (hiddenTabs.length || configuration) && /* @__PURE__ */ jsx(DropdownMenu, { trigger: "click", dataSource: hiddenTabsItems, open: isDropdownVisible, onOpenChange: setIsDropdownVisible, disabled: !!configuration?.disabled && !hiddenTabs.length, overlayStyle: DROPDOWN_OVERLAY_STYLE, placement: "bottomLeft", popoverProps: {
|
|
119
|
+
testId: "tabs-hidden",
|
|
120
|
+
autoUpdate: {
|
|
121
|
+
ancestorScroll: true,
|
|
122
|
+
ancestorResize: true,
|
|
123
|
+
elementResize: true,
|
|
124
|
+
layoutShift: true,
|
|
125
|
+
animationFrame: true
|
|
157
126
|
}
|
|
158
|
-
},
|
|
159
|
-
"data-testid": "tabs-dropdown-trigger",
|
|
160
|
-
type: "ghost",
|
|
161
|
-
mode: "single-icon",
|
|
162
|
-
disabled: !!(configuration != null && configuration.disabled) && !hiddenTabs.length
|
|
163
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
164
|
-
component: /*#__PURE__*/React.createElement(OptionHorizontalM, null)
|
|
165
|
-
}))));
|
|
127
|
+
}, children: /* @__PURE__ */ jsx(ShowHiddenTabsTrigger, { "data-testid": "tabs-dropdown-trigger", type: "ghost", mode: "single-icon", disabled: !!configuration?.disabled && !hiddenTabs.length, children: /* @__PURE__ */ jsx(Icon, { component: /* @__PURE__ */ jsx(OptionHorizontalM, {}) }) }) }) });
|
|
166
128
|
};
|
|
167
|
-
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return
|
|
175
|
-
|
|
176
|
-
forwardedRef: ref,
|
|
177
|
-
key: key,
|
|
178
|
-
index: index,
|
|
179
|
-
block: block,
|
|
180
|
-
onClick: handleTabClick,
|
|
181
|
-
isActive: index === activeTab
|
|
182
|
-
}, tabProps));
|
|
183
|
-
}));
|
|
129
|
+
const renderVisibleTabs = useMemo(() => {
|
|
130
|
+
return /* @__PURE__ */ jsx(Fragment, { children: visibleTabs.filter((tab) => Boolean(tab)).map((tab, index) => {
|
|
131
|
+
const key = `tabs-tab-${index}`;
|
|
132
|
+
const {
|
|
133
|
+
ref,
|
|
134
|
+
...tabProps
|
|
135
|
+
} = tab;
|
|
136
|
+
return /* @__PURE__ */ jsx(Tab, { underscore, forwardedRef: ref, index, block, onClick: handleTabClick, isActive: index === activeTab, ...tabProps }, key);
|
|
137
|
+
}) });
|
|
184
138
|
}, [visibleTabs, activeTab, handleTabClick, underscore, block]);
|
|
185
|
-
|
|
186
|
-
return
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return /*#__PURE__*/React.createElement(Tab, _extends({
|
|
195
|
-
className: "hidden",
|
|
196
|
-
underscore: underscore,
|
|
197
|
-
forwardedRef: ref,
|
|
198
|
-
key: key,
|
|
199
|
-
index: index,
|
|
200
|
-
onClick: NOOP,
|
|
201
|
-
block: block
|
|
202
|
-
}, tabProps));
|
|
203
|
-
}));
|
|
139
|
+
const renderHelpers = useMemo(() => {
|
|
140
|
+
return /* @__PURE__ */ jsx(HiddenTabs, { ref: helperContainerRef, "data-testid": "ds-tabs-hidden-helper", className: "ds-hidden-helper", children: items.map((tab, index) => {
|
|
141
|
+
const key = `tabs-tab-helper-${index}`;
|
|
142
|
+
const {
|
|
143
|
+
ref,
|
|
144
|
+
...tabProps
|
|
145
|
+
} = tab;
|
|
146
|
+
return /* @__PURE__ */ jsx(Tab, { className: "hidden", underscore, forwardedRef: ref, index, onClick: NOOP, block, ...tabProps }, key);
|
|
147
|
+
}) });
|
|
204
148
|
}, [items, underscore, block]);
|
|
205
|
-
return
|
|
206
|
-
className: "ds-tabs",
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
149
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
150
|
+
tabs.length > 0 || configuration ? /* @__PURE__ */ jsxs(TabsContainer, { className: "ds-tabs", ref: containerRef, "data-testid": "tabs-container", block, "data-popup-container": true, children: [
|
|
151
|
+
renderVisibleTabs,
|
|
152
|
+
renderDropdown()
|
|
153
|
+
] }) : null,
|
|
154
|
+
!block && renderHelpers
|
|
155
|
+
] });
|
|
212
156
|
};
|
|
213
157
|
Tabs.defaultProps = {
|
|
214
158
|
underscore: true
|
|
215
159
|
};
|
|
216
|
-
export
|
|
160
|
+
export {
|
|
161
|
+
Tabs as default
|
|
162
|
+
};
|
package/dist/Tabs.styles.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import Menu,
|
|
3
|
-
export declare const TabsContainer: import(
|
|
1
|
+
import { StyledButton } from '@synerise/ds-button';
|
|
2
|
+
import { default as Menu, AntdMenuProps } from '@synerise/ds-menu';
|
|
3
|
+
export declare const TabsContainer: import('styled-components').StyledComponent<"div", any, {
|
|
4
4
|
block?: boolean;
|
|
5
5
|
}, never>;
|
|
6
|
-
export declare const TabsDropdownContainer: import(
|
|
7
|
-
export declare const TabsDropdownDivider: import(
|
|
6
|
+
export declare const TabsDropdownContainer: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
7
|
+
export declare const TabsDropdownDivider: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
8
8
|
export declare const ShowHiddenTabsTrigger: StyledButton;
|
|
9
|
-
export declare const HiddenTabs: import(
|
|
10
|
-
export declare const DropdownMenu: import(
|
|
9
|
+
export declare const HiddenTabs: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
10
|
+
export declare const DropdownMenu: import('styled-components').StyledComponent<typeof Menu, any, AntdMenuProps, never>;
|
package/dist/Tabs.styles.js
CHANGED
|
@@ -1,38 +1,41 @@
|
|
|
1
|
-
import styled from
|
|
2
|
-
import Button from
|
|
3
|
-
import Menu from
|
|
4
|
-
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
import Button from "@synerise/ds-button";
|
|
3
|
+
import Menu from "@synerise/ds-menu";
|
|
4
|
+
const TabsContainer = /* @__PURE__ */ styled.div.withConfig({
|
|
5
5
|
displayName: "Tabsstyles__TabsContainer",
|
|
6
6
|
componentId: "sc-16x3i3b-0"
|
|
7
|
-
})(["padding-top:5px;display:flex;flex-direction:row;align-items:", ";justify-content:flex-start;max-width:100%;overflow-x:hidden;margin-bottom:-1px;height:43px;"],
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
export var TabsDropdownContainer = styled.div.withConfig({
|
|
7
|
+
})(["padding-top:5px;display:flex;flex-direction:row;align-items:", ";justify-content:flex-start;max-width:100%;overflow-x:hidden;margin-bottom:-1px;height:43px;"], (props) => props.block ? `center` : `flex-end`);
|
|
8
|
+
const TabsDropdownContainer = /* @__PURE__ */ styled.div.withConfig({
|
|
11
9
|
displayName: "Tabsstyles__TabsDropdownContainer",
|
|
12
10
|
componentId: "sc-16x3i3b-1"
|
|
13
|
-
})(["display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:", ";opacity:1;padding:8px;"],
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export var TabsDropdownDivider = styled.div.withConfig({
|
|
11
|
+
})(["display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:", ";opacity:1;padding:8px;"], ({
|
|
12
|
+
theme
|
|
13
|
+
}) => theme.palette.white);
|
|
14
|
+
const TabsDropdownDivider = /* @__PURE__ */ styled.div.withConfig({
|
|
18
15
|
displayName: "Tabsstyles__TabsDropdownDivider",
|
|
19
16
|
componentId: "sc-16x3i3b-2"
|
|
20
|
-
})(["margin:7.5px 0;height:1px;width:100%;box-sizing:content-box;background-image:linear-gradient( to right,", " 66%,", " 34% );background-position:top;background-size:5px 1px;background-repeat:repeat-x;"],
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
27
|
-
export var ShowHiddenTabsTrigger = styled(Button).withConfig({
|
|
17
|
+
})(["margin:7.5px 0;height:1px;width:100%;box-sizing:content-box;background-image:linear-gradient( to right,", " 66%,", " 34% );background-position:top;background-size:5px 1px;background-repeat:repeat-x;"], ({
|
|
18
|
+
theme
|
|
19
|
+
}) => theme.palette.white, ({
|
|
20
|
+
theme
|
|
21
|
+
}) => theme.palette["grey-300"]);
|
|
22
|
+
const ShowHiddenTabsTrigger = /* @__PURE__ */ styled(Button).withConfig({
|
|
28
23
|
displayName: "Tabsstyles__ShowHiddenTabsTrigger",
|
|
29
24
|
componentId: "sc-16x3i3b-3"
|
|
30
25
|
})(["margin-bottom:4px;"]);
|
|
31
|
-
|
|
26
|
+
const HiddenTabs = /* @__PURE__ */ styled.div.withConfig({
|
|
32
27
|
displayName: "Tabsstyles__HiddenTabs",
|
|
33
28
|
componentId: "sc-16x3i3b-4"
|
|
34
29
|
})(["position:absolute;display:flex;visibility:hidden;pointer-events:none;"]);
|
|
35
|
-
|
|
30
|
+
const DropdownMenu = /* @__PURE__ */ styled(Menu).withConfig({
|
|
36
31
|
displayName: "Tabsstyles__DropdownMenu",
|
|
37
32
|
componentId: "sc-16x3i3b-5"
|
|
38
|
-
})([""]);
|
|
33
|
+
})([""]);
|
|
34
|
+
export {
|
|
35
|
+
DropdownMenu,
|
|
36
|
+
HiddenTabs,
|
|
37
|
+
ShowHiddenTabsTrigger,
|
|
38
|
+
TabsContainer,
|
|
39
|
+
TabsDropdownContainer,
|
|
40
|
+
TabsDropdownDivider
|
|
41
|
+
};
|
package/dist/Tabs.types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { ReactNode, RefObject } from 'react';
|
|
2
|
+
import { TooltipProps } from '@synerise/ds-tooltip';
|
|
3
3
|
export type TabsProps = {
|
|
4
4
|
activeTab: number;
|
|
5
5
|
tabs: TabItem[];
|
package/dist/Tabs.types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/index.js
CHANGED
package/dist/modules.d.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "@testing-library/jest-dom";
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-tabs",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.24",
|
|
4
4
|
"description": "Tabs UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "synerise/synerise-design",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
|
-
"build": "
|
|
19
|
+
"build": "vite build",
|
|
20
20
|
"build:css": "node ../../../scripts/style/less.js",
|
|
21
21
|
"build:js": "babel --delete-dir-on-start --root-mode upward src --out-dir dist --extensions '.js,.ts,.tsx'",
|
|
22
|
-
"build:watch": "
|
|
22
|
+
"build:watch": "vite build --watch",
|
|
23
23
|
"defs": "tsc --declaration --outDir dist/ --emitDeclarationOnly",
|
|
24
24
|
"pack:ci": "pnpm pack --pack-destination ../../storybook/storybook-static/static",
|
|
25
25
|
"prepublish": "pnpm run build",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
],
|
|
36
36
|
"types": "dist/index.d.ts",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@synerise/ds-button": "^1.5.
|
|
39
|
-
"@synerise/ds-dropdown": "^1.3.
|
|
40
|
-
"@synerise/ds-icon": "^1.15.
|
|
41
|
-
"@synerise/ds-menu": "^1.4.
|
|
42
|
-
"@synerise/ds-tooltip": "^1.4.
|
|
43
|
-
"@synerise/ds-typography": "^1.1.
|
|
44
|
-
"@synerise/ds-utils": "^1.7.
|
|
38
|
+
"@synerise/ds-button": "^1.5.18",
|
|
39
|
+
"@synerise/ds-dropdown": "^1.3.2",
|
|
40
|
+
"@synerise/ds-icon": "^1.15.1",
|
|
41
|
+
"@synerise/ds-menu": "^1.4.13",
|
|
42
|
+
"@synerise/ds-tooltip": "^1.4.10",
|
|
43
|
+
"@synerise/ds-typography": "^1.1.13",
|
|
44
|
+
"@synerise/ds-utils": "^1.7.1",
|
|
45
45
|
"classnames": "^2.5.1",
|
|
46
46
|
"lodash.debounce": "^4.0.8"
|
|
47
47
|
},
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"react": ">=16.9.0 <= 18.3.1",
|
|
55
55
|
"styled-components": "^5.3.3"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "e4ecca8944fc9b41c1b9d59c8bcad5e5e2013225"
|
|
58
58
|
}
|