@invoicebox/ui 0.1.0-alpha.307 → 0.1.0-alpha.309

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.
Files changed (27) hide show
  1. package/dist/components/form/Autocomplete/components/Autocomplete/styles.js +1 -1
  2. package/dist/components/form/DateInput/index.js +2 -1
  3. package/dist/components/form/DateTimeInput/index.js +2 -1
  4. package/dist/components/form/ModernPlaceholder/index.d.ts +1 -0
  5. package/dist/components/form/ModernPlaceholder/index.js +4 -1
  6. package/dist/components/form/ModernPlaceholder/styles.d.ts +2 -0
  7. package/dist/components/form/ModernPlaceholder/styles.js +18 -11
  8. package/dist/components/form/PureInput/styles.js +1 -1
  9. package/dist/components/form/SearchInput/index.js +2 -1
  10. package/dist/components/form/Select/components/Input/index.js +2 -1
  11. package/dist/components/form/TextInput/index.js +12 -2
  12. package/dist/components/form/_hooks/useElementWidth.d.ts +5 -0
  13. package/dist/components/form/_hooks/useElementWidth.js +39 -0
  14. package/dist/components/form/_hooks/useInputStyles.d.ts +2 -1
  15. package/dist/components/form/_hooks/useInputStyles.js +3 -1
  16. package/dist/esm/components/form/Autocomplete/components/Autocomplete/styles.js +1 -1
  17. package/dist/esm/components/form/DateInput/index.js +2 -1
  18. package/dist/esm/components/form/DateTimeInput/index.js +2 -1
  19. package/dist/esm/components/form/ModernPlaceholder/index.js +4 -1
  20. package/dist/esm/components/form/ModernPlaceholder/styles.js +17 -10
  21. package/dist/esm/components/form/PureInput/styles.js +1 -1
  22. package/dist/esm/components/form/SearchInput/index.js +2 -1
  23. package/dist/esm/components/form/Select/components/Input/index.js +2 -1
  24. package/dist/esm/components/form/TextInput/index.js +12 -2
  25. package/dist/esm/components/form/_hooks/useElementWidth.js +33 -0
  26. package/dist/esm/components/form/_hooks/useInputStyles.js +3 -1
  27. package/package.json +1 -1
@@ -9,7 +9,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default":
9
9
  var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
10
10
  displayName: "styles__Wrapper",
11
11
  componentId: "sc-1fp3ia8-0"
12
- })(["position:relative;box-sizing:border-box;"]);
12
+ })(["position:relative;box-sizing:border-box;width:100%;"]);
13
13
  var OptionContainer = exports.OptionContainer = _styledComponents["default"].div.withConfig({
14
14
  displayName: "styles__OptionContainer",
15
15
  componentId: "sc-1fp3ia8-1"
@@ -87,7 +87,8 @@ var DateInput = exports.DateInput = function DateInput(_ref) {
87
87
  inFocus: inFocus,
88
88
  placeholder: placeholder,
89
89
  conditionHideModernPlaceholder: isOpen,
90
- required: required
90
+ required: required,
91
+ paddingRight: 44
91
92
  }),
92
93
  inputLabel = _useInputStyles.inputLabel,
93
94
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -98,7 +98,8 @@ var DateTimeInput = exports.DateTimeInput = function DateTimeInput(_ref) {
98
98
  inFocus: inFocus,
99
99
  placeholder: placeholder,
100
100
  conditionHideModernPlaceholder: isOpen,
101
- required: required
101
+ required: required,
102
+ paddingRight: 44
102
103
  }),
103
104
  inputLabel = _useInputStyles.inputLabel,
