@telus-uds/components-base 1.56.0 → 1.57.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 CHANGED
@@ -1,12 +1,28 @@
1
1
  # Change Log - @telus-uds/components-base
2
2
 
3
- This log was last generated on Fri, 21 Jul 2023 00:42:38 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 28 Jul 2023 18:10:45 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.57.0
8
+
9
+ Fri, 28 Jul 2023 18:10:45 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - underline style adapted for text - was abscent earlier (akshay.pandey1@telus.com)
14
+ - feedback and textinput changes to match figma designs for koodo rebrand (akshay.pandey1@telus.com)
15
+ - Remove center alignment between title icon and text in Feedback (wlsdud194@hotmail.com)
16
+ - Bump @telus-uds/system-theme-tokens to v2.40.0
17
+
18
+ ### Patches
19
+
20
+ - `Button`'s nested `View`'s should bubble event to the parent `Pressable` (shahzaibkhalidmalik@outlook.com)
21
+ - add new token for outline border to checkbox (mauricio.batresmontejo@telus.com)
22
+
7
23
  ## 1.56.0
8
24
 
9
- Fri, 21 Jul 2023 00:42:38 GMT
25
+ Fri, 21 Jul 2023 00:51:24 GMT
10
26
 
11
27
  ### Minor changes
12
28
 
@@ -545,7 +545,8 @@
545
545
  "labelFontSize": "fontSize",
546
546
  "labelFontWeight": "fontWeight",
547
547
  "labelLineHeight": "lineHeight",
548
- "labelMarginLeft": "size"
548
+ "labelMarginLeft": "size",
549
+ "inputOutlineOffset": "size"
549
550
  },
550
551
  "ChevronLink": {
551
552
  "fontSize": "fontSize",
@@ -560,7 +561,14 @@
560
561
  },
561
562
  "CheckboxGroup": {
562
563
  "space": "integer",
563
- "fieldSpace": "integer"
564
+ "fieldSpace": "integer",
565
+ "showIcon": "show",
566
+ "outlineWidth": "border",
567
+ "borderBottomLeftRadius": "radius",
568
+ "borderBottomRightRadius": "radius",
569
+ "borderTopLeftRadius": "radius",
570
+ "borderTopRightRadius": "radius",
571
+ "outlineOffset": "size"
564
572
  },
565
573
  "Divider": {
566
574
  "width": "size",
@@ -1110,6 +1118,7 @@
1110
1118
  "itemIconSize": "size",
1111
1119
  "itemLineHeight": "lineHeight",
1112
1120
  "listGutter": "size",
1121
+ "itemUnderline": "textLine",
1113
1122
  "backgroundColor": "color",
1114
1123
  "paddingLeft": "size",
1115
1124
  "paddingRight": "size",
@@ -1276,7 +1285,11 @@
1276
1285
  "gradient": "gradient",
1277
1286
  "fontColor": "color",
1278
1287
  "borderRadiusBottomLeft": "size",
1279
- "borderRadiusBottomRight": "size"
1288
+ "borderRadiusBottomRight": "size",
1289
+ "fontName": "fontName",
1290
+ "fontWeight": "fontWeight",
1291
+ "fontSize": "fontSize",
1292
+ "lineHeight": "lineHeight"
1280
1293
  },
1281
1294
  "Search": {
1282
1295
  "backgroundColor": "color",
@@ -4487,7 +4500,8 @@
4487
4500
  "labelFontSize": "fontSize",
4488
4501
  "labelFontWeight": "fontWeight",
4489
4502
  "labelLineHeight": "lineHeight",
4490
- "labelMarginLeft": "size"
4503
+ "labelMarginLeft": "size",
4504
+ "inputOutlineOffset": "size"
4491
4505
  }
4492
4506
  },
4493
4507
  "required": false,
@@ -8192,6 +8206,7 @@
8192
8206
  "itemIconSize": "size",
8193
8207
  "itemLineHeight": "lineHeight",
8194
8208
  "listGutter": "size",
8209
+ "itemUnderline": "textLine",
8195
8210
  "backgroundColor": "color",
8196
8211
  "paddingLeft": "size",
8197
8212
  "paddingRight": "size",
@@ -8275,6 +8290,7 @@
8275
8290
  "itemIconSize": "size",
8276
8291
  "itemLineHeight": "lineHeight",
8277
8292
  "listGutter": "size",
8293
+ "itemUnderline": "textLine",
8278
8294
  "backgroundColor": "color",
8279
8295
  "paddingLeft": "size",
8280
8296
  "paddingRight": "size",
@@ -13347,7 +13363,14 @@
13347
13363
  "name": "custom",
