@xaypay/tui 0.0.54 → 0.0.56
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/.storybook/main.js +27 -20
- package/cli-command.js +3 -0
- package/dist/index.es.js +250 -99
- package/dist/index.js +251 -99
- package/package.json +8 -5
- package/rollup.config.js +2 -0
- package/src/components/autocomplate/index.js +22 -17
- package/src/components/button/index.js +27 -18
- package/src/components/input/index.js +136 -40
- package/src/components/input/input.module.css +17 -15
- package/src/components/table/index.js +1 -1
- package/src/components/tooltip/index.js +37 -34
- package/src/components/tooltip/tooltip.module.css +2 -2
- package/src/components/tooltip/tooltip.stories.js +3 -2
- package/src/components/typography/index.js +65 -6
- package/src/components/typography/typography.stories.js +8 -2
- package/src/stories/Introduction.stories.mdx +92 -93
- package/src/stories/changelog.stories.mdx +118 -0
- package/src/stories/configuration.stories.mdx +334 -0
- package/src/stories/documentation.stories.mdx +118 -0
- package/src/stories/static/button-usage.png +0 -0
- package/src/stories/usage.stories.mdx +128 -0
- package/src/utils/index.js +1 -0
- package/tui.config.js +190 -52
- package/storybook-static/favicon.ico +0 -0
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { compereConfigs } from "./../../utils";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import ReactInfoIcon from './../../assets/icons/tooltip.svg';
|
|
7
7
|
|
|
8
8
|
import styles from "./tooltip.module.css";
|
|
9
9
|
|
|
@@ -12,19 +12,20 @@ export const Tooltip = ({
|
|
|
12
12
|
text,
|
|
13
13
|
width,
|
|
14
14
|
color,
|
|
15
|
-
tIcon,
|
|
16
15
|
height,
|
|
17
|
-
|
|
16
|
+
radius,
|
|
18
17
|
fontSize,
|
|
19
|
-
tBgColor,
|
|
20
18
|
className,
|
|
21
19
|
fontFamily,
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
tooltipIcon,
|
|
21
|
+
tooltipWidth,
|
|
22
|
+
tooltipRadius,
|
|
23
|
+
backgroundColor,
|
|
24
|
+
tooltipBackgroundColor
|
|
24
25
|
}) => {
|
|
25
26
|
const tooltipRef = createRef(null);
|
|
26
|
-
const [
|
|
27
|
-
const [
|
|
27
|
+
const [checkTooltipWidth, setCheckTooltipWidth] = useState(0);
|
|
28
|
+
const [checkTooltipHeight, setCheckTooltipHeight] = useState(0);
|
|
28
29
|
const [showTooltip, setShowTooltip] = useState(false);
|
|
29
30
|
|
|
30
31
|
const configStyles = compereConfigs();
|
|
@@ -33,29 +34,26 @@ export const Tooltip = ({
|
|
|
33
34
|
className
|
|
34
35
|
);
|
|
35
36
|
|
|
36
|
-
useEffect(_ => {
|
|
37
|
-
if (!type && !text) {
|
|
38
|
-
alert('Add type and text on tooltip');
|
|
39
|
-
} else if (!type) {
|
|
40
|
-
alert('Add type on tooltip');
|
|
41
|
-
} else if (!text) {
|
|
42
|
-
alert('Add text on tooltip');
|
|
43
|
-
}
|
|
44
|
-
tooltipRef.current && tooltipRef.current.clientWidth && tooltipRef.current.clientWidth > 0 && setTooltipWidth(tooltipRef.current.clientWidth);
|
|
45
|
-
tooltipRef.current && tooltipRef.current.clientHeight && tooltipRef.current.clientHeight > 0 && setTooltipHeight(tooltipRef.current.clientHeight);
|
|
46
|
-
}, [type, text, tooltipWidth, tooltipRef]);
|
|
47
|
-
|
|
48
37
|
const handleShow = () => {
|
|
49
38
|
setShowTooltip(!showTooltip);
|
|
50
39
|
};
|
|
51
40
|
|
|
41
|
+
useEffect(_ => {
|
|
42
|
+
if (!text) {
|
|
43
|
+
alert('Add text on tooltip');
|
|
44
|
+
}
|
|
45
|
+
tooltipRef.current && tooltipRef.current.clientWidth && tooltipRef.current.clientWidth > 0 && setCheckTooltipWidth(tooltipRef.current.clientWidth);
|
|
46
|
+
tooltipRef.current && tooltipRef.current.clientHeight && tooltipRef.current.clientHeight > 0 && setCheckTooltipHeight(tooltipRef.current.clientHeight);
|
|
47
|
+
}, [text, tooltipRef, checkTooltipWidth, checkTooltipHeight]);
|
|
48
|
+
|
|
52
49
|
return (
|
|
53
50
|
<div
|
|
54
51
|
className={`${styles['tooltip-block']}`}
|
|
55
52
|
style={{
|
|
56
53
|
width: width ? width : configStyles.TOOLTIP.width,
|
|
57
54
|
height: height ? height : configStyles.TOOLTIP.height,
|
|
58
|
-
|
|
55
|
+
borderRadius: radius ? radius : configStyles.TOOLTIP.radius,
|
|
56
|
+
backgroundColor: backgroundColor ? backgroundColor : configStyles.TOOLTIP.backgroundColor,
|
|
59
57
|
}}
|
|
60
58
|
>
|
|
61
59
|
{
|
|
@@ -64,10 +62,11 @@ export const Tooltip = ({
|
|
|
64
62
|
ref={tooltipRef}
|
|
65
63
|
className={classProps}
|
|
66
64
|
style={{
|
|
67
|
-
|
|
68
|
-
borderRadius:
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
width: tooltipWidth ? tooltipWidth : configStyles.TOOLTIP.tooltipWidth,
|
|
66
|
+
borderRadius: tooltipRadius ? tooltipRadius : configStyles.TOOLTIP.tooltipRadius,
|
|
67
|
+
backgroundColor: tooltipBackgroundColor ? tooltipBackgroundColor : configStyles.TOOLTIP.tooltipBackgroundColor,
|
|
68
|
+
top: type === 'top' ? `calc(-${checkTooltipHeight + 7}px)` : type === 'bottom' ? 'calc(100% + 7px)' : type === 'left' || type === 'right' ? `calc(50% - ${checkTooltipHeight / 2}px)` : '0px',
|
|
69
|
+
left: type === 'top' || type === 'bottom' ? `calc(50% - ${checkTooltipWidth / 2}px)` : type === 'left' ? `-${checkTooltipWidth + 7}px` : type === 'right' ? 'calc(100% + 7px)' : '0px'
|
|
71
70
|
}}
|
|
72
71
|
>
|
|
73
72
|
<div
|
|
@@ -76,7 +75,7 @@ export const Tooltip = ({
|
|
|
76
75
|
<div
|
|
77
76
|
className={`${styles['tooltip-decor']}`}
|
|
78
77
|
style={{
|
|
79
|
-
backgroundColor:
|
|
78
|
+
backgroundColor: tooltipBackgroundColor ? tooltipBackgroundColor : configStyles.TOOLTIP.tooltipBackgroundColor,
|
|
80
79
|
left: type === 'top' || type === 'bottom' ? 'calc(50% - 5px)' : type === 'right' ? '-15px' : type === 'left' ? 'calc(100% + 5px)' : '0px',
|
|
81
80
|
top: type === 'top' ? 'calc(100% + 5px)' : type === 'bottom' ? '-15px' : type === 'right' || type === 'left' ? 'calc(50% - 5px)' : '0px'
|
|
82
81
|
}}
|
|
@@ -85,7 +84,6 @@ export const Tooltip = ({
|
|
|
85
84
|
style={{
|
|
86
85
|
color: color ? color : configStyles.TOOLTIP.color,
|
|
87
86
|
fontSize: fontSize ? fontSize : configStyles.TOOLTIP.fontSize,
|
|
88
|
-
lineHeight: fontSize ? fontSize : configStyles.TOOLTIP.fontSize,
|
|
89
87
|
fontFamily: fontFamily ? fontFamily : configStyles.TOOLTIP.fontFamily
|
|
90
88
|
}}
|
|
91
89
|
>
|
|
@@ -97,24 +95,29 @@ export const Tooltip = ({
|
|
|
97
95
|
}
|
|
98
96
|
|
|
99
97
|
<div style={{cursor: 'pointer'}} onClick={handleShow}>
|
|
100
|
-
{
|
|
98
|
+
{tooltipIcon && tooltipIcon[0] ? tooltipIcon[0] : <img src={ReactInfoIcon} />}
|
|
101
99
|
</div>
|
|
102
100
|
</div>
|
|
103
101
|
);
|
|
104
102
|
};
|
|
105
103
|
|
|
106
104
|
Tooltip.propTypes = {
|
|
105
|
+
type: PropTypes.string,
|
|
107
106
|
width: PropTypes.string,
|
|
108
107
|
color: PropTypes.string,
|
|
109
|
-
tIcon: PropTypes.element,
|
|
110
108
|
height: PropTypes.string,
|
|
111
|
-
|
|
112
|
-
tBgColor: PropTypes.string,
|
|
109
|
+
radius: PropTypes.string,
|
|
113
110
|
fontSize: PropTypes.string,
|
|
114
111
|
className: PropTypes.string,
|
|
115
112
|
fontFamily: PropTypes.string,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
type: PropTypes.string.isRequired,
|
|
113
|
+
tooltipWidth: PropTypes.string,
|
|
114
|
+
tooltipRadius: PropTypes.string,
|
|
119
115
|
text: PropTypes.string.isRequired,
|
|
116
|
+
backgroundColor: PropTypes.string,
|
|
117
|
+
tooltipBackgroundColor: PropTypes.string,
|
|
118
|
+
tooltipIcon: PropTypes.arrayOf(PropTypes.element)
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
Tooltip.defaultProps = {
|
|
122
|
+
type: 'top'
|
|
120
123
|
};
|
|
@@ -19,19 +19,49 @@ export const Typography = ({
|
|
|
19
19
|
size,
|
|
20
20
|
color,
|
|
21
21
|
weight,
|
|
22
|
-
|
|
22
|
+
radius,
|
|
23
|
+
border,
|
|
24
|
+
cursor,
|
|
25
|
+
margin,
|
|
26
|
+
padding,
|
|
23
27
|
variant,
|
|
28
|
+
bgColor,
|
|
29
|
+
onClick,
|
|
24
30
|
children,
|
|
31
|
+
textAlign,
|
|
32
|
+
fontStyle,
|
|
25
33
|
className,
|
|
34
|
+
textShadow,
|
|
35
|
+
lineHeight,
|
|
36
|
+
colorHover,
|
|
37
|
+
fontFamily,
|
|
38
|
+
textTransform,
|
|
39
|
+
textDecoration,
|
|
26
40
|
...props
|
|
27
41
|
}) => {
|
|
28
42
|
const configStyles = compereConfigs();
|
|
29
43
|
const classProps = classnames(className);
|
|
30
44
|
|
|
45
|
+
const [isHover, setIsHover] = useState(false);
|
|
31
46
|
const [validVariant, setValidVariant] = useState(false);
|
|
32
47
|
const [style, setStyle] = useState({
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
border: border ? border : configStyles.TYPOGRAPHY.border,
|
|
49
|
+
cursor: cursor ? cursor : configStyles.TYPOGRAPHY.cursor,
|
|
50
|
+
borderRadius: radius ? radius : configStyles.TYPOGRAPHY.radius,
|
|
51
|
+
fontSize: size ? size : configStyles.TYPOGRAPHY['size'+variant],
|
|
52
|
+
margin: margin ? margin : configStyles.TYPOGRAPHY['margin'+variant],
|
|
53
|
+
fontWeight: weight ? weight : configStyles.TYPOGRAPHY['weight'+variant],
|
|
54
|
+
padding: padding ? padding : configStyles.TYPOGRAPHY['padding'+variant],
|
|
55
|
+
textShadow: textShadow ? textShadow : configStyles.TYPOGRAPHY.textShadow,
|
|
56
|
+
textAlign: textAlign ? textAlign : configStyles.TYPOGRAPHY['textAlign'+variant],
|
|
57
|
+
backgroundColor: bgColor ? bgColor : configStyles.TYPOGRAPHY['bgColor'+variant],
|
|
58
|
+
fontStyle: fontStyle ? fontStyle : configStyles.TYPOGRAPHY['fontStyle'+variant],
|
|
59
|
+
lineHeight: lineHeight ? lineHeight : configStyles.TYPOGRAPHY['lineHeight'+variant],
|
|
60
|
+
fontFamily: fontFamily ? fontFamily : configStyles.TYPOGRAPHY['fontFamily'+variant],
|
|
61
|
+
textTransform: textTransform ? textTransform : configStyles.TYPOGRAPHY['textTransform'+variant],
|
|
62
|
+
textDecoration: textDecoration ? textDecoration : configStyles.TYPOGRAPHY['textDecoration'+variant],
|
|
63
|
+
color: isHover ? colorHover ? colorHover : configStyles.TYPOGRAPHY['colorHover'+variant] : color ? color : configStyles.TYPOGRAPHY['color'+variant],
|
|
64
|
+
|
|
35
65
|
});
|
|
36
66
|
|
|
37
67
|
useEffect(() => {
|
|
@@ -51,6 +81,14 @@ export const Typography = ({
|
|
|
51
81
|
}
|
|
52
82
|
}, [color]);
|
|
53
83
|
|
|
84
|
+
const handleMouseEnter = () => {
|
|
85
|
+
setIsHover(true);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const handleMouseLeave = () => {
|
|
89
|
+
setIsHover(false);
|
|
90
|
+
};
|
|
91
|
+
|
|
54
92
|
const tagT = React.createElement(
|
|
55
93
|
variant,
|
|
56
94
|
{
|
|
@@ -58,6 +96,9 @@ export const Typography = ({
|
|
|
58
96
|
...props,
|
|
59
97
|
className: classProps,
|
|
60
98
|
onClick: onClick ? onClick : _ => _,
|
|
99
|
+
onMouseEnter: handleMouseEnter,
|
|
100
|
+
onMouseLeave: handleMouseLeave
|
|
101
|
+
|
|
61
102
|
},
|
|
62
103
|
[children]
|
|
63
104
|
);
|
|
@@ -70,8 +111,26 @@ export const Typography = ({
|
|
|
70
111
|
Typography.propTypes = {
|
|
71
112
|
size: PropTypes.string,
|
|
72
113
|
color: PropTypes.string,
|
|
73
|
-
weight: PropTypes.string,
|
|
74
114
|
onClick: PropTypes.func,
|
|
115
|
+
weight: PropTypes.string,
|
|
116
|
+
border: PropTypes.string,
|
|
117
|
+
cursor: PropTypes.string,
|
|
118
|
+
margin: PropTypes.string,
|
|
119
|
+
radius: PropTypes.string,
|
|
120
|
+
bgColor: PropTypes.string,
|
|
121
|
+
padding: PropTypes.string,
|
|
122
|
+
textAlign: PropTypes.string,
|
|
75
123
|
className: PropTypes.string,
|
|
76
|
-
|
|
77
|
-
|
|
124
|
+
fontStyle: PropTypes.string,
|
|
125
|
+
lineHeight: PropTypes.string,
|
|
126
|
+
textShadow: PropTypes.string,
|
|
127
|
+
fontFamily: PropTypes.string,
|
|
128
|
+
colorHover: PropTypes.string,
|
|
129
|
+
textTransform: PropTypes.string,
|
|
130
|
+
textDecoration: PropTypes.string,
|
|
131
|
+
variant: PropTypes.oneOf(Object.values(TypographyType)),
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
Typography.defaultProps = {
|
|
135
|
+
variant: 'p'
|
|
136
|
+
};
|
|
@@ -9,10 +9,16 @@ export default {
|
|
|
9
9
|
const staticTag = ['h1','h2','h3','h4','h5','h6','span','p']
|
|
10
10
|
|
|
11
11
|
export const Template = (args) => <>
|
|
12
|
-
<Typography {...args}
|
|
12
|
+
<Typography {...args}>Dynamic Typography</Typography>
|
|
13
13
|
{
|
|
14
14
|
staticTag.map((tag,key) => {
|
|
15
|
-
return <Typography
|
|
15
|
+
return <Typography
|
|
16
|
+
key={key}
|
|
17
|
+
variant={tag}
|
|
18
|
+
color={"#" + Math.floor(Math.random()*16777215).toString(16).padStart(6, '0').toUpperCase()}
|
|
19
|
+
>
|
|
20
|
+
{tag}
|
|
21
|
+
</Typography>;
|
|
16
22
|
})
|
|
17
23
|
}
|
|
18
24
|
</>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Meta } from
|
|
2
|
-
import Code from
|
|
3
|
-
import Colors from
|
|
4
|
-
import Comments from
|
|
5
|
-
import Direction from
|
|
6
|
-
import Flow from
|
|
7
|
-
import Plugin from
|
|
8
|
-
import Repo from
|
|
9
|
-
import StackAlt from
|
|
10
|
-
|
|
11
|
-
<Meta title="
|
|
1
|
+
import { Meta } from "@storybook/addon-docs";
|
|
2
|
+
import Code from "./assets/code-brackets.svg";
|
|
3
|
+
import Colors from "./assets/colors.svg";
|
|
4
|
+
import Comments from "./assets/comments.svg";
|
|
5
|
+
import Direction from "./assets/direction.svg";
|
|
6
|
+
import Flow from "./assets/flow.svg";
|
|
7
|
+
import Plugin from "./assets/plugin.svg";
|
|
8
|
+
import Repo from "./assets/repo.svg";
|
|
9
|
+
import StackAlt from "./assets/stackalt.svg";
|
|
10
|
+
|
|
11
|
+
<Meta title="Intro/Introduction" />
|
|
12
12
|
|
|
13
13
|
<style>
|
|
14
|
-
|
|
14
|
+
{`
|
|
15
15
|
.subheading {
|
|
16
16
|
--mediumdark: '#999999';
|
|
17
17
|
font-weight: 900;
|
|
@@ -27,7 +27,7 @@ import StackAlt from './assets/stackalt.svg';
|
|
|
27
27
|
.link-list {
|
|
28
28
|
display: grid;
|
|
29
29
|
grid-template-columns: 1fr;
|
|
30
|
-
grid-template-rows: 1fr
|
|
30
|
+
grid-template-rows: 1fr 0fr;
|
|
31
31
|
row-gap: 10px;
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -42,8 +42,8 @@ import StackAlt from './assets/stackalt.svg';
|
|
|
42
42
|
@media all and (-ms-high-contrast:none) {
|
|
43
43
|
.link-list {
|
|
44
44
|
display: -ms-grid;
|
|
45
|
-
-ms-grid-columns: 1fr
|
|
46
|
-
-ms-grid-rows: 1fr
|
|
45
|
+
-ms-grid-columns: 1fr 0fr;
|
|
46
|
+
-ms-grid-rows: 1fr 0fr;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -114,98 +114,97 @@ import StackAlt from './assets/stackalt.svg';
|
|
|
114
114
|
`}
|
|
115
115
|
</style>
|
|
116
116
|
|
|
117
|
-
# Welcome to
|
|
117
|
+
# Welcome to TUI
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
That makes it easy to develop hard-to-reach states. Save these UI states as **stories** to revisit during development, testing, or QA.
|
|
119
|
+
TUI provides a lot of UI components to enrich your web applications, and we will improve components experience consistently
|
|
121
120
|
|
|
122
|
-
|
|
123
|
-
View their code in the `stories` directory to learn how they work.
|
|
124
|
-
We recommend building UIs with a [**component-driven**](https://componentdriven.org) process starting with atomic components and ending with pages.
|
|
121
|
+
TUI is fully configurable. You can change color, size, border and etc... Yes. You can configurable what you want. box-shadow on hover as well ))))
|
|
125
122
|
|
|
126
123
|
<div className="subheading">Configure</div>
|
|
127
124
|
|
|
128
125
|
<div className="link-list">
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
>
|
|
145
|
-
<img src={StackAlt} alt="Build" />
|
|
146
|
-
<span>
|
|
147
|
-
<strong>Build configuration</strong>
|
|
148
|
-
How to customize webpack and Babel
|
|
149
|
-
</span>
|
|
150
|
-
</a>
|
|
151
|
-
<a
|
|
152
|
-
className="link-item"
|
|
153
|
-
href="https://storybook.js.org/docs/react/configure/styling-and-css"
|
|
154
|
-
target="_blank"
|
|
155
|
-
>
|
|
156
|
-
<img src={Colors} alt="colors" />
|
|
157
|
-
<span>
|
|
158
|
-
<strong>Styling</strong>
|
|
159
|
-
How to load and configure CSS libraries
|
|
160
|
-
</span>
|
|
161
|
-
</a>
|
|
162
|
-
<a
|
|
163
|
-
className="link-item"
|
|
164
|
-
href="https://storybook.js.org/docs/react/get-started/setup#configure-storybook-for-your-stack"
|
|
165
|
-
target="_blank"
|
|
166
|
-
>
|
|
167
|
-
<img src={Flow} alt="flow" />
|
|
168
|
-
<span>
|
|
169
|
-
<strong>Data</strong>
|
|
170
|
-
Providers and mocking for data libraries
|
|
171
|
-
</span>
|
|
172
|
-
</a>
|
|
126
|
+
<a className="link-item" href="https://storybook.js.org/docs/react/addons/addon-types" target="_blank">
|
|
127
|
+
<img src={Plugin} alt="plugin" />
|
|
128
|
+
<span>
|
|
129
|
+
<strong>Presets for popular tools</strong>
|
|
130
|
+
Easy setup for TypeScript, SCSS and more.
|
|
131
|
+
</span>
|
|
132
|
+
</a>
|
|
133
|
+
<a className="link-item" href="../?path=/story/intro-configuration--page">
|
|
134
|
+
<img src={StackAlt} alt="Build" />
|
|
135
|
+
<span>
|
|
136
|
+
<strong>Build configuration</strong>
|
|
137
|
+
How to customize TUI
|
|
138
|
+
</span>
|
|
139
|
+
</a>
|
|
140
|
+
|
|
173
141
|
</div>
|
|
174
142
|
|
|
175
143
|
<div className="subheading">Learn</div>
|
|
176
144
|
|
|
177
145
|
<div className="link-list">
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
<a className="link-item" href="https://github.com/storybookjs/storybook" target="_blank">
|
|
193
|
-
<img src={Code} alt="code" />
|
|
194
|
-
<span>
|
|
195
|
-
<strong>GitHub project</strong>
|
|
196
|
-
View the source and add issues
|
|
197
|
-
</span>
|
|
198
|
-
</a>
|
|
199
|
-
<a className="link-item" href="https://discord.gg/storybook" target="_blank">
|
|
200
|
-
<img src={Comments} alt="comments" />
|
|
201
|
-
<span>
|
|
202
|
-
<strong>Discord chat</strong>
|
|
203
|
-
Chat with maintainers and the community
|
|
204
|
-
</span>
|
|
205
|
-
</a>
|
|
146
|
+
<a className="link-item" href="../?path=/docs/intro-documentation--page">
|
|
147
|
+
<img src={Repo} alt="repo" />
|
|
148
|
+
<span>
|
|
149
|
+
<strong>TUI documentation</strong>
|
|
150
|
+
Configure, customize, and extend
|
|
151
|
+
</span>
|
|
152
|
+
</a>
|
|
153
|
+
<a className="link-item" href="http://gitlab.yerevan.am/rubo/tui" target="_blank">
|
|
154
|
+
<img src={Code} alt="code" />
|
|
155
|
+
<span>
|
|
156
|
+
<strong>GitHub project</strong>
|
|
157
|
+
View the source and add issues
|
|
158
|
+
</span>
|
|
159
|
+
</a>
|
|
206
160
|
</div>
|
|
207
161
|
|
|
162
|
+
<div className="link-list">
|
|
163
|
+
<a className="link-item" href="../?path=/docs/intro-usage--page">
|
|
164
|
+
<img src={Code} alt="code" />
|
|
165
|
+
<span>
|
|
166
|
+
<strong>TUI usage</strong>
|
|
167
|
+
Configure, customize, and extend
|
|
168
|
+
</span>
|
|
169
|
+
</a>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<!--
|
|
173
|
+
<a className="link-item" href="https://storybook.js.org/tutorials/" target="_blank">
|
|
174
|
+
<img src={Direction} alt="direction" />
|
|
175
|
+
<span>
|
|
176
|
+
<strong>In-depth guides</strong>
|
|
177
|
+
Best practices from leading teams
|
|
178
|
+
</span>
|
|
179
|
+
</a>
|
|
180
|
+
<a className="link-item" href="https://discord.gg/storybook" target="_blank">
|
|
181
|
+
<img src={Comments} alt="comments" />
|
|
182
|
+
<span>
|
|
183
|
+
<strong>Discord chat</strong>
|
|
184
|
+
Chat with maintainers and the community
|
|
185
|
+
</span>
|
|
186
|
+
</a>
|
|
208
187
|
<div className="tip-wrapper">
|
|
209
188
|
<span className="tip">Tip</span>Edit the Markdown in{' '}
|
|
210
189
|
<code>stories/Introduction.stories.mdx</code>
|
|
211
190
|
</div>
|
|
191
|
+
|
|
192
|
+
<a className="link-item" href="https://storybook.js.org/docs/react/configure/styling-and-css" target="_blank">
|
|
193
|
+
<img src={Colors} alt="colors" />
|
|
194
|
+
<span>
|
|
195
|
+
<strong>Styling</strong>
|
|
196
|
+
How to load and configure CSS libraries
|
|
197
|
+
</span>
|
|
198
|
+
</a>
|
|
199
|
+
<a
|
|
200
|
+
className="link-item"
|
|
201
|
+
href="https://storybook.js.org/docs/react/get-started/setup#configure-storybook-for-your-stack"
|
|
202
|
+
target="_blank"
|
|
203
|
+
>
|
|
204
|
+
<img src={Flow} alt="flow" />
|
|
205
|
+
<span>
|
|
206
|
+
<strong>Data</strong>
|
|
207
|
+
Providers and mocking for data libraries
|
|
208
|
+
</span>
|
|
209
|
+
</a>
|
|
210
|
+
-->
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
|
2
|
+
import Code from './assets/code-brackets.svg';
|
|
3
|
+
import Colors from './assets/colors.svg';
|
|
4
|
+
import Comments from './assets/comments.svg';
|
|
5
|
+
import Direction from './assets/direction.svg';
|
|
6
|
+
import Flow from './assets/flow.svg';
|
|
7
|
+
import Plugin from './assets/plugin.svg';
|
|
8
|
+
import Repo from './assets/repo.svg';
|
|
9
|
+
import StackAlt from './assets/stackalt.svg';
|
|
10
|
+
|
|
11
|
+
<Meta title="Intro/Changelog" />
|
|
12
|
+
|
|
13
|
+
<style>
|
|
14
|
+
{`
|
|
15
|
+
.subheading {
|
|
16
|
+
--mediumdark: '#999999';
|
|
17
|
+
font-weight: 900;
|
|
18
|
+
font-size: 13px;
|
|
19
|
+
color: #999;
|
|
20
|
+
letter-spacing: 6px;
|
|
21
|
+
line-height: 24px;
|
|
22
|
+
text-transform: uppercase;
|
|
23
|
+
margin-bottom: 12px;
|
|
24
|
+
margin-top: 40px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.link-list {
|
|
28
|
+
display: grid;
|
|
29
|
+
grid-template-columns: 1fr;
|
|
30
|
+
grid-template-rows: 1fr 1fr;
|
|
31
|
+
row-gap: 10px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@media (min-width: 620px) {
|
|
35
|
+
.link-list {
|
|
36
|
+
row-gap: 20px;
|
|
37
|
+
column-gap: 20px;
|
|
38
|
+
grid-template-columns: 1fr 1fr;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@media all and (-ms-high-contrast:none) {
|
|
43
|
+
.link-list {
|
|
44
|
+
display: -ms-grid;
|
|
45
|
+
-ms-grid-columns: 1fr 1fr;
|
|
46
|
+
-ms-grid-rows: 1fr 1fr;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.link-item {
|
|
51
|
+
display: block;
|
|
52
|
+
padding: 20px 30px 20px 15px;
|
|
53
|
+
border: 1px solid #00000010;
|
|
54
|
+
border-radius: 5px;
|
|
55
|
+
transition: background 150ms ease-out, border 150ms ease-out, transform 150ms ease-out;
|
|
56
|
+
color: #333333;
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: flex-start;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.link-item:hover {
|
|
62
|
+
border-color: #1EA7FD50;
|
|
63
|
+
transform: translate3d(0, -3px, 0);
|
|
64
|
+
box-shadow: rgba(0, 0, 0, 0.08) 0 3px 10px 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.link-item:active {
|
|
68
|
+
border-color: #1EA7FD;
|
|
69
|
+
transform: translate3d(0, 0, 0);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.link-item strong {
|
|
73
|
+
font-weight: 700;
|
|
74
|
+
display: block;
|
|
75
|
+
margin-bottom: 2px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.link-item img {
|
|
79
|
+
height: 40px;
|
|
80
|
+
width: 40px;
|
|
81
|
+
margin-right: 15px;
|
|
82
|
+
flex: none;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.link-item span {
|
|
86
|
+
font-size: 14px;
|
|
87
|
+
line-height: 20px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.tip {
|
|
91
|
+
display: inline-block;
|
|
92
|
+
border-radius: 1em;
|
|
93
|
+
font-size: 11px;
|
|
94
|
+
line-height: 12px;
|
|
95
|
+
font-weight: 700;
|
|
96
|
+
background: #E7FDD8;
|
|
97
|
+
color: #66BF3C;
|
|
98
|
+
padding: 4px 12px;
|
|
99
|
+
margin-right: 10px;
|
|
100
|
+
vertical-align: top;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.tip-wrapper {
|
|
104
|
+
font-size: 13px;
|
|
105
|
+
line-height: 20px;
|
|
106
|
+
margin-top: 40px;
|
|
107
|
+
margin-bottom: 40px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.tip-wrapper code {
|
|
111
|
+
font-size: 12px;
|
|
112
|
+
display: inline-block;
|
|
113
|
+
}
|
|
114
|
+
`}
|
|
115
|
+
</style>
|
|
116
|
+
|
|
117
|
+
# Documentation
|
|
118
|
+
|