104
105
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -3,6 +3,7 @@ import { TSizes } from '../constants';
3
3
  type TProps = {
4
4
  visible: boolean;
5
5
  paddingLeft?: number;
6
+ paddingRight?: number;
6
7
  paddingTop: number;
7
8
  size: TSizes;
8
9
  required?: boolean;
@@ -16,6 +16,8 @@ var ModernPlaceholder = exports.ModernPlaceholder = function ModernPlaceholder(_
16
16
  var visible = _ref.visible,
17
17
  _ref$paddingLeft = _ref.paddingLeft,
18
18
  paddingLeft = _ref$paddingLeft === void 0 ? 20 : _ref$paddingLeft,
19
+ _ref$paddingRight = _ref.paddingRight,
20
+ paddingRight = _ref$paddingRight === void 0 ? 12 : _ref$paddingRight,
19
21
  paddingTop = _ref.paddingTop,
20
22
  size = _ref.size,
21
23
  _ref$required = _ref.required,
@@ -27,9 +29,10 @@ var ModernPlaceholder = exports.ModernPlaceholder = function ModernPlaceholder(_
27
29
  variant: _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].variant,
28
30
  $visible: visible,
29
31
  $paddingLeft: paddingLeft,
32
+ $paddingRight: paddingRight,
30
33
  $paddingTop: paddingTop,
31
34
  $color: pureInputPalette.placeholder
32
- }, children, required && /*#__PURE__*/_react["default"].createElement(S.Star, {
35
+ }, /*#__PURE__*/_react["default"].createElement(S.TextContent, null, children), required && /*#__PURE__*/_react["default"].createElement(S.Star, {
33
36
  $color: inputLabelPalette.error
34
37
  }, "*"));
35
38
  };
@@ -2,9 +2,11 @@
2
2
  export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, {
3
3
  $visible: boolean;
4
4
  $paddingLeft: number;
5
+ $paddingRight: number;
5
6
  $paddingTop: number;
6
7
  $color: string;
7
8
  }>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
+ export declare const TextContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
8
10
  export declare const Star: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
9
11
  $color: string;
10
12
  }>> & string;
@@ -3,33 +3,40 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Wrapper = exports.Star = void 0;
6
+ exports.Wrapper = exports.TextContent = exports.Star = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  var _Typography = require("../../common/Typography");
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
10
  var Wrapper = exports.Wrapper = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
11
11
  displayName: "styles__Wrapper",
12
12
  componentId: "sc-1f4olgp-0"
13
- })(["position:absolute;top:0;left:0;right:0;padding-left:", "px;padding-top:", "px;pointer-events:none;z-index:1;display:flex;align-items:flex-start;white-space:nowrap;overflow:hidden;opacity:", ";transform:translateY(", ");transition:opacity 0.15s ease,transform 0.15s ease;color:", ";"], function (_ref) {
13
+ })(["position:absolute;top:0;left:0;right:0;padding-left:", "px;padding-right:", "px;padding-top:", "px;pointer-events:none;z-index:1;display:flex;align-items:flex-start;overflow:hidden;opacity:", ";transform:translateY(", ");transition:opacity 0.15s ease,transform 0.15s ease;color:", ";"], function (_ref) {
14
14
  var $paddingLeft = _ref.$paddingLeft;
15
15
  return $paddingLeft;
16
16
  }, function (_ref2) {
17
- var $paddingTop = _ref2.$paddingTop;
18
- return $paddingTop;
17
+ var $paddingRight = _ref2.$paddingRight;
18
+ return $paddingRight;
19
19
  }, function (_ref3) {
20
- var $visible = _ref3.$visible;
21
- return $visible ? 1 : 0;
20
+ var $paddingTop = _ref3.$paddingTop;
21
+ return $paddingTop;
22
22
  }, function (_ref4) {
23
23
  var $visible = _ref4.$visible;
24
- return $visible ? '0px' : '-6px';
24
+ return $visible ? 1 : 0;
25
25
  }, function (_ref5) {
26
- var $color = _ref5.$color;
26
+ var $visible = _ref5.$visible;
27
+ return $visible ? '0px' : '-6px';
28
+ }, function (_ref6) {
29
+ var $color = _ref6.$color;
27
30
  return $color;
28
31
  });
32
+ var TextContent = exports.TextContent = _styledComponents["default"].span.withConfig({
33
+ displayName: "styles__TextContent",
34
+ componentId: "sc-1f4olgp-1"
35
+ })(["min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
29
36
  var Star = exports.Star = _styledComponents["default"].span.withConfig({
30
37
  displayName: "styles__Star",
31
- componentId: "sc-1f4olgp-1"
32
- })(["color:", ";margin-left:4px;flex-shrink:0;"], function (_ref6) {
33
- var $color = _ref6.$color;
38
+ componentId: "sc-1f4olgp-2"
39
+ })(["color:", ";margin-left:4px;flex-shrink:0;"], function (_ref7) {
40
+ var $color = _ref7.$color;
34
41
  return $color;
35
42
  });
@@ -12,7 +12,7 @@ var getPureInputStyled = exports.getPureInputStyled = function getPureInputStyle
12
12
  return (0, _styledComponents["default"])(component).withConfig({
13
13
  displayName: "styles",
14
14
  componentId: "sc-1g8ijo6-0"
15
- })(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}"], function (_ref) {
15
+ })(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;text-overflow:ellipsis;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}"], function (_ref) {
16
16
  var $variant = _ref.$variant;