13348
13364
  "raw": {
13349
13365
  "space": "integer",
13350
- "fieldSpace": "integer"
13366
+ "fieldSpace": "integer",
13367
+ "showIcon": "show",
13368
+ "outlineWidth": "border",
13369
+ "borderBottomLeftRadius": "radius",
13370
+ "borderBottomRightRadius": "radius",
13371
+ "borderTopLeftRadius": "radius",
13372
+ "borderTopRightRadius": "radius",
13373
+ "outlineOffset": "size"
13351
13374
  }
13352
13375
  },
13353
13376
  "required": false,
@@ -13379,7 +13402,8 @@
13379
13402
  "labelFontSize": "fontSize",
13380
13403
  "labelFontWeight": "fontWeight",
13381
13404
  "labelLineHeight": "lineHeight",
13382
- "labelMarginLeft": "size"
13405
+ "labelMarginLeft": "size",
13406
+ "inputOutlineOffset": "size"
13383
13407
  }
13384
13408
  },
13385
13409
  "required": false,
@@ -309,7 +309,12 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)((_ref11, ref) => {
309
309
  const themeTokens = resolveButtonTokens(pressableState);
310
310
  const containerStyles = selectInnerContainerStyles(themeTokens);
311
311
  const borderStyles = selectBorderStyles(themeTokens);
312
- const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text];
312
+ const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text, _Platform.default.select({
313
+ web: {
314
+ pointerEvents: 'none' // bubbles press event to parent `Pressable`
315
+
316
+ }
317
+ })];
313
318
  const iconTokens = selectItemIconTokens(themeTokens);
314
319
  const {
315
320
  iconSpace
@@ -327,6 +332,8 @@ const ButtonBase = /*#__PURE__*/(0, _react.forwardRef)((_ref11, ref) => {
327
332
  // ensure overflowing content wraps
328
333
  // TODO: https://github.com/telus/universal-design-system/issues/487
329
334
  transition: 'background-color 200ms, border-color 200ms',
335
+ pointerEvents: 'none',
336
+ // bubbles press event to parent `Pressable`
330
337
  ...rowStyles
331
338
  }
332
339
  })],
@@ -53,6 +53,7 @@ const selectInputStyles = (_ref, isChecked) => {
53
53
  inputHeight,
54
54
  inputOutlineColor,
55
55
  inputOutlineWidth,
56
+ inputOutlineOffset,
56
57
  inputShadow,
57
58
  inputWidth
58
59
  } = _ref;
@@ -68,7 +69,8 @@ const selectInputStyles = (_ref, isChecked) => {
68
69
  web: {
69
70
  outlineStyle: 'solid',
70
71
  outlineColor: inputOutlineColor,
71
- outlineWidth: inputOutlineWidth
72
+ outlineWidth: inputOutlineWidth,
73
+ outlineOffset: inputOutlineOffset
72
74
  }
73
75
  })
74
76
  };
@@ -104,7 +104,14 @@ const CheckboxGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
104
104
  const viewport = (0, _ViewportProvider.useViewport)();
105
105
  const {
106
106
  space,
107
- fieldSpace
107
+ fieldSpace,
108
+ showIcon,
109
+ outlineWidth,
110
+ borderTopLeftRadius,
111
+ borderTopRightRadius,
112
+ borderBottomLeftRadius,
113
+ borderBottomRightRadius,
114
+ outlineOffset
108
115
  } = (0, _ThemeProvider.useThemeTokens)('CheckboxGroup', tokens, variant, {
109
116
  viewport
110
117
  });
@@ -162,8 +169,16 @@ const CheckboxGroup = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
162
169
  feedback: feedback,
163
170
  inactive: inactive,
164
171
  validation: validation,
165
- showIcon: true,
166
172
  showErrorBorder: true,
173
+ tokens: {
174
+ outlineWidth,
175
+ borderTopLeftRadius,
176
+ borderTopRightRadius,
177
+ borderBottomLeftRadius,
178
+ borderBottomRightRadius,
179
+ outlineOffset
180
+ },
181
+ showIcon: showIcon,
167
182
  ...selectProps(rest),
