@invoicebox/ui 0.1.0-alpha.303 → 0.1.0-alpha.305

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 (34) hide show
  1. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +17 -28
  2. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +18 -37
  3. package/dist/components/form/DateInput/index.js +16 -41
  4. package/dist/components/form/DateTimeInput/index.js +16 -39
  5. package/dist/components/form/DateTimeInput/index.stories.js +2 -1
  6. package/dist/components/form/InputLabel/index.js +6 -3
  7. package/dist/components/form/InputLabel/styles.d.ts +3 -1
  8. package/dist/components/form/InputLabel/styles.js +14 -12
  9. package/dist/components/form/ModernPlaceholder/index.js +1 -1
  10. package/dist/components/form/PhoneInput/index.js +15 -24
  11. package/dist/components/form/PositiveIntegerInput/index.js +14 -32
  12. package/dist/components/form/PureInput/palette.js +1 -1
  13. package/dist/components/form/Select/components/Input/index.js +16 -34
  14. package/dist/components/form/TextInput/index.js +14 -33
  15. package/dist/components/form/_hooks/useInputStyles.d.ts +23 -0
  16. package/dist/components/form/_hooks/useInputStyles.js +66 -0
  17. package/dist/components/form/constants.d.ts +1 -0
  18. package/dist/components/form/constants.js +17 -14
  19. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +19 -30
  20. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +17 -34
  21. package/dist/esm/components/form/DateInput/index.js +17 -42
  22. package/dist/esm/components/form/DateTimeInput/index.js +17 -40
  23. package/dist/esm/components/form/DateTimeInput/index.stories.js +2 -1
  24. package/dist/esm/components/form/InputLabel/index.js +6 -3
  25. package/dist/esm/components/form/InputLabel/styles.js +14 -12
  26. package/dist/esm/components/form/ModernPlaceholder/index.js +2 -2
  27. package/dist/esm/components/form/PhoneInput/index.js +16 -25
  28. package/dist/esm/components/form/PositiveIntegerInput/index.js +15 -33
  29. package/dist/esm/components/form/PureInput/palette.js +1 -1
  30. package/dist/esm/components/form/Select/components/Input/index.js +17 -35
  31. package/dist/esm/components/form/TextInput/index.js +15 -34
  32. package/dist/esm/components/form/_hooks/useInputStyles.js +58 -0
  33. package/dist/esm/components/form/constants.js +17 -14
  34. package/package.json +1 -1
@@ -14,6 +14,6 @@ var generatePureInputPalette = exports.generatePureInputPalette = function gener
14
14
  error: abstractPalette.error,
15
15
  border: (0, _hexToRgba["default"])(abstractPalette.neutralBrutal, 0.3),
16
16
  borderFocus: abstractPalette.primary,
17
- placeholder: (0, _hexToRgba["default"])(abstractPalette.primary, 0.3)
17
+ placeholder: (0, _hexToRgba["default"])(abstractPalette.primary, 0.5)
18
18
  };
19
19
  };
@@ -11,14 +11,14 @@ var _InputLabel = require("../../../InputLabel");
11
11
  var _PureInput = require("../../../PureInput");
12
12
  var _Arrow = require("../../../../common/Arrow");
13
13
  var _ResetButton = require("../../../ResetButton");
14
- var _constants = require("../../../constants");
15
- var _ModernPlaceholder = require("../../../ModernPlaceholder");
14
+ var _useInputStyles2 = require("../../../_hooks/useInputStyles");
16
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); }
17
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; }
18
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); }
19
18
  var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
20
19
  var hasError = _ref.hasError,
21
- inFocus = _ref.inFocus,
20
+ _ref$inFocus = _ref.inFocus,
21
+ inFocus = _ref$inFocus === void 0 ? false : _ref$inFocus,
22
22
  placeholder = _ref.placeholder,
23
23
  onFocus = _ref.onFocus,
24
24
  onBlur = _ref.onBlur,
@@ -34,43 +34,25 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
34
34
  required = _ref.required,
35
35
  _ref$useModernStyles = _ref.useModernStyles,
36
36
  useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