17
17
  return $variant && _typography.typography[$variant];
18
18
  }, function (_ref2) {
@@ -46,7 +46,8 @@ var SearchInput = exports.SearchInput = /*#__PURE__*/(0, _react.forwardRef)(func
46
46
  size: size,
47
47
  label: placeholder,
48
48
  inFocus: inFocus,
49
- placeholder: placeholder
49
+ placeholder: placeholder,
50
+ paddingRight: 56
50
51
  }),
51
52
  inputLabel = _useInputStyles.inputLabel,
52
53
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -41,7 +41,8 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
41
41
  label: label,
42
42
  inFocus: inFocus,
43
43
  placeholder: placeholder,
44
- required: required
44
+ required: required,
45
+ paddingRight: 52
45
46
  }),
46
47
  inputLabel = _useInputStyles.inputLabel,
47
48
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -11,9 +11,12 @@ var _InputLabel = require("../InputLabel");
11
11
  var _PureInput = require("../PureInput");
12
12
  var _useInputFocus2 = require("../../../hooks/useInputFocus");
13
13
  var _useInputStyles2 = require("../_hooks/useInputStyles");
14
+ var _useElementWidth2 = require("../_hooks/useElementWidth");
14
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
17
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
18
+ var CHILDREN_RIGHT_OFFSET = 12;
19
+ var CHILDREN_GAP = 8;
17
20
  var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
18
21
  var _ref$hasError = _ref.hasError,
19
22
  hasError = _ref$hasError === void 0 ? false : _ref$hasError,
@@ -51,6 +54,10 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
51
54
  inFocus = _useInputFocus.inFocus,
52
55
  handleFocus = _useInputFocus.handleFocus,
53
56
  handleBlur = _useInputFocus.handleBlur;
57
+ var _useElementWidth = (0, _useElementWidth2.useElementWidth)(),
58
+ childrenRef = _useElementWidth.ref,
59
+ childrenWidth = _useElementWidth.width;
60
+ var placeholderPaddingRight = childrenWidth ? childrenWidth + CHILDREN_RIGHT_OFFSET + CHILDREN_GAP : paddingRight;
54
61
  var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
55
62
  isHaveValue: !!value,
56
63
  useModernStyles: useModernStyles,
@@ -58,7 +65,8 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
58
65
  label: label,
59
66
  inFocus: inFocus,
60
67
  placeholder: placeholder,
61
- required: required
68
+ required: required,
69
+ paddingRight: placeholderPaddingRight
62
70
  }),
63
71
  inputLabel = _useInputStyles.inputLabel,
64
72
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -95,6 +103,8 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
95
103
  inputMode: inputMode,
96
104
  readOnly: readOnly,
97
105
  autoComplete: autoComplete
98
- }, paddingAndVariantOptions)), children && /*#__PURE__*/_react["default"].createElement(S.ChildrenWrapper, null, children)));
106
+ }, paddingAndVariantOptions)), children && /*#__PURE__*/_react["default"].createElement(S.ChildrenWrapper, {
107
+ ref: childrenRef
108
+ }, children)));
99
109
  });
