@skbkontur/react-ui 5.0.0-beta.0 → 5.0.0-beta.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 (153) hide show
  1. package/cjs/components/Button/Button.d.ts +1 -1
  2. package/cjs/components/Button/Button.js +0 -1
  3. package/cjs/components/Button/Button.js.map +1 -1
  4. package/cjs/components/Link/Link.d.ts +1 -1
  5. package/cjs/components/Link/Link.js +2 -13
  6. package/cjs/components/Link/Link.js.map +1 -1
  7. package/cjs/components/Link/Link.styles.d.ts +2 -4
  8. package/cjs/components/Link/Link.styles.js +8 -25
  9. package/cjs/components/Link/Link.styles.js.map +1 -1
  10. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +4 -1
  11. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  12. package/cjs/components/MaskedInput/FixedIMaskInput.js +8 -7
  13. package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
  14. package/cjs/components/MaskedInput/MaskedInput.d.ts +2 -3
  15. package/cjs/components/MaskedInput/MaskedInput.helpers.d.ts +2 -3
  16. package/cjs/components/MaskedInput/MaskedInput.helpers.js +1 -7
  17. package/cjs/components/MaskedInput/MaskedInput.helpers.js.map +1 -1
  18. package/cjs/components/MaskedInput/MaskedInput.js +10 -8
  19. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  20. package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js +37 -42
  21. package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js.map +1 -1
  22. package/cjs/components/MenuFooter/MenuFooter.mixins.d.ts +1 -1
  23. package/cjs/components/MenuFooter/MenuFooter.mixins.js +1 -4
  24. package/cjs/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  25. package/cjs/components/MenuFooter/MenuFooter.styles.js +0 -3
  26. package/cjs/components/MenuFooter/MenuFooter.styles.js.map +1 -1
  27. package/cjs/components/MenuHeader/MenuHeader.mixins.d.ts +1 -1
  28. package/cjs/components/MenuHeader/MenuHeader.mixins.js +1 -4
  29. package/cjs/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  30. package/cjs/components/MenuHeader/MenuHeader.styles.js +0 -3
  31. package/cjs/components/MenuHeader/MenuHeader.styles.js.map +1 -1
  32. package/cjs/components/MenuItem/MenuItem.js +1 -1
  33. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  34. package/cjs/components/MenuItem/MenuItem.mixins.d.ts +2 -2
  35. package/cjs/components/MenuItem/MenuItem.mixins.js +2 -10
  36. package/cjs/components/MenuItem/MenuItem.mixins.js.map +1 -1
  37. package/cjs/components/MenuItem/MenuItem.styles.d.ts +2 -2
  38. package/cjs/components/MenuItem/MenuItem.styles.js +9 -20
  39. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  40. package/cjs/components/Modal/Modal.styles.js +5 -7
  41. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  42. package/cjs/components/RadioGroup/RadioGroup.d.ts +0 -2
  43. package/cjs/components/RadioGroup/RadioGroup.js +2 -17
  44. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  45. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +1 -2
  46. package/cjs/components/RadioGroup/RadioGroup.styles.js +3 -4
  47. package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  48. package/cjs/components/SidePage/SidePage.styles.js +1 -4
  49. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  50. package/cjs/components/Toast/ToastView.js +14 -6
  51. package/cjs/components/Toast/ToastView.js.map +1 -1
  52. package/cjs/components/Token/Token.js +1 -1
  53. package/cjs/components/Token/Token.js.map +1 -1
  54. package/cjs/components/Token/Token.styles.d.ts +1 -1
  55. package/cjs/components/Token/Token.styles.js +2 -3
  56. package/cjs/components/Token/Token.styles.js.map +1 -1
  57. package/cjs/components/TokenInput/TokenInput.styles.d.ts +0 -1
  58. package/cjs/components/TokenInput/TokenInput.styles.js +4 -10
  59. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  60. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  61. package/cjs/internal/CustomComboBox/CustomComboBox.js +15 -1
  62. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  63. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  64. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +25 -18
  65. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  66. package/cjs/internal/MenuMessage/MenuMessage.styles.js +0 -2
  67. package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  68. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  69. package/cjs/internal/themes/BasicLightTheme.d.ts +0 -12
  70. package/cjs/internal/themes/BasicLightTheme.js +12 -38
  71. package/cjs/internal/themes/BasicLightTheme.js.map +1 -1
  72. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +25 -16
  73. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +3 -1
  74. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  75. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +5 -1
  76. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  77. package/components/Button/Button/Button.js +0 -3
  78. package/components/Button/Button/Button.js.map +1 -1
  79. package/components/Button/Button.d.ts +1 -1
  80. package/components/Link/Link/Link.js +2 -9
  81. package/components/Link/Link/Link.js.map +1 -1
  82. package/components/Link/Link.d.ts +1 -1
  83. package/components/Link/Link.styles/Link.styles.js +6 -12
  84. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  85. package/components/Link/Link.styles.d.ts +2 -4
  86. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
  87. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  88. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +8 -7
  89. package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
  90. package/components/MaskedInput/MaskedInput/MaskedInput.js +11 -7
  91. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  92. package/components/MaskedInput/MaskedInput.d.ts +2 -3
  93. package/components/MaskedInput/MaskedInput.helpers/MaskedInput.helpers.js +1 -4
  94. package/components/MaskedInput/MaskedInput.helpers/MaskedInput.helpers.js.map +1 -1
  95. package/components/MaskedInput/MaskedInput.helpers.d.ts +2 -3
  96. package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js +48 -55
  97. package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js.map +1 -1
  98. package/components/MenuFooter/MenuFooter.mixins/MenuFooter.mixins.js +2 -3
  99. package/components/MenuFooter/MenuFooter.mixins/MenuFooter.mixins.js.map +1 -1
  100. package/components/MenuFooter/MenuFooter.mixins.d.ts +1 -1
  101. package/components/MenuFooter/MenuFooter.styles/MenuFooter.styles.js +3 -3
  102. package/components/MenuFooter/MenuFooter.styles/MenuFooter.styles.js.map +1 -1
  103. package/components/MenuHeader/MenuHeader.mixins/MenuHeader.mixins.js +2 -3
  104. package/components/MenuHeader/MenuHeader.mixins/MenuHeader.mixins.js.map +1 -1
  105. package/components/MenuHeader/MenuHeader.mixins.d.ts +1 -1
  106. package/components/MenuHeader/MenuHeader.styles/MenuHeader.styles.js +3 -3
  107. package/components/MenuHeader/MenuHeader.styles/MenuHeader.styles.js.map +1 -1
  108. package/components/MenuItem/MenuItem/MenuItem.js +1 -1
  109. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  110. package/components/MenuItem/MenuItem.mixins/MenuItem.mixins.js +3 -5
  111. package/components/MenuItem/MenuItem.mixins/MenuItem.mixins.js.map +1 -1
  112. package/components/MenuItem/MenuItem.mixins.d.ts +2 -2
  113. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +11 -15
  114. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  115. package/components/MenuItem/MenuItem.styles.d.ts +2 -2
  116. package/components/Modal/Modal.styles/Modal.styles.js +4 -6
  117. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  118. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -9
  119. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  120. package/components/RadioGroup/RadioGroup.d.ts +0 -2
  121. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js +2 -2
  122. package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js.map +1 -1
  123. package/components/RadioGroup/RadioGroup.styles.d.ts +1 -2
  124. package/components/SidePage/SidePage.styles/SidePage.styles.js +1 -1
  125. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  126. package/components/Toast/ToastView/ToastView.js +16 -14
  127. package/components/Toast/ToastView/ToastView.js.map +1 -1
  128. package/components/Token/Token/Token.js +1 -1
  129. package/components/Token/Token/Token.js.map +1 -1
  130. package/components/Token/Token.styles/Token.styles.js +2 -2
  131. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  132. package/components/Token/Token.styles.d.ts +1 -1
  133. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +4 -7
  134. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  135. package/components/TokenInput/TokenInput.styles.d.ts +0 -1
  136. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +10 -5
  137. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  138. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  139. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +23 -18
  140. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  141. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  142. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +0 -2
  143. package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -1
  144. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  145. package/internal/themes/BasicLightTheme/BasicLightTheme.js +7 -20
  146. package/internal/themes/BasicLightTheme/BasicLightTheme.js.map +1 -1
  147. package/internal/themes/BasicLightTheme.d.ts +0 -12
  148. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +25 -16
  149. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +3 -1
  150. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  151. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  152. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  153. package/package.json +3 -3
