@telus-uds/components-base 1.55.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,18 +1,51 @@
1
1
  # Change Log - @telus-uds/components-base
2
2
 
3
- This log was last generated on Fri, 14 Jul 2023 19:38:21 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
+
23
+ ## 1.56.0
24
+
25
+ Fri, 21 Jul 2023 00:51:24 GMT
26
+
27
+ ### Minor changes
28
+
29
+ - Rebranded Box for Koodo (wlsdud194@hotmail.com)
30
+ - Branch updated with rebase for components base (35577399+JoshHC@users.noreply.github.com)
31
+ - space of 4px added between the validation and the chevron icons for select component (35577399+JoshHC@users.noreply.github.com)
32
+ - fix content shifting issue in Card component (kyle.king2@telus.com)
33
+ - Bump @telus-uds/system-theme-tokens to v2.39.0
34
+
35
+ ### Patches
36
+
37
+ - fix stories for inverse variant icon (mauricio.batresmontejo@telus.com)
38
+ - rebrand inputlabel for koodo (mauricio.batresmontejo@telus.com)
39
+
7
40
  ## 1.55.0
8
41
 
9
- Fri, 14 Jul 2023 19:38:21 GMT
42
+ Fri, 14 Jul 2023 19:47:50 GMT
10
43
 
11
44
  ### Minor changes
12
45
 
13
46
  - Refactored IconButton to accomodate QuantitySelector standardization (wlsdud194@hotmail.com)
14
47
  - Fixed test data and introduced background color token to base component. (akshay.pandey1@telus.com)
15
- - Added use of CarouselThumbnail (kyle.king2@telus.com)
48
+ - Added use of CarouselThumbnail (kyle.king2@telus.com)
16
49
  - Bump @telus-uds/system-constants to v1.3.0
17
50
  - Bump @telus-uds/system-theme-tokens to v2.38.0
18
51
 
@@ -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",
@@ -1666,6 +1679,7 @@
1666
1679
  "animationPaddingBottomBefore": "size",
1667
1680
  "animationPaddingBottomAfter": "size",
1668
1681
  "animationPaddingTopBefore": "size",
1682
+ "padding": "size",
1669
1683
  "animationPaddingTopAfter": "size",
1670
1684
  "animationBackgroundColorBefore": "color",
1671
1685
  "animationBackgroundColorAfter": "color",
@@ -4486,7 +4500,8 @@
4486
4500
  "labelFontSize": "fontSize",
4487
4501
  "labelFontWeight": "fontWeight",
4488
4502
  "labelLineHeight": "lineHeight",
4489
- "labelMarginLeft": "size"
4503
+ "labelMarginLeft": "size",
4504
+ "inputOutlineOffset": "size"
4490
4505
  }
4491
4506
  },
4492
4507
  "required": false,
@@ -8191,6 +8206,7 @@
8191
8206
  "itemIconSize": "size",
8192
8207
  "itemLineHeight": "lineHeight",
8193
8208
  "listGutter": "size",
8209
+ "itemUnderline": "textLine",
8194
8210
  "backgroundColor": "color",
8195
8211
  "paddingLeft": "size",
8196
8212
  "paddingRight": "size",
@@ -8274,6 +8290,7 @@
8274
8290
  "itemIconSize": "size",
8275
8291
  "itemLineHeight": "lineHeight",
8276
8292
  "listGutter": "size",
8293
+ "itemUnderline": "textLine",
8277
8294
  "backgroundColor": "color",
8278
8295
  "paddingLeft": "size",
8279
8296
  "paddingRight": "size",
@@ -13346,7 +13363,14 @@
13346
13363
  "name": "custom",
13347
13364
  "raw": {
13348
13365
  "space": "integer",
13349
- "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"
13350
13374
  }
13351
13375
  },
13352
13376
  "required": false,
@@ -13378,7 +13402,8 @@
13378
13402
  "labelFontSize": "fontSize",
13379
13403
  "labelFontWeight": "fontWeight",
13380
13404
  "labelLineHeight": "lineHeight",
13381
- "labelMarginLeft": "size"
13405
+ "labelMarginLeft": "size",
13406
+ "inputOutlineOffset": "size"
13382
13407
  }
13383
13408
  },
13384
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
  });
@@ -100,7 +100,8 @@ const InputLabel = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {
100
100
  children: hint
101
101
  }), hasTooltip && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
102
102
  style: [staticStyles.tooltipAlign, {
103
- height: themeTokens.fontSize * themeTokens.lineHeight
103
+ height: themeTokens.fontSize * themeTokens.lineHeight,
104
+ color: themeTokens.color
104
105
  }],
105
106
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
106
107
  content: tooltip,
@@ -53,9 +53,9 @@ const selectOuterBorderStyles = _ref => {
53
53
  ...(0, _ThemeProvider.applyOuterBorder)({
54
54
  outerBorderColor,
55
55
  outerBorderWidth,
56
- outerBorderGap,
57
- borderRadius
58
- })
56
+ outerBorderGap
57
+ }),
58
+ borderRadius
59
59
  } : {}
60
60
  );
61
61
  };
@@ -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
  })