37
- var inputLabel = (0, _react.useMemo)(function () {
38
- if (useModernStyles) {
39
- if (value || inFocus) {
40
- return label;
41
- } else {
42
- return undefined;
43
- }
44
- } else {
45
- return label;
46
- }
47
- }, [inFocus, label, value, useModernStyles]);
37
+ var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
38
+ isHaveValue: !!value,
39
+ useModernStyles: useModernStyles,
40
+ size: size,
41
+ label: label,
42
+ inFocus: inFocus,
43
+ placeholder: placeholder
44
+ }),
45
+ inputLabel = _useInputStyles.inputLabel,
46
+ paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
47
+ modernPlaceholder = _useInputStyles.modernPlaceholder;
48
48
  var isShowResetIcon = !!value && !!onReset;
49
- var isModernPlaceholderVisible = (0, _react.useMemo)(function () {
50
- return useModernStyles && !isOpen && !value;
51
- }, [isOpen, useModernStyles, value]);
52
- var modernInputPlaceholder = (0, _react.useMemo)(function () {
53
- return placeholder || label;
54
- }, [label, placeholder]);
55
- var paddingOptions = (0, _react.useMemo)(function () {
56
- if ((value || isOpen) && useModernStyles && label) {
57
- return _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size];
58
- } else {
59
- return _constants.SIZE_PARAMS_MAP[size];
60
- }
61
- }, [value, isOpen, useModernStyles, size, label]);
62
49
  return /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
63
50
  inFocus: inFocus,
64
51
  label: inputLabel,
65
52
  required: required,
66
53
  useModernStyles: useModernStyles,
67
54
  size: size
68
- }, /*#__PURE__*/_react["default"].createElement(S.ControlWrapper, null, useModernStyles && modernInputPlaceholder && /*#__PURE__*/_react["default"].createElement(_ModernPlaceholder.ModernPlaceholder, {
69
- visible: isModernPlaceholderVisible,
70
- paddingTop: _constants.SIZE_PARAMS_MAP[size !== null && size !== void 0 ? size : 'M'].paddingTop,
71
- size: size !== null && size !== void 0 ? size : 'M',
72
- required: required
73
- }, modernInputPlaceholder), /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
55
+ }, /*#__PURE__*/_react["default"].createElement(S.ControlWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
74
56
  ref: ref,
75
57
  hasError: hasError,
76
58
  inFocus: inFocus,
@@ -84,7 +66,7 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
84
66
  paddingRight: 52,
85
67
  onClick: onClick,
86
68
  useModernStyles: useModernStyles
87
- }, paddingOptions)), /*#__PURE__*/_react["default"].createElement(S.IconWrapper, {
69
+ }, paddingAndVariantOptions)), /*#__PURE__*/_react["default"].createElement(S.IconWrapper, {
88
70
  $pointerEvents: isShowResetIcon ? 'default' : 'none'
89
71
  }, isShowResetIcon ? /*#__PURE__*/_react["default"].createElement(_ResetButton.ResetButton, {
90
72
  onClick: onReset
@@ -10,8 +10,7 @@ var S = _interopRequireWildcard(require("./styles"));
10
10
  var _InputLabel = require("../InputLabel");
11
11
  var _PureInput = require("../PureInput");
12
12
  var _useInputFocus2 = require("../../../hooks/useInputFocus");
13
- var _constants = require("../constants");
14
- var _ModernPlaceholder = require("../ModernPlaceholder");
13
+ var _useInputStyles2 = require("../_hooks/useInputStyles");
15
14
  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); }
16
15
  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; }
17
16
  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); }
@@ -52,33 +51,20 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
52
51
  inFocus = _useInputFocus.inFocus,
53
52
  handleFocus = _useInputFocus.handleFocus,
54
53
  handleBlur = _useInputFocus.handleBlur;
54
+ var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
55
+ isHaveValue: !!value,
56
+ useModernStyles: useModernStyles,
57
+ size: size,
58
+ label: label,
59
+ inFocus: inFocus,
60
+ placeholder: placeholder
61
+ }),
62
+ inputLabel = _useInputStyles.inputLabel,
63
+ paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
64
+ modernPlaceholder = _useInputStyles.modernPlaceholder;
55
65
  var handleChange = (0, _react.useCallback)(function (event) {
56
66
  onChange(event.target.value.slice(0, maxLength !== null && maxLength !== void 0 ? maxLength : Infinity));
57
67
  }, [onChange, maxLength]);