168
183
  children: (0, _StackView.getStackedContent)(checkboxes, {
169
184
  space,
@@ -182,7 +182,6 @@ exports.default = _default;
182
182
  const staticStyles = _StyleSheet.default.create({
183
183
  title: {
184
184
  display: 'flex',
185
- flexDirection: 'row',
186
- alignItems: 'center'
185
+ flexDirection: 'row'
187
186
  }
188
187
  });
@@ -67,7 +67,10 @@ const ListItemContent = _ref2 => {
67
67
  } = (0, _ThemeProvider.useTheme)();
68
68
  const textStyles = selectItemTextStyles(tokens, themeOptions);
69
69
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
70
- style: staticStyles.wrap,
70
+ style: [staticStyles.wrap, (tokens === null || tokens === void 0 ? void 0 : tokens.itemUnderline) && {
71
+ textDecorationLine: tokens.itemUnderline,
72
+ textDecorationColor: tokens.itemFontColor
73
+ }],
71
74
  children: (0, _utils.wrapStringsInText)(children, {
72
75
  style: textStyles
73
76
  })
@@ -283,7 +283,12 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
283
283
  const themeTokens = resolveButtonTokens(pressableState);
284
284
  const containerStyles = selectInnerContainerStyles(themeTokens);
285
285
  const borderStyles = selectBorderStyles(themeTokens);
286
- const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text];
286
+ const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text, Platform.select({
287
+ web: {
288
+ pointerEvents: 'none' // bubbles press event to parent `Pressable`
289
+
290
+ }
291
+ })];
287
292
  const iconTokens = selectItemIconTokens(themeTokens);
288
293
  const {
289
294
  iconSpace
@@ -301,6 +306,8 @@ const ButtonBase = /*#__PURE__*/forwardRef((_ref11, ref) => {
301
306
  // ensure overflowing content wraps
302
307
  // TODO: https://github.com/telus/universal-design-system/issues/487
303
308
  transition: 'background-color 200ms, border-color 200ms',
309
+ pointerEvents: 'none',
310
+ // bubbles press event to parent `Pressable`
304
311
  ...rowStyles
305
312
  }
306
313
  })],
@@ -26,6 +26,7 @@ const selectInputStyles = (_ref, isChecked) => {
26
26
  inputHeight,
27
27
  inputOutlineColor,
28
28
  inputOutlineWidth,
29
+ inputOutlineOffset,
29
30
  inputShadow,
30
31
  inputWidth
31
32
  } = _ref;
@@ -41,7 +42,8 @@ const selectInputStyles = (_ref, isChecked) => {
41
42
  web: {
42
43
  outlineStyle: 'solid',
43
44
  outlineColor: inputOutlineColor,
44
- outlineWidth: inputOutlineWidth
45
+ outlineWidth: inputOutlineWidth,
46
+ outlineOffset: inputOutlineOffset
45
47
  }
46
48
  })
47
49
  };
@@ -81,7 +81,14 @@ const CheckboxGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
81
81
  const viewport = useViewport();
82
82
  const {
83
83
  space,
84
- fieldSpace
84
+ fieldSpace,
85
+ showIcon,
86
+ outlineWidth,
87
+ borderTopLeftRadius,
88
+ borderTopRightRadius,
89
+ borderBottomLeftRadius,
90
+ borderBottomRightRadius,
91
+ outlineOffset
85
92
  } = useThemeTokens('CheckboxGroup', tokens, variant, {
86
93
  viewport
87
94
  });