@@ -143,7 +143,8 @@ const selectIconContainerStyles = _ref4 => {
143
143
  paddingBottom
144
144
  } = _ref4;
145
145
  return {
146
- paddingRight,
146
+ paddingRight: paddingRight + 4,
147
+ marginRight: -4,
147
148
  paddingBottom
148
149
  };
149
150
  };
@@ -167,7 +168,7 @@ const selectValidationIconContainerStyles = _ref6 => {
167
168
  paddingBottom
168
169
  } = _ref6;
169
170
  return {
170
- paddingRight: icon ? paddingRight + iconSize : paddingRight,
171
+ paddingRight: icon ? paddingRight + iconSize + 4 : paddingRight,
171
172
  ...(_Platform.default.OS === 'android' ? {
172
173
  paddingBottom: paddingBottom + _constants.ANDROID_VALIDATION_ICON_CONTAINER_OFFSET
173
174
  } : {
@@ -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
  });
@@ -79,7 +79,8 @@ const InputLabel = /*#__PURE__*/forwardRef((_ref3, ref) => {
79
79
  children: hint
80
80
  }), hasTooltip && /*#__PURE__*/_jsx(View, {
81
81
  style: [staticStyles.tooltipAlign, {
82
- height: themeTokens.fontSize * themeTokens.lineHeight
82
+ height: themeTokens.fontSize * themeTokens.lineHeight,
83
+ color: themeTokens.color
83
84
  }],
84
85
  children: /*#__PURE__*/_jsx(Tooltip, {
85
86
  content: tooltip,
@@ -28,9 +28,9 @@ const selectOuterBorderStyles = _ref => {
28
28
  ...applyOuterBorder({
29
29
  outerBorderColor,
30
30
  outerBorderWidth,
31
- outerBorderGap,
32
- borderRadius
33
- })
31
+ outerBorderGap
32
+ }),
33
+ borderRadius
34
34
  } : {}
35
35
  );
36
36
  };
@@ -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
  })
@@ -118,7 +118,8 @@ const selectIconContainerStyles = _ref4 => {
118
118
  paddingBottom
119
119
  } = _ref4;
120
120
  return {
121
- paddingRight,
121
+ paddingRight: paddingRight + 4,
122
+ marginRight: -4,
122
123
  paddingBottom
123
124
  };
124
125
  };
@@ -142,7 +143,7 @@ const selectValidationIconContainerStyles = _ref6 => {
142
143
  paddingBottom
143
144
  } = _ref6;
144
145
  return {
145
- paddingRight: icon ? paddingRight + iconSize : paddingRight,
146
+ paddingRight: icon ? paddingRight + iconSize + 4 : paddingRight,
146
147
  ...(Platform.OS === 'android' ? {
147
148
  paddingBottom: paddingBottom + ANDROID_VALIDATION_ICON_CONTAINER_OFFSET
148
149
  } : {
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.38.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.55.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
  })
@@ -86,7 +86,10 @@ const InputLabel = forwardRef(
86
86
  <View
87
87
  style={[
88
88
  staticStyles.tooltipAlign,
89
- { height: themeTokens.fontSize * themeTokens.lineHeight }
89
+ {
90
+ height: themeTokens.fontSize * themeTokens.lineHeight,
91
+ color: themeTokens.color
92
+ }
90
93
  ]}
91
94
  >
92
95
  <Tooltip content={tooltip} copy={copy} />
@@ -36,9 +36,9 @@ const selectOuterBorderStyles = ({
36
36
  ...applyOuterBorder({
37
37
  outerBorderColor,
38
38
  outerBorderWidth,
39
- outerBorderGap,
40
- borderRadius
41
- })
39
+ outerBorderGap
40
+ }),
41
+ borderRadius
42
42
  }
43
43
  : {}
44
44
 
@@ -156,7 +156,6 @@ const LinkBase = forwardRef(
156
156
  const themeTokens = resolveLinkTokens(linkState)
157
157
  const outerBorderStyles = selectOuterBorderStyles(themeTokens)
158
158
  const decorationStyles = selectDecorationStyles(themeTokens)
159
-
160
159
  return [
161
160
  outerBorderStyles,
162
161
  blockLeftStyle,
@@ -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({
@@ -119,7 +119,8 @@ const selectIconTokens = ({ iconSize, iconColor }) => ({
119
119
  })
120
120
 
121
121
  const selectIconContainerStyles = ({ paddingRight, paddingBottom }) => ({
122
- paddingRight,
122
+ paddingRight: paddingRight + 4,
123
+ marginRight: -4,
123
124
  paddingBottom
124
125
  })
125
126
 
@@ -134,7 +135,7 @@ const selectValidationIconContainerStyles = ({
134
135
  paddingRight = 0,
135
136
  paddingBottom
136
137
  }) => ({
137
- paddingRight: icon ? paddingRight + iconSize : paddingRight,
138
+ paddingRight: icon ? paddingRight + iconSize + 4 : paddingRight,
138
139
  ...(Platform.OS === 'android'
139
140
  ? {
140
141
  paddingBottom: paddingBottom + ANDROID_VALIDATION_ICON_CONTAINER_OFFSET