@telus-uds/components-base 1.70.0 → 1.71.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 +13 -2
- package/jest.setup.js +7 -0
- package/lib/Autocomplete/Autocomplete.js +3 -13
- package/lib/Card/Card.js +68 -7
- package/lib/Card/PressableCardBase.js +2 -0
- package/lib/FlexGrid/Col/Col.js +50 -64
- package/lib/FlexGrid/FlexGrid.js +37 -40
- package/lib/FlexGrid/Row/Row.js +43 -44
- package/lib/Icon/IconText.js +9 -2
- package/lib/Link/LinkBase.js +10 -3
- package/lib/utils/ssr-media-query/utils/inject.js +13 -0
- package/lib-module/Autocomplete/Autocomplete.js +3 -13
- package/lib-module/Card/Card.js +71 -8
- package/lib-module/Card/PressableCardBase.js +2 -0
- package/lib-module/FlexGrid/Col/Col.js +51 -65
- package/lib-module/FlexGrid/FlexGrid.js +38 -41
- package/lib-module/FlexGrid/Row/Row.js +44 -45
- package/lib-module/Icon/IconText.js +9 -2
- package/lib-module/Link/LinkBase.js +10 -3
- package/lib-module/utils/ssr-media-query/utils/inject.js +13 -0
- package/package.json +2 -2
- package/src/Autocomplete/Autocomplete.jsx +14 -21
- package/src/Card/Card.jsx +73 -11
- package/src/Card/PressableCardBase.jsx +2 -0
- package/src/FlexGrid/Col/Col.jsx +48 -80
- package/src/FlexGrid/FlexGrid.jsx +36 -44
- package/src/FlexGrid/Row/Row.jsx +38 -56
- package/src/Icon/IconText.jsx +11 -1
- package/src/Link/ChevronLink.jsx +1 -0
- package/src/Link/LinkBase.jsx +16 -6
- package/src/utils/ssr-media-query/utils/inject.js +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
# Change Log - @telus-uds/components-base
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 01 Dec 2023 20:57:37 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.71.0
|
|
8
|
+
|
|
9
|
+
Fri, 01 Dec 2023 20:57:37 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- `Card`: Add interactive section (shahzaibkhalidmalik@outlook.com)
|
|
14
|
+
- changes in handleClose method in autocomplete to fix the selection of suggestions in mobile browsers (35577399+JoshHC@users.noreply.github.com)
|
|
15
|
+
- add logic to linkbase to allow items to be center aligned (evander.owusu@telus.com)
|
|
16
|
+
- Bump @telus-uds/system-theme-tokens to v2.47.0
|
|
17
|
+
|
|
7
18
|
## 1.70.0
|
|
8
19
|
|
|
9
|
-
Mon, 27 Nov 2023 21:
|
|
20
|
+
Mon, 27 Nov 2023 21:20:44 GMT
|
|
10
21
|
|
|
11
22
|
### Minor changes
|
|
12
23
|
|
package/jest.setup.js
ADDED
|
@@ -273,21 +273,11 @@ const Autocomplete = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
273
273
|
}, [nestedSelectedValue, items]);
|
|
274
274
|
const handleClose = event => {
|
|
275
275
|
var _openOverlayRef$curre, _openOverlayRef$curre2;
|
|
276
|
-
if (event.type === 'keydown') {
|
|
277
|
-
if (event.key === 'Escape' || event.key === 27) {
|
|
278
|
-
setIsExpanded(false);
|
|
279
|
-
setNestedSelectedValue(null);
|
|
280
|
-
} else if (event.key === 'ArrowDown' && isExpanded && !isLoading && targetRef !== null && targetRef !== void 0 && targetRef.current) {
|
|
281
|
-
targetRef.current.focus();
|
|
282
|
-
}
|
|
283
|
-
} else if (event.type === 'click' && openOverlayRef !== null && openOverlayRef !== void 0 && openOverlayRef.current && event.target && !(openOverlayRef !== null && openOverlayRef !== void 0 && (_openOverlayRef$curre = openOverlayRef.current) !== null && _openOverlayRef$curre !== void 0 && _openOverlayRef$curre.contains(event.target))) {
|
|
284
|
-
setIsExpanded(false);
|
|
285
|
-
} else if (event.type === 'touchstart' && openOverlayRef !== null && openOverlayRef !== void 0 && openOverlayRef.current && event.touches[0].target && !(openOverlayRef !== null && openOverlayRef !== void 0 && (_openOverlayRef$curre2 = openOverlayRef.current) !== null && _openOverlayRef$curre2 !== void 0 && _openOverlayRef$curre2.contains(event.touches[0].target))) {
|
|
286
|
-
setIsExpanded(false);
|
|
287
|
-
} else if (_Platform.default.OS === 'web') {
|
|
288
|
-
// needed for dropdown to be collapsed when clicking outside on web
|
|
276
|
+
if (event.type === 'keydown' && (event.key === 'Escape' || event.key === '27') || event.type === 'click' && !(openOverlayRef !== null && openOverlayRef !== void 0 && (_openOverlayRef$curre = openOverlayRef.current) !== null && _openOverlayRef$curre !== void 0 && _openOverlayRef$curre.contains(event.target)) || event.type === 'touchstart' && openOverlayRef !== null && openOverlayRef !== void 0 && openOverlayRef.current && event.touches[0].target && !(openOverlayRef !== null && openOverlayRef !== void 0 && (_openOverlayRef$curre2 = openOverlayRef.current) !== null && _openOverlayRef$curre2 !== void 0 && _openOverlayRef$curre2.contains(event.touches[0].target))) {
|
|
289
277
|
setIsExpanded(false);
|
|
290
278
|
setNestedSelectedValue(null);
|
|
279
|
+
} else if (event.type === 'keydown' && event.key === 'ArrowDown' && isExpanded && !isLoading && targetRef !== null && targetRef !== void 0 && targetRef.current) {
|
|
280
|
+
targetRef.current.focus();
|
|
291
281
|
}
|
|
292
282
|
};
|
|
293
283
|
const itemsToShow = currentValue ? itemsToSuggest(highlight(isControlled ? items : currentItems, currentValue, resultsTextColor)) : [];
|
package/lib/Card/Card.js
CHANGED
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
9
10
|
var _ThemeProvider = require("../ThemeProvider");
|
|
10
11
|
var _utils = require("../utils");
|
|
11
12
|
var _ViewportProvider = require("../ViewportProvider");
|
|
12
13
|
var _props = require("../utils/props");
|
|
13
14
|
var _CardBase = _interopRequireDefault(require("./CardBase"));
|
|
15
|
+
var _PressableCardBase = _interopRequireDefault(require("./PressableCardBase"));
|
|
14
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -71,26 +73,85 @@ const Card = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
71
73
|
tokens,
|
|
72
74
|
variant,
|
|
73
75
|
dataSet,
|
|
76
|
+
onPress,
|
|
77
|
+
interactiveCard,
|
|
74
78
|
...rest
|
|
75
79
|
} = _ref;
|
|
76
80
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
77
81
|
const themeTokens = (0, _ThemeProvider.useThemeTokens)('Card', tokens, variant, {
|
|
78
82
|
viewport
|
|
79
83
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
const getThemeTokens = (0, _ThemeProvider.useThemeTokensCallback)('Card', interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.tokens, {
|
|
85
|
+
interactive: true,
|
|
86
|
+
...((interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.variant) || {})
|
|
87
|
+
});
|
|
88
|
+
// When interactive area is present, spacing tokens should only be applied
|
|
89
|
+
// to individual Card sections, not Card as a whole
|
|
90
|
+
const {
|
|
91
|
+
paddingTop,
|
|
92
|
+
paddingBottom,
|
|
93
|
+
paddingLeft,
|
|
94
|
+
paddingRight,
|
|
95
|
+
...restOfTokens
|
|
96
|
+
} = themeTokens;
|
|
97
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
98
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CardBase.default, {
|
|
99
|
+
ref: ref,
|
|
100
|
+
tokens: interactiveCard !== null && interactiveCard !== void 0 && interactiveCard.body ? restOfTokens : themeTokens,
|
|
101
|
+
dataSet: dataSet,
|
|
102
|
+
...selectProps(rest),
|
|
103
|
+
children: interactiveCard !== null && interactiveCard !== void 0 && interactiveCard.body ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
104
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PressableCardBase.default, {
|
|
105
|
+
ref: ref,
|
|
106
|
+
tokens: getThemeTokens,
|
|
107
|
+
dataSet: dataSet,
|
|
108
|
+
onPress: onPress,
|
|
109
|
+
...selectProps(rest),
|
|
110
|
+
children: interactiveCard === null || interactiveCard === void 0 ? void 0 : interactiveCard.body
|
|
111
|
+
}), children ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
112
|
+
style: {
|
|
113
|
+
paddingTop,
|
|
114
|
+
paddingBottom,
|
|
115
|
+
paddingLeft,
|
|
116
|
+
paddingRight
|
|
117
|
+
},
|
|
118
|
+
children: children
|
|
119
|
+
}) : null]
|
|
120
|
+
}) : children
|
|
121
|
+
})
|
|
86
122
|
});
|
|
87
123
|
});
|
|
88
124
|
Card.displayName = 'Card';
|
|
89
125
|
Card.propTypes = {
|
|
90
126
|
...selectedSystemPropTypes,
|
|
127
|
+
/**
|
|
128
|
+
* Card content.
|
|
129
|
+
*/
|
|
91
130
|
children: _propTypes.default.node,
|
|
131
|
+
/**
|
|
132
|
+
* Card tokens.
|
|
133
|
+
*/
|
|
92
134
|
tokens: (0, _utils.getTokensPropType)('Card'),
|
|
93
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Card variant.
|
|
137
|
+
*/
|
|
138
|
+
variant: _utils.variantProp.propType,
|
|
139
|
+
/**
|
|
140
|
+
* Function to call on pressing the card.
|
|
141
|
+
* Note: This is only available when `interactiveCard` prop is used.
|
|
142
|
+
*/
|
|
143
|
+
onPress: _propTypes.default.func,
|
|
144
|
+
/**
|
|
145
|
+
* Object to set interactive card's properties
|
|
146
|
+
* - body: The body of the interactive card, can be any renderable node
|
|
147
|
+
* - tokens: The tokens to be used for the interactive card
|
|
148
|
+
* - variant: The variant to be used for the interactive card
|
|
149
|
+
*/
|
|
150
|
+
interactiveCard: _propTypes.default.shape({
|
|
151
|
+
body: _propTypes.default.node,
|
|
152
|
+
tokens: (0, _utils.getTokensPropType)('Card'),
|
|
153
|
+
variant: _utils.variantProp.propType
|
|
154
|
+
})
|
|
94
155
|
};
|
|
95
156
|
var _default = Card;
|
|
96
157
|
exports.default = _default;
|
|
@@ -38,6 +38,7 @@ const PressableCardBase = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
38
38
|
inactive,
|
|
39
39
|
href,
|
|
40
40
|
hrefAttrs,
|
|
41
|
+
dataSet,
|
|
41
42
|
accessibilityRole = href ? 'link' : undefined,
|
|
42
43
|
...rawRest
|
|
43
44
|
} = _ref;
|
|
@@ -97,6 +98,7 @@ const PressableCardBase = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
97
98
|
onKeyDown: handleKeyDown,
|
|
98
99
|
hrefAttrs: hrefAttrs,
|
|
99
100
|
style: getOuterBorderStyle,
|
|
101
|
+
dataSet: dataSet,
|
|
100
102
|
...selectProps({
|
|
101
103
|
...rest,
|
|
102
104
|
accessibilityRole
|
package/lib/FlexGrid/Col/Col.js
CHANGED
|
@@ -7,10 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
10
|
-
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
11
|
-
var _systemConstants = require("@telus-uds/system-constants");
|
|
12
10
|
var _GutterContext = _interopRequireDefault(require("../providers/GutterContext"));
|
|
13
|
-
var _ViewportProvider = require("../../ViewportProvider");
|
|
14
11
|
var _helpers = _interopRequireDefault(require("../helpers"));
|
|
15
12
|
var _utils = require("../../utils");
|
|
16
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -35,7 +32,6 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
35
32
|
...viewProps
|
|
36
33
|
} = _ref;
|
|
37
34
|
const gutter = (0, _react.useContext)(_GutterContext.default);
|
|
38
|
-
const viewPort = (0, _ViewportProvider.useViewport)();
|
|
39
35
|
const hiddenLevels = (0, _helpers.default)([xs, sm, md, lg, xl]);
|
|
40
36
|
const getHorizontalAlignLevel = () => {
|
|
41
37
|
if (typeof horizontalAlign === 'object') {
|
|
@@ -76,60 +72,11 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
76
72
|
}
|
|
77
73
|
return {};
|
|
78
74
|
};
|
|
79
|
-
const sizeStyles = sizes => {
|
|
80
|
-
const currViewport = Object.keys(sizes).find(key => key.startsWith(viewPort));
|
|
81
|
-
const currSize = sizes[currViewport];
|
|
82
|
-
return {
|
|
83
|
-
...calculateWidth(currSize)
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
const offsetStyles = offsets => {
|
|
87
|
-
const currViewport = Object.keys(offsets).find(key => key.startsWith(viewPort));
|
|
88
|
-
const currOffset = offsets[currViewport];
|
|
89
|
-
return {
|
|
90
|
-
...calculateOffset(currOffset)
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
const gutterPadding = {
|
|
94
|
-
paddingLeft: gutter ? 16 : 0,
|
|
95
|
-
paddingRight: gutter ? 16 : 0
|
|
96
|
-
};
|
|
97
|
-
let hidingStyles = {};
|
|
98
75
|
|
|
99
76
|
// TODO: consider setting this to always 'flex' in a major release.
|
|
100
77
|
// `display: block` is invalid in native apps.
|
|
101
78
|
// See https://telusdigital.atlassian.net/browse/UDS1-92
|
|
102
79
|
const shown = !flex && _Platform.default.OS === 'web' ? 'block' : 'flex';
|
|
103
|
-
if (viewPort === _systemConstants.viewports.xs) {
|
|
104
|
-
hidingStyles = {
|
|
105
|
-
display: hiddenLevels[0] === 0 ? 'none' : shown,
|
|
106
|
-
textAlign: horizontalAlignLevel[0]
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
if (viewPort === _systemConstants.viewports.sm) {
|
|
110
|
-
hidingStyles = {
|
|
111
|
-
display: hiddenLevels[1] === 0 ? 'none' : shown,
|
|
112
|
-
textAlign: horizontalAlignLevel[1]
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
if (viewPort === _systemConstants.viewports.md) {
|
|
116
|
-
hidingStyles = {
|
|
117
|
-
display: hiddenLevels[2] === 0 ? 'none' : shown,
|
|
118
|
-
textAlign: horizontalAlignLevel[2]
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
if (viewPort === _systemConstants.viewports.lg) {
|
|
122
|
-
hidingStyles = {
|
|
123
|
-
display: hiddenLevels[3] === 0 ? 'none' : shown,
|
|
124
|
-
textAlign: horizontalAlignLevel[3]
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
if (viewPort === _systemConstants.viewports.xl) {
|
|
128
|
-
hidingStyles = {
|
|
129
|
-
display: hiddenLevels[4] === 0 ? 'none' : shown,
|
|
130
|
-
textAlign: horizontalAlignLevel[4]
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
80
|
const sizesArray = [xs, sm, md, lg, xl];
|
|
134
81
|
const offSetsArray = [xsOffset, smOffset, mdOffset, lgOffset, xlOffset];
|
|
135
82
|
const sizesWithIheritance = (0, _helpers.default)(sizesArray);
|
|
@@ -148,24 +95,63 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
148
95
|
lg: offsetsWithIheritance[3],
|
|
149
96
|
xl: offsetsWithIheritance[4]
|
|
150
97
|
};
|
|
98
|
+
const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
|
|
99
|
+
xs: {
|
|
100
|
+
display: hiddenLevels[0] === 0 ? 'none' : shown,
|
|
101
|
+
textAlign: horizontalAlignLevel[0],
|
|
102
|
+
...calculateWidth(sizes.xs),
|
|
103
|
+
...calculateOffset(offsets.xs)
|
|
104
|
+
},
|
|
105
|
+
sm: {
|
|
106
|
+
display: hiddenLevels[1] === 0 ? 'none' : shown,
|
|
107
|
+
textAlign: horizontalAlignLevel[1],
|
|
108
|
+
...calculateWidth(sizes.sm),
|
|
109
|
+
...calculateOffset(offsets.sm)
|
|
110
|
+
},
|
|
111
|
+
md: {
|
|
112
|
+
display: hiddenLevels[2] === 0 ? 'none' : shown,
|
|
113
|
+
textAlign: horizontalAlignLevel[2],
|
|
114
|
+
...calculateWidth(sizes.md),
|
|
115
|
+
...calculateOffset(offsets.md)
|
|
116
|
+
},
|
|
117
|
+
lg: {
|
|
118
|
+
display: hiddenLevels[3] === 0 ? 'none' : shown,
|
|
119
|
+
textAlign: horizontalAlignLevel[3],
|
|
120
|
+
...calculateWidth(sizes.lg),
|
|
121
|
+
...calculateOffset(offsets.lg)
|
|
122
|
+
},
|
|
123
|
+
xl: {
|
|
124
|
+
display: hiddenLevels[4] === 0 ? 'none' : shown,
|
|
125
|
+
textAlign: horizontalAlignLevel[4],
|
|
126
|
+
...calculateWidth(sizes.xl),
|
|
127
|
+
...calculateOffset(offsets.xl)
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
const {
|
|
131
|
+
ids,
|
|
132
|
+
styles
|
|
133
|
+
} = _utils.StyleSheet.create({
|
|
134
|
+
col: {
|
|
135
|
+
flexGrow: 1,
|
|
136
|
+
flexShrink: 0,
|
|
137
|
+
flexBasis: 'auto',
|
|
138
|
+
maxWidth: '100%',
|
|
139
|
+
paddingLeft: gutter ? 16 : 0,
|
|
140
|
+
paddingRight: gutter ? 16 : 0,
|
|
141
|
+
...mediaQueryStyles
|
|
142
|
+
}
|
|
143
|
+
});
|
|
151
144
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
|
|
152
145
|
ref: ref,
|
|
153
146
|
...viewProps,
|
|
154
|
-
style: [styles.col,
|
|
155
|
-
|
|
156
|
-
|
|
147
|
+
style: [styles.col],
|
|
148
|
+
dataSet: {
|
|
149
|
+
media: ids.col
|
|
150
|
+
},
|
|
157
151
|
children: children
|
|
158
152
|
});
|
|
159
153
|
});
|
|
160
154
|
Col.displayName = 'Col';
|
|
161
|
-
const styles = _StyleSheet.default.create({
|
|
162
|
-
col: {
|
|
163
|
-
flexGrow: 1,
|
|
164
|
-
flexShrink: 0,
|
|
165
|
-
flexBasis: 'auto',
|
|
166
|
-
maxWidth: '100%'
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
155
|
|
|
170
156
|
/*
|
|
171
157
|
* We're disabling default props since passing undefined props to
|
package/lib/FlexGrid/FlexGrid.js
CHANGED
|
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
10
9
|
var _systemConstants = require("@telus-uds/system-constants");
|
|
11
10
|
var _utils = require("../utils");
|
|
12
11
|
var _Row = _interopRequireDefault(require("./Row"));
|
|
13
12
|
var _Col = _interopRequireDefault(require("./Col"));
|
|
14
|
-
var _ViewportProvider = require("../ViewportProvider");
|
|
15
13
|
var _GutterContext = _interopRequireDefault(require("./providers/GutterContext"));
|
|
16
14
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
17
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -39,33 +37,40 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
39
37
|
children,
|
|
40
38
|
...rest
|
|
41
39
|
} = _ref;
|
|
42
|
-
const viewPort = (0, _ViewportProvider.useViewport)();
|
|
43
40
|
const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
41
|
+
const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
|
|
42
|
+
xs: {
|
|
43
|
+
flexDirection: reverseLevel[0] ? 'column-reverse' : 'column'
|
|
44
|
+
},
|
|
45
|
+
sm: {
|
|
46
|
+
maxWidth: limitWidth && _systemConstants.viewports.map.get('sm'),
|
|
47
|
+
flexDirection: reverseLevel[1] ? 'column-reverse' : 'column'
|
|
48
|
+
},
|
|
49
|
+
md: {
|
|
50
|
+
maxWidth: limitWidth && _systemConstants.viewports.map.get('md'),
|
|
51
|
+
flexDirection: reverseLevel[2] ? 'column-reverse' : 'column'
|
|
52
|
+
},
|
|
53
|
+
lg: {
|
|
54
|
+
maxWidth: limitWidth && _systemConstants.viewports.map.get('lg'),
|
|
55
|
+
flexDirection: reverseLevel[3] ? 'column-reverse' : 'column'
|
|
56
|
+
},
|
|
57
|
+
xl: {
|
|
58
|
+
maxWidth: limitWidth && _systemConstants.viewports.map.get('xl'),
|
|
59
|
+
flexDirection: reverseLevel[4] ? 'column-reverse' : 'column'
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const {
|
|
63
|
+
ids,
|
|
64
|
+
styles
|
|
65
|
+
} = _utils.StyleSheet.create({
|
|
66
|
+
flexgrid: {
|
|
67
|
+
flexWrap: 'wrap',
|
|
68
|
+
width: outsideGutter ? '100%' : 'auto',
|
|
69
|
+
marginVertical: 0,
|
|
70
|
+
marginHorizontal: outsideGutter ? 'auto' : -16,
|
|
71
|
+
...mediaQueryStyles
|
|
72
|
+
}
|
|
73
|
+
});
|
|
69
74
|
const props = {
|
|
70
75
|
accessibilityRole,
|
|
71
76
|
...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
|
|
@@ -76,23 +81,15 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
76
81
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
|
|
77
82
|
ref: ref,
|
|
78
83
|
...props,
|
|
79
|
-
style: [styles.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
flexDirection,
|
|
84
|
-
maxWidth
|
|
85
|
-
}],
|
|
84
|
+
style: [styles.flexgrid],
|
|
85
|
+
dataSet: {
|
|
86
|
+
media: ids.flexgrid
|
|
87
|
+
},
|
|
86
88
|
children: children
|
|
87
89
|
})
|
|
88
90
|
});
|
|
89
91
|
});
|
|
90
92
|
FlexGrid.displayName = 'FlexGrid';
|
|
91
|
-
const styles = _StyleSheet.default.create({
|
|
92
|
-
grid: {
|
|
93
|
-
flexWrap: 'wrap'
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
93
|
FlexGrid.propTypes = {
|
|
97
94
|
...selectedSystemPropTypes,
|
|
98
95
|
/**
|
package/lib/FlexGrid/Row/Row.js
CHANGED
|
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
|
|
10
|
-
var _systemConstants = require("@telus-uds/system-constants");
|
|
11
|
-
var _ViewportProvider = require("../../ViewportProvider");
|
|
12
9
|
var _helpers = _interopRequireDefault(require("../helpers"));
|
|
13
10
|
var _utils = require("../../utils");
|
|
14
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -81,55 +78,57 @@ const Row = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
81
78
|
children,
|
|
82
79
|
...rest
|
|
83
80
|
} = _ref;
|
|
84
|
-
const viewPort = (0, _ViewportProvider.useViewport)();
|
|
85
81
|
const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
82
|
+
const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
|
|
83
|
+
xs: {
|
|
84
|
+
flexDirection: reverseLevel[0] ? 'row-reverse' : 'row',
|
|
85
|
+
flexWrap: reverseLevel[0] ? 'wrap-reverse' : 'wrap'
|
|
86
|
+
},
|
|
87
|
+
sm: {
|
|
88
|
+
flexDirection: reverseLevel[1] ? 'row-reverse' : 'row',
|
|
89
|
+
flexWrap: reverseLevel[1] ? 'wrap-reverse' : 'wrap'
|
|
90
|
+
},
|
|
91
|
+
md: {
|
|
92
|
+
flexDirection: reverseLevel[2] ? 'row-reverse' : 'row',
|
|
93
|
+
flexWrap: reverseLevel[2] ? 'wrap-reverse' : 'wrap'
|
|
94
|
+
},
|
|
95
|
+
lg: {
|
|
96
|
+
flexDirection: reverseLevel[3] ? 'row-reverse' : 'row',
|
|
97
|
+
flexWrap: reverseLevel[3] ? 'wrap-reverse' : 'wrap'
|
|
98
|
+
},
|
|
99
|
+
xl: {
|
|
100
|
+
flexDirection: reverseLevel[4] ? 'row-reverse' : 'row',
|
|
101
|
+
flexWrap: reverseLevel[4] ? 'wrap-reverse' : 'wrap'
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
const {
|
|
105
|
+
ids,
|
|
106
|
+
styles
|
|
107
|
+
} = _utils.StyleSheet.create({
|
|
108
|
+
row: {
|
|
109
|
+
width: '100%',
|
|
110
|
+
marginVertical: 0,
|
|
111
|
+
marginHorizontal: 'auto',
|
|
112
|
+
flexGrow: 0,
|
|
113
|
+
flexShrink: 1,
|
|
114
|
+
flexBasis: 'auto',
|
|
115
|
+
...horizontalAlignStyles(horizontalAlign),
|
|
116
|
+
...verticalAlignStyles(verticalAlign),
|
|
117
|
+
...distributeStyles(distribute),
|
|
118
|
+
...mediaQueryStyles
|
|
119
|
+
}
|
|
120
|
+
});
|
|
108
121
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
|
|
109
122
|
ref: ref,
|
|
110
123
|
...rest,
|
|
111
|
-
style: [styles.row,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
...verticalAlignStyles(verticalAlign),
|
|
116
|
-
...distributeStyles(distribute)
|
|
117
|
-
}],
|
|
124
|
+
style: [styles.row],
|
|
125
|
+
dataSet: {
|
|
126
|
+
media: ids.row
|
|
127
|
+
},
|
|
118
128
|
children: children
|
|
119
129
|
});
|
|
120
130
|
});
|
|
121
131
|
Row.displayName = 'Row';
|
|
122
|
-
const styles = _StyleSheet.default.create({
|
|
123
|
-
row: {
|
|
124
|
-
width: '100%',
|
|
125
|
-
marginVertical: 0,
|
|
126
|
-
marginHorizontal: 'auto',
|
|
127
|
-
flexGrow: 0,
|
|
128
|
-
flexShrink: 1,
|
|
129
|
-
flexBasis: 'auto',
|
|
130
|
-
flexDirection: 'row'
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
132
|
Row.propTypes = {
|
|
134
133
|
/**
|
|
135
134
|
* Align columns horizontally within their row.
|
package/lib/Icon/IconText.js
CHANGED
|
@@ -23,7 +23,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
23
23
|
* - inline within a <Text> element
|
|
24
24
|
* - within a container with `flexDirection: 'row'`
|
|
25
25
|
*/const IconText = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
26
|
-
var _iconProps$tokens;
|
|
26
|
+
var _iconProps$tokens, _iconProps$tokens2;
|
|
27
27
|
let {
|
|
28
28
|
space,
|
|
29
29
|
iconPosition = 'left',
|
|
@@ -41,6 +41,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
41
41
|
// Inline images on Android are always baseline-aligned which makes them look misaligned - offset it.
|
|
42
42
|
// See abandoned issue https://github.com/facebook/react-native/issues/6529
|
|
43
43
|
const size = (iconProps === null || iconProps === void 0 ? void 0 : (_iconProps$tokens = iconProps.tokens) === null || _iconProps$tokens === void 0 ? void 0 : _iconProps$tokens.size) ?? 0;
|
|
44
|
+
const valueTranslateY = iconProps === null || iconProps === void 0 ? void 0 : (_iconProps$tokens2 = iconProps.tokens) === null || _iconProps$tokens2 === void 0 ? void 0 : _iconProps$tokens2.translateY;
|
|
45
|
+
/**
|
|
46
|
+
* These calculations were carried out using a set of linear equations to calculate that the
|
|
47
|
+
* position of the icon "->"" is aligned to the first line of the tooltip text on IOS and Android.
|
|
48
|
+
* The issue was mainly on IOS, the translateY style didn't match with the old calculations.
|
|
49
|
+
*/
|
|
50
|
+
const resultY = valueTranslateY ? Math.floor(-1 * (valueTranslateY - 4)) : 0;
|
|
44
51
|
const iconAdjustedAndriod = /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
45
52
|
style: {
|
|
46
53
|
transform: [{
|
|
@@ -52,7 +59,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
52
59
|
const iconAdjustedIOS = /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
53
60
|
style: {
|
|
54
61
|
transform: [{
|
|
55
|
-
translateY: size * 0.01
|
|
62
|
+
translateY: valueTranslateY ? resultY : size * 0.01
|
|
56
63
|
}]
|
|
57
64
|
},
|
|
58
65
|
children: iconContent
|
package/lib/Link/LinkBase.js
CHANGED
|
@@ -100,13 +100,20 @@ const selectIconTokens = _ref5 => {
|
|
|
100
100
|
let {
|
|
101
101
|
color,
|
|
102
102
|
iconSize,
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
blockFontSize,
|
|
104
|
+
iconTranslateX
|
|
105
105
|
} = _ref5;
|
|
106
|
+
/**
|
|
107
|
+
* These calculations were carried out using a set of linear equations to calculate that the
|
|
108
|
+
* position of the icon "->"" is aligned to the first line of the tooltip text.
|
|
109
|
+
* The base equation is: X/4 + Y/4 - 4 - |X - Y| = Z
|
|
110
|
+
* where X = blockFontSize, Y = iconSize and Z = translateY
|
|
111
|
+
*/
|
|
112
|
+
const translateY = blockFontSize / 4 + iconSize / 4 - 4 - Math.abs(iconSize - blockFontSize);
|
|
106
113
|
return {
|
|
107
114
|
color,
|
|
108
115
|
translateX: iconTranslateX,
|
|
109
|
-
translateY:
|
|
116
|
+
translateY: translateY < 0 ? 0 : translateY,
|
|
110
117
|
size: iconSize
|
|
111
118
|
};
|
|
112
119
|
};
|
|
@@ -8,6 +8,16 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
10
|
const rules = {};
|
|
11
|
+
let styleSheet;
|
|
12
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
13
|
+
styleSheet = (() => {
|
|
14
|
+
const style = document.createElement('style');
|
|
15
|
+
style.id = 'RNMQCSS';
|
|
16
|
+
style.appendChild(document.createTextNode(''));
|
|
17
|
+
document.head.appendChild(style);
|
|
18
|
+
return style.sheet;
|
|
19
|
+
})();
|
|
20
|
+
}
|
|
11
21
|
const hasCss = (id, text) => {
|
|
12
22
|
var _rules$id$text, _rules$id$text$includ;
|
|
13
23
|
return !!rules[id] && !!((_rules$id$text = rules[id].text) !== null && _rules$id$text !== void 0 && (_rules$id$text$includ = _rules$id$text.includes) !== null && _rules$id$text$includ !== void 0 && _rules$id$text$includ.call(_rules$id$text, text));
|
|
@@ -18,6 +28,9 @@ const addCss = (id, text) => {
|
|
|
18
28
|
var _rules$id;
|
|
19
29
|
rules[id] = (rules === null || rules === void 0 ? void 0 : rules[id]) || {};
|
|
20
30
|
rules[id].text = (((_rules$id = rules[id]) === null || _rules$id === void 0 ? void 0 : _rules$id.text) || '') + text;
|
|
31
|
+
if (styleSheet) {
|
|
32
|
+
styleSheet.insertRule(text, Object.keys(rules).length - 1);
|
|
33
|
+
}
|
|
21
34
|
}
|
|
22
35
|
};
|
|
23
36
|
exports.addCss = addCss;
|