@@ -139,8 +146,16 @@ const CheckboxGroup = /*#__PURE__*/forwardRef((_ref, ref) => {
139
146
  feedback: feedback,
140
147
  inactive: inactive,
141
148
  validation: validation,
142
- showIcon: true,
143
149
  showErrorBorder: true,
150
+ tokens: {
151
+ outlineWidth,
152
+ borderTopLeftRadius,
153
+ borderTopRightRadius,
154
+ borderBottomLeftRadius,
155
+ borderBottomRightRadius,
156
+ outlineOffset
157
+ },
158
+ showIcon: showIcon,
144
159
  ...selectProps(rest),
145
160
  children: getStackedContent(checkboxes, {
146
161
  space,
@@ -159,7 +159,6 @@ export default Feedback;
159
159
  const staticStyles = StyleSheet.create({
160
160
  title: {
161
161
  display: 'flex',
162
- flexDirection: 'row',
163
- alignItems: 'center'
162
+ flexDirection: 'row'
164
163
  }
165
164
  });
@@ -50,7 +50,10 @@ const ListItemContent = _ref2 => {
50
50
  } = useTheme();
51
51
  const textStyles = selectItemTextStyles(tokens, themeOptions);
52
52
  return /*#__PURE__*/_jsx(View, {
53
- style: staticStyles.wrap,
53
+ style: [staticStyles.wrap, (tokens === null || tokens === void 0 ? void 0 : tokens.itemUnderline) && {
54
+ textDecorationLine: tokens.itemUnderline,
55
+ textDecorationColor: tokens.itemFontColor
56
+ }],
54
57
  children: wrapStringsInText(children, {
55
58
  style: textStyles
56
59
  })
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.39.0",
14
+ "@telus-uds/system-theme-tokens": "^2.40.0",
15
15
  "airbnb-prop-types": "^2.16.0",
16
16
  "lodash.debounce": "^4.0.8",
17
17
  "lodash.merge": "^4.6.2",
@@ -72,5 +72,5 @@
72
72
  "standard-engine": {
73
73
  "skip": true
74
74
  },
75
- "version": "1.56.0"
75
+ "version": "1.57.0"
76
76
  }
@@ -235,7 +235,15 @@ const ButtonBase = forwardRef(
235
235
  const themeTokens = resolveButtonTokens(pressableState)
236
236
  const containerStyles = selectInnerContainerStyles(themeTokens)
237
237
  const borderStyles = selectBorderStyles(themeTokens)
238
- const textStyles = [selectTextStyles(themeTokens, themeOptions), staticStyles.text]
238
+ const textStyles = [
239
+ selectTextStyles(themeTokens, themeOptions),
240
+ staticStyles.text,
241
+ Platform.select({
242
+ web: {
243
+ pointerEvents: 'none' // bubbles press event to parent `Pressable`
244
+ }
245
+ })
246
+ ]
239
247
  const iconTokens = selectItemIconTokens(themeTokens)
240
248
  const { iconSpace } = themeTokens
241
249
 
@@ -259,6 +267,7 @@ const ButtonBase = forwardRef(
259
267
  maxWidth: '100%', // ensure overflowing content wraps
260
268
  // TODO: https://github.com/telus/universal-design-system/issues/487
261
269
  transition: 'background-color 200ms, border-color 200ms',
270
+ pointerEvents: 'none', // bubbles press event to parent `Pressable`
262
271
  ...rowStyles
263
272
  }
264
273
  })
@@ -39,6 +39,7 @@ const selectInputStyles = (
39
39
  inputHeight,
40
40
  inputOutlineColor,
41
41
  inputOutlineWidth,
42
+ inputOutlineOffset,
42
43
  inputShadow,
43
44
  inputWidth
44
45
  },
@@ -55,7 +56,8 @@ const selectInputStyles = (
55
56
  web: {
56
57
  outlineStyle: 'solid',
57
58
  outlineColor: inputOutlineColor,
58
- outlineWidth: inputOutlineWidth
59
+ outlineWidth: inputOutlineWidth,
60
+ outlineOffset: inputOutlineOffset
59
61
  }
60
62
  })
61
63
  })
@@ -98,7 +98,17 @@ const CheckboxGroup = forwardRef(
98
98
  ) => {
99
99
  const viewport = useViewport()
100
100
 
101
- const { space, fieldSpace } = useThemeTokens('CheckboxGroup', tokens, variant, {
101
+ const {
102
+ space,
103
+ fieldSpace,
104
+ showIcon,
105
+ outlineWidth,
106
+ borderTopLeftRadius,
107
+ borderTopRightRadius,
108
+ borderBottomLeftRadius,
109
+ borderBottomRightRadius,
110
+ outlineOffset
111
+ } = useThemeTokens('CheckboxGroup', tokens, variant, {
102
112
  viewport
103
113
  })
104
114
 
@@ -152,8 +162,16 @@ const CheckboxGroup = forwardRef(
152
162
  feedback={feedback}
153
163
  inactive={inactive}
154
164
  validation={validation}
155
- showIcon
156
165
  showErrorBorder
166
+ tokens={{
167
+ outlineWidth,
168
+ borderTopLeftRadius,
169
+ borderTopRightRadius,
170
+ borderBottomLeftRadius,
171
+ borderBottomRightRadius,
172
+ outlineOffset
173
+ }}
174
+ showIcon={showIcon}
157
175
  {...selectProps(rest)}
158
176
  >
159
177
  {getStackedContent(checkboxes, { space, direction: 'column' })}
@@ -125,7 +125,6 @@ export default Feedback
125
125
  const staticStyles = StyleSheet.create({
126
126
  title: {
127
127
  display: 'flex',
128
- flexDirection: 'row',
129
- alignItems: 'center'
128
+ flexDirection: 'row'
130
129
  }
131
130
  })
@@ -37,7 +37,19 @@ const selectItemTextStyles = (
37
37
  const ListItemContent = ({ tokens, children }) => {
38
38
  const { themeOptions } = useTheme()
39
39
  const textStyles = selectItemTextStyles(tokens, themeOptions)
40
- return <View style={staticStyles.wrap}>{wrapStringsInText(children, { style: textStyles })}</View>
40
+ return (
41
+ <View
42
+ style={[
43
+ staticStyles.wrap,
44
+ tokens?.itemUnderline && {
45
+ textDecorationLine: tokens.itemUnderline,
46
+ textDecorationColor: tokens.itemFontColor
47
+ }
48
+ ]}
49
+ >
50
+ {wrapStringsInText(children, { style: textStyles })}
51
+ </View>
52
+ )
41
53
  }
42
54
 
43
55
  const staticStyles = StyleSheet.create({