@telus-uds/components-base 1.78.1 → 1.79.0
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 +16 -2
- package/lib/Select/Select.js +1 -1
- package/lib/StepTracker/Step.js +3 -3
- package/lib/Typography/Typography.js +36 -4
- package/lib-module/Select/Select.js +1 -1
- package/lib-module/StepTracker/Step.js +3 -3
- package/lib-module/Typography/Typography.js +36 -4
- package/package.json +2 -2
- package/src/Select/Select.jsx +1 -1
- package/src/StepTracker/Step.jsx +4 -4
- package/src/Typography/Typography.jsx +49 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
# Change Log - @telus-uds/components-base
|
|
2
2
|
|
|
3
|
-
This log was last generated on Wed,
|
|
3
|
+
This log was last generated on Wed, 06 Mar 2024 00:02:37 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.79.0
|
|
8
|
+
|
|
9
|
+
Wed, 06 Mar 2024 00:02:37 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- adjusting Typography to use the new token gradient (hoss.agina@telus.com)
|
|
14
|
+
- Bump @telus-uds/system-theme-tokens to v2.53.0
|
|
15
|
+
|
|
16
|
+
### Patches
|
|
17
|
+
|
|
18
|
+
- prevent onchange event from being fired twice on select component (guillermo.peitzner@telus.com)
|
|
19
|
+
- fix step-tracker component visual states (guillermo.peitzner@telus.com)
|
|
20
|
+
|
|
7
21
|
## 1.78.1
|
|
8
22
|
|
|
9
|
-
|
|
23
|
+
Thu, 29 Feb 2024 00:05:08 GMT
|
|
10
24
|
|
|
11
25
|
### Patches
|
|
12
26
|
|
package/lib/Select/Select.js
CHANGED
|
@@ -255,7 +255,7 @@ const Select = /*#__PURE__*/(0, _react.forwardRef)((_ref8, ref) => {
|
|
|
255
255
|
onBlur: handleBlur,
|
|
256
256
|
onMouseOver: handleMouseOver,
|
|
257
257
|
onMouseOut: handleMouseOut,
|
|
258
|
-
onChange: setValue,
|
|
258
|
+
onChange: e => setValue(e, null),
|
|
259
259
|
value: currentValue,
|
|
260
260
|
inactive: inactive,
|
|
261
261
|
placeholder: placeholder !== undefined ? {
|
package/lib/StepTracker/Step.js
CHANGED
|
@@ -209,11 +209,11 @@ const Step = _ref8 => {
|
|
|
209
209
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
|
|
210
210
|
style: [staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)],
|
|
211
211
|
testID: getStepTestID(isCompleted, isCurrent),
|
|
212
|
-
children: [
|
|
213
|
-
style: selectCurrentInnerStyles(themeTokens)
|
|
214
|
-
}), isCurrent && completedIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
212
|
+
children: [isCompleted && completedIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
215
213
|
icon: completedIcon,
|
|
216
214
|
tokens: selectCompletedIconTokens(themeTokens)
|
|
215
|
+
}), (isCurrent && completedIcon || isCurrent && !completedIcon) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
216
|
+
style: selectCurrentInnerStyles(themeTokens)
|
|
217
217
|
})]
|
|
218
218
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
219
219
|
style: [staticStyles.connector, !isLast && selectConnectorStyles(themeTokens, isCompleted)]
|
|
@@ -30,7 +30,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
30
30
|
textAlign,
|
|
31
31
|
textTransform,
|
|
32
32
|
letterSpacing,
|
|
33
|
-
textDecorationLine
|
|
33
|
+
textDecorationLine,
|
|
34
|
+
gradient
|
|
34
35
|
} = _ref;
|
|
35
36
|
return (0, _utils.applyTextStyles)({
|
|
36
37
|
fontWeight,
|
|
@@ -42,7 +43,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
42
43
|
textAlign,
|
|
43
44
|
textTransform,
|
|
44
45
|
letterSpacing,
|
|
45
|
-
textDecorationLine
|
|
46
|
+
textDecorationLine,
|
|
47
|
+
gradient
|
|
46
48
|
});
|
|
47
49
|
};
|
|
48
50
|
|
|
@@ -74,6 +76,36 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
74
76
|
});
|
|
75
77
|
const maxFontSizeMultiplier = enableMediaQueryStyleSheet ? (0, _utils2.getMaxFontMultiplier)(themeTokens[viewport]) : (0, _utils2.getMaxFontMultiplier)(themeTokens);
|
|
76
78
|
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
79
|
+
const generateGradientString = gradientObj => {
|
|
80
|
+
let gradientStr = '';
|
|
81
|
+
const {
|
|
82
|
+
type,
|
|
83
|
+
angle,
|
|
84
|
+
stops: [stopOne, stopTwo],
|
|
85
|
+
specification
|
|
86
|
+
} = gradientObj;
|
|
87
|
+
if (type === 'radial') {
|
|
88
|
+
gradientStr = `radial-gradient(${specification}`;
|
|
89
|
+
gradientStr += `, ${stopOne.color} ${stopOne.stop * 100}%, ${stopTwo.color} ${stopTwo.stop * 100}%`;
|
|
90
|
+
} else if (type === 'linear') {
|
|
91
|
+
gradientStr = `linear-gradient(${angle}deg`;
|
|
92
|
+
if (angle === 135) {
|
|
93
|
+
gradientStr += `, ${stopOne.color}, 75%, ${stopTwo.color}`;
|
|
94
|
+
} else {
|
|
95
|
+
gradientStr += `, ${stopOne.color}, ${stopTwo.color}`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
gradientStr += ')';
|
|
99
|
+
return gradientStr;
|
|
100
|
+
};
|
|
101
|
+
const getStyleWithGradient = styles => {
|
|
102
|
+
return styles.gradient ? {
|
|
103
|
+
...styles,
|
|
104
|
+
color: 'transparent',
|
|
105
|
+
backgroundImage: generateGradientString(styles.gradient),
|
|
106
|
+
backgroundClip: 'text'
|
|
107
|
+
} : styles;
|
|
108
|
+
};
|
|
77
109
|
let textStyles;
|
|
78
110
|
let mediaIds;
|
|
79
111
|
if (enableMediaQueryStyleSheet) {
|
|
@@ -144,7 +176,7 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
144
176
|
...containerProps,
|
|
145
177
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
146
178
|
...resolvedTextProps,
|
|
147
|
-
style: textStyles,
|
|
179
|
+
style: getStyleWithGradient(textStyles),
|
|
148
180
|
dataSet: dataSetValue,
|
|
149
181
|
children: sanitizeChildren(children)
|
|
150
182
|
})
|
|
@@ -152,7 +184,7 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
152
184
|
ref: ref,
|
|
153
185
|
...containerProps,
|
|
154
186
|
...resolvedTextProps,
|
|
155
|
-
style: textStyles,
|
|
187
|
+
style: getStyleWithGradient(textStyles),
|
|
156
188
|
dataSet: dataSetValue,
|
|
157
189
|
children: sanitizeChildren(children)
|
|
158
190
|
});
|
|
@@ -247,7 +247,7 @@ const Select = /*#__PURE__*/forwardRef((_ref8, ref) => {
|
|
|
247
247
|
onBlur: handleBlur,
|
|
248
248
|
onMouseOver: handleMouseOver,
|
|
249
249
|
onMouseOut: handleMouseOut,
|
|
250
|
-
onChange: setValue,
|
|
250
|
+
onChange: e => setValue(e, null),
|
|
251
251
|
value: currentValue,
|
|
252
252
|
inactive: inactive,
|
|
253
253
|
placeholder: placeholder !== undefined ? {
|
|
@@ -203,11 +203,11 @@ const Step = _ref8 => {
|
|
|
203
203
|
}), /*#__PURE__*/_jsxs(View, {
|
|
204
204
|
style: [staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)],
|
|
205
205
|
testID: getStepTestID(isCompleted, isCurrent),
|
|
206
|
-
children: [
|
|
207
|
-
style: selectCurrentInnerStyles(themeTokens)
|
|
208
|
-
}), isCurrent && completedIcon && /*#__PURE__*/_jsx(Icon, {
|
|
206
|
+
children: [isCompleted && completedIcon && /*#__PURE__*/_jsx(Icon, {
|
|
209
207
|
icon: completedIcon,
|
|
210
208
|
tokens: selectCompletedIconTokens(themeTokens)
|
|
209
|
+
}), (isCurrent && completedIcon || isCurrent && !completedIcon) && /*#__PURE__*/_jsx(View, {
|
|
210
|
+
style: selectCurrentInnerStyles(themeTokens)
|
|
211
211
|
})]
|
|
212
212
|
}), /*#__PURE__*/_jsx(View, {
|
|
213
213
|
style: [staticStyles.connector, !isLast && selectConnectorStyles(themeTokens, isCompleted)]
|
|
@@ -22,7 +22,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
22
22
|
textAlign,
|
|
23
23
|
textTransform,
|
|
24
24
|
letterSpacing,
|
|
25
|
-
textDecorationLine
|
|
25
|
+
textDecorationLine,
|
|
26
|
+
gradient
|
|
26
27
|
} = _ref;
|
|
27
28
|
return applyTextStyles({
|
|
28
29
|
fontWeight,
|
|
@@ -34,7 +35,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
34
35
|
textAlign,
|
|
35
36
|
textTransform,
|
|
36
37
|
letterSpacing,
|
|
37
|
-
textDecorationLine
|
|
38
|
+
textDecorationLine,
|
|
39
|
+
gradient
|
|
38
40
|
});
|
|
39
41
|
};
|
|
40
42
|
|
|
@@ -66,6 +68,36 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
66
68
|
});
|
|
67
69
|
const maxFontSizeMultiplier = enableMediaQueryStyleSheet ? getMaxFontMultiplier(themeTokens[viewport]) : getMaxFontMultiplier(themeTokens);
|
|
68
70
|
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
71
|
+
const generateGradientString = gradientObj => {
|
|
72
|
+
let gradientStr = '';
|
|
73
|
+
const {
|
|
74
|
+
type,
|
|
75
|
+
angle,
|
|
76
|
+
stops: [stopOne, stopTwo],
|
|
77
|
+
specification
|
|
78
|
+
} = gradientObj;
|
|
79
|
+
if (type === 'radial') {
|
|
80
|
+
gradientStr = `radial-gradient(${specification}`;
|
|
81
|
+
gradientStr += `, ${stopOne.color} ${stopOne.stop * 100}%, ${stopTwo.color} ${stopTwo.stop * 100}%`;
|
|
82
|
+
} else if (type === 'linear') {
|
|
83
|
+
gradientStr = `linear-gradient(${angle}deg`;
|
|
84
|
+
if (angle === 135) {
|
|
85
|
+
gradientStr += `, ${stopOne.color}, 75%, ${stopTwo.color}`;
|
|
86
|
+
} else {
|
|
87
|
+
gradientStr += `, ${stopOne.color}, ${stopTwo.color}`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
gradientStr += ')';
|
|
91
|
+
return gradientStr;
|
|
92
|
+
};
|
|
93
|
+
const getStyleWithGradient = styles => {
|
|
94
|
+
return styles.gradient ? {
|
|
95
|
+
...styles,
|
|
96
|
+
color: 'transparent',
|
|
97
|
+
backgroundImage: generateGradientString(styles.gradient),
|
|
98
|
+
backgroundClip: 'text'
|
|
99
|
+
} : styles;
|
|
100
|
+
};
|
|
69
101
|
let textStyles;
|
|
70
102
|
let mediaIds;
|
|
71
103
|
if (enableMediaQueryStyleSheet) {
|
|
@@ -136,7 +168,7 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
136
168
|
...containerProps,
|
|
137
169
|
children: /*#__PURE__*/_jsx(Text, {
|
|
138
170
|
...resolvedTextProps,
|
|
139
|
-
style: textStyles,
|
|
171
|
+
style: getStyleWithGradient(textStyles),
|
|
140
172
|
dataSet: dataSetValue,
|
|
141
173
|
children: sanitizeChildren(children)
|
|
142
174
|
})
|
|
@@ -144,7 +176,7 @@ const Typography = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
144
176
|
ref: ref,
|
|
145
177
|
...containerProps,
|
|
146
178
|
...resolvedTextProps,
|
|
147
|
-
style: textStyles,
|
|
179
|
+
style: getStyleWithGradient(textStyles),
|
|
148
180
|
dataSet: dataSetValue,
|
|
149
181
|
children: sanitizeChildren(children)
|
|
150
182
|
});
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@floating-ui/react-native": "^0.8.1",
|
|
12
12
|
"@gorhom/portal": "^1.0.14",
|
|
13
13
|
"@telus-uds/system-constants": "^1.3.0",
|
|
14
|
-
"@telus-uds/system-theme-tokens": "^2.
|
|
14
|
+
"@telus-uds/system-theme-tokens": "^2.53.0",
|
|
15
15
|
"airbnb-prop-types": "^2.16.0",
|
|
16
16
|
"css-mediaquery": "^0.1.2",
|
|
17
17
|
"expo-linear-gradient": "^12.5.0",
|
|
@@ -85,6 +85,6 @@
|
|
|
85
85
|
"standard-engine": {
|
|
86
86
|
"skip": true
|
|
87
87
|
},
|
|
88
|
-
"version": "1.
|
|
88
|
+
"version": "1.79.0",
|
|
89
89
|
"types": "types/index.d.ts"
|
|
90
90
|
}
|
package/src/Select/Select.jsx
CHANGED
package/src/StepTracker/Step.jsx
CHANGED
|
@@ -172,12 +172,12 @@ const Step = ({ label, name, status = 0, stepCount = 0, stepIndex = 0, tokens, .
|
|
|
172
172
|
style={[staticStyles.knob, selectKnobStyles(themeTokens, isCompleted, isCurrent)]}
|
|
173
173
|
testID={getStepTestID(isCompleted, isCurrent)}
|
|
174
174
|
>
|
|
175
|
-
{
|
|
176
|
-
<View style={selectCurrentInnerStyles(themeTokens)} />
|
|
177
|
-
)}
|
|
178
|
-
{isCurrent && completedIcon && (
|
|
175
|
+
{isCompleted && completedIcon && (
|
|
179
176
|
<Icon icon={completedIcon} tokens={selectCompletedIconTokens(themeTokens)} />
|
|
180
177
|
)}
|
|
178
|
+
{((isCurrent && completedIcon) || (isCurrent && !completedIcon)) && (
|
|
179
|
+
<View style={selectCurrentInnerStyles(themeTokens)} />
|
|
180
|
+
)}
|
|
181
181
|
</View>
|
|
182
182
|
<View
|
|
183
183
|
style={[
|
|
@@ -35,7 +35,8 @@ const selectTextStyles = (
|
|
|
35
35
|
textAlign,
|
|
36
36
|
textTransform,
|
|
37
37
|
letterSpacing,
|
|
38
|
-
textDecorationLine
|
|
38
|
+
textDecorationLine,
|
|
39
|
+
gradient
|
|
39
40
|
},
|
|
40
41
|
themeOptions
|
|
41
42
|
) =>
|
|
@@ -49,7 +50,8 @@ const selectTextStyles = (
|
|
|
49
50
|
textAlign,
|
|
50
51
|
textTransform,
|
|
51
52
|
letterSpacing,
|
|
52
|
-
textDecorationLine
|
|
53
|
+
textDecorationLine,
|
|
54
|
+
gradient
|
|
53
55
|
})
|
|
54
56
|
|
|
55
57
|
// General-purpose flexible theme-neutral base component for text
|
|
@@ -87,6 +89,45 @@ const Typography = forwardRef(
|
|
|
87
89
|
: getMaxFontMultiplier(themeTokens)
|
|
88
90
|
const textDecorationLine = strikeThrough ? 'line-through' : 'none'
|
|
89
91
|
|
|
92
|
+
const generateGradientString = (gradientObj) => {
|
|
93
|
+
let gradientStr = ''
|
|
94
|
+
|
|
95
|
+
const {
|
|
96
|
+
type,
|
|
97
|
+
angle,
|
|
98
|
+
stops: [stopOne, stopTwo],
|
|
99
|
+
specification
|
|
100
|
+
} = gradientObj
|
|
101
|
+
|
|
102
|
+
if (type === 'radial') {
|
|
103
|
+
gradientStr = `radial-gradient(${specification}`
|
|
104
|
+
gradientStr += `, ${stopOne.color} ${stopOne.stop * 100}%, ${stopTwo.color} ${
|
|
105
|
+
stopTwo.stop * 100
|
|
106
|
+
}%`
|
|
107
|
+
} else if (type === 'linear') {
|
|
108
|
+
gradientStr = `linear-gradient(${angle}deg`
|
|
109
|
+
if (angle === 135) {
|
|
110
|
+
gradientStr += `, ${stopOne.color}, 75%, ${stopTwo.color}`
|
|
111
|
+
} else {
|
|
112
|
+
gradientStr += `, ${stopOne.color}, ${stopTwo.color}`
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
gradientStr += ')'
|
|
117
|
+
return gradientStr
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const getStyleWithGradient = (styles) => {
|
|
121
|
+
return styles.gradient
|
|
122
|
+
? {
|
|
123
|
+
...styles,
|
|
124
|
+
color: 'transparent',
|
|
125
|
+
backgroundImage: generateGradientString(styles.gradient),
|
|
126
|
+
backgroundClip: 'text'
|
|
127
|
+
}
|
|
128
|
+
: styles
|
|
129
|
+
}
|
|
130
|
+
|
|
90
131
|
let textStyles
|
|
91
132
|
let mediaIds
|
|
92
133
|
|
|
@@ -161,7 +202,11 @@ const Typography = forwardRef(
|
|
|
161
202
|
|
|
162
203
|
return block ? (
|
|
163
204
|
<View ref={ref} {...containerProps}>
|
|
164
|
-
<Text
|
|
205
|
+
<Text
|
|
206
|
+
{...resolvedTextProps}
|
|
207
|
+
style={getStyleWithGradient(textStyles)}
|
|
208
|
+
dataSet={dataSetValue}
|
|
209
|
+
>
|
|
165
210
|
{sanitizeChildren(children)}
|
|
166
211
|
</Text>
|
|
167
212
|
</View>
|
|
@@ -170,7 +215,7 @@ const Typography = forwardRef(
|
|
|
170
215
|
ref={ref}
|
|
171
216
|
{...containerProps}
|
|
172
217
|
{...resolvedTextProps}
|
|
173
|
-
style={textStyles}
|
|
218
|
+
style={getStyleWithGradient(textStyles)}
|
|
174
219
|
dataSet={dataSetValue}
|
|
175
220
|
>
|
|
176
221
|
{sanitizeChildren(children)}
|