58
- var inputLabel = (0, _react.useMemo)(function () {
59
- if (useModernStyles) {
60
- if (value || inFocus) {
61
- return label;
62
- } else {
63
- return undefined;
64
- }
65
- } else {
66
- return label;
67
- }
68
- }, [inFocus, label, value, useModernStyles]);
69
- var paddingOptions = (0, _react.useMemo)(function () {
70
- if ((value || inFocus) && useModernStyles && inputLabel) {
71
- return _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size];
72
- } else {
73
- return _constants.SIZE_PARAMS_MAP[size];
74
- }
75
- }, [value, inFocus, useModernStyles, size, inputLabel]);
76
- var modernInputPlaceholder = (0, _react.useMemo)(function () {
77
- return placeholder || label;
78
- }, [label, placeholder]);
79
- var isModernPlaceholderVisible = (0, _react.useMemo)(function () {
80
- return !inFocus && !value;
81
- }, [inFocus, value]);
82
68
  return /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
83
69
  inFocus: inFocus,
84
70
  label: inputLabel,
@@ -86,12 +72,7 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
86
72
  required: required,
87
73
  size: size,
88
74
  useModernStyles: useModernStyles
89
- }, /*#__PURE__*/_react["default"].createElement(S.InputLabelContent, null, useModernStyles && modernInputPlaceholder && /*#__PURE__*/_react["default"].createElement(_ModernPlaceholder.ModernPlaceholder, {
90
- visible: isModernPlaceholderVisible,
91
- paddingTop: _constants.SIZE_PARAMS_MAP[size].paddingTop,
92
- size: size,
93
- required: required
94
- }, modernInputPlaceholder), /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
75
+ }, /*#__PURE__*/_react["default"].createElement(S.InputLabelContent, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
95
76
  id: id,
96
77
  ref: ref,
97
78
  name: name,
@@ -113,6 +94,6 @@ var TextInput = exports.TextInput = /*#__PURE__*/_react["default"].forwardRef(fu
113
94
  inputMode: inputMode,
114
95
  readOnly: readOnly,
115
96
  autoComplete: autoComplete
116
- }, paddingOptions)), children && /*#__PURE__*/_react["default"].createElement(S.ChildrenWrapper, null, children)));
97
+ }, paddingAndVariantOptions)), children && /*#__PURE__*/_react["default"].createElement(S.ChildrenWrapper, null, children)));
117
98
  });
118
99
  TextInput.displayName = 'TextInput';
@@ -0,0 +1,23 @@
1
+ import { TSizes } from '../constants';
2
+ type TParams = {
3
+ inFocus: boolean;
4
+ size: TSizes;
5
+ isHaveValue: boolean;
6
+ useModernStyles?: boolean;
7
+ label?: string;
8
+ placeholder?: string;
9
+ required?: boolean;
10
+ conditionHideModernPlaceholder?: boolean;
11
+ };
12
+ export declare const useInputStyles: ({ inFocus, useModernStyles, label, size, placeholder, isHaveValue, required, conditionHideModernPlaceholder, }: TParams) => {
13
+ inputLabel: string | undefined;
14
+ paddingAndVariantOptions: {
15
+ paddingTop: number;
16
+ paddingBottom: number;
17
+ variant: "headline1" | "headline2" | "headline3" | "headline4" | "headline5" | "headline6" | "headerText" | "buttonL" | "bodyL" | "bodyLUnderlined" | "buttonM" | "bodyMRegular" | "bodyMBold" | "bodyMUnderlined" | "captionRegular" | "labelsHintsRegular" | "labelsHintsBold" | "captionSRegular" | "captionUnderlined" | "smallMedium" | "labelsAndHints";
18
+ };
19
+ modernInputPlaceholder: string | undefined;
20
+ isHideModernPlaceholder: boolean;
21
+ modernPlaceholder: false | "" | import("react/jsx-runtime").JSX.Element | undefined;
22
+ };
23
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useInputStyles = void 0;
7
+ var _constants = require("../constants");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _ModernPlaceholder = require("../ModernPlaceholder");
10
+ 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); }
11
+ 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; }
12
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ var useInputStyles = exports.useInputStyles = function useInputStyles(_ref) {
19
+ var inFocus = _ref.inFocus,
20
+ useModernStyles = _ref.useModernStyles,
21
+ label = _ref.label,
22
+ size = _ref.size,
23
+ placeholder = _ref.placeholder,
24
+ isHaveValue = _ref.isHaveValue,
25
+ required = _ref.required,
26
+ _ref$conditionHideMod = _ref.conditionHideModernPlaceholder,
27
+ conditionHideModernPlaceholder = _ref$conditionHideMod === void 0 ? false : _ref$conditionHideMod;
28
+ var isHideModernPlaceholder = isHaveValue || inFocus || conditionHideModernPlaceholder;
29
+ var inputLabel = (0, _react.useMemo)(function () {
30
+ if (useModernStyles) {
31
+ return isHideModernPlaceholder ? label : undefined;
32
+ } else {
33
+ return label;
34
+ }
35
+ }, [useModernStyles, isHideModernPlaceholder, label]);
36
+ var paddingAndVariantOptions = (0, _react.useMemo)(function () {
37
+ if (useModernStyles) {
38
+ if (isHideModernPlaceholder) {
39
+ return _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size];
40
+ } else {
41
+ return _objectSpread(_objectSpread({}, _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size]), {}, {
42
+ paddingTop: _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop,
43
+ paddingBottom: _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop
44
+ });
45
+ }
46
+ } else {
47
+ return _constants.SIZE_PARAMS_MAP[size];
48
+ }
49
+ }, [useModernStyles, isHideModernPlaceholder, size]);
50
+ var modernInputPlaceholder = (0, _react.useMemo)(function () {
51
+ return placeholder || label;
52
+ }, [label, placeholder]);
53
+ var modernPlaceholder = useModernStyles && modernInputPlaceholder && /*#__PURE__*/_react["default"].createElement(_ModernPlaceholder.ModernPlaceholder, {
54
+ visible: !isHideModernPlaceholder,
55
+ paddingTop: _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop,
56
+ size: size,
57
+ required: required
58
+ }, modernInputPlaceholder);
59
+ return {
60
+ inputLabel: inputLabel,
61
+ paddingAndVariantOptions: paddingAndVariantOptions,
62
+ modernInputPlaceholder: modernInputPlaceholder,
63
+ isHideModernPlaceholder: isHideModernPlaceholder,
64
+ modernPlaceholder: modernPlaceholder
65
+ };
66
+ };
@@ -11,4 +11,5 @@ export declare const MODERN_STYLE_SIZE_PARAMS_MAP: Record<TSizes, {
11
11
  variant: keyof typeof typography;
12
12
  $labelVariant: keyof typeof typography;
13
13
  $labelPaddingTop: number;
14
+ $placeholderPaddingTop: number;
14
15
  }>;
@@ -23,24 +23,27 @@ var SIZE_PARAMS_MAP = exports.SIZE_PARAMS_MAP = {
23
23
  };
24
24
  var MODERN_STYLE_SIZE_PARAMS_MAP = exports.MODERN_STYLE_SIZE_PARAMS_MAP = {
25
25
  L: {
26
- paddingTop: 20,
27
- paddingBottom: 12,
28
- variant: 'bodyMRegular',
29
- $labelVariant: 'captionRegular',
30
- $labelPaddingTop: 14
26
+ paddingTop: 24,
27
+ paddingBottom: 8,
28
+ variant: 'headline5',
29
+ $labelVariant: 'labelsHintsRegular',
30
+ $labelPaddingTop: 8,
31
+ $placeholderPaddingTop: 16
31
32
  },
32
33
  M: {
33
34
  paddingTop: 20,
34
- paddingBottom: 6,
35
- variant: 'bodyMRegular',
36
- $labelVariant: 'captionRegular',
37
- $labelPaddingTop: 12
35
+ paddingBottom: 4,
36
+ variant: 'bodyL',
37
+ $labelVariant: 'labelsHintsRegular',
38
+ $labelPaddingTop: 4,
39
+ $placeholderPaddingTop: 12
38
40
  },
39
41
  XS: {
40
- paddingTop: 16,
41
- paddingBottom: 4,
42
- variant: 'labelsHintsRegular',
43
- $labelVariant: 'captionSRegular',
44
- $labelPaddingTop: 12
42
+ paddingTop: 6,
43
+ paddingBottom: 6,
44
+ variant: 'headline5',
45
+ $labelVariant: 'labelsHintsRegular',
46
+ $labelPaddingTop: -18,
47
+ $placeholderPaddingTop: 6
45
48
  }
46
49
  };
@@ -5,7 +5,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
5
5
  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; }
6
6
  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; } }
