@xaypay/tui 0.0.54 → 0.0.55
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 +185 -45
- package/dist/index.js +186 -45
- package/package.json +7 -5
- package/src/components/button/index.js +29 -20
- package/src/components/input/index.js +134 -34
- package/src/components/input/input.module.css +17 -15
- package/src/components/typography/index.js +59 -4
- package/src/components/typography/typography.stories.js +8 -2
- package/src/stories/Introduction.stories.mdx +82 -93
- package/src/stories/changelog.stories.mdx +118 -0
- package/src/stories/configuration.stories.mdx +317 -0
- package/src/stories/documentation.stories.mdx +118 -0
- package/tui.config.js +178 -50
- package/storybook-static/favicon.ico +0 -0
|
@@ -3,16 +3,19 @@ import PropTypes from "prop-types";
|
|
|
3
3
|
import classnames from "classnames";
|
|
4
4
|
import { Typography } from "../typography";
|
|
5
5
|
import { compereConfigs } from "./../../utils";
|
|
6
|
+
import styled, { keyframes, css } from 'styled-components';
|
|
6
7
|
|
|
7
8
|
import styles from "./input.module.css";
|
|
8
9
|
|
|
9
10
|
export const InputTypes = {
|
|
11
|
+
TEL: 'tel',
|
|
10
12
|
TEXT: "text",
|
|
11
13
|
PASSWORD: "password",
|
|
12
14
|
};
|
|
13
15
|
|
|
14
16
|
export const Input = ({
|
|
15
17
|
type,
|
|
18
|
+
size,
|
|
16
19
|
name,
|
|
17
20
|
color,
|
|
18
21
|
label,
|
|
@@ -20,25 +23,39 @@ export const Input = ({
|
|
|
20
23
|
width,
|
|
21
24
|
height,
|
|
22
25
|
radius,
|
|
23
|
-
border,
|
|
24
26
|
padding,
|
|
25
27
|
tooltip,
|
|
26
|
-
bgColor,
|
|
27
28
|
leftIcon,
|
|
28
|
-
fontSize,
|
|
29
29
|
required,
|
|
30
30
|
disabled,
|
|
31
31
|
onChange,
|
|
32
|
+
transform,
|
|
32
33
|
iconWidth,
|
|
33
34
|
rightIcon,
|
|
34
35
|
className,
|
|
35
36
|
boxSizing,
|
|
36
37
|
boxShadow,
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
errorLeft,
|
|
39
|
+
errorSize,
|
|
40
|
+
labelSize,
|
|
41
|
+
labelColor,
|
|
42
|
+
errorColor,
|
|
39
43
|
placeholder,
|
|
44
|
+
errorZindex,
|
|
45
|
+
errorBottom,
|
|
46
|
+
labelWeight,
|
|
47
|
+
errorMessage,
|
|
40
48
|
autoComplete,
|
|
49
|
+
labelDisplay,
|
|
50
|
+
errorPosition,
|
|
41
51
|
boxShadowHover,
|
|
52
|
+
errorClassName,
|
|
53
|
+
errorAnimation,
|
|
54
|
+
errorLineHeight,
|
|
55
|
+
labelLineHeight,
|
|
56
|
+
backgroundColor,
|
|
57
|
+
labelMarginBottom,
|
|
58
|
+
errorAnimationDuration,
|
|
42
59
|
...props
|
|
43
60
|
}) => {
|
|
44
61
|
const [show, setShow] = useState(false);
|
|
@@ -48,7 +65,7 @@ export const Input = ({
|
|
|
48
65
|
const random = Math.floor((Math.random() * 1000) + 1);
|
|
49
66
|
const configStyles = compereConfigs();
|
|
50
67
|
const classProps = classnames(
|
|
51
|
-
className
|
|
68
|
+
className ? className : configStyles.INPUT.className
|
|
52
69
|
);
|
|
53
70
|
|
|
54
71
|
const handleChange = (event) => {
|
|
@@ -63,10 +80,39 @@ export const Input = ({
|
|
|
63
80
|
setIsHover(false);
|
|
64
81
|
};
|
|
65
82
|
|
|
83
|
+
const errorShow = keyframes`
|
|
84
|
+
100% {
|
|
85
|
+
bottom: '-20px';
|
|
86
|
+
transform: scale3d(1,1,1);
|
|
87
|
+
-webkit-transform: scale3d(1,1,1);
|
|
88
|
+
-moz-transform: scale3d(1,1,1);
|
|
89
|
+
-ms-transform: scale3d(1,1,1);
|
|
90
|
+
-o-transform: scale3d(1,1,1);
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
|
|
94
|
+
const animation = _ => css`
|
|
95
|
+
${errorShow} ${errorAnimationDuration ? errorAnimationDuration : configStyles.INPUT.errorAnimationDuration} forwards
|
|
96
|
+
`;
|
|
97
|
+
|
|
98
|
+
const P = styled.p`
|
|
99
|
+
animation: ${errorAnimation ? animation : 'none'};
|
|
100
|
+
`;
|
|
101
|
+
|
|
66
102
|
return (
|
|
67
103
|
<div className={`${styles["input-wrap"]}`}>
|
|
68
104
|
{
|
|
69
|
-
label ? <label
|
|
105
|
+
label ? <label
|
|
106
|
+
className={`${styles["input-title"]}`}
|
|
107
|
+
style={{
|
|
108
|
+
color: labelColor ? labelColor : configStyles.INPUT.labelColor,
|
|
109
|
+
fontSize: labelSize ? labelSize : configStyles.INPUT.labelSize,
|
|
110
|
+
display: labelDisplay ? labelDisplay : configStyles.INPUT.labelDisplay,
|
|
111
|
+
fontWeight: labelWeight ? labelWeight : configStyles.INPUT.labelWeight,
|
|
112
|
+
lineHeight: labelLineHeight ? labelLineHeight : configStyles.INPUT.labelLineHeight,
|
|
113
|
+
marginBottom: labelMarginBottom ? labelMarginBottom : configStyles.INPUT.labelMarginBottom
|
|
114
|
+
}}
|
|
115
|
+
>
|
|
70
116
|
{label} {required && <sup style={{ color: "#ee0000" }}>*</sup>}
|
|
71
117
|
</label>
|
|
72
118
|
: ''
|
|
@@ -75,30 +121,49 @@ export const Input = ({
|
|
|
75
121
|
className={`${styles["input-content"]}`}
|
|
76
122
|
style={{
|
|
77
123
|
borderRadius: radius ? radius : configStyles.INPUT.radius,
|
|
78
|
-
boxShadow: isHover ? boxShadowHover ? boxShadowHover : configStyles.INPUT.boxShadowHover : boxShadow ? boxShadow : configStyles.INPUT.boxShadow
|
|
124
|
+
boxShadow: errorMessage ? errorColor ? `0 0 0 2px ${errorColor}` : `0 0 0 2px ${configStyles.INPUT.errorColor}` : isHover ? boxShadowHover ? boxShadowHover : configStyles.INPUT.boxShadowHover : boxShadow ? boxShadow : configStyles.INPUT.boxShadow
|
|
79
125
|
}}
|
|
80
126
|
onMouseEnter={handleMouseEnter}
|
|
81
127
|
onMouseLeave={handleMouseLeave}
|
|
82
128
|
>
|
|
83
129
|
{
|
|
84
|
-
leftIcon && leftIcon.length > 0 ?
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
130
|
+
leftIcon && leftIcon.length > 0 && type != 'tel' ?
|
|
131
|
+
<div
|
|
132
|
+
onMouseUp={type === 'password' ? _ => setShow(false) : _ => _}
|
|
133
|
+
onMouseDown={type === 'password' ? _ => setShow(true) : _ => _}
|
|
134
|
+
onMouseOut={type === 'password' ? _ => setShow(false) : _ => _}
|
|
135
|
+
style={{
|
|
136
|
+
cursor: type === 'password' ? 'pointer' : 'default',
|
|
137
|
+
height: height ? height : configStyles.INPUT.height,
|
|
138
|
+
padding: padding ? padding : configStyles.INPUT.padding,
|
|
139
|
+
width: iconWidth ? iconWidth : configStyles.INPUT.iconWidth,
|
|
140
|
+
boxSizing: boxSizing ? boxSizing : configStyles.INPUT.boxSizing,
|
|
141
|
+
borderTopLeftRadius: radius ? radius : configStyles.INPUT.radius,
|
|
142
|
+
borderBottomLeftRadius: radius ? radius : configStyles.INPUT.radius,
|
|
143
|
+
backgroundColor: disabled ? '#FBFBFB' : backgroundColor ? backgroundColor : configStyles.INPUT.backgroundColor,
|
|
144
|
+
}}
|
|
145
|
+
>
|
|
146
|
+
{type === 'password' ? show ? leftIcon[1] : leftIcon[0] : leftIcon[0]}
|
|
147
|
+
</div> : ''
|
|
148
|
+
}
|
|
149
|
+
{
|
|
150
|
+
type === 'tel' ?
|
|
151
|
+
<div
|
|
152
|
+
style={{
|
|
153
|
+
pointerEvents: disabled ? 'none' : 'auto',
|
|
154
|
+
fontSize: size ? size : configStyles.INPUT.size,
|
|
155
|
+
height: height ? height : configStyles.INPUT.height,
|
|
156
|
+
padding: padding ? padding : configStyles.INPUT.padding,
|
|
157
|
+
boxSizing: boxSizing ? boxSizing : configStyles.INPUT.boxSizing,
|
|
158
|
+
borderTopLeftRadius: radius ? radius : configStyles.INPUT.radius,
|
|
159
|
+
borderBottomLeftRadius: radius ? radius : configStyles.INPUT.radius,
|
|
160
|
+
backgroundColor: disabled ? '#FBFBFB' : backgroundColor ? backgroundColor : configStyles.INPUT.backgroundColor,
|
|
161
|
+
color: errorMessage && errorColor ? errorColor : color ? color : configStyles.INPUT.color,
|
|
162
|
+
}}
|
|
163
|
+
>
|
|
164
|
+
+374
|
|
165
|
+
</div>
|
|
166
|
+
: ''
|
|
102
167
|
}
|
|
103
168
|
<input
|
|
104
169
|
{...props}
|
|
@@ -115,13 +180,13 @@ export const Input = ({
|
|
|
115
180
|
outline: 'none',
|
|
116
181
|
pointerEvents: disabled ? 'none' : 'auto',
|
|
117
182
|
width: width ? width : configStyles.INPUT.width,
|
|
183
|
+
fontSize: size ? size : configStyles.INPUT.size,
|
|
118
184
|
height: height ? height : configStyles.INPUT.height,
|
|
119
185
|
padding: padding ? padding : configStyles.INPUT.padding,
|
|
120
186
|
borderRadius: radius ? radius : configStyles.INPUT.radius,
|
|
121
|
-
fontSize: fontSize ? fontSize : configStyles.INPUT.fontSize,
|
|
122
187
|
boxSizing: boxSizing ? boxSizing : configStyles.INPUT.boxSizing,
|
|
123
|
-
|
|
124
|
-
|
|
188
|
+
backgroundColor: disabled ? '#FBFBFB' : backgroundColor ? backgroundColor : configStyles.INPUT.backgroundColor,
|
|
189
|
+
color: errorMessage && errorColor ? errorColor : color ? color : configStyles.INPUT.color,
|
|
125
190
|
}}
|
|
126
191
|
/>
|
|
127
192
|
{
|
|
@@ -132,14 +197,13 @@ export const Input = ({
|
|
|
132
197
|
onMouseOut={type === 'password' ? _ => setShow(false) : _ => _}
|
|
133
198
|
style={{
|
|
134
199
|
cursor: type === 'password' ? 'pointer' : 'default',
|
|
135
|
-
border: border ? border : configStyles.INPUT.border,
|
|
136
200
|
height: height ? height : configStyles.INPUT.height,
|
|
137
201
|
padding: padding ? padding : configStyles.INPUT.padding,
|
|
138
202
|
width: iconWidth ? iconWidth : configStyles.INPUT.iconWidth,
|
|
139
203
|
boxSizing: boxSizing ? boxSizing : configStyles.INPUT.boxSizing,
|
|
140
204
|
borderTopRightRadius: radius ? radius : configStyles.INPUT.radius,
|
|
141
205
|
borderBottomRightRadius: radius ? radius : configStyles.INPUT.radius,
|
|
142
|
-
backgroundColor: disabled ? '#FBFBFB' :
|
|
206
|
+
backgroundColor: disabled ? '#FBFBFB' : backgroundColor ? backgroundColor : configStyles.INPUT.backgroundColor,
|
|
143
207
|
}}
|
|
144
208
|
>
|
|
145
209
|
{type === 'password' ? show ? rightIcon[1] : rightIcon[0] : rightIcon[0]}
|
|
@@ -152,7 +216,25 @@ export const Input = ({
|
|
|
152
216
|
</Typography> : null
|
|
153
217
|
}
|
|
154
218
|
{tooltipStatus ? <p>{tooltip}</p> : null}
|
|
155
|
-
{
|
|
219
|
+
{
|
|
220
|
+
errorMessage ?
|
|
221
|
+
<P
|
|
222
|
+
style={{
|
|
223
|
+
left: errorLeft ? errorLeft : configStyles.INPUT.errorLeft,
|
|
224
|
+
color: errorColor ? errorColor : configStyles.INPUT.errorColor,
|
|
225
|
+
fontSize: errorSize ? errorSize : configStyles.INPUT.errorSize,
|
|
226
|
+
bottom: errorBottom ? errorBottom : configStyles.INPUT.errorBottom,
|
|
227
|
+
zIndex: errorZindex ? errorZindex : configStyles.INPUT.errorZindex,
|
|
228
|
+
position: errorPosition ? errorPosition : configStyles.INPUT.errorPosition,
|
|
229
|
+
lineHeight: errorLineHeight ? errorLineHeight : configStyles.INPUT.errorLineHeight,
|
|
230
|
+
transform: !errorAnimation ? 'scale3d(1,1,1)' : transform ? transform : configStyles.INPUT.transform,
|
|
231
|
+
}}
|
|
232
|
+
className={errorClassName ? errorClassName : configStyles.INPUT.errorClassName}
|
|
233
|
+
>
|
|
234
|
+
{errorMessage}
|
|
235
|
+
</P>
|
|
236
|
+
: ''
|
|
237
|
+
}
|
|
156
238
|
</div>
|
|
157
239
|
);
|
|
158
240
|
};
|
|
@@ -168,17 +250,35 @@ Input.propTypes = {
|
|
|
168
250
|
disabled: PropTypes.bool,
|
|
169
251
|
height: PropTypes.string,
|
|
170
252
|
radius: PropTypes.string,
|
|
171
|
-
|
|
253
|
+
padding: PropTypes.string,
|
|
172
254
|
fontSize: PropTypes.string,
|
|
173
255
|
tooltip: PropTypes.element,
|
|
256
|
+
transform: PropTypes.string,
|
|
174
257
|
className: PropTypes.string,
|
|
175
258
|
iconWidth: PropTypes.string,
|
|
176
259
|
boxSizing: PropTypes.string,
|
|
177
260
|
boxShadow: PropTypes.string,
|
|
261
|
+
errorSize: PropTypes.string,
|
|
262
|
+
errorLeft: PropTypes.string,
|
|
263
|
+
labelSize: PropTypes.string,
|
|
264
|
+
errorColor: PropTypes.string,
|
|
265
|
+
labelColor: PropTypes.string,
|
|
178
266
|
placeholder: PropTypes.string,
|
|
179
|
-
|
|
267
|
+
errorZindex: PropTypes.string,
|
|
268
|
+
errorBottom: PropTypes.string,
|
|
269
|
+
labelWeight: PropTypes.string,
|
|
270
|
+
errorMessage: PropTypes.string,
|
|
180
271
|
autoComplete: PropTypes.string,
|
|
272
|
+
errorAnimation: PropTypes.bool,
|
|
273
|
+
labelDisplay: PropTypes.string,
|
|
274
|
+
errorPosition: PropTypes.string,
|
|
181
275
|
boxShadowHover: PropTypes.string,
|
|
276
|
+
errorClassName: PropTypes.string,
|
|
277
|
+
backgroundColor: PropTypes.string,
|
|
278
|
+
errorLineHeight: PropTypes.string,
|
|
279
|
+
labelLineHeight: PropTypes.string,
|
|
280
|
+
labelMarginBottom: PropTypes.string,
|
|
281
|
+
errorAnimationDuration: PropTypes.string,
|
|
182
282
|
leftIcon: PropTypes.arrayOf(PropTypes.element),
|
|
183
283
|
rightIcon: PropTypes.arrayOf(PropTypes.element),
|
|
184
284
|
type: PropTypes.oneOf(Object.values(InputTypes)),
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.input-wrap {
|
|
2
2
|
width: 100%;
|
|
3
|
+
position: relative;
|
|
3
4
|
}
|
|
4
5
|
|
|
5
6
|
.input-content {
|
|
@@ -7,24 +8,25 @@
|
|
|
7
8
|
width: 100%;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
|
-
.input-title {
|
|
11
|
-
display: block;
|
|
12
|
-
font-size: 16px;
|
|
13
|
-
color: #3c393e;
|
|
14
|
-
font-weight: 500;
|
|
15
|
-
line-height: 22px;
|
|
16
|
-
margin-bottom: 6px;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.inputErrorMessages {
|
|
20
|
-
font-size: 14px;
|
|
21
|
-
line-height: 19px;
|
|
22
|
-
color: rgba(238, 0, 0, 1);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
11
|
input:-webkit-autofill,
|
|
26
12
|
input:-webkit-autofill:hover,
|
|
27
13
|
input:-webkit-autofill:focus,
|
|
28
14
|
input:-webkit-autofill:active {
|
|
29
15
|
background-color: inherit !important;
|
|
30
16
|
}
|
|
17
|
+
|
|
18
|
+
.error-message-show {
|
|
19
|
+
animation-name: error-show;
|
|
20
|
+
animation-fill-mode: forwards;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@keyframes error-show {
|
|
24
|
+
100% {
|
|
25
|
+
bottom: -20px;
|
|
26
|
+
transform: scale3d(1,1,1);
|
|
27
|
+
-webkit-transform: scale3d(1,1,1);
|
|
28
|
+
-moz-transform: scale3d(1,1,1);
|
|
29
|
+
-ms-transform: scale3d(1,1,1);
|
|
30
|
+
-o-transform: scale3d(1,1,1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -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,22 @@ 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,
|
|
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,
|
|
76
131
|
variant: PropTypes.oneOf(Object.values(TypographyType)).isRequired,
|
|
77
132
|
};
|
|
@@ -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,87 @@ 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
|
+
<!--
|
|
163
|
+
<a className="link-item" href="https://storybook.js.org/tutorials/" target="_blank">
|
|
164
|
+
<img src={Direction} alt="direction" />
|
|
165
|
+
<span>
|
|
166
|
+
<strong>In-depth guides</strong>
|
|
167
|
+
Best practices from leading teams
|
|
168
|
+
</span>
|
|
169
|
+
</a>
|
|
170
|
+
<a className="link-item" href="https://discord.gg/storybook" target="_blank">
|
|
171
|
+
<img src={Comments} alt="comments" />
|
|
172
|
+
<span>
|
|
173
|
+
<strong>Discord chat</strong>
|
|
174
|
+
Chat with maintainers and the community
|
|
175
|
+
</span>
|
|
176
|
+
</a>
|
|
208
177
|
<div className="tip-wrapper">
|
|
209
178
|
<span className="tip">Tip</span>Edit the Markdown in{' '}
|
|
210
179
|
<code>stories/Introduction.stories.mdx</code>
|
|
211
180
|
</div>
|
|
181
|
+
|
|
182
|
+
<a className="link-item" href="https://storybook.js.org/docs/react/configure/styling-and-css" target="_blank">
|
|
183
|
+
<img src={Colors} alt="colors" />
|
|
184
|
+
<span>
|
|
185
|
+
<strong>Styling</strong>
|
|
186
|
+
How to load and configure CSS libraries
|
|
187
|
+
</span>
|
|
188
|
+
</a>
|
|
189
|
+
<a
|
|
190
|
+
className="link-item"
|
|
191
|
+
href="https://storybook.js.org/docs/react/get-started/setup#configure-storybook-for-your-stack"
|
|
192
|
+
target="_blank"
|
|
193
|
+
>
|
|
194
|
+
<img src={Flow} alt="flow" />
|
|
195
|
+
<span>
|
|
196
|
+
<strong>Data</strong>
|
|
197
|
+
Providers and mocking for data libraries
|
|
198
|
+
</span>
|
|
199
|
+
</a>
|
|
200
|
+
-->
|