@@ -103,7 +103,7 @@ export interface ButtonInnerProps extends CommonProps {
103
103
  */
104
104
  theme?: ThemeIn;
105
105
  }
106
- export declare const BUTTON_DEFAULT_COMPONENT: ButtonLinkAllowedValues;
106
+ export declare const BUTTON_DEFAULT_COMPONENT = "button";
107
107
  export type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<ButtonInnerProps, C>;
108
108
  export interface ButtonState {
109
109
  focusedByTab: boolean;
@@ -354,7 +354,6 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
354
354
  if ((!isFocused || isLink) && !trueDisabled) {var _cx2;
355
355
  outlineNode = /*#__PURE__*/
356
356
  _react.default.createElement("div", {
357
- style: { zIndex: isLink ? -1 : undefined },
358
357
  className: (0, _Emotion.cx)(_Button2.styles.outline(), (_cx2 = {}, _cx2[
359
358
  _Button2.styles.outlineWarning(_this.theme)] = warning, _cx2[
360
359
  _Button2.styles.outlineError(_this.theme)] = error, _cx2[
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","zIndex","undefined","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT: ButtonLinkAllowedValues = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n style={{ zIndex: isLink ? -1 : undefined }}\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
@@ -54,7 +54,7 @@ export interface LinkInnerProps extends CommonProps {
54
54
  */
55
55
  warning?: boolean;
56
56
  }
57
- declare const LINK_DEFAULT_COMPONENT: ButtonLinkAllowedValues;
57
+ declare const LINK_DEFAULT_COMPONENT = "a";
58
58
  export type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<LinkInnerProps, C>;
59
59
  export interface LinkState {
60
60
  focusedByTab: boolean;
@@ -180,16 +180,6 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
180
180
 
181
181
  var nonInteractive = disabled || loading;
182
182
 
183
- var outlineNode = /*#__PURE__*/
184
- _react.default.createElement("div", {
185
- className: (0, _Emotion.cx)(
186
- _Link2.styles.outline(_this.theme),
187
- warning && _Link2.styles.outlineWarning(_this.theme),
188
- error && _Link2.styles.outlineError(_this.theme)
189
- ) }
190
- );
191
-
192
-
193
183
  var rootProps = (0, _extends2.default)({},
194
184
  rest, {
195
185
  className: (0, _Emotion.cx)((_cx = {}, _cx[
@@ -205,6 +195,8 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
205
195
  _Link2.styles.useGrayedFocus(_this.theme)] = use === 'grayed' && focused, _cx[
206
196
  _Link2.styles.button(_this.theme)] = !!_button, _cx[
207
197
  _Link2.styles.buttonOpened(_this.theme)] = !!_buttonOpened, _cx[
198
+ _Link2.styles.warning(_this.theme)] = warning, _cx[
199
+ _Link2.styles.error(_this.theme)] = error, _cx[
208
200
  _Link2.styles.lineFocus(_this.theme)] = isFocused && use === 'default', _cx[
209
201
  _Link2.styles.lineFocusSuccess(_this.theme)] = isFocused && use === 'success', _cx[
210
202
  _Link2.styles.lineFocusDanger(_this.theme)] = isFocused && use === 'danger', _cx[
@@ -219,13 +211,10 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
219
211
 
220
212
  return /*#__PURE__*/(
221
213
  _react.default.createElement(Root, (0, _extends2.default)({ "data-tid": LinkDataTids.root }, rootProps, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })),
222
- outlineNode, /*#__PURE__*/
223
- _react.default.createElement("span", { className: _Link2.styles.content() },
224
214
  leftIconElement,
225
215
  _this.props.children,
226
216
  rightIconElement,
227
217
  arrow
228
- )
229
218
  ));
230
219
 
231
220
  };_this.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","outlineNode","cx","outline","outlineWarning","outlineError","rootProps","_extends2","resetButton","disableTextSelect","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","getVisualStateDataAttributes","content","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton, disableTextSelect } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT: ButtonLinkAllowedValues = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const outlineNode = (\n <div\n className={cx(\n styles.outline(this.theme),\n warning && styles.outlineWarning(this.theme),\n error && styles.outlineError(this.theme),\n )}\n />\n );\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [disableTextSelect()]: disabled || loading,\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {outlineNode}\n <span className={styles.content()}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </span>\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","rootProps","_extends2","cx","resetButton","disableTextSelect","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton, disableTextSelect } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [disableTextSelect()]: disabled || loading,\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"6dAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;AAGA,IAAAE,OAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,6BAAA,GAAAX,OAAA;;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA,eAAsC,IAAAc,SAAA,wJAAAC,MAAA,EAAAC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDtC,IAAMC,sBAAsB,GAAG,GAAG;;;;;;;;;;AAU3B,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,IAAI,EAAE;AACR,CAAU;;;;;AAKV;AACA;AACA,GAFA;;AAIaC,IAAI,GAAAF,OAAA,CAAAE,IAAA,OADhBC,kBAAQ,EAAAP,MAAA,IAAAC,KAAA,0BAAAO,gBAAA,YAAAF,KAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;IAaCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,IAAI,CAACe,YAAY,CAAC,CAAAZ,KAAA;;IAEhDa,KAAK,GAAc;MACxBC,YAAY,EAAE;IAChB,CAAC,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;IAoBOe,WAAW,GAAG,UAAAC,IAAA;;;;;;IAMhB,KALJC,cAAc,GAAAD,IAAA,CAAdC,cAAc,CAAAC,aAAA,GAAAF,IAAA,CACdG,QAAQ,CAARA,QAAQ,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;MAKZ,OAAOD,cAAc,GAAG,CAAC,CAAC,GAAGE,QAAQ;IACvC,CAAC,CAAAnB,KAAA;;IAEOoB,MAAM,GAAG,YAAM;MACrB,IAAIC,aAAa,CAACrB,KAAA,CAAKsB,KAAK,CAAC,EAAE;QAC7B,IAAAC,WAAA,GAAsBvB,KAAA,CAAKsB,KAAK,CAAxBE,GAAG,GAAAD,WAAA,CAAHC,GAAG,CAAEC,IAAI,GAAAF,WAAA,CAAJE,IAAI;QACjB,IAAI,CAACD,GAAG,IAAIC,IAAI,EAAE;UAChB,qBAAkB,IAAAC,qBAAc,EAACD,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE;QAC7D;QACA,OAAOD,GAAG;MACZ;;MAEA,OAAOG,SAAS;IAClB,CAAC,CAAA3B,KAAA;;IAEO4B,UAAU,GAAG,UAACN,KAAmD,EAAK,KAAAO,GAAA;MAC5E;QACEC,QAAQ;;;;;;;;;;;;;;QAcNR,KAAK,CAdPQ,QAAQ,CACRC,IAAI,GAaFT,KAAK,CAbPS,IAAI,CACJC,SAAS,GAYPV,KAAK,CAZPU,SAAS,CACTC,GAAG,GAWDX,KAAK,CAXPW,GAAG,CACHC,OAAO,GAULZ,KAAK,CAVPY,OAAO,CACPC,OAAO,GASLb,KAAK,CATPa,OAAO,CACPC,aAAa,GAQXd,KAAK,CARPc,aAAa,CACFC,IAAI,GAObf,KAAK,CAPPgB,SAAS,CAAAC,cAAA,GAOPjB,KAAK,CANPkB,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA,CACfE,KAAK,GAKHnB,KAAK,CALPmB,KAAK,CACLC,OAAO,GAILpB,KAAK,CAJPoB,OAAO,CACPvB,QAAQ,GAGNG,KAAK,CAHPH,QAAQ,CACRwB,KAAK,GAEHrB,KAAK,CAFPqB,KAAK,CACFC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLxB,KAAK,EAAAhC,SAAA;;MAET,IAAIyD,KAAK,GAAG,IAAI;MAChB,IAAIZ,OAAO,EAAE;QACXY,KAAK,gBAAGzE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,WAAMC,SAAS,EAAEC,aAAM,CAACH,KAAK,CAAC,CAAE,EAAE,CAAC;MAC7C;;MAEA,IAAMI,SAAS,GAAG,CAACrB,QAAQ,KAAK9B,KAAA,CAAKa,KAAK,CAACC,YAAY,IAAI0B,OAAO,CAAC;;MAEnE,IAAMY,eAAe,GAAGrB,IAAI,iBAAIzD,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACtB,IAAI,EAAEA,IAAK,EAACG,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,MAAM,EAAE,CAAC;MAC1F,IAAMC,gBAAgB,GAAGvB,SAAS;MAChC1D,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACG,YAAY,EAAE,CAAC,CAACzB,IAAI,IAAI,CAAC,CAACC,SAAU,EAACD,IAAI,EAAEC,SAAU,EAACE,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,OAAO,EAAE,CACrG;;MACD,IAAMrC,cAAc,GAAGa,QAAQ,IAAII,OAAO;;MAE1C,IAAMuB,SAAS,OAAAC,SAAA,CAAAZ,OAAA;MACVF,IAAI;QACPK,SAAS,EAAE,IAAAU,WAAE,GAAA9B,GAAA,OAAAA,GAAA;QACVqB,aAAM,CAACtD,IAAI,CAACI,KAAA,CAAK2C,KAAK,CAAC,IAAG,IAAI,EAAAd,GAAA;QAC9B,IAAA+B,mBAAW,EAAC,CAAC,IAAGvB,IAAI,KAAK,QAAQ,EAAAR,GAAA;QACjC,IAAAgC,yBAAiB,EAAC,CAAC,IAAG/B,QAAQ,IAAII,OAAO,EAAAL,GAAA;QACzCqB,aAAM,CAACY,KAAK,CAAC9D,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,EAAAtB,GAAA;QACpCqB,aAAM,CAACpB,QAAQ,CAAC9B,KAAA,CAAK2C,KAAK,CAAC,IAAGb,QAAQ,IAAII,OAAO,EAAAL,GAAA;QACjDqB,aAAM,CAACa,UAAU,CAAC/D,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,SAAS,EAAAJ,GAAA;QACjDqB,aAAM,CAACc,UAAU,CAAChE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,SAAS,EAAAJ,GAAA;QACjDqB,aAAM,CAACe,SAAS,CAACjE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,QAAQ,EAAAJ,GAAA;QAC/CqB,aAAM,CAACgB,SAAS,CAAClE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,QAAQ,EAAAJ,GAAA;QAC/CqB,aAAM,CAACiB,cAAc,CAACnE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,QAAQ,IAAIO,OAAO,EAAAX,GAAA;QAC/DqB,aAAM,CAACkB,MAAM,CAACpE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACR,OAAO,EAAAN,GAAA;QACrCqB,aAAM,CAACmB,YAAY,CAACrE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACP,aAAa,EAAAP,GAAA;QACjDqB,aAAM,CAACR,OAAO,CAAC1C,KAAA,CAAK2C,KAAK,CAAC,IAAGD,OAAO,EAAAb,GAAA;QACpCqB,aAAM,CAACT,KAAK,CAACzC,KAAA,CAAK2C,KAAK,CAAC,IAAGF,KAAK,EAAAZ,GAAA;QAChCqB,aAAM,CAACoB,SAAS,CAACtE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,IAAIlB,GAAG,KAAK,SAAS,EAAAJ,GAAA;QAC7DqB,aAAM,CAACqB,gBAAgB,CAACvE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,IAAIlB,GAAG,KAAK,SAAS,EAAAJ,GAAA;QACpEqB,aAAM,CAACsB,eAAe,CAACxE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,IAAIlB,GAAG,KAAK,QAAQ,EAAAJ,GAAA;QAClEqB,aAAM,CAACuB,eAAe,CAACzE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,IAAIlB,GAAG,KAAK,QAAQ,EAAAJ,GAAA;QACpE,CAAC;QACF6C,OAAO,EAAE1E,KAAA,CAAK2E,WAAW;QACzBC,OAAO,EAAE5E,KAAA,CAAK6E,WAAW;QACzBC,MAAM,EAAE9E,KAAA,CAAK+E,UAAU;QACvB5D,QAAQ,EAAEnB,KAAA,CAAKe,WAAW,CAAC,EAAEE,cAAc,EAAdA,cAAc,EAAEE,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QACxDK,GAAG,EAAExB,KAAA,CAAKoB,MAAM,CAAC,CAAC,GACnB;;;MAED;QACE9C,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACX,IAAI,MAAAqB,SAAA,CAAAZ,OAAA,IAAC,YAAUpD,YAAY,CAACE,IAAK,IAAK6D,SAAS,EAAM,IAAAuB,0DAA4B,EAAC,EAAElD,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QAC7FsB,eAAe;QACfpD,KAAA,CAAKsB,KAAK,CAAC2D,QAAQ;QACnB1B,gBAAgB;QAChBR;QACG,CAAC;;IAEX,CAAC,CAAA/C,KAAA;;IAEO6E,WAAW,GAAG,YAAM;MAC1B,IAAI,CAAC7E,KAAA,CAAKsB,KAAK,CAACQ,QAAQ,EAAE;QACxB;QACA;QACAoD,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,YAAM;UACzC,IAAIC,wBAAW,CAACC,YAAY,EAAE;YAC5BrF,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAAd,KAAA;;IAEO+E,UAAU,GAAG,YAAM;MACzB/E,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAAd,KAAA;;IAEO2E,WAAW,GAAG,UAACY,KAAuB,EAAK;MACjD,IAAAC,YAAA,GAAuCxF,KAAA,CAAKsB,KAAK,CAAzCoD,OAAO,GAAAc,YAAA,CAAPd,OAAO,CAAE5C,QAAQ,GAAA0D,YAAA,CAAR1D,QAAQ,CAAEI,OAAO,GAAAsD,YAAA,CAAPtD,OAAO;;MAElC,IAAIwC,OAAO,IAAI,CAAC5C,QAAQ,IAAI,CAACI,OAAO,EAAE;QACpCwC,OAAO,CAACa,KAAK,CAAC;MAChB;IACF,CAAC,QAAAvF,KAAA,MAAAyF,eAAA,CAAA3C,OAAA,EAAAjD,IAAA,EAAAE,gBAAA,MAAA2F,MAAA,GAAA7F,IAAA,CAAA8F,SAAA,CAAAD,MAAA,CAjIME,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,oBACEvH,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACpE,aAAA,CAAAkH,YAAY,CAACC,QAAQ,QACnB,UAACpD,KAAK,EAAK,CACVkD,MAAI,CAAClD,KAAK,GAAGkD,MAAI,CAACvE,KAAK,CAACqB,KAAK,GAAGqD,0BAAY,CAACC,MAAM,CAACJ,MAAI,CAACvE,KAAK,CAACqB,KAAK,EAAWA,KAAK,CAAC,GAAGA,KAAK,CAC7F,oBACErE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAClE,cAAA,CAAAoH,aAAa,MAAAxC,SAAA,CAAAZ,OAAA,IAACqD,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACnF,QAAQ,CAAC,CAAC,GAC9DmF,MAAI,CAACjE,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,QAAA/B,IAAA,GAlC0FwG,cAAK,CAACC,SAAS,GAAA9G,KAAA,CAI5F+G,mBAAmB,GAAG,MAAM,EAAA/G,KAAA,CAC5BgH,WAAW,GAAG,MAAM,EAAAhH,KAAA,CAEpBoB,YAAY,GAAiB,EACzCqB,GAAG,EAAE,SAAS,EACdK,SAAS,EAAE7C,sBAAsB,CACnC,CAAC,EAAAD,KAAA,MAAAD,MAAA;;;AA+IH,IAAM8B,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAqB,EAA8B;EACxE,OAAOA,KAAK,CAACgB,SAAS,KAAK,GAAG;AAChC,CAAC","ignoreList":[]}
@@ -18,8 +18,6 @@ export declare const styles: {
18
18
  icon(): string;
19
19
  iconLeft(t: Theme): string;
20
20
  iconRight(t: Theme): string;
21
- content(): string;
22
- outline(t: Theme): string;
23
- outlineWarning(t: Theme): string;
24
- outlineError(t: Theme): string;
21
+ warning(t: Theme): string;
22
+ error(t: Theme): string;
25
23
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
2
2
 
3
3
 
4
- var _Link = require("./Link.mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24;
4
+ var _Link = require("./Link.mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22;
5
5
 
6
6
  var line = (0, _Emotion.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n"])));
7
7
 
@@ -115,10 +115,9 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
115
115
  },
116
116
 
117
117
  useDanger: function useDanger(t) {
118
- return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n }\n "])),
118
+ return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n "])),
119
119
  (0, _Link.linkUseColorsMixin)(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor));
120
120
 
121
-
122
121
  },
123
122
 
124
123
  useGrayed: function useGrayed(t) {
@@ -170,32 +169,16 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
170
169
 
171
170
  },
172
171
 
173
- content: function content() {
174
- return (0, _Emotion.css)(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n "])));
175
-
176
-
177
- },
178
-
179
- outline: function outline(t) {
180
- return (0, _Emotion.css)(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteralLoose2.default)(["\n border-radius: ", ";\n position: absolute;\n box-shadow: none;\n left: -2px;\n right: -2px;\n bottom: -2px;\n top: -2px;\n "])),
181
- t.btnLinkBorderRadius);
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
- },
190
-
191
- outlineWarning: function outlineWarning(t) {
192
- return (0, _Emotion.css)(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteralLoose2.default)(["\n background-color: ", ";\n "])),
172
+ warning: function warning(t) {
173
+ return (0, _Emotion.css)(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteralLoose2.default)(["\n background-color: ", ";\n box-shadow: 0 0 0 2px ", ";\n "])),
174
+ t.btnWarningSecondary,
193
175
  t.btnWarningSecondary);
194
176
 
195
177
  },
196
178
 
197
- outlineError: function outlineError(t) {
198
- return (0, _Emotion.css)(_templateObject24 || (_templateObject24 = (0, _taggedTemplateLiteralLoose2.default)(["\n background-color: ", ";\n "])),
179
+ error: function error(t) {
180
+ return (0, _Emotion.css)(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteralLoose2.default)(["\n background-color: ", ";\n box-shadow: 0 0 0 2px ", ";\n "])),
181
+ t.btnErrorSecondary,
199
182
  t.btnErrorSecondary);
200
183
 
201
184
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_Emotion","require","_Link","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","line","keyframes","_taggedTemplateLiteralLoose2","default","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","css","styles","exports","memoizeStyle","root","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","linkHoverColor","lineFocusSuccess","linkSuccessHoverColor","lineFocusDanger","linkDangerHoverColor","lineFocusGrayed","linkGrayedHoverColor","button","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","btnDefaultActiveBg","arrow","useDefault","linkUseColorsMixin","linkColor","linkActiveColor","useSuccess","linkSuccessColor","linkSuccessActiveColor","useDanger","linkDangerColor","linkDangerActiveColor","useGrayed","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","linkDisabledColor","focus","linkHoverTextDecoration","linkFocusOutline","disabled","linkDisabledMixin","icon","iconLeft","linkIconMarginRight","iconRight","linkIconMarginLeft","content","outline","btnLinkBorderRadius","outlineWarning","btnWarningSecondary","outlineError","btnErrorSecondary"],"sources":["Link.styles.ts"],"sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins';\n\nconst line = keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return css`\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n useDefault(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n useSuccess(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n useDanger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n }\n `;\n },\n\n useGrayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n outline(t: Theme) {\n return css`\n border-radius: ${t.btnLinkBorderRadius};\n position: absolute;\n box-shadow: none;\n left: -2px;\n right: -2px;\n bottom: -2px;\n top: -2px;\n `;\n },\n\n outlineWarning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n `;\n },\n\n outlineError(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_Emotion","require","_Link","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","line","keyframes","_taggedTemplateLiteralLoose2","default","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","css","styles","exports","memoizeStyle","root","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","linkHoverColor","lineFocusSuccess","linkSuccessHoverColor","lineFocusDanger","linkDangerHoverColor","lineFocusGrayed","linkGrayedHoverColor","button","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","btnDefaultActiveBg","arrow","useDefault","linkUseColorsMixin","linkColor","linkActiveColor","useSuccess","linkSuccessColor","linkSuccessActiveColor","useDanger","linkDangerColor","linkDangerActiveColor","useGrayed","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","linkDisabledColor","focus","linkHoverTextDecoration","linkFocusOutline","disabled","linkDisabledMixin","icon","iconLeft","linkIconMarginRight","iconRight","linkIconMarginLeft","warning","btnWarningSecondary","error","btnErrorSecondary"],"sources":["Link.styles.ts"],"sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins';\n\nconst line = keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return css`\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n useDefault(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n useSuccess(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n useDanger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n useGrayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -130,7 +130,10 @@ var ColorableInputElement = exports.ColorableInputElement = (0, _forwardRefAndNa
130
130
 
131
131
  var style = inputStyle.current;
132
132
 
133
- typedValueElement.textContent = inputRef.current.getAttribute('data-typed-value') || '';
133
+ typedValueElement.textContent =
134
+ (inputRef.current.getAttribute('data-unmasked-value') || focused.current) &&
135
+ inputRef.current.getAttribute('data-typed-value') ||
136
+ '';
134
137
 
135
138
  var inputRect = inputRef.current.getBoundingClientRect();
136
139
  var filledRect = spanRef.current.getBoundingClientRect();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_globalObject","_lodash","_interopRequireDefault","_ThemeContext","_forwardRefAndName","_Emotion","_ColorableInputElement","_excluded","ColorableInputElement","exports","forwardRefAndName","props","ref","inputRef","useRef","spanRef","focused","inputStyle","React","theme","useContext","ThemeContext","debouncedPaintText","useCallback","debounce","paintText","_useState","useState","active","setActive","children","onInput","onFocus","onBlur","showOnFocus","inputProps","_objectWithoutPropertiesLoose2","default","useImperativeHandle","input","current","getRootNode","useEffect","updateActive","activation","value","defaultValue","disabled","getComputedStyle","createElement","Fragment","cloneElement","_extends2","handleInput","handleFocus","handleBlur","className","cx","globalClasses","style","visibility","position","whiteSpace","e","_inputRef$current","isActive","parentElement","querySelector","setTimeout","_inputRef$current2","_inputRef$current3","cancel","backgroundImage","classList","remove","_props","_inputRef$current4","_shadow","isBrowser","globalObject","add","shadow","shadowRoot","typedValueElement","getElementById","attachShadow","mode","document","setAttribute","appendChild","textContent","getAttribute","inputRect","getBoundingClientRect","filledRect","threshold","width","degree","fontStyle","typedValueColor","inputTextColor","maskColor","inputPlaceholderColor","inputTextColorDisabled"],"sources":["ColorableInputElement.tsx"],"sourcesContent":["import React, { ForwardedRef, useContext, useEffect, useImperativeHandle, useRef, useCallback, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport debounce from 'lodash.debounce';\n\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { InputElement, InputElementProps } from '../../Input';\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport { cx } from '../../../lib/theming/Emotion';\n\nimport { globalClasses } from './ColorableInputElement.styles';\n\nexport type ColorableInputElementProps = InputElementProps & {\n showOnFocus?: boolean;\n children: React.ReactElement;\n};\n\n// Возможно придётся включить.\n// Иногда, на тяжёлых страницах, текст рендерится итеративно.\n// Из-за этого могут оставаться артефакты при покраске компонента, которые пропадут только после фокуса.\n// setInterval(() => window.requestAnimationFrame(() => dictionary.forEach((paint) => paint())), 1000);\n\nexport const ColorableInputElement = forwardRefAndName(\n 'ColorableInputElement',\n function ColorableInputElement(props: ColorableInputElementProps, ref: ForwardedRef<InputElement>) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const spanRef = useRef<HTMLSpanElement | null>(null);\n const focused = useRef(false);\n const inputStyle = React.useRef<CSSStyleDeclaration>();\n const theme = useContext(ThemeContext);\n const debouncedPaintText = useCallback(debounce(paintText), []);\n const [active, setActive] = useState(true);\n\n const { children, onInput, onFocus, onBlur, showOnFocus, ...inputProps } = props;\n\n useImperativeHandle(\n ref,\n () => ({\n input: inputRef.current,\n getRootNode: () => inputRef.current,\n }),\n [],\n );\n\n useEffect(updateActive, []);\n\n useEffect(() => {\n activation(props);\n updateActive();\n }, [active, showOnFocus, props.value, props.defaultValue, props.disabled, focused.current]);\n\n useEffect(() => {\n if (inputRef.current) {\n inputStyle.current = getComputedStyle(inputRef.current);\n }\n });\n\n return (\n <>\n {React.cloneElement(children, {\n ...inputProps,\n onInput: handleInput,\n onFocus: handleFocus,\n onBlur: handleBlur,\n inputRef,\n className: cx(props.className, active && globalClasses.input),\n })}\n {active && <span style={{ visibility: 'hidden', position: 'absolute', whiteSpace: 'pre' }} ref={spanRef} />}\n </>\n );\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const isActive = !inputRef.current?.parentElement?.querySelector(':placeholder-shown');\n setActive(isActive);\n\n activation(props);\n\n onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setTimeout(updateActive);\n\n focused.current = true;\n\n onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n updateActive();\n\n focused.current = false;\n\n onBlur?.(e);\n }\n\n function updateActive() {\n setTimeout(() => {\n setActive(!inputRef.current?.parentElement?.querySelector(':placeholder-shown'));\n });\n }\n\n function activation(props: ColorableInputElementProps) {\n if (active) {\n debouncedPaintText(props);\n } else {\n debouncedPaintText.cancel();\n inputRef.current && (inputRef.current.style.backgroundImage = '');\n inputRef.current?.classList.remove(globalClasses.input);\n }\n }\n\n function paintText(_props: Partial<ColorableInputElementProps> = props) {\n if (!spanRef.current || !inputRef.current || !inputStyle.current || !isBrowser(globalObject)) {\n return;\n }\n\n inputRef.current?.classList.add(globalClasses.input);\n\n let shadow = spanRef.current.shadowRoot;\n let typedValueElement = shadow?.getElementById('span');\n\n if (!typedValueElement) {\n shadow = spanRef.current.attachShadow({ mode: 'open' });\n\n typedValueElement = globalObject.document.createElement('span');\n typedValueElement.setAttribute('id', 'span');\n\n shadow.appendChild(typedValueElement);\n }\n\n const style = inputStyle.current;\n\n typedValueElement.textContent = inputRef.current.getAttribute('data-typed-value') || '';\n\n const inputRect = inputRef.current.getBoundingClientRect();\n const filledRect = spanRef.current.getBoundingClientRect();\n\n const threshold = filledRect.width / (inputRect.width / 100);\n const degree = style.fontStyle === 'italic' ? 100 : 90;\n\n let typedValueColor = theme.inputTextColor;\n let maskColor = theme.inputPlaceholderColor;\n if (_props.disabled) {\n typedValueColor = theme.inputTextColorDisabled;\n maskColor = theme.inputTextColorDisabled;\n }\n if (_props.showOnFocus) {\n maskColor = focused.current ? maskColor : 'transparent';\n }\n\n inputRef.current.style.backgroundImage = `\n linear-gradient(\n ${degree}deg,\n ${typedValueColor} ${threshold}%,\n ${maskColor} ${threshold}%\n )`;\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_globalObject","_lodash","_interopRequireDefault","_ThemeContext","_forwardRefAndName","_Emotion","_ColorableInputElement","_excluded","ColorableInputElement","exports","forwardRefAndName","props","ref","inputRef","useRef","spanRef","focused","inputStyle","React","theme","useContext","ThemeContext","debouncedPaintText","useCallback","debounce","paintText","_useState","useState","active","setActive","children","onInput","onFocus","onBlur","showOnFocus","inputProps","_objectWithoutPropertiesLoose2","default","useImperativeHandle","input","current","getRootNode","useEffect","updateActive","activation","value","defaultValue","disabled","getComputedStyle","createElement","Fragment","cloneElement","_extends2","handleInput","handleFocus","handleBlur","className","cx","globalClasses","style","visibility","position","whiteSpace","e","_inputRef$current","isActive","parentElement","querySelector","setTimeout","_inputRef$current2","_inputRef$current3","cancel","backgroundImage","classList","remove","_props","_inputRef$current4","_shadow","isBrowser","globalObject","add","shadow","shadowRoot","typedValueElement","getElementById","attachShadow","mode","document","setAttribute","appendChild","textContent","getAttribute","inputRect","getBoundingClientRect","filledRect","threshold","width","degree","fontStyle","typedValueColor","inputTextColor","maskColor","inputPlaceholderColor","inputTextColorDisabled"],"sources":["ColorableInputElement.tsx"],"sourcesContent":["import React, { ForwardedRef, useContext, useEffect, useImperativeHandle, useRef, useCallback, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\nimport debounce from 'lodash.debounce';\n\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { InputElement, InputElementProps } from '../../Input';\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport { cx } from '../../../lib/theming/Emotion';\n\nimport { globalClasses } from './ColorableInputElement.styles';\n\nexport type ColorableInputElementProps = InputElementProps & {\n showOnFocus?: boolean;\n children: React.ReactElement;\n};\n\n// Возможно придётся включить.\n// Иногда, на тяжёлых страницах, текст рендерится итеративно.\n// Из-за этого могут оставаться артефакты при покраске компонента, которые пропадут только после фокуса.\n// setInterval(() => window.requestAnimationFrame(() => dictionary.forEach((paint) => paint())), 1000);\n\nexport const ColorableInputElement = forwardRefAndName(\n 'ColorableInputElement',\n function ColorableInputElement(props: ColorableInputElementProps, ref: ForwardedRef<InputElement>) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const spanRef = useRef<HTMLSpanElement | null>(null);\n const focused = useRef(false);\n const inputStyle = React.useRef<CSSStyleDeclaration>();\n const theme = useContext(ThemeContext);\n const debouncedPaintText = useCallback(debounce(paintText), []);\n const [active, setActive] = useState(true);\n\n const { children, onInput, onFocus, onBlur, showOnFocus, ...inputProps } = props;\n\n useImperativeHandle(\n ref,\n () => ({\n input: inputRef.current,\n getRootNode: () => inputRef.current,\n }),\n [],\n );\n\n useEffect(updateActive, []);\n\n useEffect(() => {\n activation(props);\n updateActive();\n }, [active, showOnFocus, props.value, props.defaultValue, props.disabled, focused.current]);\n\n useEffect(() => {\n if (inputRef.current) {\n inputStyle.current = getComputedStyle(inputRef.current);\n }\n });\n\n return (\n <>\n {React.cloneElement(children, {\n ...inputProps,\n onInput: handleInput,\n onFocus: handleFocus,\n onBlur: handleBlur,\n inputRef,\n className: cx(props.className, active && globalClasses.input),\n })}\n {active && <span style={{ visibility: 'hidden', position: 'absolute', whiteSpace: 'pre' }} ref={spanRef} />}\n </>\n );\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const isActive = !inputRef.current?.parentElement?.querySelector(':placeholder-shown');\n setActive(isActive);\n\n activation(props);\n\n onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setTimeout(updateActive);\n\n focused.current = true;\n\n onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n updateActive();\n\n focused.current = false;\n\n onBlur?.(e);\n }\n\n function updateActive() {\n setTimeout(() => {\n setActive(!inputRef.current?.parentElement?.querySelector(':placeholder-shown'));\n });\n }\n\n function activation(props: ColorableInputElementProps) {\n if (active) {\n debouncedPaintText(props);\n } else {\n debouncedPaintText.cancel();\n inputRef.current && (inputRef.current.style.backgroundImage = '');\n inputRef.current?.classList.remove(globalClasses.input);\n }\n }\n\n function paintText(_props: Partial<ColorableInputElementProps> = props) {\n if (!spanRef.current || !inputRef.current || !inputStyle.current || !isBrowser(globalObject)) {\n return;\n }\n\n inputRef.current?.classList.add(globalClasses.input);\n\n let shadow = spanRef.current.shadowRoot;\n let typedValueElement = shadow?.getElementById('span');\n\n if (!typedValueElement) {\n shadow = spanRef.current.attachShadow({ mode: 'open' });\n\n typedValueElement = globalObject.document.createElement('span');\n typedValueElement.setAttribute('id', 'span');\n\n shadow.appendChild(typedValueElement);\n }\n\n const style = inputStyle.current;\n\n typedValueElement.textContent =\n ((inputRef.current.getAttribute('data-unmasked-value') || focused.current) &&\n inputRef.current.getAttribute('data-typed-value')) ||\n '';\n\n const inputRect = inputRef.current.getBoundingClientRect();\n const filledRect = spanRef.current.getBoundingClientRect();\n\n const threshold = filledRect.width / (inputRect.width / 100);\n const degree = style.fontStyle === 'italic' ? 100 : 90;\n\n let typedValueColor = theme.inputTextColor;\n let maskColor = theme.inputPlaceholderColor;\n if (_props.disabled) {\n typedValueColor = theme.inputTextColorDisabled;\n maskColor = theme.inputTextColorDisabled;\n }\n if (_props.showOnFocus) {\n maskColor = focused.current ? maskColor : 'transparent';\n }\n\n inputRef.current.style.backgroundImage = `\n linear-gradient(\n ${degree}deg,\n ${typedValueColor} ${threshold}%,\n ${maskColor} ${threshold}%\n )`;\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -78,8 +78,9 @@ var FixedIMaskInput = exports.FixedIMaskInput = (0, _forwardRefAndName.forwardRe
78
78
  return value.slice(0, end);
79
79
  }
80
80
 
81
- function fillTypedValue() {var _imaskRef$current5;
81
+ function fillTypedValue() {var _imaskRef$current5, _imaskRef$current6, _imaskRef$current7;
82
82
  (_imaskRef$current5 = imaskRef.current) == null || _imaskRef$current5.element.setAttribute('data-typed-value', getTypedValue());
83
+ (_imaskRef$current6 = imaskRef.current) == null || _imaskRef$current6.element.setAttribute('data-unmasked-value', (_imaskRef$current7 = imaskRef.current) == null ? void 0 : _imaskRef$current7.maskRef.unmaskedValue);
83
84
  }
84
85
 
85
86
  function getMaxCaretPosition() {
@@ -120,19 +121,19 @@ var FixedIMaskInput = exports.FixedIMaskInput = (0, _forwardRefAndName.forwardRe
120
121
  return [0, 0, 'none'];
121
122
  }
122
123
 
123
- function setSelection() {var _imaskRef$current6;for (var _len = arguments.length, _ref3 = new Array(_len), _key = 0; _key < _len; _key++) {_ref3[_key] = arguments[_key];}var start = _ref3[0],end = _ref3[1],direction = _ref3[2];
124
- (_imaskRef$current6 = imaskRef.current) == null || _imaskRef$current6.element.setSelectionRange(
124
+ function setSelection() {var _imaskRef$current8;for (var _len = arguments.length, _ref3 = new Array(_len), _key = 0; _key < _len; _key++) {_ref3[_key] = arguments[_key];}var start = _ref3[0],end = _ref3[1],direction = _ref3[2];
125
+ (_imaskRef$current8 = imaskRef.current) == null || _imaskRef$current8.element.setSelectionRange(
125
126
  getNormalizedRange(start),
126
127
  getNormalizedRange(end),
127
128
  direction || 'none'
128
129
  );
129
130
  }
130
131
 
131
- function jumpCaret(prev, headDirection) {var _imaskRef$current7;
132
+ function jumpCaret(prev, headDirection) {var _imaskRef$current9;
132
133
  var word = /а-яa-z0-9_/.valueOf();
133
134
  var wordRegExp = new RegExp("([" + word + "])+[\\s]*|([^" + word + "])+", 'gi');
134
135
  var next = headDirection === 'right' ? prev : 0;
135
- (_imaskRef$current7 = imaskRef.current) == null || (_imaskRef$current7 = _imaskRef$current7.element.value.match(wordRegExp)) == null || _imaskRef$current7.reduce(function (s, a) {
136
+ (_imaskRef$current9 = imaskRef.current) == null || (_imaskRef$current9 = _imaskRef$current9.element.value.match(wordRegExp)) == null || _imaskRef$current9.reduce(function (s, a) {
136
137
  var pos = a.length + (s.slice(-1)[0] || 0);
137
138
  if (headDirection === 'right' && next === prev && next < pos) {
138
139
  next = getNormalizedRange(pos);
@@ -200,8 +201,8 @@ var FixedIMaskInput = exports.FixedIMaskInput = (0, _forwardRefAndName.forwardRe
200
201
  props.onAccept == null || props.onAccept.apply(props, args);
201
202
  }
202
203
 
203
- function handleInput(e) {var _imaskRef$current8;
204
- var maskRef = (_imaskRef$current8 = imaskRef.current) == null ? void 0 : _imaskRef$current8.maskRef;
204
+ function handleInput(e) {var _imaskRef$current10;
205
+ var maskRef = (_imaskRef$current10 = imaskRef.current) == null ? void 0 : _imaskRef$current10.maskRef;
205
206
  if (restProps.unmask && maskRef && maskRef.rawInputValue === '' && maskRef.unmaskedValue !== '') {
206
207
  // Для случаев, когда в value остаются только зафиксированные - {} - очищаем value полностью
207
208
  props.onAccept == null || props.onAccept('', maskRef, e.nativeEvent);