100
110
  TextInput.displayName = 'TextInput';
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const useElementWidth: <T extends HTMLElement>() => {
3
+ ref: import("react").RefObject<T>;
4
+ width: number;
5
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useElementWidth = void 0;
7
+ var _react = require("react");
8
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
14
+ var useElementWidth = exports.useElementWidth = function useElementWidth() {
15
+ var ref = (0, _react.useRef)(null);
16
+ var _useState = (0, _react.useState)(0),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ width = _useState2[0],
19
+ setWidth = _useState2[1];
20
+ (0, _react.useLayoutEffect)(function () {
21
+ var element = ref.current;
22
+ if (!element) {
23
+ return;
24
+ }
25
+ var update = function update() {
26
+ return setWidth(element.getBoundingClientRect().width);
27
+ };
28
+ update();
29
+ var observer = new ResizeObserver(update);
30
+ observer.observe(element);
31
+ return function () {
32
+ return observer.disconnect();
33
+ };
34
+ }, []);
35
+ return {
36
+ ref: ref,
37
+ width: width
38
+ };
39
+ };
@@ -8,8 +8,9 @@ type TParams = {
8
8
  placeholder?: string;
9
9
  required?: boolean;
10
10
  conditionHideModernPlaceholder?: boolean;
11
+ paddingRight?: number;
11
12
  };
12
- export declare const useInputStyles: ({ inFocus, useModernStyles, label, size, placeholder, isHaveValue, required, conditionHideModernPlaceholder, }: TParams) => {
13
+ export declare const useInputStyles: ({ inFocus, useModernStyles, label, size, placeholder, isHaveValue, required, conditionHideModernPlaceholder, paddingRight, }: TParams) => {
13
14
  inputLabel: string | undefined;
14
15
  paddingAndVariantOptions: {
15
16
  paddingTop: number;
@@ -24,7 +24,8 @@ var useInputStyles = exports.useInputStyles = function useInputStyles(_ref) {
24
24
  isHaveValue = _ref.isHaveValue,
25
25
  required = _ref.required,
26
26
  _ref$conditionHideMod = _ref.conditionHideModernPlaceholder,
27
- conditionHideModernPlaceholder = _ref$conditionHideMod === void 0 ? false : _ref$conditionHideMod;
27
+ conditionHideModernPlaceholder = _ref$conditionHideMod === void 0 ? false : _ref$conditionHideMod,
28
+ paddingRight = _ref.paddingRight;
28
29
  var isHideModernPlaceholder = isHaveValue || inFocus || conditionHideModernPlaceholder;
29
30
  var inputLabel = (0, _react.useMemo)(function () {
30
31
  if (useModernStyles) {
@@ -53,6 +54,7 @@ var useInputStyles = exports.useInputStyles = function useInputStyles(_ref) {
53
54
  var modernPlaceholder = useModernStyles && modernInputPlaceholder && /*#__PURE__*/_react["default"].createElement(_ModernPlaceholder.ModernPlaceholder, {
54
55
  visible: !isHideModernPlaceholder,
55
56
  paddingTop: _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop,
57
+ paddingRight: paddingRight,
56
58
  size: size,
57
59
  required: required
58
60
  }, modernInputPlaceholder);
@@ -2,7 +2,7 @@ import styled from 'styled-components';
2
2
  export var Wrapper = styled.div.withConfig({
3
3
  displayName: "styles__Wrapper",
4
4
  componentId: "sc-1fp3ia8-0"
5
- })(["position:relative;box-sizing:border-box;"]);
5
+ })(["position:relative;box-sizing:border-box;width:100%;"]);
6
6
  export var OptionContainer = styled.div.withConfig({
7
7
  displayName: "styles__OptionContainer",
8
8
  componentId: "sc-1fp3ia8-1"
@@ -78,7 +78,8 @@ export var DateInput = function DateInput(_ref) {
78
78
  inFocus: inFocus,
79
79
  placeholder: placeholder,
80
80
  conditionHideModernPlaceholder: isOpen,
81
- required: required
81
+ required: required,
82
+ paddingRight: 44
82
83
  }),
83
84
  inputLabel = _useInputStyles.inputLabel,
84
85
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -89,7 +89,8 @@ export var DateTimeInput = function DateTimeInput(_ref) {
89
89
  inFocus: inFocus,
90
90
  placeholder: placeholder,
91
91
  conditionHideModernPlaceholder: isOpen,
92
- required: required
92
+ required: required,
93
+ paddingRight: 44
93
94
  }),
94
95
  inputLabel = _useInputStyles.inputLabel,
95
96
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -6,6 +6,8 @@ export var ModernPlaceholder = function ModernPlaceholder(_ref) {
6
6
  var visible = _ref.visible,
7
7
  _ref$paddingLeft = _ref.paddingLeft,
8
8
  paddingLeft = _ref$paddingLeft === void 0 ? 20 : _ref$paddingLeft,
9
+ _ref$paddingRight = _ref.paddingRight,
10
+ paddingRight = _ref$paddingRight === void 0 ? 12 : _ref$paddingRight,
9
11
  paddingTop = _ref.paddingTop,
10
12
  size = _ref.size,
11
13
  _ref$required = _ref.required,
@@ -17,9 +19,10 @@ export var ModernPlaceholder = function ModernPlaceholder(_ref) {
17
19
  variant: MODERN_STYLE_SIZE_PARAMS_MAP[size].variant,
18
20
  $visible: visible,
19
21
  $paddingLeft: paddingLeft,
22
+ $paddingRight: paddingRight,
20
23
  $paddingTop: paddingTop,
21
24
  $color: pureInputPalette.placeholder
22
- }, children, required && /*#__PURE__*/React.createElement(S.Star, {
25
+ }, /*#__PURE__*/React.createElement(S.TextContent, null, children), required && /*#__PURE__*/React.createElement(S.Star, {
23
26
  $color: inputLabelPalette.error
24
27
  }, "*"));
25
28
  };
@@ -3,26 +3,33 @@ import { Typography } from '../../common/Typography';
3
3
  export var Wrapper = styled(Typography).withConfig({
4
4
  displayName: "styles__Wrapper",
5
5
  componentId: "sc-1f4olgp-0"
6
- })(["position:absolute;top:0;left:0;right:0;padding-left:", "px;padding-top:", "px;pointer-events:none;z-index:1;display:flex;align-items:flex-start;white-space:nowrap;overflow:hidden;opacity:", ";transform:translateY(", ");transition:opacity 0.15s ease,transform 0.15s ease;color:", ";"], function (_ref) {
6
+ })(["position:absolute;top:0;left:0;right:0;padding-left:", "px;padding-right:", "px;padding-top:", "px;pointer-events:none;z-index:1;display:flex;align-items:flex-start;overflow:hidden;opacity:", ";transform:translateY(", ");transition:opacity 0.15s ease,transform 0.15s ease;color:", ";"], function (_ref) {
7
7
  var $paddingLeft = _ref.$paddingLeft;
8
8
  return $paddingLeft;
9
9
  }, function (_ref2) {
10
- var $paddingTop = _ref2.$paddingTop;
11
- return $paddingTop;
10
+ var $paddingRight = _ref2.$paddingRight;
11
+ return $paddingRight;
12
12
  }, function (_ref3) {
13
- var $visible = _ref3.$visible;
14
- return $visible ? 1 : 0;
13
+ var $paddingTop = _ref3.$paddingTop;
14
+ return $paddingTop;
15
15
  }, function (_ref4) {
16
16
  var $visible = _ref4.$visible;
17
- return $visible ? '0px' : '-6px';
17
+ return $visible ? 1 : 0;
18
18
  }, function (_ref5) {
19
- var $color = _ref5.$color;
19
+ var $visible = _ref5.$visible;
20
+ return $visible ? '0px' : '-6px';
21
+ }, function (_ref6) {
22
+ var $color = _ref6.$color;
20
23
  return $color;
21
24
  });
25
+ export var TextContent = styled.span.withConfig({
26
+ displayName: "styles__TextContent",
27
+ componentId: "sc-1f4olgp-1"
28
+ })(["min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
22
29
  export var Star = styled.span.withConfig({
23
30
  displayName: "styles__Star",
24
- componentId: "sc-1f4olgp-1"
25
- })(["color:", ";margin-left:4px;flex-shrink:0;"], function (_ref6) {
26
- var $color = _ref6.$color;
31
+ componentId: "sc-1f4olgp-2"
32
+ })(["color:", ";margin-left:4px;flex-shrink:0;"], function (_ref7) {
33
+ var $color = _ref7.$color;
27
34
  return $color;
28
35
  });
@@ -5,7 +5,7 @@ export var getPureInputStyled = function getPureInputStyled(component) {
5
5
  return styled(component).withConfig({
6
6
  displayName: "styles",
7
7
  componentId: "sc-1g8ijo6-0"
8
- })(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}"], function (_ref) {
8
+ })(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;text-overflow:ellipsis;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}"], function (_ref) {
9
9
  var $variant = _ref.$variant;
10
10
  return $variant && typography[$variant];
11
11
  }, function (_ref2) {
@@ -37,7 +37,8 @@ export var SearchInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
37
37
  size: size,
38
38
  label: placeholder,
39
39
  inFocus: inFocus,
40
- placeholder: placeholder
40
+ placeholder: placeholder,
41
+ paddingRight: 56
41
42
  }),
42
43
  inputLabel = _useInputStyles.inputLabel,
43
44
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -32,7 +32,8 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
32
32
  label: label,
33
33
  inFocus: inFocus,
34
34
  placeholder: placeholder,
35
- required: required
35
+ required: required,
36
+ paddingRight: 52
36
37
  }),
37
38
  inputLabel = _useInputStyles.inputLabel,
38
39
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -5,6 +5,9 @@ import { InputLabel } from '../InputLabel';
5
5
  import { PureInput } from '../PureInput';
6
6
  import { useInputFocus } from '../../../hooks/useInputFocus';
7
7
  import { useInputStyles } from '../_hooks/useInputStyles';
8
+ import { useElementWidth } from '../_hooks/useElementWidth';
9
+ var CHILDREN_RIGHT_OFFSET = 12;
10
+ var CHILDREN_GAP = 8;
8
11
  export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
9
12
  var _ref$hasError = _ref.hasError,
10
13
  hasError = _ref$hasError === void 0 ? false : _ref$hasError,
@@ -42,6 +45,10 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
42
45
  inFocus = _useInputFocus.inFocus,
43
46
  handleFocus = _useInputFocus.handleFocus,
44
47
  handleBlur = _useInputFocus.handleBlur;
48
+ var _useElementWidth = useElementWidth(),
49
+ childrenRef = _useElementWidth.ref,
50
+ childrenWidth = _useElementWidth.width;
51
+ var placeholderPaddingRight = childrenWidth ? childrenWidth + CHILDREN_RIGHT_OFFSET + CHILDREN_GAP : paddingRight;
45
52
  var _useInputStyles = useInputStyles({
46
53
  isHaveValue: !!value,
47
54
  useModernStyles: useModernStyles,
@@ -49,7 +56,8 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
49
56
  label: label,
50
57
  inFocus: inFocus,
51
58
  placeholder: placeholder,
52
- required: required
59
+ required: required,
60
+ paddingRight: placeholderPaddingRight
53
61
  }),
54
62
  inputLabel = _useInputStyles.inputLabel,
55
63
  paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
@@ -86,6 +94,8 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
86
94
  inputMode: inputMode,
87
95
  readOnly: readOnly,
88
96
  autoComplete: autoComplete
89
- }, paddingAndVariantOptions)), children && /*#__PURE__*/React.createElement(S.ChildrenWrapper, null, children)));
97
+ }, paddingAndVariantOptions)), children && /*#__PURE__*/React.createElement(S.ChildrenWrapper, {
98
+ ref: childrenRef
99
+ }, children)));
90
100
  });
