@telus-uds/components-base 3.1.0 → 3.3.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 +35 -2
- package/lib/cjs/Card/CardBase.js +2 -1
- package/lib/cjs/Carousel/Carousel.js +202 -51
- package/lib/cjs/Carousel/CarouselItem/CarouselItem.js +1 -15
- package/lib/cjs/Carousel/CarouselStepTracker/CarouselStepTracker.js +6 -6
- package/lib/cjs/ExpandCollapse/Control.js +3 -1
- package/lib/cjs/ExpandCollapseMini/ExpandCollapseMini.js +1 -1
- package/lib/cjs/List/ListItemBase.js +1 -2
- package/lib/cjs/List/ListItemMark.js +6 -2
- package/lib/cjs/Modal/ModalContent.js +1 -1
- package/lib/cjs/MultiSelectFilter/MultiSelectFilter.js +2 -2
- package/lib/cjs/Notification/Notification.js +15 -25
- package/lib/cjs/TextInput/TextArea.js +10 -1
- package/lib/cjs/Typography/Typography.js +9 -3
- package/lib/esm/Card/CardBase.js +2 -1
- package/lib/esm/Carousel/Carousel.js +203 -52
- package/lib/esm/Carousel/CarouselItem/CarouselItem.js +2 -16
- package/lib/esm/Carousel/CarouselStepTracker/CarouselStepTracker.js +6 -6
- package/lib/esm/ExpandCollapse/Control.js +3 -1
- package/lib/esm/ExpandCollapseMini/ExpandCollapseMini.js +1 -1
- package/lib/esm/List/ListItemBase.js +1 -2
- package/lib/esm/List/ListItemMark.js +6 -2
- package/lib/esm/Modal/ModalContent.js +1 -1
- package/lib/esm/MultiSelectFilter/MultiSelectFilter.js +2 -2
- package/lib/esm/Notification/Notification.js +16 -26
- package/lib/esm/TextInput/TextArea.js +10 -1
- package/lib/esm/Typography/Typography.js +9 -3
- package/lib/package.json +2 -2
- package/package.json +2 -2
- package/src/Card/CardBase.jsx +2 -1
- package/src/Carousel/Carousel.jsx +200 -55
- package/src/Carousel/CarouselItem/CarouselItem.jsx +1 -7
- package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +5 -4
- package/src/ExpandCollapse/Control.jsx +3 -1
- package/src/ExpandCollapseMini/ExpandCollapseMini.jsx +1 -1
- package/src/List/ListItemBase.jsx +1 -2
- package/src/List/ListItemMark.jsx +9 -3
- package/src/Modal/ModalContent.jsx +1 -1
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +1 -1
- package/src/Notification/Notification.jsx +14 -17
- package/src/TextInput/TextArea.jsx +11 -1
- package/src/Typography/Typography.jsx +9 -3
|
@@ -51,10 +51,12 @@ const selectBulletPositioningStyles = _ref3 => {
|
|
|
51
51
|
const selectBulletContainerStyles = _ref4 => {
|
|
52
52
|
let {
|
|
53
53
|
itemBulletContainerWidth,
|
|
54
|
+
itemBulletContainerHeight,
|
|
54
55
|
itemBulletContainerAlign
|
|
55
56
|
} = _ref4;
|
|
56
57
|
return {
|
|
57
58
|
width: itemBulletContainerWidth,
|
|
59
|
+
height: itemBulletContainerHeight,
|
|
58
60
|
alignItems: itemBulletContainerAlign
|
|
59
61
|
};
|
|
60
62
|
};
|
|
@@ -76,10 +78,11 @@ const ListItemMark = /*#__PURE__*/_react.default.forwardRef((_ref5, ref) => {
|
|
|
76
78
|
const IconComponent = icon || /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
77
79
|
const themeTokens = typeof tokens === 'function' ? tokens() : tokens;
|
|
78
80
|
const sideItemContainerStyles = selectSideItemContainerStyles(themeTokens);
|
|
81
|
+
const bulletContainerStyles = selectBulletContainerStyles(themeTokens);
|
|
79
82
|
if (icon) {
|
|
80
83
|
const iconTokens = selectItemIconTokens(themeTokens);
|
|
81
84
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
82
|
-
style: sideItemContainerStyles,
|
|
85
|
+
style: [sideItemContainerStyles, bulletContainerStyles],
|
|
83
86
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
|
|
84
87
|
size: iconSize || iconTokens.size,
|
|
85
88
|
color: iconColor || iconTokens.color
|
|
@@ -101,7 +104,8 @@ const ListItemMark = /*#__PURE__*/_react.default.forwardRef((_ref5, ref) => {
|
|
|
101
104
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
102
105
|
icon: bulletIcon,
|
|
103
106
|
tokens: {
|
|
104
|
-
color: bulletColor
|
|
107
|
+
color: bulletColor,
|
|
108
|
+
size: themeTokens.itemIconSize
|
|
105
109
|
}
|
|
106
110
|
})
|
|
107
111
|
})
|
|
@@ -135,7 +135,7 @@ const ModalContent = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
135
135
|
},
|
|
136
136
|
children: subHeading
|
|
137
137
|
})
|
|
138
|
-
}), Boolean(bodyText && hasHeadingSection) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
138
|
+
}), Boolean((bodyText || children) && hasHeadingSection) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
139
139
|
space: 3
|
|
140
140
|
})]
|
|
141
141
|
}), bodyText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
@@ -293,9 +293,9 @@ const MultiSelectFilter = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) =>
|
|
|
293
293
|
},
|
|
294
294
|
children: subtitle
|
|
295
295
|
})
|
|
296
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
297
|
-
space: 4
|
|
298
296
|
})]
|
|
297
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spacer.default, {
|
|
298
|
+
space: 4
|
|
299
299
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
300
300
|
style: styles.options,
|
|
301
301
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScrollView.default, {
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
|
-
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
10
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _systemConstants = require("@telus-uds/system-constants");
|
|
11
11
|
var _ThemeProvider = require("../ThemeProvider");
|
|
12
12
|
var _utils = require("../utils");
|
|
13
13
|
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
|
@@ -71,12 +71,12 @@ const selectDismissButtonContainerStyles = _ref4 => {
|
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
const selectContentContainerStyle = (themeTokens, maxWidth, viewport, system) => ({
|
|
74
|
-
maxWidth: viewport === 'xl' && system === true ? maxWidth : '
|
|
75
|
-
|
|
74
|
+
maxWidth: viewport === 'xl' && system === true ? maxWidth : '100%',
|
|
75
|
+
width: '100%',
|
|
76
76
|
paddingRight: themeTokens?.containerPaddingRight,
|
|
77
77
|
paddingLeft: themeTokens?.containerPaddingLeft
|
|
78
78
|
});
|
|
79
|
-
const getMediaQueryStyles = (themeTokens, themeOptions, mediaIdsRef, dismissible, viewport, system) => {
|
|
79
|
+
const getMediaQueryStyles = (themeTokens, themeOptions, maxWidth, mediaIdsRef, dismissible, viewport, system) => {
|
|
80
80
|
const transformedSelectContainerStyles = Object.entries(themeTokens).reduce((acc, _ref5) => {
|
|
81
81
|
let [vp, viewportTokens] = _ref5;
|
|
82
82
|
acc[vp] = selectContainerStyles({
|
|
@@ -90,7 +90,7 @@ const getMediaQueryStyles = (themeTokens, themeOptions, mediaIdsRef, dismissible
|
|
|
90
90
|
styles: containerStyles
|
|
91
91
|
} = _utils.StyleSheet.create({
|
|
92
92
|
container: {
|
|
93
|
-
flexDirection:
|
|
93
|
+
flexDirection: 'column',
|
|
94
94
|
...selectContainerMediaQueryStyles
|
|
95
95
|
}
|
|
96
96
|
});
|
|
@@ -102,22 +102,9 @@ const getMediaQueryStyles = (themeTokens, themeOptions, mediaIdsRef, dismissible
|
|
|
102
102
|
flexDirection: 'row',
|
|
103
103
|
flexShrink: 1,
|
|
104
104
|
justifyContent: 'space-between',
|
|
105
|
-
...(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
},
|
|
109
|
-
md: {
|
|
110
|
-
maxWidth: themeOptions?.contentMaxWidth?.md || '100%'
|
|
111
|
-
},
|
|
112
|
-
lg: {
|
|
113
|
-
maxWidth: themeOptions?.contentMaxWidth?.lg || '100%'
|
|
114
|
-
},
|
|
115
|
-
sm: {
|
|
116
|
-
maxWidth: themeOptions?.contentMaxWidth?.sm || '100%'
|
|
117
|
-
},
|
|
118
|
-
xl: {
|
|
119
|
-
maxWidth: themeOptions?.contentMaxWidth?.xl || '100%'
|
|
120
|
-
}
|
|
105
|
+
...selectContentContainerStyle(themeTokens, maxWidth, viewport, system),
|
|
106
|
+
...(system && {
|
|
107
|
+
alignSelf: 'center'
|
|
121
108
|
})
|
|
122
109
|
}
|
|
123
110
|
});
|
|
@@ -182,7 +169,7 @@ const getMediaQueryStyles = (themeTokens, themeOptions, mediaIdsRef, dismissible
|
|
|
182
169
|
const getDefaultStyles = (themeTokens, themeOptions, maxWidth, dismissible, viewport, system) => ({
|
|
183
170
|
containerStyles: {
|
|
184
171
|
container: {
|
|
185
|
-
flexDirection:
|
|
172
|
+
flexDirection: 'column',
|
|
186
173
|
...selectContainerStyles(themeTokens)
|
|
187
174
|
}
|
|
188
175
|
},
|
|
@@ -191,7 +178,10 @@ const getDefaultStyles = (themeTokens, themeOptions, maxWidth, dismissible, view
|
|
|
191
178
|
flexDirection: 'row',
|
|
192
179
|
flexShrink: 1,
|
|
193
180
|
justifyContent: 'space-between',
|
|
194
|
-
...selectContentContainerStyle(themeTokens, maxWidth, viewport, system)
|
|
181
|
+
...selectContentContainerStyle(themeTokens, maxWidth, viewport, system),
|
|
182
|
+
...(system && {
|
|
183
|
+
alignSelf: 'center'
|
|
184
|
+
})
|
|
195
185
|
}
|
|
196
186
|
},
|
|
197
187
|
staticContentContainerStyles: {
|
|
@@ -309,7 +299,7 @@ const Notification = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
|
|
|
309
299
|
system: isSystemEnabled,
|
|
310
300
|
viewport
|
|
311
301
|
});
|
|
312
|
-
const maxWidth = (
|
|
302
|
+
const maxWidth = _systemConstants.viewports.map.get(_systemConstants.viewports.xl);
|
|
313
303
|
const notificationComponentRef = _react.default.useRef({
|
|
314
304
|
containerStyles: {},
|
|
315
305
|
contentContainerStyles: {},
|
|
@@ -331,7 +321,7 @@ const Notification = /*#__PURE__*/_react.default.forwardRef((_ref6, ref) => {
|
|
|
331
321
|
selectDismissIconPropsIds: {}
|
|
332
322
|
});
|
|
333
323
|
if (enableMediaQueryStyleSheet) {
|
|
334
|
-
notificationComponentRef.current = getMediaQueryStyles(themeTokens, themeOptions, mediaIdsRef, dismissible, viewport, isSystemEnabled);
|
|
324
|
+
notificationComponentRef.current = getMediaQueryStyles(themeTokens, themeOptions, maxWidth, mediaIdsRef, dismissible, viewport, isSystemEnabled);
|
|
335
325
|
} else {
|
|
336
326
|
notificationComponentRef.current = getDefaultStyles(themeTokens, themeOptions, maxWidth, dismissible, viewport, isSystemEnabled);
|
|
337
327
|
}
|
|
@@ -47,6 +47,7 @@ const TextArea = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
47
47
|
} = _ref;
|
|
48
48
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('TextArea', tokens, variant);
|
|
49
49
|
const [inputHeight, setInputHeight] = _react.default.useState();
|
|
50
|
+
const isUpdatingHeight = _react.default.useRef(false);
|
|
50
51
|
|
|
51
52
|
// adjust the text area's height as new lines are added to the content
|
|
52
53
|
const onHeightChange = _ref2 => {
|
|
@@ -58,8 +59,16 @@ const TextArea = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
58
59
|
}
|
|
59
60
|
} = _ref2;
|
|
60
61
|
// on native this is happens out of the box
|
|
61
|
-
if (_Platform.default.OS === 'web') {
|
|
62
|
+
if (_Platform.default.OS === 'web' && !isUpdatingHeight.current) {
|
|
63
|
+
isUpdatingHeight.current = true;
|
|
62
64
|
setInputHeight(height);
|
|
65
|
+
// setTimeout is used to “wait” for the next update cycle before allowing a new height adjustment,
|
|
66
|
+
// avoiding multiple updates in the same render and preventing a possible infinite loop or constant re-renders.
|
|
67
|
+
setTimeout(() => {
|
|
68
|
+
isUpdatingHeight.current = false;
|
|
69
|
+
}, 0);
|
|
70
|
+
} else {
|
|
71
|
+
setInputHeight(null);
|
|
63
72
|
}
|
|
64
73
|
};
|
|
65
74
|
const {
|
|
@@ -69,7 +69,7 @@ const Typography = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
|
69
69
|
tag = typeof heading === 'string' ? heading : undefined,
|
|
70
70
|
accessibilityRole = heading === true ? 'header' : undefined,
|
|
71
71
|
block = false,
|
|
72
|
-
align = undefined,
|
|
72
|
+
align = _Platform.default.OS === 'web' ? 'inherit' : undefined,
|
|
73
73
|
tokens,
|
|
74
74
|
dataSet,
|
|
75
75
|
strikeThrough = false,
|
|
@@ -118,13 +118,19 @@ const Typography = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
|
118
118
|
backgroundClip: 'text'
|
|
119
119
|
} : styles;
|
|
120
120
|
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Added to maintain previous behavior, as the 'auto' value for the 'align' prop now defaults to 'inherit' on the web,
|
|
124
|
+
* maintaining the previous behavior that was changed in the Text component of react-native.
|
|
125
|
+
*/
|
|
126
|
+
const resolvedAlign = _Platform.default.OS === 'web' && align === 'auto' ? 'inherit' : align;
|
|
121
127
|
let textStyles;
|
|
122
128
|
let mediaIds;
|
|
123
129
|
if (enableMediaQueryStyleSheet) {
|
|
124
130
|
const transformedThemeTokens = Object.entries(themeTokens).reduce((acc, _ref4) => {
|
|
125
131
|
let [vp, viewportTokens] = _ref4;
|
|
126
132
|
acc[vp] = selectTextStyles({
|
|
127
|
-
textAlign:
|
|
133
|
+
textAlign: resolvedAlign,
|
|
128
134
|
textDecorationLine,
|
|
129
135
|
...viewportTokens
|
|
130
136
|
}, themeOptions);
|
|
@@ -153,7 +159,7 @@ const Typography = /*#__PURE__*/_react.default.forwardRef((_ref3, ref) => {
|
|
|
153
159
|
mediaIds = ids.text;
|
|
154
160
|
} else {
|
|
155
161
|
textStyles = selectTextStyles({
|
|
156
|
-
textAlign:
|
|
162
|
+
textAlign: resolvedAlign,
|
|
157
163
|
textDecorationLine,
|
|
158
164
|
...themeTokens
|
|
159
165
|
}, themeOptions);
|
package/lib/esm/Card/CardBase.js
CHANGED
|
@@ -84,13 +84,14 @@ const CardBase = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
|
84
84
|
ref: ref,
|
|
85
85
|
...props,
|
|
86
86
|
children: src ? /*#__PURE__*/_jsx(ImageBackground, {
|
|
87
|
-
alt: alt,
|
|
88
87
|
source: imageSourceViewport,
|
|
89
88
|
imageStyle: {
|
|
90
89
|
borderRadius: cardStyle?.borderRadius - cardStyle?.borderWidth
|
|
91
90
|
},
|
|
92
91
|
resizeMode: backgroundImageResizeMode,
|
|
93
92
|
style: styles.imageBackground,
|
|
93
|
+
accessible: true,
|
|
94
|
+
accessibilityLabel: alt,
|
|
94
95
|
children: children
|
|
95
96
|
}) : children
|
|
96
97
|
});
|