@skbkontur/react-ui 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/Button/Button.d.ts +1 -1
  3. package/cjs/components/Button/Button.js +4 -3
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.styles.d.ts +1 -0
  6. package/cjs/components/Button/Button.styles.js +38 -28
  7. package/cjs/components/Button/Button.styles.js.map +1 -1
  8. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
  9. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  10. package/cjs/components/Hint/Hint.d.ts +2 -1
  11. package/cjs/components/Hint/Hint.js +0 -16
  12. package/cjs/components/Hint/Hint.js.map +1 -1
  13. package/cjs/components/Kebab/Kebab.d.ts +2 -2
  14. package/cjs/components/Kebab/Kebab.js.map +1 -1
  15. package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
  16. package/cjs/components/MenuItem/MenuItem.js +1 -4
  17. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  18. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  19. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  20. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  21. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  22. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  23. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  24. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  25. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  26. package/cjs/components/SidePage/SidePage.js +14 -1
  27. package/cjs/components/SidePage/SidePage.js.map +1 -1
  28. package/cjs/components/Spinner/Spinner.d.ts +8 -0
  29. package/cjs/components/Spinner/Spinner.js +21 -3
  30. package/cjs/components/Spinner/Spinner.js.map +1 -1
  31. package/cjs/components/Spinner/Spinner.md +1 -0
  32. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  33. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  34. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  35. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  36. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  37. package/cjs/components/Tooltip/Tooltip.d.ts +8 -21
  38. package/cjs/components/Tooltip/Tooltip.js +14 -27
  39. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  40. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
  41. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  42. package/cjs/index.d.ts +1 -0
  43. package/cjs/index.js +2 -1
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/internal/Popup/Popup.d.ts +5 -4
  46. package/cjs/internal/Popup/Popup.js +13 -24
  47. package/cjs/internal/Popup/Popup.js.map +1 -1
  48. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  49. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  50. package/cjs/internal/Popup/types.d.ts +1 -0
  51. package/cjs/internal/Popup/types.js +1 -0
  52. package/cjs/internal/Popup/types.js.map +1 -0
  53. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -3
  54. package/cjs/internal/PopupMenu/PopupMenu.js +17 -3
  55. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  56. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  57. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  58. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  59. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  60. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  61. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  62. package/cjs/lib/ModalStack.js +16 -17
  63. package/cjs/lib/ModalStack.js.map +1 -1
  64. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  65. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  66. package/cjs/lib/theming/useTheme.d.ts +1 -0
  67. package/cjs/lib/theming/useTheme.js +7 -0
  68. package/cjs/lib/theming/useTheme.js.map +1 -0
  69. package/cjs/lib/utils.d.ts +32 -0
  70. package/cjs/lib/utils.js +62 -2
  71. package/cjs/lib/utils.js.map +1 -1
  72. package/cjs/typings/html-props.d.ts +123 -0
  73. package/components/Button/Button/Button.js +3 -7
  74. package/components/Button/Button/Button.js.map +1 -1
  75. package/components/Button/Button.d.ts +1 -1
  76. package/components/Button/Button.styles/Button.styles.js +31 -28
  77. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  78. package/components/Button/Button.styles.d.ts +1 -0
  79. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  80. package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
  81. package/components/Hint/Hint/Hint.js.map +1 -1
  82. package/components/Hint/Hint.d.ts +2 -1
  83. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  84. package/components/Kebab/Kebab.d.ts +2 -2
  85. package/components/MenuItem/MenuItem/MenuItem.js +2 -7
  86. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  87. package/components/MenuItem/MenuItem.d.ts +1 -1
  88. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  89. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  90. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +2 -1
  91. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  92. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  93. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  94. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  95. package/components/SidePage/SidePage/SidePage.js +19 -0
  96. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  97. package/components/SidePage/SidePage.d.ts +1 -0
  98. package/components/Spinner/Spinner/Spinner.js +6 -3
  99. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  100. package/components/Spinner/Spinner.d.ts +8 -0
  101. package/components/Spinner/Spinner.md +1 -0
  102. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  103. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  104. package/components/Spinner/Spinner.styles.d.ts +2 -1
  105. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  106. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  107. package/components/Tooltip/Tooltip/Tooltip.js +2 -2
  108. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  109. package/components/Tooltip/Tooltip.d.ts +8 -21
  110. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  111. package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
  112. package/index.d.ts +1 -0
  113. package/index.js +2 -1
  114. package/index.js.map +1 -1
  115. package/internal/Popup/Popup/Popup.js +3 -2
  116. package/internal/Popup/Popup/Popup.js.map +1 -1
  117. package/internal/Popup/Popup.d.ts +5 -4
  118. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  119. package/internal/Popup/PopupHelper.d.ts +2 -2
  120. package/internal/Popup/types/package.json +6 -0
  121. package/internal/Popup/types/types.js +0 -0
  122. package/internal/Popup/types/types.js.map +1 -0
  123. package/internal/Popup/types.d.ts +1 -0
  124. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  125. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  126. package/internal/PopupMenu/PopupMenu.d.ts +3 -3
  127. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  128. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  129. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  130. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  131. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  132. package/internal/icons/SpinnerIcon.d.ts +4 -1
  133. package/lib/ModalStack/ModalStack.js +9 -13
  134. package/lib/ModalStack/ModalStack.js.map +1 -1
  135. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  136. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  137. package/lib/theming/useTheme/package.json +6 -0
  138. package/lib/theming/useTheme/useTheme.js +5 -0
  139. package/lib/theming/useTheme/useTheme.js.map +1 -0
  140. package/lib/theming/useTheme.d.ts +1 -0
  141. package/lib/utils/utils.js +66 -0
  142. package/lib/utils/utils.js.map +1 -1
  143. package/lib/utils.d.ts +32 -0
  144. package/package.json +5 -2
  145. package/typings/html-props.d.ts +123 -0
  146. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  147. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  148. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  149. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  150. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  151. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  152. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.11.0](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@3.10.0...@skbkontur/react-ui@3.11.0) (2022-02-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ScrollContainer:** consider scaling cases in browsers ([#2705](https://github.com/skbkontur/retail-ui/issues/2705)) ([e64d3de](https://github.com/skbkontur/retail-ui/commit/e64d3de80f12cdb7c2329d0b38d2531f84237f55))
12
+ * **SidePage:** change scroll behavior according to Guides ([#2756](https://github.com/skbkontur/retail-ui/issues/2756)) ([47dfb5a](https://github.com/skbkontur/retail-ui/commit/47dfb5ac895c26655edef2e08cf1f86f5b246390))
13
+ * **Spinner:** refactor animation for Safari ([#2748](https://github.com/skbkontur/retail-ui/issues/2748)) ([1698a4a](https://github.com/skbkontur/retail-ui/commit/1698a4a5542d9884f3e6deb833161a6219b9d72a))
14
+ * **Switcher:** restore border in error and checked state ([#2742](https://github.com/skbkontur/retail-ui/issues/2742)) ([6fbe8f5](https://github.com/skbkontur/retail-ui/commit/6fbe8f529cfe14f8338a79b354a1201f38b06ee2))
15
+
16
+
17
+ ### Features
18
+
19
+ * **Spinner:** add width and color props ([4ea170d](https://github.com/skbkontur/retail-ui/commit/4ea170d4f1cc30091c30e0ee637e38494ad79f0a))
20
+
21
+
22
+
23
+
24
+
6
25
  # [3.10.0](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@3.9.4...@skbkontur/react-ui@3.10.0) (2022-01-27)
7
26
 
8
27
 
@@ -158,4 +158,4 @@ export declare class Button extends React.Component<ButtonProps, ButtonState> {
158
158
  private handleBlur;
159
159
  private _ref;
160
160
  }
161
- export declare const isButton: (child: React.ReactChild) => child is React.ReactElement<ButtonProps, string | React.JSXElementConstructor<any>>;
161
+ export declare const isButton: (child: React.ReactNode) => child is React.ReactElement<ButtonProps, string | React.JSXElementConstructor<any>>;
@@ -1,5 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.isButton = exports.Button = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
+ var _utils = require("../../lib/utils");
3
4
  var _client = require("../../lib/client");
4
5
  var _keyListener = require("../../lib/events/keyListener");
5
6
 
@@ -423,6 +424,7 @@ Button = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
423
424
 
424
425
 
425
426
 
427
+
426
428
 
427
429
 
428
430
  handleFocus = function (e) {
@@ -454,6 +456,5 @@ Button = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functi
454
456
  */;_proto.blur = function blur() {var _this$node2;(_this$node2 = this.node) == null ? void 0 : _this$node2.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx, _cx2, _cx7, _cx8;var _this$props = this.props,_this$props$corners = _this$props.corners,corners = _this$props$corners === void 0 ? 0 : _this$props$corners,active = _this$props.active,disabled = _this$props.disabled,borderless = _this$props.borderless,checked = _this$props.checked,error = _this$props.error,warning = _this$props.warning,loading = _this$props.loading,arrow = _this$props.arrow,narrow = _this$props.narrow,icon = _this$props.icon,_noPadding = _this$props._noPadding,_noRightPadding = _this$props._noRightPadding,_this$props$use = _this$props.use,use = _this$props$use === void 0 ? Button.defaultProps.use : _this$props$use,visuallyFocused = _this$props.visuallyFocused,align = _this$props.align,disableFocus = _this$props.disableFocus,onMouseEnter = _this$props.onMouseEnter,onMouseLeave = _this$props.onMouseLeave,onMouseOver = _this$props.onMouseOver,onKeyDown = _this$props.onKeyDown,onClick = _this$props.onClick,width = _this$props.width,children = _this$props.children;var sizeClass = this.getSizeClassName();var isFocused = this.state.focusedByTab || visuallyFocused;var isLink = use === 'link';var rootProps = { // By default the type attribute is 'submit'. IE8 will fire a click event
455
457
  // on this button if somewhere on the page user presses Enter while some
456
458
  // input is focused. So we set type to 'button' by default.
457
- type: this.props.type, className: (0, _Emotion.cx)((_cx = {}, _cx[_Button.styles.root(this.theme)] = true, _cx[_Button.styles[use](this.theme)] = true, _cx[_Button.activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[_Button.styles.focus(this.theme)] = isFocused && !checked, _cx[_Button.styles.checked(this.theme)] = checked, _cx[_Button.styles.disabled(this.theme)] = disabled || loading, _cx[_Button.styles.checkedDisabled(this.theme)] = checked && disabled, _cx[_Button.styles.borderless()] = borderless && !disabled && !loading && !checked && !isFocused && !active, _cx[_Button.styles.narrow()] = narrow, _cx[_Button.styles.noPadding()] = _noPadding, _cx[_Button.styles.noRightPadding()] = _noRightPadding, _cx)), style: { borderTopLeftRadius: corners & _Corners.Corners.TOP_LEFT ? 0 : undefined, borderTopRightRadius: corners & _Corners.Corners.TOP_RIGHT ? 0 : undefined, borderBottomRightRadius: corners & _Corners.Corners.BOTTOM_RIGHT ? 0 : undefined, borderBottomLeftRadius: corners & _Corners.Corners.BOTTOM_LEFT ? 0 : undefined, textAlign: align }, disabled: disabled || loading, onClick: onClick, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: onKeyDown, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onMouseOver: onMouseOver, tabIndex: disableFocus ? -1 : 0, title: this.props.title };var wrapProps = { className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_Button.styles.wrap()] = true, _cx2[_Button.styles.wrapArrow()] = arrow === true, _cx2[_Button.styles.wrapArrowLeft()] = arrow === 'left', _cx2)), style: { width: width } };var outlineNode = null;if (!isFocused || isLink) {var _cx3;outlineNode = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.styles.outline(), (_cx3 = {}, _cx3[_Button.styles.outlineWarning(this.theme)] = warning, _cx3[_Button.styles.outlineError(this.theme)] = error, _cx3[_Button.styles.outlineLink()] = isLink, _cx3[_Button.styles.outlineLinkWarning(this.theme)] = isLink && warning, _cx3[_Button.styles.outlineLinkError(this.theme)] = isLink && error, _cx3)) });}var loadingNode = null;if (loading && !icon) {loadingNode = /*#__PURE__*/_react.default.createElement("div", { className: _Button.styles.loading() }, this.getLoadingSpinner());}var iconNode = null;if (icon) {var _cx4;iconNode = /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Button.styles.icon(), this.getSizeIconClassName(), (_cx4 = {}, _cx4[_Button.styles.iconNoRightPadding()] = !children, _cx4[_Button.styles.iconLink(this.theme)] = isLink, _cx4)) }, loading ? this.getLoadingSpinner() : icon);}var arrowNode = null;if (arrow) {var _cx5;arrowNode = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx5 = {}, _cx5[_Button.styles.arrow()] = true, _cx5[_Button.styles.arrowWarning(this.theme)] = !checked && warning, _cx5[_Button.styles.arrowError(this.theme)] = !checked && error, _cx5[_Button.styles.arrowFocus(this.theme)] = !checked && isFocused, _cx5[_Button.styles.arrowLeft()] = arrow === 'left', _cx5)) }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.globalClasses.arrowHelper, _Button.globalClasses.arrowHelperTop) }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.globalClasses.arrowHelper, _Button.globalClasses.arrowHelperBottom) }));} // Force disable all props and features, that cannot be use with Link
458
- if (isLink) {var _cx6;rootProps.className = (0, _Emotion.cx)((_cx6 = {}, _cx6[_Button.styles.root(this.theme)] = true, _cx6[sizeClass] = true, _cx6[_Button.styles.link(this.theme)] = true, _cx6[_Button.styles.linkFocus(this.theme)] = isFocused, _cx6[_Button.styles.linkDisabled(this.theme)] = disabled || loading, _cx6));Object.assign(wrapProps, { className: (0, _Emotion.cx)(_Button.styles.wrap(), _Button.styles.wrapLink()), style: { width: wrapProps.style.width } });rootProps.style.textAlign = undefined;arrowNode = null;}return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("span", wrapProps, /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({ ref: this._ref }, rootProps), outlineNode, loadingNode, arrowNode, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.styles.caption(), _Button.globalClasses.caption, (_cx7 = {}, _cx7[_Button.styles.captionTranslated()] = active || checked, _cx7[_Button.styles.captionLink()] = isLink, _cx7[_Button.styles.captionDisabled()] = !checked && disabled, _cx7)) }, iconNode, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)((_cx8 = {}, _cx8[_Button.styles.visibilityHidden()] = !!loadingNode, _cx8)) }, children)))));};_proto.getLoadingSpinner = function getLoadingSpinner() {return /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { caption: null, dimmed: true, type: "mini" });};_proto.getSizeClassName = function getSizeClassName() {var _cx9, _cx10, _cx11;switch (this.props.size) {case 'large':return (0, _Emotion.cx)(_Button.styles.sizeLarge(this.theme), (_cx9 = {}, _cx9[_Button.styles.sizeLargeIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx9));case 'medium':return (0, _Emotion.cx)(_Button.styles.sizeMedium(this.theme), (_cx10 = {}, _cx10[_Button.styles.sizeMediumIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx10));case 'small':default:return (0, _Emotion.cx)(_Button.styles.sizeSmall(this.theme), (_cx11 = {}, _cx11[_Button.styles.sizeSmallIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx11));}};_proto.getSizeIconClassName = function getSizeIconClassName() {switch (this.props.size) {case 'large':return _Button.styles.iconLarge(this.theme);case 'medium':return _Button.styles.iconMedium(this.theme);case 'small':default:return _Button.styles.iconSmall(this.theme);}};return Button;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Button', _class2.__BUTTON__ = true, _class2.TOP_LEFT = _Corners.Corners.TOP_LEFT, _class2.TOP_RIGHT = _Corners.Corners.TOP_RIGHT, _class2.BOTTOM_RIGHT = _Corners.Corners.BOTTOM_RIGHT, _class2.BOTTOM_LEFT = _Corners.Corners.BOTTOM_LEFT, _class2.defaultProps = { use: 'default', size: 'small', type: 'button' }, _temp)) || _class;exports.Button = Button;var isButton = function isButton(child) {var _child$type; // @ts-ignore
459
- return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === 'Button';};exports.isButton = isButton;
459
+ type: this.props.type, className: (0, _Emotion.cx)((_cx = {}, _cx[_Button.styles.root(this.theme)] = true, _cx[_Button.styles[use](this.theme)] = true, _cx[_Button.activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[_Button.styles.focus(this.theme)] = isFocused, _cx[_Button.styles.checked(this.theme)] = checked, _cx[_Button.styles.checkedFocused(this.theme)] = checked && isFocused, _cx[_Button.styles.disabled(this.theme)] = disabled || loading, _cx[_Button.styles.checkedDisabled(this.theme)] = checked && disabled, _cx[_Button.styles.borderless()] = borderless && !disabled && !loading && !checked && !isFocused && !active, _cx[_Button.styles.narrow()] = narrow, _cx[_Button.styles.noPadding()] = _noPadding, _cx[_Button.styles.noRightPadding()] = _noRightPadding, _cx)), style: { borderTopLeftRadius: corners & _Corners.Corners.TOP_LEFT ? 0 : undefined, borderTopRightRadius: corners & _Corners.Corners.TOP_RIGHT ? 0 : undefined, borderBottomRightRadius: corners & _Corners.Corners.BOTTOM_RIGHT ? 0 : undefined, borderBottomLeftRadius: corners & _Corners.Corners.BOTTOM_LEFT ? 0 : undefined, textAlign: align }, disabled: disabled || loading, onClick: onClick, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: onKeyDown, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onMouseOver: onMouseOver, tabIndex: disableFocus ? -1 : 0, title: this.props.title };var wrapProps = { className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_Button.styles.wrap()] = true, _cx2[_Button.styles.wrapArrow()] = arrow === true, _cx2[_Button.styles.wrapArrowLeft()] = arrow === 'left', _cx2)), style: { width: width } };var outlineNode = null;if (!isFocused || isLink) {var _cx3;outlineNode = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.styles.outline(), (_cx3 = {}, _cx3[_Button.styles.outlineWarning(this.theme)] = warning, _cx3[_Button.styles.outlineError(this.theme)] = error, _cx3[_Button.styles.outlineLink()] = isLink, _cx3[_Button.styles.outlineLinkWarning(this.theme)] = isLink && warning, _cx3[_Button.styles.outlineLinkError(this.theme)] = isLink && error, _cx3)) });}var loadingNode = null;if (loading && !icon) {loadingNode = /*#__PURE__*/_react.default.createElement("div", { className: _Button.styles.loading() }, this.getLoadingSpinner());}var iconNode = null;if (icon) {var _cx4;iconNode = /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Button.styles.icon(), this.getSizeIconClassName(), (_cx4 = {}, _cx4[_Button.styles.iconNoRightPadding()] = !children, _cx4[_Button.styles.iconLink(this.theme)] = isLink, _cx4)) }, loading ? this.getLoadingSpinner() : icon);}var arrowNode = null;if (arrow) {var _cx5;arrowNode = /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx5 = {}, _cx5[_Button.styles.arrow()] = true, _cx5[_Button.styles.arrowWarning(this.theme)] = !checked && warning, _cx5[_Button.styles.arrowError(this.theme)] = !checked && error, _cx5[_Button.styles.arrowFocus(this.theme)] = !checked && isFocused, _cx5[_Button.styles.arrowLeft()] = arrow === 'left', _cx5)) }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.globalClasses.arrowHelper, _Button.globalClasses.arrowHelperTop) }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.globalClasses.arrowHelper, _Button.globalClasses.arrowHelperBottom) }));} // Force disable all props and features, that cannot be use with Link
460
+ if (isLink) {var _cx6;rootProps.className = (0, _Emotion.cx)((_cx6 = {}, _cx6[_Button.styles.root(this.theme)] = true, _cx6[sizeClass] = true, _cx6[_Button.styles.link(this.theme)] = true, _cx6[_Button.styles.linkFocus(this.theme)] = isFocused, _cx6[_Button.styles.linkDisabled(this.theme)] = disabled || loading, _cx6));Object.assign(wrapProps, { className: (0, _Emotion.cx)(_Button.styles.wrap(), _Button.styles.wrapLink()), style: { width: wrapProps.style.width } });rootProps.style.textAlign = undefined;arrowNode = null;}return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("span", wrapProps, /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({ ref: this._ref }, rootProps), outlineNode, loadingNode, arrowNode, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Button.styles.caption(), _Button.globalClasses.caption, (_cx7 = {}, _cx7[_Button.styles.captionTranslated()] = active || checked, _cx7[_Button.styles.captionLink()] = isLink, _cx7[_Button.styles.captionDisabled()] = !checked && disabled, _cx7)) }, iconNode, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)((_cx8 = {}, _cx8[_Button.styles.visibilityHidden()] = !!loadingNode, _cx8)) }, children)))));};_proto.getLoadingSpinner = function getLoadingSpinner() {return /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { caption: null, dimmed: true, type: "mini" });};_proto.getSizeClassName = function getSizeClassName() {var _cx9, _cx10, _cx11;switch (this.props.size) {case 'large':return (0, _Emotion.cx)(_Button.styles.sizeLarge(this.theme), (_cx9 = {}, _cx9[_Button.styles.sizeLargeIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx9));case 'medium':return (0, _Emotion.cx)(_Button.styles.sizeMedium(this.theme), (_cx10 = {}, _cx10[_Button.styles.sizeMediumIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx10));case 'small':default:return (0, _Emotion.cx)(_Button.styles.sizeSmall(this.theme), (_cx11 = {}, _cx11[_Button.styles.sizeSmallIE11(this.theme)] = _client.isIE11 || _client.isEdge, _cx11));}};_proto.getSizeIconClassName = function getSizeIconClassName() {switch (this.props.size) {case 'large':return _Button.styles.iconLarge(this.theme);case 'medium':return _Button.styles.iconMedium(this.theme);case 'small':default:return _Button.styles.iconSmall(this.theme);}};return Button;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Button', _class2.__BUTTON__ = true, _class2.TOP_LEFT = _Corners.Corners.TOP_LEFT, _class2.TOP_RIGHT = _Corners.Corners.TOP_RIGHT, _class2.BOTTOM_RIGHT = _Corners.Corners.BOTTOM_RIGHT, _class2.BOTTOM_LEFT = _Corners.Corners.BOTTOM_LEFT, _class2.defaultProps = { use: 'default', size: 'small', type: 'button' }, _temp)) || _class;exports.Button = Button;var isButton = (0, _utils.isReactUIComponent)('Button');exports.isButton = isButton;
@@ -1 +1 @@
1
- {"version":3,"sources":["Button.tsx"],"names":["Button","rootNode","state","focusedByTab","theme","node","setRootNode","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","keyListener","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","styles","root","activeStyles","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","Corners","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","globalClasses","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","React","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton","child"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps 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?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\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\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\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 = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\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: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused && !checked,\n [styles.checked(this.theme)]: checked,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\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 let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\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.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\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 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<HTMLButtonElement>) => {\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: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = (child: React.ReactChild): child is React.ReactElement<ButtonProps> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === 'Button';\n};\n"]}
1
+ {"version":3,"sources":["Button.tsx"],"names":["Button","rootNode","state","focusedByTab","theme","node","setRootNode","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","keyListener","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","styles","root","activeStyles","checkedFocused","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","Corners","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","globalClasses","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","React","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps 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?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\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\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\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 = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\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: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\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 let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\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.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\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 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<HTMLButtonElement>) => {\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: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
@@ -35,6 +35,7 @@ export declare const styles: {
35
35
  danger(t: Theme): string;
36
36
  pay(t: Theme): string;
37
37
  checked(t: Theme): string;
38
+ checkedFocused(t: Theme): string;
38
39
  checkedDisabled(t: Theme): string;
39
40
  caption(): string;
40
41
  captionLink(): string;
@@ -3,7 +3,7 @@
3
3
  var _Mixins = require("../../lib/styles/Mixins");
4
4
  var _client = require("../../lib/client");
5
5
 
6
- var _Button = require("./Button.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, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56;
6
+ var _Button = require("./Button.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, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57;
7
7
 
8
8
 
9
9
 
@@ -509,10 +509,20 @@ var styles = (0, _Emotion.memoizeStyle)({
509
509
  checkedStyles);
510
510
 
511
511
 
512
+ },
513
+
514
+ checkedFocused: function checkedFocused(t) {
515
+ return (0, _Emotion.css)(_templateObject30 || (_templateObject30 = (0, _taggedTemplateLiteralLoose2.default)(["\n &:hover {\n box-shadow: inset 0 0 0 ", " ", ",\n 0 0 0 ", " ", ";\n border-color: ", ";\n }\n "])),
516
+
517
+ t.btnInsetWidth, t.btnOutlineColorFocus,
518
+ t.btnFocusShadowWidth, t.btnBorderColorFocus,
519
+ t.btnBorderColorFocus);
520
+
521
+
512
522
  },
513
523
 
514
524
  checkedDisabled: function checkedDisabled(t) {
515
- return (0, _Emotion.css)(_templateObject30 || (_templateObject30 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: ", ";\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n .", " {\n box-shadow: ", " 0 0 ", ";\n\n &.", " {\n background-image: none;\n }\n }\n "])),
525
+ return (0, _Emotion.css)(_templateObject31 || (_templateObject31 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: ", ";\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n\n .", " {\n box-shadow: ", " 0 0 ", ";\n\n &.", " {\n background-image: none;\n }\n }\n "])),
516
526
  t.btnCheckedDisabledShadow,
517
527
  t.btnCheckedDisabledBg,
518
528
  t.btnCheckedDisabledColor,
@@ -529,7 +539,7 @@ var styles = (0, _Emotion.memoizeStyle)({
529
539
  },
530
540
 
531
541
  caption: function caption() {
532
- return (0, _Emotion.css)(_templateObject31 || (_templateObject31 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n white-space: nowrap;\n display: inline-block;\n width: 100%;\n vertical-align: top;\n "])));
542
+ return (0, _Emotion.css)(_templateObject32 || (_templateObject32 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n white-space: nowrap;\n display: inline-block;\n width: 100%;\n vertical-align: top;\n "])));
533
543
 
534
544
 
535
545
 
@@ -539,108 +549,108 @@ var styles = (0, _Emotion.memoizeStyle)({
539
549
  },
540
550
 
541
551
  captionLink: function captionLink() {
542
- return (0, _Emotion.css)(_templateObject32 || (_templateObject32 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline;\n transform: none !important; // override root:active style\n "])));
552
+ return (0, _Emotion.css)(_templateObject33 || (_templateObject33 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline;\n transform: none !important; // override root:active style\n "])));
543
553
 
544
554
 
545
555
 
546
556
  },
547
557
 
548
558
  captionTranslated: function captionTranslated() {
549
- return (0, _Emotion.css)(_templateObject33 || (_templateObject33 = (0, _taggedTemplateLiteralLoose2.default)(["\n transform: translateY(1px);\n "])));
559
+ return (0, _Emotion.css)(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteralLoose2.default)(["\n transform: translateY(1px);\n "])));
550
560
 
551
561
 
552
562
  },
553
563
 
554
564
  captionDisabled: function captionDisabled() {
555
- return (0, _Emotion.css)(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteralLoose2.default)(["\n transform: none !important; // override root:active style\n "])));
565
+ return (0, _Emotion.css)(_templateObject35 || (_templateObject35 = (0, _taggedTemplateLiteralLoose2.default)(["\n transform: none !important; // override root:active style\n "])));
556
566
 
557
567
 
558
568
  },
559
569
 
560
570
  wrap: function wrap() {
561
- return (0, _Emotion.css)(_templateObject35 || (_templateObject35 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-sizing: border-box;\n display: inline-block;\n "])));
571
+ return (0, _Emotion.css)(_templateObject36 || (_templateObject36 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-sizing: border-box;\n display: inline-block;\n "])));
562
572
 
563
573
 
564
574
 
565
575
  },
566
576
 
567
577
  narrow: function narrow() {
568
- return (0, _Emotion.css)(_templateObject36 || (_templateObject36 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-left: 5px;\n padding-right: 5px;\n "])));
578
+ return (0, _Emotion.css)(_templateObject37 || (_templateObject37 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-left: 5px;\n padding-right: 5px;\n "])));
569
579
 
570
580
 
571
581
 
572
582
  },
573
583
 
574
584
  noPadding: function noPadding() {
575
- return (0, _Emotion.css)(_templateObject37 || (_templateObject37 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-left: 0;\n padding-right: 0;\n "])));
585
+ return (0, _Emotion.css)(_templateObject38 || (_templateObject38 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-left: 0;\n padding-right: 0;\n "])));
576
586
 
577
587
 
578
588
 
579
589
  },
580
590
 
581
591
  noRightPadding: function noRightPadding() {
582
- return (0, _Emotion.css)(_templateObject38 || (_templateObject38 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: 0;\n "])));
592
+ return (0, _Emotion.css)(_templateObject39 || (_templateObject39 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: 0;\n "])));
583
593
 
584
594
 
585
595
  },
586
596
 
587
597
  iconNoRightPadding: function iconNoRightPadding() {
588
- return (0, _Emotion.css)(_templateObject39 || (_templateObject39 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: 0;\n "])));
598
+ return (0, _Emotion.css)(_templateObject40 || (_templateObject40 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: 0;\n "])));
589
599
 
590
600
 
591
601
  },
592
602
 
593
603
  iconLink: function iconLink(t) {
594
- return (0, _Emotion.css)(_templateObject40 || (_templateObject40 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: ", ";\n "])),
604
+ return (0, _Emotion.css)(_templateObject41 || (_templateObject41 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: ", ";\n "])),
595
605
  t.btnLinkIconMarginRight);
596
606
 
597
607
  },
598
608
 
599
609
  wrapLink: function wrapLink() {
600
- return (0, _Emotion.css)(_templateObject41 || (_templateObject41 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: 0;\n "])));
610
+ return (0, _Emotion.css)(_templateObject42 || (_templateObject42 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: 0;\n "])));
601
611
 
602
612
 
603
613
  },
604
614
 
605
615
  wrapArrow: function wrapArrow() {
606
- return (0, _Emotion.css)(_templateObject42 || (_templateObject42 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-right: 10px;\n "])));
616
+ return (0, _Emotion.css)(_templateObject43 || (_templateObject43 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-right: 10px;\n "])));
607
617
 
608
618
 
609
619
  },
610
620
 
611
621
  wrapArrowLeft: function wrapArrowLeft() {
612
- return (0, _Emotion.css)(_templateObject43 || (_templateObject43 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-right: 0;\n margin-left: 10px;\n "])));
622
+ return (0, _Emotion.css)(_templateObject44 || (_templateObject44 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-right: 0;\n margin-left: 10px;\n "])));
613
623
 
614
624
 
615
625
 
616
626
  },
617
627
 
618
628
  icon: function icon() {
619
- return (0, _Emotion.css)(_templateObject44 || (_templateObject44 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n "])));
629
+ return (0, _Emotion.css)(_templateObject45 || (_templateObject45 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n "])));
620
630
 
621
631
 
622
632
  },
623
633
  iconSmall: function iconSmall(t) {
624
- return (0, _Emotion.css)(_templateObject45 || (_templateObject45 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
634
+ return (0, _Emotion.css)(_templateObject46 || (_templateObject46 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
625
635
  t.btnIconSizeSmall,
626
636
  t.btnIconGapSmall);
627
637
 
628
638
  },
629
639
  iconMedium: function iconMedium(t) {
630
- return (0, _Emotion.css)(_templateObject46 || (_templateObject46 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
640
+ return (0, _Emotion.css)(_templateObject47 || (_templateObject47 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
631
641
  t.btnIconSizeMedium,
632
642
  t.btnIconGapMedium);
633
643
 
634
644
  },
635
645
  iconLarge: function iconLarge(t) {
636
- return (0, _Emotion.css)(_templateObject47 || (_templateObject47 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
646
+ return (0, _Emotion.css)(_templateObject48 || (_templateObject48 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: ", ";\n padding-right: ", ";\n "])),
637
647
  t.btnIconSizeLarge,
638
648
  t.btnIconGapLarge);
639
649
 
640
650
  },
641
651
 
642
652
  borderless: function borderless() {
643
- return (0, _Emotion.css)(_templateObject48 || (_templateObject48 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover,\n &:active {\n border-color: transparent;\n .", ", .", " {\n box-shadow: none;\n }\n }\n "])),
653
+ return (0, _Emotion.css)(_templateObject49 || (_templateObject49 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover,\n &:active {\n border-color: transparent;\n .", ", .", " {\n box-shadow: none;\n }\n }\n "])),
644
654
 
645
655
 
646
656
 
@@ -653,7 +663,7 @@ var styles = (0, _Emotion.memoizeStyle)({
653
663
  },
654
664
 
655
665
  loading: function loading() {
656
- return (0, _Emotion.css)(_templateObject49 || (_templateObject49 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n "])));
666
+ return (0, _Emotion.css)(_templateObject50 || (_templateObject50 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n "])));
657
667
 
658
668
 
659
669
 
@@ -668,7 +678,7 @@ var styles = (0, _Emotion.memoizeStyle)({
668
678
  },
669
679
 
670
680
  visibilityHidden: function visibilityHidden() {
671
- return (0, _Emotion.css)(_templateObject50 || (_templateObject50 = (0, _taggedTemplateLiteralLoose2.default)(["\n visibility: hidden;\n "])));
681
+ return (0, _Emotion.css)(_templateObject51 || (_templateObject51 = (0, _taggedTemplateLiteralLoose2.default)(["\n visibility: hidden;\n "])));
672
682
 
673
683
 
674
684
  } });exports.styles = styles;
@@ -676,7 +686,7 @@ var styles = (0, _Emotion.memoizeStyle)({
676
686
 
677
687
  var activeStyles = (0, _Emotion.memoizeStyle)({
678
688
  default: function _default(t) {
679
- return (0, _Emotion.css)(_templateObject51 || (_templateObject51 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
689
+ return (0, _Emotion.css)(_templateObject52 || (_templateObject52 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
680
690
 
681
691
 
682
692
  (0, _Button.buttonActiveMixin)(
@@ -692,7 +702,7 @@ var activeStyles = (0, _Emotion.memoizeStyle)({
692
702
  },
693
703
 
694
704
  primary: function primary(t) {
695
- return (0, _Emotion.css)(_templateObject52 || (_templateObject52 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
705
+ return (0, _Emotion.css)(_templateObject53 || (_templateObject53 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
696
706
 
697
707
 
698
708
  (0, _Button.buttonActiveMixin)(
@@ -708,7 +718,7 @@ var activeStyles = (0, _Emotion.memoizeStyle)({
708
718
  },
709
719
 
710
720
  success: function success(t) {
711
- return (0, _Emotion.css)(_templateObject53 || (_templateObject53 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
721
+ return (0, _Emotion.css)(_templateObject54 || (_templateObject54 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
712
722
 
713
723
 
714
724
  (0, _Button.buttonActiveMixin)(
@@ -724,7 +734,7 @@ var activeStyles = (0, _Emotion.memoizeStyle)({
724
734
  },
725
735
 
726
736
  danger: function danger(t) {
727
- return (0, _Emotion.css)(_templateObject54 || (_templateObject54 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
737
+ return (0, _Emotion.css)(_templateObject55 || (_templateObject55 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
728
738
 
729
739
 
730
740
  (0, _Button.buttonActiveMixin)(
@@ -740,7 +750,7 @@ var activeStyles = (0, _Emotion.memoizeStyle)({
740
750
  },
741
751
 
742
752
  pay: function pay(t) {
743
- return (0, _Emotion.css)(_templateObject55 || (_templateObject55 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
753
+ return (0, _Emotion.css)(_templateObject56 || (_templateObject56 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n ", ";\n }\n "])),
744
754
 
745
755
 
746
756
  (0, _Button.buttonActiveMixin)(
@@ -756,7 +766,7 @@ var activeStyles = (0, _Emotion.memoizeStyle)({
756
766
  },
757
767
 
758
768
  link: function link(t) {
759
- return (0, _Emotion.css)(_templateObject56 || (_templateObject56 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n color: ", ";\n }\n "])),
769
+ return (0, _Emotion.css)(_templateObject57 || (_templateObject57 = (0, _taggedTemplateLiteralLoose2.default)(["\n &,\n &:hover {\n color: ", ";\n }\n "])),
760
770
 
761
771
 
762
772
  t.linkActiveColor);