91
101
  TextInput.displayName = 'TextInput';
@@ -0,0 +1,33 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import { useLayoutEffect, useRef, useState } from 'react';
8
+ export var useElementWidth = function useElementWidth() {
9
+ var ref = useRef(null);
10
+ var _useState = useState(0),
11
+ _useState2 = _slicedToArray(_useState, 2),
12
+ width = _useState2[0],
13
+ setWidth = _useState2[1];
14
+ useLayoutEffect(function () {
15
+ var element = ref.current;
16
+ if (!element) {
17
+ return;
18
+ }
19
+ var update = function update() {
20
+ return setWidth(element.getBoundingClientRect().width);
21
+ };
22
+ update();
23
+ var observer = new ResizeObserver(update);
24
+ observer.observe(element);
25
+ return function () {
26
+ return observer.disconnect();
27
+ };
28
+ }, []);
29
+ return {
30
+ ref: ref,
31
+ width: width
32
+ };
33
+ };
@@ -16,7 +16,8 @@ export var useInputStyles = function useInputStyles(_ref) {
16
16
  isHaveValue = _ref.isHaveValue,
17
17
  required = _ref.required,
18
18
  _ref$conditionHideMod = _ref.conditionHideModernPlaceholder,
19
- conditionHideModernPlaceholder = _ref$conditionHideMod === void 0 ? false : _ref$conditionHideMod;
19
+ conditionHideModernPlaceholder = _ref$conditionHideMod === void 0 ? false : _ref$conditionHideMod,
20
+ paddingRight = _ref.paddingRight;
20
21
  var isHideModernPlaceholder = isHaveValue || inFocus || conditionHideModernPlaceholder;
21
22
  var inputLabel = useMemo(function () {
22
23
  if (useModernStyles) {
@@ -45,6 +46,7 @@ export var useInputStyles = function useInputStyles(_ref) {
45
46
  var modernPlaceholder = useModernStyles && modernInputPlaceholder && /*#__PURE__*/React.createElement(ModernPlaceholder, {
46
47
  visible: !isHideModernPlaceholder,
47
48
  paddingTop: MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop,
49
+ paddingRight: paddingRight,
48
50
  size: size,
49
51
  required: required
50
52
  }, modernInputPlaceholder);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.307",
3
+ "version": "0.1.0-alpha.309",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {