@skbkontur/react-ui 5.4.0 → 5.4.2

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 (81) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +10 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -2
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +23 -13
  6. package/cjs/components/Button/Button.js +13 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +10 -17
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/FxInput/FxInput.d.ts +23 -16
  12. package/cjs/components/FxInput/FxInput.js +142 -65
  13. package/cjs/components/FxInput/FxInput.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +27 -37
  15. package/cjs/components/Input/Input.js +9 -19
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Link/Link.d.ts +10 -10
  18. package/cjs/components/Link/Link.js +1 -1
  19. package/cjs/components/Link/Link.js.map +1 -1
  20. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  21. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
  22. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  23. package/cjs/components/MaskedInput/MaskedInput.js +5 -3
  24. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  25. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -6
  26. package/cjs/components/PasswordInput/PasswordInput.js +4 -5
  27. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  28. package/cjs/components/__stories__/Form.js +95 -0
  29. package/cjs/components/__stories__/Form.js.map +1 -0
  30. package/cjs/internal/CommonWrapper/types.d.ts +1 -1
  31. package/cjs/internal/CommonWrapper/types.js.map +1 -1
  32. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  33. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  34. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +2 -0
  35. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  36. package/cjs/lib/utils.d.ts +5 -1
  37. package/cjs/lib/utils.js +20 -4
  38. package/cjs/lib/utils.js.map +1 -1
  39. package/cjs/test-setup.d.ts +1 -0
  40. package/cjs/vitest.config.d.ts +2 -0
  41. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -2
  42. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  43. package/components/Autocomplete/Autocomplete.d.ts +10 -2
  44. package/components/Button/Button/Button.js +4 -2
  45. package/components/Button/Button/Button.js.map +1 -1
  46. package/components/Button/Button.d.ts +23 -13
  47. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -17
  48. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  49. package/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  50. package/components/FxInput/FxInput/FxInput.js +122 -71
  51. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  52. package/components/FxInput/FxInput.d.ts +23 -16
  53. package/components/Input/Input/Input.js +8 -16
  54. package/components/Input/Input/Input.js.map +1 -1
  55. package/components/Input/Input.d.ts +27 -37
  56. package/components/Link/Link/Link.js +1 -1
  57. package/components/Link/Link/Link.js.map +1 -1
  58. package/components/Link/Link.d.ts +10 -10
  59. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
  60. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  61. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  62. package/components/MaskedInput/MaskedInput/MaskedInput.js +4 -2
  63. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  64. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -5
  65. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  66. package/components/PasswordInput/PasswordInput.d.ts +5 -6
  67. package/components/__stories__/Form/Form.js +98 -0
  68. package/components/__stories__/Form/Form.js.map +1 -0
  69. package/components/__stories__/Form/package.json +6 -0
  70. package/internal/CommonWrapper/types/types.js.map +1 -1
  71. package/internal/CommonWrapper/types.d.ts +1 -1
  72. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  73. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
  74. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  75. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  76. package/lib/utils/utils.js +18 -2
  77. package/lib/utils/utils.js.map +1 -1
  78. package/lib/utils.d.ts +5 -1
  79. package/package.json +8 -14
  80. package/test-setup.d.ts +1 -0
  81. package/vitest.config.d.ts +2 -0
@@ -8,22 +8,25 @@ import type { DefaultizedProps } from '../../lib/createPropsGetter';
8
8
  import type { Override } from '../../typings/utility-types';
9
9
  import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
10
10
  import type { TGetRootNode } from '../../lib/rootNode';
11
- export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<CurrencyInputProps, {
12
- /** Устанавливает авто-режим. */
11
+ import type { MaskedInputProps } from '../MaskedInput';
12
+ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, Override<Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, {
13
+ /** Управляет видимостью кнопки Restore:
14
+ * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.
15
+ * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */
13
16
  auto?: boolean;
14
- /** Задает тип инпута */
17
+ /** Задаёт тип поля. */
15
18
  type?: 'currency' | InputProps['type'];
16
- /** Задает функцию, которая вызывается при нажатии на кнопку Restore. */
19
+ /** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */
17
20
  onRestore?: () => void;
18
- /** Задает функцию, вызывающуюся при изменении value. */
21
+ /** Задаёт функцию, вызывающуюся при изменении value. */
19
22
  onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];
20
- /** Задает значение инпута. */
23
+ /** Задаёт значение поля. */
21
24
  value?: string | number;
22
- /** Задает ref инпута. */
25
+ /** Задаёт ref поля. */
23
26
  refInput?: (element: CurrencyInput | Input | null) => void;
24
27
  /** Убирает лишние нули после запятой. */
25
28
  hideTrailingZeros?: boolean;
26
- /** Задает атрибут aria-label кнопке восстановления (restore button). */
29
+ /** Задаёт атрибут aria-label кнопке Restore. */
27
30
  buttonAriaLabel?: AriaAttributes['aria-label'];
28
31
  /** @ignore */
29
32
  corners?: React.CSSProperties;
@@ -32,14 +35,11 @@ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, Common
32
35
  export declare const FxInputDataTids: {
33
36
  readonly root: "FxInput__root";
34
37
  };
35
- type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;
38
+ type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;
36
39
  type DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;
37
- /**
38
- * Автополе `FxInput`.
40
+ /** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.
39
41
  *
40
- * Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.
41
- *
42
- * Принимает все свойства `Input`'a.
42
+ * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.
43
43
  */
44
44
  export declare class FxInput extends React.Component<FxInputProps> {
45
45
  static __KONTUR_REACT_UI__: string;
@@ -51,16 +51,23 @@ export declare class FxInput extends React.Component<FxInputProps> {
51
51
  private getProps;
52
52
  getRootNode: TGetRootNode;
53
53
  private setRootNode;
54
+ private featureFlags;
55
+ private validateProps;
56
+ componentDidMount(): void;
57
+ componentDidUpdate(): void;
54
58
  render(): React.JSX.Element;
55
59
  renderMain: (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => React.JSX.Element;
56
- /**
60
+ /** Программно устанавливает фокус на поле.
61
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
57
62
  * @public
58
63
  */
59
64
  focus: () => void;
60
- /**
65
+ /** Программно снимает фокус с кнопки.
61
66
  * @public
62
67
  */
63
68
  blur: () => void;
64
69
  private refInput;
70
+ private getLeftIcon;
71
+ private getInput;
65
72
  }
66
73
  export {};
@@ -69,17 +69,7 @@ export var InputDataTids = {
69
69
  };
70
70
 
71
71
  /**
72
- * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.
73
- *
74
- * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
75
- *
76
- * Если вводимое значение имеет определенный формат, используйте специальную версию поля:
77
- * * Поле с паролем PasswordInput.
78
- * * Поле с валютой CurrencyInput.
79
- * * Поле с маской MaskedInput.
80
- * * Автополе FxInput.
81
- *
82
- * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
72
+ * Поле ввода позволяет ввести или отредактировать значение.
83
73
  */
84
74
  export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/function (_React$Component) {
85
75
  function Input() {
@@ -118,6 +108,7 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
118
108
  };
119
109
 
120
110
  /**
111
+ * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.
121
112
  * Работает с типами `text`, `password`, `tel`, `search`, `url`
122
113
  * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
123
114
  * @public
@@ -399,24 +390,25 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
399
390
  };
400
391
  _proto.componentWillUnmount = function componentWillUnmount() {
401
392
  this.cancelDelayedSelectAll();
402
- } /**
393
+ } /** Программно устанавливает фокус на поле.
394
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
403
395
  * @public
404
396
  */;
405
397
  _proto.focus = function focus() {
406
398
  invariant(this.input, 'Cannot call "focus" because Input is not mounted');
407
399
  this.input.focus();
408
- } /**
400
+ } /** Программно снимает фокус с кнопки.
409
401
  * @public
410
402
  */;
411
403
  _proto.blur = function blur() {
412
404
  invariant(this.input, 'Cannot call "blur" because Input is not mounted');
413
405
  this.input.blur();
414
- } /**
406
+ } /** Возвращает DOM-узел поля ввода.
415
407
  * @public
416
408
  */;
417
409
  _proto.getNode = function getNode() {
418
410
  return this.input;
419
- } /**
411
+ } /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.
420
412
  * @public
421
413
  */;
422
414
  _proto.blink = function blink() {
@@ -424,7 +416,7 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
424
416
  el: this.labelRef.current,
425
417
  blinkColor: this.theme.inputBlinkColor
426
418
  });
427
- } /**
419
+ } /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.
428
420
  * @public
429
421
  * @param {number} start
430
422
  * @param {number} end
@@ -1 +1 @@
1
- {"version":3,"names":["invariant","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Задает выравнивание контента. */\n align?: InputAlign;\n\n /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задает словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при изменении значения в инпуте. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает тип инпута. */\n type?: InputType;\n\n /** Задает значение. */\n value?: string;\n\n ///** */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n\n /** Задает функцию для обработки ввода.\n * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.\n * Если `onUnexpectedInput` передан - вызывается переданный обработчик и вспыхивание можно вызвать публичным методом инстанса `blink()`.\n * @param {string} value - значение инпута. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.\n *\n * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.\n *\n * Если вводимое значение имеет определенный формат, используйте специальную версию поля:\n * * Поле с паролем PasswordInput.\n * * Поле с валютой CurrencyInput.\n * * Поле с маской MaskedInput.\n * * Автополе FxInput.\n *\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n */\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["invariant","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Задаёт паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задаёт словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задаёт размер.\n * @default small\n */\n size?: SizeProp;\n\n /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт тип поля ввода. */\n type?: InputType;\n\n /** Задаёт значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,14 +22,10 @@ export declare const calculateClearCrossShowedState: ({ showClearIcon, notEmptyV
22
22
  hovered?: boolean | undefined;
23
23
  }) => boolean;
24
24
  export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
25
- /** Показывать иконку очистки значения в непустом поле:
26
- * - `always` — всегда показывать иконку
27
- * - `auto` — показывать иконку при hover/focus
28
- * - `never` — не показывать иконку
29
- * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.
25
+ /** Показывает иконку очистки значения в заполненном поле.
30
26
  * @default never */
31
27
  showClearIcon?: ShowClearIcon;
32
- /** Задает иконку слева.
28
+ /** Добавляет иконку слева.
33
29
  * При использовании `ReactNode` применяются дефолтные стили для иконки.
34
30
  * При использовании `() => ReactNode` применяются только стили для позиционирования. */
35
31
  leftIcon?: InputIconType;
@@ -37,30 +33,32 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
37
33
  * При использовании `ReactNode` применяются дефолтные стили для иконки.
38
34
  * При использовании `() => ReactNode` применяются только стили для позиционирования. */
39
35
  rightIcon?: InputIconType;
40
- /** Переводит контрол в состояние валидации "ошибка". */
36
+ /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
41
37
  error?: boolean;
42
- /** Переводит контрол в состояние валидации "предупреждение". */
38
+ /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
43
39
  warning?: boolean;
44
- /** Убирает обводку. */
40
+ /** Убирает обводку поля. */
45
41
  borderless?: boolean;
46
- /** Задает выравнивание контента. */
42
+ /** Выравнивает контент внутри поля. */
47
43
  align?: InputAlign;
48
- /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`
44
+ /** Задаёт паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`
49
45
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
50
46
  mask?: Nullable<string>;
51
47
  /** Устанавливает символ маски.
52
48
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
53
49
  maskChar?: Nullable<string>;
54
- /** Задает словарь символов-регулярок для задания маски
50
+ /** Задаёт словарь символов-регулярок для задания маски
55
51
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.
56
52
  * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */
57
53
  formatChars?: Record<string, string>;
