@telus-uds/components-base 1.90.0 → 1.91.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,25 @@
1
1
  # Change Log - @telus-uds/components-base
2
2
 
3
- This log was last generated on Fri, 26 Jul 2024 21:17:56 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 12 Aug 2024 06:26:58 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.91.0
8
+
9
+ Mon, 12 Aug 2024 06:26:58 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - OrderedList: add itemTextColor token and pass tokens down to children (jacqui.koroll@telus.com)
14
+ - Bump @telus-uds/system-theme-tokens to v2.61.0
15
+
16
+ ### Patches
17
+
18
+ - `TextInputBase`: Update padding logic for TextInput component based on icon and buttons presence (jaime.tuyuc@telus.com)
19
+
7
20
  ## 1.90.0
8
21
 
9
- Fri, 26 Jul 2024 21:17:56 GMT
22
+ Fri, 26 Jul 2024 21:24:32 GMT
10
23
 
11
24
  ### Minor changes
12
25
 
@@ -21,13 +21,14 @@ const selectItemTextStyles = (_ref, themeOptions) => {
21
21
  itemFontSize,
22
22
  itemLineHeight,
23
23
  itemFontName,
24
- itemColor
24
+ itemColor,
25
+ itemTextColor
25
26
  } = _ref;
26
27
  return (0, _ThemeProvider.applyTextStyles)({
27
28
  fontWeight: itemFontHeight,
28
29
  fontSize: itemFontSize,
29
30
  fontName: itemFontName,
30
- color: itemColor,
31
+ color: itemColor || itemTextColor,
31
32
  themeOptions,
32
33
  lineHeight: itemLineHeight
33
34
  });
@@ -41,10 +42,11 @@ const selectItemCounterStyles = _ref2 => {
41
42
  itemFontName,
42
43
  itemLineHeight,
43
44
  themeOptions,
44
- itemColor
45
+ itemColor,
46
+ itemTextColor
45
47
  } = _ref2;