7
7
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
- import React, { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
8
+ import React, { forwardRef, useCallback, useEffect, useId, useRef, useState } from 'react';
9
9
  import * as S from './styles';
10
10
  import { AutocompleteDefaultOption } from '../AutocompleteDefaultOption';
11
11
  import { Skeleton } from '../../../../common/Skeleton';
@@ -16,10 +16,11 @@ import { InputLabel } from '../../../InputLabel';
16
16
  import { PureInput } from '../../../PureInput';
17
17
  import { Dropdown } from '../../../../common/Dropdown';
18
18
  import { Scrollbar } from '../../../../common/Scrollbar';
19
- import { MODERN_STYLE_SIZE_PARAMS_MAP, SIZE_PARAMS_MAP } from '../../../constants';
19
+ import { MODERN_STYLE_SIZE_PARAMS_MAP } from '../../../constants';
20
20
  import { useComponentPalette } from '../../../../../palette';
21
- import { ModernPlaceholder } from '../../../ModernPlaceholder';
22
21
  import { LABEL_PADDING } from '../../../InputLabel/constants';
22
+ import { useInputStyles } from '../../../_hooks/useInputStyles';
23
+ import { ModernPlaceholder } from '../../../ModernPlaceholder';
23
24
  var DefaultSkeletonItem = function DefaultSkeletonItem() {
24
25
  return /*#__PURE__*/React.createElement(S.DefaultSkeletonWrapper, null, /*#__PURE__*/React.createElement(Skeleton, {
25
26
  height: "20px"
@@ -81,6 +82,18 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
81
82
  inFocus = _useInputFocus.inFocus,
82
83
  handleFocus = _useInputFocus.handleFocus,
83
84
  handleBlur = _useInputFocus.handleBlur;
85
+ var _useInputStyles = useInputStyles({
86
+ isHaveValue: !!value,
87
+ useModernStyles: useModernStyles,
88
+ size: size,
89
+ label: label,
90
+ inFocus: inFocus,
91
+ placeholder: placeholder
92
+ }),
93
+ inputLabel = _useInputStyles.inputLabel,
94
+ paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
95
+ isHideModernPlaceholder = _useInputStyles.isHideModernPlaceholder,
96
+ modernInputPlaceholder = _useInputStyles.modernInputPlaceholder;
84
97
  var handleOpen = useCallback(function () {
85
98
  return setIsOpen(true);
86
99
  }, []);
@@ -105,30 +118,6 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
105
118
  handleOpen();
106
119
  handleFocus(event);
107
120
  }, [handleOpen, handleFocus]);
108
- var inputLabel = useMemo(function () {
109
- if (useModernStyles) {
110
- if (value || isOpen) {
111
- return label;
112
- } else {
113
- return undefined;
114
- }
115
- } else {
116
- return label;
117
- }
118
- }, [isOpen, label, value, useModernStyles]);
119
- var paddingOptions = useMemo(function () {
120
- if ((value || isOpen) && useModernStyles && inputLabel) {
121
- return MODERN_STYLE_SIZE_PARAMS_MAP[size];
122
- } else {
123
- return SIZE_PARAMS_MAP[size];
124
- }
125
- }, [value, isOpen, useModernStyles, size, inputLabel]);
126
- var modernInputPlaceholder = useMemo(function () {
127
- return placeholder || label;
128
- }, [label, placeholder]);
129
- var isModernPlaceholderVisible = useMemo(function () {
130
- return !isOpen && !value;
131
- }, [isOpen, value]);
132
121
  var isDropdownOpen = !isDropdownDisabled && isOpen && (!!options.length || !!isLoading);
133
122
  // Скелетоны показываем ТОЛЬКО когда опций ещё нет (первая загрузка). При повторных запросах
134
123
  // (ввод символов) держим прежние опции — иначе лоадер мерцает на каждое изменение.
@@ -192,9 +181,9 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
192
181
  size: size,
193
182
  left: useModernStyles && typeof inputPaddingLeft === 'number' ? inputPaddingLeft - LABEL_PADDING : undefined
194
183
  }, /*#__PURE__*/React.createElement(S.InputLabelContent, null, children ? /*#__PURE__*/React.createElement(S.ChildrenWrapper, null, children) : null, useModernStyles && modernInputPlaceholder && /*#__PURE__*/React.createElement(ModernPlaceholder, {
195
- visible: isModernPlaceholderVisible,
184
+ visible: !isHideModernPlaceholder,
196
185
  paddingLeft: typeof inputPaddingLeft === 'number' ? inputPaddingLeft : 20,
197
- paddingTop: SIZE_PARAMS_MAP[size].paddingTop,
186
+ paddingTop: MODERN_STYLE_SIZE_PARAMS_MAP[size].$placeholderPaddingTop,
198
187
  size: size,
199
188
  required: required
200
189
  }, modernInputPlaceholder), /*#__PURE__*/React.createElement(PureInput, _extends({
@@ -220,7 +209,7 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
220
209
  "aria-controls": isDropdownOpen ? listboxId : undefined,
221
210
  "aria-autocomplete": "list",
222
211
  "aria-activedescendant": isDropdownOpen && activeIndex >= 0 ? getOptionId(activeIndex) : undefined
223
- }, paddingOptions)))), /*#__PURE__*/React.createElement(Dropdown, {
212
+ }, paddingAndVariantOptions)))), /*#__PURE__*/React.createElement(Dropdown, {
224
213
  ref: dropdownRef,
225
214
  isOpen: isOpen && (!!options.length || !!isLoading),
226
215
  isAutoPosition: true,
@@ -1,10 +1,9 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
  import { InputLabel } from '../../InputLabel';
3
3
  import { useInputFocus } from '../../../../hooks/useInputFocus';
4
4
  import { StyledCurrencyInputFromLibrary, InputWrapper } from './styles';
5
- import { MODERN_STYLE_SIZE_PARAMS_MAP, SIZE_PARAMS_MAP } from '../../constants';
6
5
  import { useComponentPalette } from '../../../../palette';
7
- import { ModernPlaceholder } from '../../ModernPlaceholder';
6
+ import { useInputStyles } from '../../_hooks/useInputStyles';
8
7
  export var CoreCurrencyInput = function CoreCurrencyInput(_ref) {
9
8
  var label = _ref.label,
10
9
  _ref$size = _ref.size,
@@ -31,27 +30,17 @@ export var CoreCurrencyInput = function CoreCurrencyInput(_ref) {
31
30
  handleFocus = _useInputFocus.handleFocus,
32
31
  handleBlur = _useInputFocus.handleBlur;
33
32
  var palette = useComponentPalette('pureInput');
34
- var inputLabel = useMemo(function () {
35
- if (useModernStyles) {
36
- if (typeof defaultValue === 'number' || inFocus || typeof value === 'number') {
37
- return label;
38
- } else {
39
- return undefined;
40
- }
41
- } else {
42
- return label;
43
- }
44
- }, [useModernStyles, defaultValue, inFocus, label, value]);
45
- var paddingOptions = useMemo(function () {
46
- if ((typeof defaultValue === 'number' || typeof value === 'number' || inFocus) && useModernStyles && inputLabel) {
47
- return MODERN_STYLE_SIZE_PARAMS_MAP[size];
48
- } else {
49
- return SIZE_PARAMS_MAP[size];
50
- }
51
- }, [defaultValue, useModernStyles, size, inFocus, inputLabel, value]);
52
- var isModernPlaceholderVisible = useMemo(function () {
53
- return !inFocus && !defaultValue && defaultValue !== 0 && !value && value !== 0;
54
- }, [defaultValue, inFocus, value]);
33
+ var _useInputStyles = useInputStyles({
34
+ isHaveValue: !!value || typeof defaultValue === 'number',
35
+ useModernStyles: useModernStyles,
36
+ size: size,
37
+ label: label,
38
+ inFocus: inFocus,
39
+ placeholder: ''
40
+ }),
41
+ modernPlaceholder = _useInputStyles.modernPlaceholder,
42
+ paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
43
+ inputLabel = _useInputStyles.inputLabel;
55
44
  return /*#__PURE__*/React.createElement(InputLabel, {
56
45
  inFocus: inFocus,
57
46
  label: inputLabel,
@@ -59,21 +48,15 @@ export var CoreCurrencyInput = function CoreCurrencyInput(_ref) {
59
48
  required: required,
60
49
  useModernStyles: useModernStyles,
61
50
  size: size
62
- }, /*#__PURE__*/React.createElement(InputWrapper, null, useModernStyles && label && /*#__PURE__*/React.createElement(ModernPlaceholder, {
63
- visible: isModernPlaceholderVisible,
64
- paddingLeft: 18,
65
- paddingTop: SIZE_PARAMS_MAP[size].paddingTop,
66
- size: size,
67
- required: required
68
- }, label), /*#__PURE__*/React.createElement(StyledCurrencyInputFromLibrary, {
51
+ }, /*#__PURE__*/React.createElement(InputWrapper, null, modernPlaceholder, /*#__PURE__*/React.createElement(StyledCurrencyInputFromLibrary, {
69
52
  $palette: palette,
70
53
  $hasBorder: !useModernStyles,
71
54
  $paddingLeft: 18,
72
55
  $paddingRight: 18,
73
56
  $borderRadius: 10,
74
- $variant: paddingOptions.variant,
75
- $paddingTop: paddingOptions.paddingTop,
76
- $paddingBottom: paddingOptions.paddingBottom,
57
+ $variant: paddingAndVariantOptions.variant,
58
+ $paddingTop: paddingAndVariantOptions.paddingTop,
59
+ $paddingBottom: paddingAndVariantOptions.paddingBottom,
77
60
  $hasError: hasError,
78
61
  $inFocus: inFocus,
79
62
  onBlur: handleBlur,
@@ -5,7 +5,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
5
5
  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; }
6
6
  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; } }
7
7
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
8
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
9
9
  import * as S from './styles';
10
10
  import { logic } from './logic';
11
11
  import { useOutsideClick } from '../../../hooks/useOutsideClick';
@@ -16,10 +16,9 @@ import { Dropdown } from '../../common/Dropdown';
16
16
  import { Calendar } from '../../common/Calendar';
17
17
  import { CalendarIcon } from './components/CalendarIcon';
18
18
  import { useComponentPalette } from '../../../palette';
19
- import { MODERN_STYLE_SIZE_PARAMS_MAP, SIZE_PARAMS_MAP } from '../constants';
20
- import { ModernPlaceholder } from '../ModernPlaceholder';
21
19
  import { useMobile } from '../../../index';
22
20
  import { MobileDrawerDateCalendar } from './components/MobileDrawerDateCalendar';
21
+ import { useInputStyles } from '../_hooks/useInputStyles';
23
22
  var resetValue = null;
24
23
  export var DateInput = function DateInput(_ref) {
25
24
  var onChange = _ref.onChange,
@@ -71,6 +70,18 @@ export var DateInput = function DateInput(_ref) {
71
70
  _useState4 = _slicedToArray(_useState3, 2),
72
71
  stringValue = _useState4[0],
73
72
  setStringValue = _useState4[1];
73
+ var _useInputStyles = useInputStyles({
74
+ isHaveValue: !!stringValue,
75
+ useModernStyles: useModernStyles,
76
+ size: size,
77
+ label: label,
78
+ inFocus: inFocus,
79
+ placeholder: placeholder,
80
+ conditionHideModernPlaceholder: isOpen
81
+ }),
82
+ inputLabel = _useInputStyles.inputLabel,
83
+ paddingAndVariantOptions = _useInputStyles.paddingAndVariantOptions,
84
+ modernPlaceholder = _useInputStyles.modernPlaceholder;
74
85
  useEffect(function () {
75
86
  if (stringValue && value === resetValue) {
76
87
  setStringValue('');
@@ -95,37 +106,6 @@ export var DateInput = function DateInput(_ref) {
95
106
  setStringValue(logic.valueToString(newValue, false));
96
107
  onChange(newValue);
97
108
  }, [handleClose, onChange]);
98
- var inputLabel = useMemo(function () {
99
- if (useModernStyles) {
100
- if (stringValue || isOpen) {
101
- return label;
102
- } else {
103
- return undefined;
104
- }
105
- } else {
106
- return label;
107
- }
108
- }, [isOpen, label, stringValue, useModernStyles]);
109
- var paddingOptions = useMemo(function () {
110
- if ((stringValue || isOpen) && useModernStyles && inputLabel) {
111
- return MODERN_STYLE_SIZE_PARAMS_MAP[size];
112
- } else {
113
- return SIZE_PARAMS_MAP[size];
114
- }
115
- }, [stringValue, isOpen, useModernStyles, size, inputLabel]);
116
- var inputPlaceholder = useMemo(function () {
117
- if (useModernStyles) {
118
- return undefined;
119
- } else {
120
- return placeholder || logic.getPlaceholder();
121
- }
122
- }, [placeholder, useModernStyles]);
123
- var modernPlaceholderText = useMemo(function () {
124
- return placeholder || label || logic.getPlaceholder();
125
- }, [label, placeholder]);
126
- var isModernPlaceholderVisible = useMemo(function () {
127
- return !isOpen && !stringValue;
128
- }, [isOpen, stringValue]);
129
109
  return /*#__PURE__*/React.createElement(S.Wrapper, {
130
110
  ref: isMobile ? undefined : elRef
131
111
  }, /*#__PURE__*/React.createElement(InputLabel, {
@@ -134,25 +114,20 @@ export var DateInput = function DateInput(_ref) {
134
114
  useModernStyles: useModernStyles,
135
115
  size: size,
136
116
  required: required
137
- }, /*#__PURE__*/React.createElement(S.InputWrapper, null, useModernStyles && /*#__PURE__*/React.createElement(ModernPlaceholder, {
138
- visible: isModernPlaceholderVisible,
139
- paddingTop: SIZE_PARAMS_MAP[size].paddingTop,
140
- required: required,
141
- size: size
142
- }, modernPlaceholderText), /*#__PURE__*/React.createElement(PureInput, _extends({
117
+ }, /*#__PURE__*/React.createElement(S.InputWrapper, null, modernPlaceholder, /*#__PURE__*/React.createElement(PureInput, _extends({
143
118
  onClick: handleTrigger,
144
119
  ref: inputRef,
145
120
  hasError: hasError,
146
121
  inFocus: inFocus,
147
122
  name: name,
148
- placeholder: inputPlaceholder,
123
+ placeholder: useModernStyles ? undefined : placeholder || logic.getPlaceholder(),
149
124
  onFocus: handleFocus,
150
125
  onBlur: handleBlur,
151
126
  value: stringValue,
152
127
  onChange: handleStringValueChange,
153
128
  paddingRight: 44,
154
129
  useModernStyles: useModernStyles
155
- }, paddingOptions)), /*#__PURE__*/React.createElement(S.Icon, {
130
+ }, paddingAndVariantOptions)), /*#__PURE__*/React.createElement(S.Icon, {
156
131
  onClick: handleTrigger,
157
132
  $palette: palette
158
133
  }, /*#__PURE__*/React.createElement(CalendarIcon, null)))), isMobile ? /*#__PURE__*/React.createElement(MobileDrawerDateCalendar, {