58
54
  /** Включает показ символов маски.
59
55
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
60
56
  alwaysShowMask?: boolean;
61
- /** Задает размер. */
57
+ /** Задаёт размер.
58
+ * @default small
59
+ */
62
60
  size?: SizeProp;
63
- /** Задает функцию, которая вызывается при изменении значения в инпуте. */
61
+ /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */
64
62
  onValueChange?: (value: string) => void;
65
63
  /** @ignore */
66
64
  onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
@@ -68,21 +66,21 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
68
66
  onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
69
67
  /** @ignore */
70
68
  onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
71
- /** Задает тип инпута. */
69
+ /** Задаёт тип поля ввода. */
72
70
  type?: InputType;
73
- /** Задает значение. */
71
+ /** Задаёт значение внутри поля. */
74
72
  value?: string;
73
+ /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */
75
74
  capture?: boolean;
76
75
  /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */
77
76
  prefix?: React.ReactNode;
78
77
  /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */
79
78
  suffix?: React.ReactNode;
80
- /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */
79
+ /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */
81
80
  selectAllOnFocus?: boolean;
82
- /** Задает функцию для обработки ввода.
83
- * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.
84
- * Если `onUnexpectedInput` передан - вызывается переданный обработчик и вспыхивание можно вызвать публичным методом инстанса `blink()`.
85
- * @param {string} value - значение инпута. */
81
+ /** Устанавливает обработчик на случай некорректного ввода.
82
+ * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.
83
+ * @param {string} value - значение поля. */
86
84
  onUnexpectedInput?: (value: string) => void;
87
85
  /** Устанавливает радиус скруглений углов.
88
86
  * @ignore */
@@ -103,17 +101,7 @@ export declare const InputDataTids: {
103
101
  };
104
102
  type DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;
105
103
  /**
106
- * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.
107
- *
108
- * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
109
- *
110
- * Если вводимое значение имеет определенный формат, используйте специальную версию поля:
111
- * * Поле с паролем PasswordInput.
112
- * * Поле с валютой CurrencyInput.
113
- * * Поле с маской MaskedInput.
114
- * * Автополе FxInput.
115
- *
116
- * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
104
+ * Поле ввода позволяет ввести или отредактировать значение.
117
105
  */
118
106
  export declare class Input extends React.Component<InputProps, InputState> {
119
107
  static __KONTUR_REACT_UI__: string;
@@ -133,23 +121,24 @@ export declare class Input extends React.Component<InputProps, InputState> {
133
121
  componentDidMount(): void;
134
122
  componentDidUpdate(prevProps: Readonly<InputProps>): void;
135
123
  componentWillUnmount(): void;
136
- /**
124
+ /** Программно устанавливает фокус на поле.
125
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
137
126
  * @public
138
127
  */
139
128
  focus(): void;
140
- /**
129
+ /** Программно снимает фокус с кнопки.
141
130
  * @public
142
131
  */
143
132
  blur(): void;
144
- /**
133
+ /** Возвращает DOM-узел поля ввода.
145
134
  * @public
146
135
  */
147
136
  getNode(): HTMLInputElement | null;
148
- /**
137
+ /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.
149
138
  * @public
150
139
  */
151
140
  blink(): void;
152
- /**
141
+ /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.
153
142
  * @public
154
143
  * @param {number} start
155
144
  * @param {number} end
@@ -159,6 +148,7 @@ export declare class Input extends React.Component<InputProps, InputState> {
159
148
  render(): JSX.Element;
160
149
  private get canBeUsedWithMask();
161
150
  /**
151
+ * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.
162
152
  * Работает с типами `text`, `password`, `tel`, `search`, `url`
163
153
  * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
164
154
  * @public
@@ -23,7 +23,7 @@ export var LinkDataTids = {
23
23
  };
24
24
 
25
25
  /**
26
- * Элемент ссылки из HTML.
26
+ * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.
27
27
  */
28
28
  export var Link = rootNode(_class = (_Link = /*#__PURE__*/function (_React$Component) {
29
29
  function Link() {