46
48
  return {
47
- color: itemColor,
49
+ color: itemColor || itemTextColor,
48
50
  width: itemBulletContainerWidth,
49
51
  textAlign: itemBulletTextAlign,
50
52
  ...(0, _ThemeProvider.applyTextStyles)({
@@ -82,7 +84,7 @@ const Item = /*#__PURE__*/_react.default.forwardRef((_ref4, ref) => {
82
84
  const headingTokens = title && {
83
85
  lineHeight: themeTokens.itemLineHeight,
84
86
  fontSize: themeTokens.itemFontSize,
85
- color: themeTokens.itemColor,
87
+ color: themeTokens.itemColor || themeTokens.itemTextColor,
86
88
  fontName: themeTokens.headerFontName,
87
89
  fontWeight: themeTokens.headerFontWeight
88
90
  };
@@ -17,29 +17,36 @@ const OrderedList = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
17
17
  children,
18
18
  start = 1,
19
19
  variant = {},
20
+ tokens = {},
20
21
  ...rest
21
22
  } = _ref;
23
+ // Pass any variants and tokens "OrderedList" receives down to the individual list items.
22
24
  const childrenWithParentVariants = _react.default.useMemo(() => {
23
- const addVariantToProps = (child, i, isLastChild) => {
24
- var _child$props;
25
+ const addVariantAndTokensToProps = (child, i, isLastChild) => {
26
+ var _child$props, _child$props2;
25
27
  const existingChildVariants = ((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.variant) ?? {};
28
+ const existingChildTokens = ((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.tokens) ?? {};
26
29
  return /*#__PURE__*/_react.default.cloneElement(child, {
27
30
  index: start + i,
28
31
  isLastChild,
29
32
  variant: {
30
33
  ...existingChildVariants,
31
34
  ...variant
35
+ },
36
+ tokens: {
37
+ ...existingChildTokens,
38
+ ...tokens
32
39
  }
33
40
  });
34
41
  };
35
- if (variant) {
42
+ if (variant || tokens) {
36
43
  if (Array.isArray(children)) {
37
- return children.map((child, i) => addVariantToProps(child, i, i === children.length - 1));
44
+ return children.map((child, i) => addVariantAndTokensToProps(child, i, i === children.length - 1));
38
45
  }
39
- return [addVariantToProps(children, 0, true)];
46
+ return [addVariantAndTokensToProps(children, 0, true)];
40
47
  }
41
48
  return children;
42
- }, [children, variant, start]);
49
+ }, [children, variant, start, tokens]);
43
50
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrderedListBase.default, {
44
51
  ref: ref,
45
52
  ...selectProps(rest),
@@ -56,7 +63,8 @@ OrderedList.propTypes = {
56
63
  * The position to start the list with.
57
64
  */
58
65
  start: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
59
- variant: _utils.variantProp.propType
66
+ variant: _utils.variantProp.propType,
67
+ tokens: (0, _utils.getTokensPropType)('OrderedList')
60
68
  };
61
69
  OrderedList.displayName = 'OrderedList';
62
70
  OrderedList.Item = _Item.default;
@@ -19,7 +19,7 @@ var _dictionary = _interopRequireDefault(require("./dictionary"));
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
  const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.a11yProps, _utils.textInputHandlerProps, _utils.textInputProps, _utils.viewProps]);
22
- const selectInputStyles = (_ref, themeOptions, inactive, type) => {
22
+ const selectInputStyles = function (_ref, themeOptions, inactive, type) {
23
23
  let {
24
24
  backgroundColor,
25
25
  color,
@@ -35,12 +35,15 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
35
35
  fontWeight,
36
36
  lineHeight,
37
37
  icon,
38
- iconSize = 0,
39
38
  minLines,
40
39
  maxLines,
41
40
  width,
42
41
  height
43
42
  } = _ref;
43
+ let buttonCount = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
44
+ let buttonSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
45
+ let buttonsGapSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
46
+ let isPassword = arguments.length > 7 ? arguments[7] : undefined;
44
47
  // Subtract border width from padding so overall input width/height doesn't
45
48
  // jump around if the border width changes (avoiding NaN and negative padding)
46
49
  const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
@@ -67,7 +70,10 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
67
70
  }
68
71
  });
69
72
 
70
- const paddingWithIcon = iconSize + paddingRight;
73
+ const buttonSpacing = isPassword ? buttonsGapSize : -buttonsGapSize;
74
+ const adjustedPaddingRight = paddingRight + (buttonCount ? 1 : 0) * (buttonSize + buttonSpacing);
75
+ const adjustedPaddingWithButtons = buttonCount > 1 ? paddingRight : adjustedPaddingRight;
76
+ const paddingWithIcon = buttonSize + adjustedPaddingRight;
71
77
  return {
72
78
  backgroundColor,
73
79
  color,
@@ -75,7 +81,7 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
75
81
  borderColor,
76
82
  borderRadius,
77
83
  paddingLeft: type === 'card' ? offsetBorder(paddingLeft + 34) : offsetBorder(paddingLeft),
78
- paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
84
+ paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(adjustedPaddingWithButtons),
79
85
  paddingTop: offsetBorder(paddingTop),
80
86
  paddingBottom: offsetBorder(paddingBottom),
81
87
  minHeight,
@@ -343,7 +349,7 @@ const TextInputBase = /*#__PURE__*/_react.default.forwardRef((_ref7, ref) => {
343
349
  const nativeInputStyle = selectInputStyles({
344
350
  ...themeTokens,
345
351
  height
346
- }, themeOptions, inactive, type);
352
+ }, themeOptions, inactive, type, buttons === null || buttons === void 0 ? void 0 : buttons.length, themeTokens.buttonSize, buttonsGapSize, isPassword);
347
353
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
348
354
  style: selectOuterBorderStyles(themeTokens),
349
355
  children: [type === 'card' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -15,13 +15,14 @@ const selectItemTextStyles = (_ref, themeOptions) => {
15
15
  itemFontSize,
16
16
  itemLineHeight,
17
17
  itemFontName,
18
- itemColor
18
+ itemColor,
19
+ itemTextColor
19
20
  } = _ref;
20
21
  return applyTextStyles({
21
22
  fontWeight: itemFontHeight,
22
23
  fontSize: itemFontSize,
23
24
  fontName: itemFontName,
24
- color: itemColor,
25
+ color: itemColor || itemTextColor,
25
26
  themeOptions,
26
27
  lineHeight: itemLineHeight
27
28
  });
@@ -35,10 +36,11 @@ const selectItemCounterStyles = _ref2 => {
35
36
  itemFontName,
36
37
  itemLineHeight,
37
38
  themeOptions,
38
- itemColor
39
+ itemColor,
40
+ itemTextColor
39
41
  } = _ref2;
40
42
  return {
41
- color: itemColor,
43
+ color: itemColor || itemTextColor,
42
44
  width: itemBulletContainerWidth,
43
45
  textAlign: itemBulletTextAlign,
44
46
  ...applyTextStyles({
@@ -76,7 +78,7 @@ const Item = /*#__PURE__*/React.forwardRef((_ref4, ref) => {
76
78
  const headingTokens = title && {
77
79
  lineHeight: themeTokens.itemLineHeight,
78
80
  fontSize: themeTokens.itemFontSize,
79
- color: themeTokens.itemColor,
81
+ color: themeTokens.itemColor || themeTokens.itemTextColor,
80
82
  fontName: themeTokens.headerFontName,
81
83
  fontWeight: themeTokens.headerFontWeight
82
84
  };
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { htmlAttrs, selectSystemProps, variantProp, viewProps } from '../utils';
3
+ import { htmlAttrs, selectSystemProps, variantProp, viewProps, getTokensPropType } from '../utils';
4
4
  import OrderedListBase from './OrderedListBase';
5
5
  import Item from './Item';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -10,29 +10,36 @@ const OrderedList = /*#__PURE__*/React.forwardRef((_ref, ref) => {
10
10
  children,
11
11
  start = 1,
12
12
  variant = {},
13
+ tokens = {},
13
14
  ...rest
14
15
  } = _ref;
16
+ // Pass any variants and tokens "OrderedList" receives down to the individual list items.
15
17
  const childrenWithParentVariants = React.useMemo(() => {
16
- const addVariantToProps = (child, i, isLastChild) => {
17
- var _child$props;
18
+ const addVariantAndTokensToProps = (child, i, isLastChild) => {
19
+ var _child$props, _child$props2;
18
20
  const existingChildVariants = ((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.variant) ?? {};
21
+ const existingChildTokens = ((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.tokens) ?? {};
19
22
  return /*#__PURE__*/React.cloneElement(child, {
20
23
  index: start + i,
21
24
  isLastChild,
22
25
  variant: {
23
26
  ...existingChildVariants,
24
27
  ...variant
28
+ },
29
+ tokens: {
30
+ ...existingChildTokens,
31
+ ...tokens
25
32
  }
26
33
  });
27
34
  };
28
- if (variant) {
35
+ if (variant || tokens) {
29
36
  if (Array.isArray(children)) {
30
- return children.map((child, i) => addVariantToProps(child, i, i === children.length - 1));
37
+ return children.map((child, i) => addVariantAndTokensToProps(child, i, i === children.length - 1));
31
38
  }
32
- return [addVariantToProps(children, 0, true)];
39
+ return [addVariantAndTokensToProps(children, 0, true)];
33
40
  }
34
41
  return children;
35
- }, [children, variant, start]);
42
+ }, [children, variant, start, tokens]);
36
43
  return /*#__PURE__*/_jsx(OrderedListBase, {
37
44
  ref: ref,
38
45
  ...selectProps(rest),
@@ -49,7 +56,8 @@ OrderedList.propTypes = {
49
56
  * The position to start the list with.
50
57
  */
51
58
  start: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
52
- variant: variantProp.propType
59
+ variant: variantProp.propType,
60
+ tokens: getTokensPropType('OrderedList')
53
61
  };
54
62
  OrderedList.displayName = 'OrderedList';
55
63
  OrderedList.Item = Item;
@@ -13,7 +13,7 @@ import dictionary from './dictionary';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
15
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, textInputHandlerProps, textInputProps, viewProps]);
16
- const selectInputStyles = (_ref, themeOptions, inactive, type) => {
16
+ const selectInputStyles = function (_ref, themeOptions, inactive, type) {
17
17
  let {
18
18
  backgroundColor,
19
19
  color,
@@ -29,12 +29,15 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
29
29
  fontWeight,
30
30
  lineHeight,
31
31
  icon,
32
- iconSize = 0,
33
32
  minLines,
34
33
  maxLines,
35
34
  width,
36
35
  height
37
36
  } = _ref;
37
+ let buttonCount = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
38
+ let buttonSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
39
+ let buttonsGapSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
40
+ let isPassword = arguments.length > 7 ? arguments[7] : undefined;
38
41
  // Subtract border width from padding so overall input width/height doesn't
39
42
  // jump around if the border width changes (avoiding NaN and negative padding)
40
43
  const offsetBorder = value => typeof value === 'number' ? Math.max(0, value - borderWidth) : value;
@@ -61,7 +64,10 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
61
64
  }
62
65
  });
63
66
 
64
- const paddingWithIcon = iconSize + paddingRight;
67
+ const buttonSpacing = isPassword ? buttonsGapSize : -buttonsGapSize;
68
+ const adjustedPaddingRight = paddingRight + (buttonCount ? 1 : 0) * (buttonSize + buttonSpacing);
69
+ const adjustedPaddingWithButtons = buttonCount > 1 ? paddingRight : adjustedPaddingRight;
70
+ const paddingWithIcon = buttonSize + adjustedPaddingRight;
65
71
  return {
66
72
  backgroundColor,
67
73
  color,
@@ -69,7 +75,7 @@ const selectInputStyles = (_ref, themeOptions, inactive, type) => {
69
75
  borderColor,
70
76
  borderRadius,
71
77
  paddingLeft: type === 'card' ? offsetBorder(paddingLeft + 34) : offsetBorder(paddingLeft),
72
- paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
78
+ paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(adjustedPaddingWithButtons),
73
79
  paddingTop: offsetBorder(paddingTop),
74
80
  paddingBottom: offsetBorder(paddingBottom),
75
81
  minHeight,
@@ -337,7 +343,7 @@ const TextInputBase = /*#__PURE__*/React.forwardRef((_ref7, ref) => {
337
343
  const nativeInputStyle = selectInputStyles({
338
344
  ...themeTokens,
339
345
  height
340
- }, themeOptions, inactive, type);
346
+ }, themeOptions, inactive, type, buttons === null || buttons === void 0 ? void 0 : buttons.length, themeTokens.buttonSize, buttonsGapSize, isPassword);
341
347
  return /*#__PURE__*/_jsxs(View, {
342
348
  style: selectOuterBorderStyles(themeTokens),
343
349
  children: [type === 'card' && /*#__PURE__*/_jsx(View, {
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.60.0",
14
+ "@telus-uds/system-theme-tokens": "^2.61.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.90.0",
88
+ "version": "1.91.0",
89
89
  "types": "types/index.d.ts"
90
90
  }
@@ -17,14 +17,14 @@ import ItemBase from './ItemBase'
17
17
  const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs, viewProps])
18
18
 
19
19
  const selectItemTextStyles = (
20
- { itemFontHeight, itemFontSize, itemLineHeight, itemFontName, itemColor },
20
+ { itemFontHeight, itemFontSize, itemLineHeight, itemFontName, itemColor, itemTextColor },
21
21
  themeOptions
22
22
  ) =>
23
23
  applyTextStyles({
24
24
  fontWeight: itemFontHeight,
25
25
  fontSize: itemFontSize,
26
26
  fontName: itemFontName,
27
- color: itemColor,
27
+ color: itemColor || itemTextColor,
28
28
  themeOptions,
29
29
  lineHeight: itemLineHeight
30
30
  })
@@ -37,9 +37,10 @@ const selectItemCounterStyles = ({
37
37
  itemFontName,
38
38
  itemLineHeight,
39
39
  themeOptions,
40
- itemColor
40
+ itemColor,
41
+ itemTextColor
41
42
  }) => ({
42
- color: itemColor,
43
+ color: itemColor || itemTextColor,
43
44
  width: itemBulletContainerWidth,
44
45
  textAlign: itemBulletTextAlign,
45
46
  ...applyTextStyles({
@@ -63,7 +64,7 @@ const Item = React.forwardRef(
63
64
  const headingTokens = title && {
64
65
  lineHeight: themeTokens.itemLineHeight,
65
66
  fontSize: themeTokens.itemFontSize,
66
- color: themeTokens.itemColor,
67
+ color: themeTokens.itemColor || themeTokens.itemTextColor,
67
68
  fontName: themeTokens.headerFontName,
68
69
  fontWeight: themeTokens.headerFontWeight
69
70
  }
@@ -1,39 +1,47 @@
1
1
  import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
 
4
- import { htmlAttrs, selectSystemProps, variantProp, viewProps } from '../utils'
4
+ import { htmlAttrs, selectSystemProps, variantProp, viewProps, getTokensPropType } from '../utils'
5
5
  import OrderedListBase from './OrderedListBase'
6
6
  import Item from './Item'
7
7
 
8
8
  const [selectProps, selectedSystemPropsTypes] = selectSystemProps([htmlAttrs, viewProps])
9
9
 
10
- const OrderedList = React.forwardRef(({ children, start = 1, variant = {}, ...rest }, ref) => {
11
- const childrenWithParentVariants = React.useMemo(() => {
12
- const addVariantToProps = (child, i, isLastChild) => {
13
- const existingChildVariants = child.props?.variant ?? {}
14
- return React.cloneElement(child, {
15
- index: start + i,
16
- isLastChild,
17
- variant: { ...existingChildVariants, ...variant }
18
- })
19
- }
20
-
21
- if (variant) {
22
- if (Array.isArray(children)) {
23
- return children.map((child, i) => addVariantToProps(child, i, i === children.length - 1))
10
+ const OrderedList = React.forwardRef(
11
+ ({ children, start = 1, variant = {}, tokens = {}, ...rest }, ref) => {
12
+ // Pass any variants and tokens "OrderedList" receives down to the individual list items.
13
+ const childrenWithParentVariants = React.useMemo(() => {
14
+ const addVariantAndTokensToProps = (child, i, isLastChild) => {
15
+ const existingChildVariants = child.props?.variant ?? {}
16
+ const existingChildTokens = child.props?.tokens ?? {}
17
+
18
+ return React.cloneElement(child, {
19
+ index: start + i,
20
+ isLastChild,
21
+ variant: { ...existingChildVariants, ...variant },
22
+ tokens: { ...existingChildTokens, ...tokens }
23
+ })
24
+ }
25
+
26
+ if (variant || tokens) {
27
+ if (Array.isArray(children)) {
28
+ return children.map((child, i) =>
29
+ addVariantAndTokensToProps(child, i, i === children.length - 1)
30
+ )
31
+ }
32
+ return [addVariantAndTokensToProps(children, 0, true)]
24
33
  }
25
- return [addVariantToProps(children, 0, true)]
26
- }
27
34
 
28
- return children
29
- }, [children, variant, start])
35
+ return children
36
+ }, [children, variant, start, tokens])
30
37
 
31
- return (
32
- <OrderedListBase ref={ref} {...selectProps(rest)}>
33
- {childrenWithParentVariants}
34
- </OrderedListBase>
35
- )
36
- })
38
+ return (
39
+ <OrderedListBase ref={ref} {...selectProps(rest)}>
40
+ {childrenWithParentVariants}
41
+ </OrderedListBase>
42
+ )
43
+ }
44
+ )
37
45
 
38
46
  OrderedList.propTypes = {
39
47
  ...selectedSystemPropsTypes,
@@ -45,7 +53,8 @@ OrderedList.propTypes = {
45
53
  * The position to start the list with.
46
54
  */
47
55
  start: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
48
- variant: variantProp.propType
56
+ variant: variantProp.propType,
57
+ tokens: getTokensPropType('OrderedList')
49
58
  }
50
59
 
51
60
  OrderedList.displayName = 'OrderedList'
@@ -42,7 +42,6 @@ const selectInputStyles = (
42
42
  fontWeight,
43
43
  lineHeight,
44
44
  icon,
45
- iconSize = 0,
46
45
  minLines,
47
46
  maxLines,
48
47
  width,
@@ -50,7 +49,11 @@ const selectInputStyles = (
50
49
  },
51
50
  themeOptions,
52
51
  inactive,
53
- type
52
+ type,
53
+ buttonCount = 0,
54
+ buttonSize = 0,
55
+ buttonsGapSize = 0,
56
+ isPassword
54
57
  ) => {
55
58
  // Subtract border width from padding so overall input width/height doesn't
56
59
  // jump around if the border width changes (avoiding NaN and negative padding)
@@ -82,7 +85,10 @@ const selectInputStyles = (
82
85
  }
83
86
  })
84
87
 
85
- const paddingWithIcon = iconSize + paddingRight
88
+ const buttonSpacing = isPassword ? buttonsGapSize : -buttonsGapSize
89
+ const adjustedPaddingRight = paddingRight + (buttonCount ? 1 : 0) * (buttonSize + buttonSpacing)
90
+ const adjustedPaddingWithButtons = buttonCount > 1 ? paddingRight : adjustedPaddingRight
91
+ const paddingWithIcon = buttonSize + adjustedPaddingRight
86
92
 
87
93
  return {
88
94
  backgroundColor,
@@ -91,7 +97,7 @@ const selectInputStyles = (
91
97
  borderColor,
92
98
  borderRadius,
93
99
  paddingLeft: type === 'card' ? offsetBorder(paddingLeft + 34) : offsetBorder(paddingLeft),
94
- paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(paddingRight),
100
+ paddingRight: icon ? offsetBorder(paddingWithIcon) : offsetBorder(adjustedPaddingWithButtons),
95
101
  paddingTop: offsetBorder(paddingTop),
96
102
  paddingBottom: offsetBorder(paddingBottom),
97
103
  minHeight,
@@ -321,7 +327,11 @@ const TextInputBase = React.forwardRef(
321
327
  { ...themeTokens, height },
322
328
  themeOptions,
323
329
  inactive,
324
- type
330
+ type,
331
+ buttons?.length,
332
+ themeTokens.buttonSize,
333
+ buttonsGapSize,
334
+ isPassword
325
335
  )
326
336
 
327
337
  return (