@skbkontur/react-ui 3.7.2 → 3.8.3

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 (161) hide show
  1. package/CHANGELOG.md +60 -2
  2. package/README.md +1 -1
  3. package/cjs/components/Checkbox/Checkbox.styles.js +1 -2
  4. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  5. package/cjs/components/CurrencyLabel/CurrencyLabel.js +5 -14
  6. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  7. package/cjs/components/DateInput/DateInput.js +2 -1
  8. package/cjs/components/DateInput/DateInput.js.map +1 -1
  9. package/cjs/components/DatePicker/DatePicker.d.ts +3 -2
  10. package/cjs/components/DatePicker/DatePicker.js +12 -5
  11. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  13. package/cjs/components/Dropdown/Dropdown.js +1 -0
  14. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  15. package/cjs/components/Dropdown/Dropdown.md +0 -1
  16. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  17. package/cjs/components/DropdownMenu/DropdownMenu.js +15 -1
  18. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +87 -6
  20. package/cjs/components/Kebab/Kebab.d.ts +5 -2
  21. package/cjs/components/Kebab/Kebab.js +5 -1
  22. package/cjs/components/Kebab/Kebab.js.map +1 -1
  23. package/cjs/components/Kebab/Kebab.md +249 -3
  24. package/cjs/components/MenuHeader/MenuHeader.d.ts +5 -1
  25. package/cjs/components/MenuHeader/MenuHeader.js +5 -1
  26. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  27. package/cjs/components/MenuHeader/MenuHeader.md +23 -0
  28. package/cjs/components/MenuItem/MenuItem.d.ts +10 -1
  29. package/cjs/components/MenuItem/MenuItem.js +11 -1
  30. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  31. package/cjs/components/MenuItem/MenuItem.md +106 -4
  32. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  33. package/cjs/components/MenuSeparator/MenuSeparator.js +3 -1
  34. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  35. package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
  36. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  37. package/cjs/components/Modal/Modal.styles.js +22 -20
  38. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  39. package/cjs/components/Modal/ModalClose.js +23 -3
  40. package/cjs/components/Modal/ModalClose.js.map +1 -1
  41. package/cjs/components/Textarea/Textarea.d.ts +0 -2
  42. package/cjs/components/Textarea/Textarea.js +6 -3
  43. package/cjs/components/Textarea/Textarea.js.map +1 -1
  44. package/cjs/components/Toggle/Toggle.d.ts +47 -1
  45. package/cjs/components/Toggle/Toggle.js +52 -2
  46. package/cjs/components/Toggle/Toggle.js.map +1 -1
  47. package/cjs/components/Toggle/Toggle.md +83 -9
  48. package/cjs/components/Toggle/Toggle.styles.d.ts +3 -0
  49. package/cjs/components/Toggle/Toggle.styles.js +36 -23
  50. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  51. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  52. package/cjs/components/TooltipMenu/TooltipMenu.js +24 -6
  53. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  54. package/cjs/components/TooltipMenu/TooltipMenu.md +76 -8
  55. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  56. package/cjs/internal/CommonWrapper/CommonWrapper.js +8 -0
  57. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  58. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  59. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  60. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
  61. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  62. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  63. package/cjs/internal/InputLikeText/InputLikeText.js +8 -3
  64. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  65. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  66. package/cjs/internal/InputLikeText/InputLikeText.styles.js +1 -1
  67. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  68. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  69. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  70. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  71. package/cjs/internal/themes/DefaultTheme.d.ts +3 -0
  72. package/cjs/internal/themes/DefaultTheme.js +11 -2
  73. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  74. package/cjs/lib/Upgrades.d.ts +2 -0
  75. package/cjs/lib/Upgrades.js +14 -0
  76. package/cjs/lib/Upgrades.js.map +1 -1
  77. package/cjs/lib/theming/Emotion.js +1 -1
  78. package/cjs/lib/theming/Emotion.js.map +1 -1
  79. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  80. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  81. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +5 -11
  82. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  83. package/components/DateInput/DateInput/DateInput.js +2 -1
  84. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  85. package/components/DatePicker/DatePicker/DatePicker.js +12 -4
  86. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  87. package/components/DatePicker/DatePicker.d.ts +3 -2
  88. package/components/Dropdown/Dropdown/Dropdown.js +1 -0
  89. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  90. package/components/Dropdown/Dropdown.d.ts +1 -0
  91. package/components/Dropdown/Dropdown.md +0 -1
  92. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  93. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  94. package/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  95. package/components/DropdownMenu/DropdownMenu.md +87 -6
  96. package/components/Kebab/Kebab/Kebab.js +2 -1
  97. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  98. package/components/Kebab/Kebab.d.ts +5 -2
  99. package/components/Kebab/Kebab.md +249 -3
  100. package/components/MenuHeader/MenuHeader/MenuHeader.js +5 -1
  101. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  102. package/components/MenuHeader/MenuHeader.d.ts +5 -1
  103. package/components/MenuHeader/MenuHeader.md +23 -0
  104. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  105. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  106. package/components/MenuItem/MenuItem.d.ts +10 -1
  107. package/components/MenuItem/MenuItem.md +106 -4
  108. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -1
  109. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  110. package/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  111. package/components/MenuSeparator/MenuSeparator.md +14 -0
  112. package/components/Modal/Modal.styles/Modal.styles.js +18 -15
  113. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  114. package/components/Modal/Modal.styles.d.ts +1 -0
  115. package/components/Modal/ModalClose/ModalClose.js +25 -2
  116. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  117. package/components/Textarea/Textarea/Textarea.js +1 -2
  118. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  119. package/components/Textarea/Textarea.d.ts +0 -2
  120. package/components/Toggle/Toggle/Toggle.js +11 -5
  121. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  122. package/components/Toggle/Toggle.d.ts +47 -1
  123. package/components/Toggle/Toggle.md +83 -9
  124. package/components/Toggle/Toggle.styles/Toggle.styles.js +21 -15
  125. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  126. package/components/Toggle/Toggle.styles.d.ts +3 -0
  127. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +9 -6
  128. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  130. package/components/TooltipMenu/TooltipMenu.md +76 -8
  131. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  132. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  133. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
  134. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  135. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
  136. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  137. package/internal/InputLikeText/InputLikeText/InputLikeText.js +6 -3
  138. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  139. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  140. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +1 -1
  141. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  142. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  143. package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
  144. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  145. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  146. package/internal/themes/DefaultTheme/DefaultTheme.js +16 -1
  147. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  148. package/internal/themes/DefaultTheme.d.ts +3 -0
  149. package/lib/Upgrades/Upgrades.js +13 -0
  150. package/lib/Upgrades/Upgrades.js.map +1 -1
  151. package/lib/Upgrades.d.ts +2 -0
  152. package/lib/theming/Emotion/Emotion.js +1 -1
  153. package/lib/theming/Emotion/Emotion.js.map +1 -1
  154. package/package.json +2 -2
  155. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
  156. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +0 -9
  157. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +0 -1
  158. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +0 -10
  159. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +0 -1
  160. package/components/CurrencyLabel/CurrencyLabel.styles/package.json +0 -6
  161. package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
@@ -10,7 +10,7 @@ var _Emotion = require("../../lib/theming/Emotion");
10
10
 
11
11
  var _Toggle = require("./Toggle.styles");
12
12
 
13
- var colorWarningShown = false;var
13
+ var colorWarningShown = false;
14
14
 
15
15
 
16
16
 
@@ -38,6 +38,52 @@ var colorWarningShown = false;var
38
38
 
39
39
 
40
40
 
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+ /**
85
+ * _Примечание:_ под тоглом понимается полный компонент т.е. надпись + переключатель, а не просто переключатель.
86
+ */var
41
87
  Toggle = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Toggle, _React$Component);
42
88
 
43
89
 
@@ -182,6 +228,10 @@ Toggle = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(
182
228
 
183
229
 
184
230
 
231
+
232
+
233
+
234
+
185
235
 
186
236
 
187
237
 
@@ -226,6 +276,6 @@ Toggle = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(
226
276
 
227
277
  };_this.state = { focusByTab: false, checked: props.defaultChecked };return _this;}var _proto = Toggle.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.autoFocus) {_keyListener.keyListener.isTabPressed = true;this.focus();}} /**
228
278
  * @public
229
- */;_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, _cx4, _cx5, _cx6;var _this$props = this.props,children = _this$props.children,captionPosition = _this$props.captionPosition,warning = _this$props.warning,error = _this$props.error,loading = _this$props.loading,color = _this$props.color;var disabled = this.props.disabled || loading;var checked = this.isUncontrolled() ? this.state.checked : this.props.checked;var containerClassNames = (0, _Emotion.cx)(_Toggle.styles.container(this.theme), (_cx = {}, _cx[_Toggle.styles.containerDisabled(this.theme)] = !!disabled, _cx[_Toggle.globalClasses.container] = true, _cx[_Toggle.globalClasses.containerDisabled] = !!disabled, _cx[_Toggle.globalClasses.containerLoading] = loading, _cx));var labelClassNames = (0, _Emotion.cx)(_Toggle.styles.root(this.theme), (_cx2 = {}, _cx2[_Toggle.styles.rootLeft()] = captionPosition === 'left', _cx2[_Toggle.styles.disabled()] = !!disabled, _cx2));var caption = null;if (children) {var _cx3;var captionClass = (0, _Emotion.cx)(_Toggle.styles.caption(this.theme), (_cx3 = {}, _cx3[_Toggle.styles.captionLeft(this.theme)] = captionPosition === 'left', _cx3));caption = /*#__PURE__*/_react.default.createElement("span", { className: captionClass }, children);}return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement("label", { className: labelClassNames }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.outline(this.theme), (_cx4 = {}, _cx4[_Toggle.styles.isWarning(this.theme)] = !!warning, _cx4[_Toggle.styles.isError(this.theme)] = !!error, _cx4[_Toggle.styles.focused(this.theme)] = !disabled && !!this.state.focusByTab, _cx4)) }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Toggle.styles.wrapper(this.theme)) }, /*#__PURE__*/_react.default.createElement("input", { type: "checkbox", checked: checked, onChange: this.handleChange, className: _Toggle.styles.input(this.theme), onFocus: this.handleFocus, onBlur: this.handleBlur, ref: this.inputRef, disabled: disabled }), /*#__PURE__*/_react.default.createElement("div", { className: containerClassNames, style: checked && color && !disabled ? { backgroundColor: color, boxShadow: "inset 0 0 0 1px " + color } : undefined }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.activeBackground(), _Toggle.globalClasses.background, (_cx5 = {}, _cx5[_Toggle.styles.activeBackgroundLoading(this.theme)] = loading, _cx5)), style: checked && color && !disabled ? { backgroundColor: color, boxShadow: "inset 0 0 0 1px " + color } : undefined })), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.handle(this.theme), _Toggle.globalClasses.handle, (_cx6 = {}, _cx6[_Toggle.styles.handleDisabled(this.theme)] = disabled, _cx6)) }))), caption));};_proto.isUncontrolled = function isUncontrolled() {
279
+ */;_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, _cx4, _cx5, _cx6;var _this$props = this.props,children = _this$props.children,captionPosition = _this$props.captionPosition,warning = _this$props.warning,error = _this$props.error,loading = _this$props.loading,color = _this$props.color,id = _this$props.id;var disabled = this.props.disabled || loading;var checked = this.isUncontrolled() ? this.state.checked : this.props.checked;var containerClassNames = (0, _Emotion.cx)(_Toggle.styles.container(this.theme), (_cx = {}, _cx[_Toggle.styles.containerDisabled(this.theme)] = !!disabled, _cx[_Toggle.globalClasses.container] = true, _cx[_Toggle.globalClasses.containerDisabled] = !!disabled, _cx[_Toggle.globalClasses.containerLoading] = loading, _cx));var labelClassNames = (0, _Emotion.cx)(_Toggle.styles.root(this.theme), (_cx2 = {}, _cx2[_Toggle.styles.rootLeft()] = captionPosition === 'left', _cx2[_Toggle.styles.disabled()] = !!disabled, _cx2[_Toggle.globalClasses.disabled] = !!disabled, _cx2));var caption = null;if (children) {var _cx3;var captionClass = (0, _Emotion.cx)(_Toggle.styles.caption(this.theme), (_cx3 = {}, _cx3[_Toggle.styles.captionLeft(this.theme)] = captionPosition === 'left', _cx3[_Toggle.styles.disabledCaption(this.theme)] = !!disabled, _cx3));caption = /*#__PURE__*/_react.default.createElement("span", { className: captionClass }, children);}return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement("label", { className: labelClassNames }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.outline(this.theme), (_cx4 = {}, _cx4[_Toggle.styles.isWarning(this.theme)] = !!warning, _cx4[_Toggle.styles.isError(this.theme)] = !!error, _cx4[_Toggle.styles.focused(this.theme)] = !disabled && !!this.state.focusByTab, _cx4)) }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_Toggle.styles.wrapper(this.theme)) }, /*#__PURE__*/_react.default.createElement("input", { type: "checkbox", checked: checked, onChange: this.handleChange, className: _Toggle.styles.input(this.theme), onFocus: this.handleFocus, onBlur: this.handleBlur, ref: this.inputRef, disabled: disabled, id: id }), /*#__PURE__*/_react.default.createElement("div", { className: containerClassNames, style: checked && color && !disabled ? { backgroundColor: color, boxShadow: "inset 0 0 0 1px " + color } : undefined }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.activeBackground(), _Toggle.globalClasses.background, (_cx5 = {}, _cx5[_Toggle.styles.activeBackgroundLoading(this.theme)] = loading, _cx5[_Toggle.styles.disabledBackground(this.theme)] = disabled, _cx5)), style: checked && color && !disabled ? { backgroundColor: color, boxShadow: "inset 0 0 0 1px " + color } : undefined })), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Toggle.styles.handle(this.theme), _Toggle.globalClasses.handle, (_cx6 = {}, _cx6[_Toggle.styles.handleDisabled(this.theme)] = disabled, _cx6)) }))), caption));};_proto.isUncontrolled = function isUncontrolled() {
230
280
  return this.props.checked === undefined;
231
281
  };return Toggle;}(_react.default.Component);exports.Toggle = Toggle;Toggle.__KONTUR_REACT_UI__ = 'Toggle';Toggle.propTypes = { checked: _propTypes.default.bool, defaultChecked: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, loading: _propTypes.default.bool, warning: _propTypes.default.bool, onValueChange: _propTypes.default.func, color: function color(props) {if (props.color && !colorWarningShown) {(0, _warning.default)(false, "[Toggle]: prop 'color' is deprecated. Please, use theme variable 'toggleBgChecked' instead. ");colorWarningShown = true;}} };Toggle.defaultProps = { disabled: false, loading: false, captionPosition: 'right' };
@@ -1 +1 @@
1
- {"version":3,"sources":["Toggle.tsx"],"names":["colorWarningShown","Toggle","props","theme","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","handleBlur","onBlur","state","defaultChecked","componentDidMount","autoFocus","render","renderMain","children","captionPosition","warning","error","loading","color","disabled","containerClassNames","styles","container","containerDisabled","globalClasses","containerLoading","labelClassNames","root","rootLeft","caption","captionClass","captionLeft","outline","isWarning","isError","focused","wrapper","backgroundColor","boxShadow","undefined","activeBackground","background","activeBackgroundLoading","handle","handleDisabled","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nlet colorWarningShown = false;\n\nexport interface ToggleProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Положение children справа или слева от переключателя\n * @default 'right'\n */\n captionPosition: 'left' | 'right';\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n onValueChange?: (value: boolean) => void;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n warning?: boolean;\n error?: boolean;\n loading?: boolean;\n autoFocus?: boolean;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n color?: React.CSSProperties['color'];\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n\n public static propTypes = {\n checked: PropTypes.bool,\n defaultChecked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n loading: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n color(props: ToggleProps) {\n if (props.color && !colorWarningShown) {\n warning(false, `[Toggle]: prop 'color' is deprecated. Please, use theme variable 'toggleBgChecked' instead. `);\n colorWarningShown = true;\n }\n },\n };\n\n public static defaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n };\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\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 { children, captionPosition, warning, error, loading, color } = this.props;\n const disabled = this.props.disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(styles.container(this.theme), {\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(styles.root(this.theme), {\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(styles.caption(this.theme), {\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper {...this.props}>\n <label className={labelClassNames}>\n <div\n className={cx(styles.outline(this.theme), {\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <span className={cx(styles.wrapper(this.theme))}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={styles.input(this.theme)}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n />\n <div\n className={containerClassNames}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n >\n <div\n className={cx(styles.activeBackground(), globalClasses.background, {\n [styles.activeBackgroundLoading(this.theme)]: loading,\n })}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n />\n </div>\n <div\n className={cx(styles.handle(this.theme), globalClasses.handle, {\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </span>\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({\n focusByTab: false,\n });\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["Toggle.tsx"],"names":["colorWarningShown","Toggle","props","theme","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","handleBlur","onBlur","state","defaultChecked","componentDidMount","autoFocus","render","renderMain","children","captionPosition","warning","error","loading","color","id","disabled","containerClassNames","styles","container","containerDisabled","globalClasses","containerLoading","labelClassNames","root","rootLeft","caption","captionClass","captionLeft","disabledCaption","outline","isWarning","isError","focused","wrapper","backgroundColor","boxShadow","undefined","activeBackground","background","activeBackgroundLoading","disabledBackground","handle","handleDisabled","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nlet colorWarningShown = false;\n\nexport interface ToggleProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Положение `children` относительно переключателя.\n * @default 'right'\n */\n captionPosition: 'left' | 'right';\n /**\n * Состояние `тогла`, если `true` - `тогл` будет включён, иначе выключен.\n * @default false\n */\n checked?: boolean;\n /**\n * Делает `тогл` включенным по умолчанию.\n */\n defaultChecked?: boolean;\n /**\n * Отключает `тогл`.\n */\n disabled?: boolean;\n /**\n * Событие вызывающееся, когда значение `тогла` меняется, передаёт текущее значение тогла в переданную функцию.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * Событие вызывающееся при клике на `тогл`.\n */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n /**\n * Добавляет оранжевую обводку вокруг переключателя.\n * @default false\n */\n warning?: boolean;\n /**\n * Добавляет красную обводку вокруг переключателя.\n * @default false\n */\n error?: boolean;\n /**\n * Добавляет стили для состояния `loading` и отключает `тогл`.\n */\n loading?: boolean;\n /**\n * Если true, выставляет фокус на `тогле` после загрузки страницы.\n */\n autoFocus?: boolean;\n /**\n * Событие вызывающееся, когда `тогл` получает фокус.\n */\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * Событие вызывающееся, когда `тогл` теряет фокус.\n */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * @deprecated используйте переменную темы `toggleBgChecked` вместо этого пропа.\n */\n color?: React.CSSProperties['color'];\n /**\n * HTML-атрибут `id` для передачи во внутренний `<input />`.\n */\n id?: string;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\n/**\n * _Примечание:_ под тоглом понимается полный компонент т.е. надпись + переключатель, а не просто переключатель.\n */\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n\n public static propTypes = {\n checked: PropTypes.bool,\n defaultChecked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n loading: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n color(props: ToggleProps) {\n if (props.color && !colorWarningShown) {\n warning(false, `[Toggle]: prop 'color' is deprecated. Please, use theme variable 'toggleBgChecked' instead. `);\n colorWarningShown = true;\n }\n },\n };\n\n public static defaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n };\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\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 { children, captionPosition, warning, error, loading, color, id } = this.props;\n const disabled = this.props.disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(styles.container(this.theme), {\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(styles.root(this.theme), {\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(styles.caption(this.theme), {\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper {...this.props}>\n <label className={labelClassNames}>\n <div\n className={cx(styles.outline(this.theme), {\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <span className={cx(styles.wrapper(this.theme))}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={styles.input(this.theme)}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n />\n <div\n className={containerClassNames}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n >\n <div\n className={cx(styles.activeBackground(), globalClasses.background, {\n [styles.activeBackgroundLoading(this.theme)]: loading,\n [styles.disabledBackground(this.theme)]: disabled,\n })}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n />\n </div>\n <div\n className={cx(styles.handle(this.theme), globalClasses.handle, {\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </span>\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({\n focusByTab: false,\n });\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"]}
@@ -1,20 +1,94 @@
1
+ Базовый пример тогла.
2
+
3
+ ```jsx harmony
4
+ const [checked, setChecked] = React.useState(false);
5
+
6
+ <Toggle checked={checked} onValueChange={setChecked}>
7
+ {checked ? 'On' : 'Off'}
8
+ </Toggle>
9
+ ```
10
+
11
+ Пример тогла включенного по умолчанию.
12
+
13
+ ```jsx harmony
14
+ <Toggle defaultChecked>
15
+ Включен по умолчанию
16
+ </Toggle>
17
+ ```
18
+
19
+ Тогл с надписью слева от переключателя.
20
+
1
21
  ```jsx harmony
2
22
  const [checked, setChecked] = React.useState(false);
3
23
 
4
- <div>
5
- <Toggle checked={checked} onValueChange={setChecked} /> {checked ? 'On' : 'Off'}
6
- </div>;
24
+ <Toggle checked={checked} onValueChange={setChecked} captionPosition="left">
25
+ Показывать уведомления
26
+ </Toggle>
7
27
  ```
8
28
 
9
- В компонент можно передать `children`, который будет отображаться рядом с переключателем.
10
- Положение `children` относительно переключателя указывается в `captionPosition`.
29
+ Тогл с внешним `<label/>`.
11
30
 
12
31
  ```jsx harmony
32
+ import { Gapped } from '@skbkontur/react-ui';
33
+
13
34
  const [checked, setChecked] = React.useState(false);
14
35
 
15
- <div>
16
- <Toggle checked={checked} onValueChange={setChecked} captionPosition="left">
17
- <span>Показывать уведомления</span>
36
+ <Gapped>
37
+ <Toggle id="toggle-1" checked={checked} onValueChange={setChecked}/>
38
+ <label htmlFor="toggle-1">Внешний label</label>
39
+ </Gapped>
40
+ ```
41
+
42
+ Тогл получающий фокус после загрузки страницы.
43
+
44
+ ```jsx harmony
45
+ <Toggle autoFocus>
46
+ Сразу с фокусом
47
+ </Toggle>
48
+ ```
49
+
50
+ Тоглы в различных стилях.
51
+
52
+ ```jsx harmony
53
+ import { Gapped } from '@skbkontur/react-ui';
54
+
55
+ <Gapped gap="20px">
56
+ <Toggle warning>
57
+ Warning
58
+ </Toggle>
59
+ <Toggle error>
60
+ Error
61
+ </Toggle>
62
+ <Toggle loading>
63
+ Loading
18
64
  </Toggle>
19
- </div>;
65
+ <Toggle disabled>
66
+ Disabled
67
+ </Toggle>
68
+ </Gapped>
69
+ ```
70
+
71
+ Тогл с кастомным действием при получении и потере фокуса.
72
+
73
+
74
+ ```jsx harmony
75
+ import { Toast } from '@skbkontur/react-ui';
76
+
77
+ <Toggle
78
+ onFocus={() => Toast.push('Я получил фокус!')}
79
+ onBlur={() => Toast.push('И потерял его...')}
80
+ >
81
+ С кастомными действиями при фокусе и его потере
82
+ </Toggle>
83
+ ```
84
+
85
+
86
+ Тогл с кастомным действием при переключении.
87
+
88
+ ```jsx harmony
89
+ import { Toast } from '@skbkontur/react-ui';
90
+
91
+ <Toggle onChange={() => Toast.push("Запускаю кастомное действие")}>
92
+ Кастомное действие при переключении
93
+ </Toggle>
20
94
  ```
@@ -2,6 +2,7 @@ import { Theme } from '../../lib/theming/Theme';
2
2
  export declare const globalClasses: {
3
3
  handle: string;
4
4
  container: string;
5
+ disabled: string;
5
6
  containerDisabled: string;
6
7
  containerLoading: string;
7
8
  background: string;
@@ -15,6 +16,7 @@ export declare const styles: {
15
16
  containerDisabled(t: Theme): string;
16
17
  focused(t: Theme): string;
17
18
  activeBackground(): string;
19
+ disabledBackground(t: Theme): string;
18
20
  activeBackgroundLoading(t: Theme): string;
19
21
  isWarning(t: Theme): string;
20
22
  isError(t: Theme): string;
@@ -23,5 +25,6 @@ export declare const styles: {
23
25
  disabled(): string;
24
26
  rootLeft(): string;
25
27
  caption(t: Theme): string;
28
+ disabledCaption(t: Theme): string;
26
29
  captionLeft(t: Theme): string;
27
30
  };
@@ -1,9 +1,10 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = exports.globalClasses = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = exports.globalClasses = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
2
2
 
3
3
 
4
4
  var globalClasses = (0, _Emotion.prefix)('toggle')({
5
5
  handle: 'handle',
6
6
  container: 'container',
7
+ disabled: 'disabled',
7
8
  containerDisabled: 'container-disabled',
8
9
  containerLoading: 'container-loading',
9
10
  background: 'background' });exports.globalClasses = globalClasses;
@@ -13,17 +14,17 @@ var styles = (0, _Emotion.memoizeStyle)({
13
14
  root: function root(t) {
14
15
  var handleWidthWithBorders = t.toggleHeight;
15
16
  var handleActiveWidth = "calc(" + handleWidthWithBorders + " - 2 * " + t.toggleBorderWidth + " + " + t.toggleHandleActiveWidthIncrement + ")";
16
- return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-flex;\n cursor: pointer;\n\n &:hover .", " {\n background: ", ";\n }\n &:active .", " {\n width: ", ";\n }\n &:active input:checked ~ .", " {\n transform: translateX(", ") translateX(-", ")\n translateX(-", ");\n }\n "])),
17
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-flex;\n cursor: pointer;\n\n &:hover .", " {\n background: ", ";\n }\n &:active:not(.", ") .", " {\n width: ", ";\n }\n &:active:not(.", ") input:checked ~ .", " {\n transform: translateX(", ") translateX(-", ")\n translateX(-", ");\n }\n "])),
17
18
 
18
19
 
19
20
 
20
21
  globalClasses.handle,
21
22
  t.toggleBgHover,
22
23
 
23
- globalClasses.handle,
24
+ globalClasses.disabled, globalClasses.handle,
24
25
  handleActiveWidth,
25
26
 
26
- globalClasses.handle,
27
+ globalClasses.disabled, globalClasses.handle,
27
28
  t.toggleWidth, handleWidthWithBorders,
28
29
  t.toggleHandleActiveWidthIncrement);
29
30
 
@@ -47,10 +48,8 @@ var styles = (0, _Emotion.memoizeStyle)({
47
48
  },
48
49
 
49
50
  handleDisabled: function handleDisabled(t) {
50
- var handleSize = "calc(" + t.toggleHeight + " - 2 * " + t.toggleBorderWidth + ")";
51
- return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", " !important; // override root hover/active styles\n width: ", " !important; // override root active styles\n "])),
52
- t.toggleDisabledHandleBg,
53
- handleSize);
51
+ return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", " !important; // override root hover/active styles\n "])),
52
+ t.toggleDisabledHandleBg);
54
53
 
55
54
  },
56
55
 
@@ -69,8 +68,8 @@ var styles = (0, _Emotion.memoizeStyle)({
69
68
 
70
69
 
71
70
  globalClasses.containerDisabled,
72
- t.toggleBorderWidth, t.toggleBorderColor,
73
- t.toggleBgDisabled,
71
+ t.toggleBorderWidth, t.toggleBorderColorDisabledChecked,
72
+ t.toggleBgDisabledChecked,
74
73
 
75
74
 
76
75
  globalClasses.containerLoading,
@@ -83,9 +82,9 @@ var styles = (0, _Emotion.memoizeStyle)({
83
82
 
84
83
  globalClasses.containerDisabled, globalClasses.background,
85
84
 
86
- t.toggleBgDisabled,
85
+ t.toggleBgDisabledChecked,
87
86
  t.toggleHeight, t.toggleHeight,
88
- t.toggleBorderColor,
87
+ t.toggleBorderColorDisabledChecked,
89
88
 
90
89
  globalClasses.handle,
91
90
  t.toggleWidth, handleWidthWithBorders);
@@ -107,8 +106,9 @@ var styles = (0, _Emotion.memoizeStyle)({
107
106
  },
108
107
 
109
108
  containerDisabled: function containerDisabled(t) {
110
- return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
111
- t.toggleBgDisabled);
109
+ return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n box-shadow: inset 0 0 0 1px ", ";\n "])),
110
+ t.toggleBgDisabled,
111
+ t.toggleBorderColorDisabled);
112
112
 
113
113
  },
114
114
 
@@ -128,35 +128,42 @@ var styles = (0, _Emotion.memoizeStyle)({
128
128
 
129
129
 
130
130
 
131
+ },
132
+
133
+ disabledBackground: function disabledBackground(t) {
134
+ return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: inset 0 0 0 1px ", ";\n width: 0;\n "])),
135
+ t.toggleBorderColorDisabled);
136
+
137
+
131
138
  },
132
139
 
133
140
  activeBackgroundLoading: function activeBackgroundLoading(t) {
134
- return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
141
+ return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
135
142
  t.toggleBgActive);
136
143
 
137
144
  },
138
145
 
139
146
  isWarning: function isWarning(t) {
140
- return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: 0 0 0 1px ", ", 0 0 0 ", " ", ";\n "])),
147
+ return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: 0 0 0 1px ", ", 0 0 0 ", " ", ";\n "])),
141
148
  t.outlineColorFocus, t.toggleOutlineWidth, t.toggleShadowColorWarning);
142
149
 
143
150
  },
144
151
 
145
152
  isError: function isError(t) {
146
- return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: 0 0 0 1px ", ", 0 0 0 ", " ", ";\n "])),
153
+ return (0, _Emotion.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: 0 0 0 1px ", ", 0 0 0 ", " ", ";\n "])),
147
154
  t.outlineColorFocus, t.toggleOutlineWidth, t.toggleShadowColorError);
148
155
 
149
156
  },
150
157
 
151
158
  outline: function outline(t) {
152
- return (0, _Emotion.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n border-radius: ", ";\n "])),
159
+ return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n border-radius: ", ";\n "])),
153
160
  t.toggleBaseBg,
154
161
  t.toggleBorderRadius);
155
162
 
156
163
  },
157
164
 
158
165
  wrapper: function wrapper(t) {
159
- return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n height: ", ";\n position: relative;\n width: ", ";\n flex: 1 0 ", ";\n\n &::after {\n content: '';\n display: inline-block;\n }\n "])),
166
+ return (0, _Emotion.css)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n height: ", ";\n position: relative;\n width: ", ";\n flex: 1 0 ", ";\n\n &::after {\n content: '';\n display: inline-block;\n }\n "])),
160
167
 
161
168
  t.toggleHeight,
162
169
 
@@ -171,26 +178,32 @@ var styles = (0, _Emotion.memoizeStyle)({
171
178
  },
172
179
 
173
180
  disabled: function disabled() {
174
- return (0, _Emotion.css)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteralLoose2.default)(["\n cursor: default;\n "])));
181
+ return (0, _Emotion.css)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteralLoose2.default)(["\n cursor: default;\n "])));
175
182
 
176
183
 
177
184
  },
178
185
 
179
186
  rootLeft: function rootLeft() {
180
- return (0, _Emotion.css)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex-direction: row-reverse;\n "])));
187
+ return (0, _Emotion.css)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex-direction: row-reverse;\n "])));
181
188
 
182
189
 
183
190
  },
184
191
 
185
192
  caption: function caption(t) {
186
- return (0, _Emotion.css)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n padding: 0 0 0 ", ";\n "])),
193
+ return (0, _Emotion.css)(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n padding: 0 0 0 ", ";\n "])),
187
194
  t.toggleTextColor,
188
195
  t.toggleCaptionGap);
189
196
 
190
197
  },
191
198
 
199
+ disabledCaption: function disabledCaption(t) {
200
+ return (0, _Emotion.css)(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
201
+ t.textColorDisabled);
202
+
203
+ },
204
+
192
205
  captionLeft: function captionLeft(t) {
193
- return (0, _Emotion.css)(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n padding: 0 ", " 0 0;\n "])),
206
+ return (0, _Emotion.css)(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n padding: 0 ", " 0 0;\n "])),
194
207
  t.toggleTextColor,
195
208
  t.toggleCaptionGap);
196
209
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Toggle.styles.ts"],"names":["globalClasses","handle","container","containerDisabled","containerLoading","background","styles","root","t","handleWidthWithBorders","toggleHeight","handleActiveWidth","toggleBorderWidth","toggleHandleActiveWidthIncrement","css","toggleBgHover","toggleWidth","handleSize","toggleBg","toggleHandleBorderRadius","handleDisabled","toggleDisabledHandleBg","input","toggleBgChecked","toggleBorderColor","toggleBgDisabled","toggleBorderRadius","focused","outlineColorFocus","toggleOutlineWidth","toggleFocusShadowColor","activeBackground","activeBackgroundLoading","toggleBgActive","isWarning","toggleShadowColorWarning","isError","toggleShadowColorError","outline","toggleBaseBg","wrapper","disabled","rootLeft","caption","toggleTextColor","toggleCaptionGap","captionLeft"],"mappings":"oSAAA,oD;;;AAGO,IAAMA,aAAa,GAAG,qBAAO,QAAP,EAAiB;AAC5CC,EAAAA,MAAM,EAAE,QADoC;AAE5CC,EAAAA,SAAS,EAAE,WAFiC;AAG5CC,EAAAA,iBAAiB,EAAE,oBAHyB;AAI5CC,EAAAA,gBAAgB,EAAE,mBAJ0B;AAK5CC,EAAAA,UAAU,EAAE,YALgC,EAAjB,CAAtB,C;;;AAQA,IAAMC,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,QAAMC,sBAAsB,GAAGD,CAAC,CAACE,YAAjC;AACA,QAAMC,iBAAiB,aAAWF,sBAAX,eAA2CD,CAAC,CAACI,iBAA7C,WAAoEJ,CAAC,CAACK,gCAAtE,MAAvB;AACA,eAAOC,YAAP;;;;AAIad,IAAAA,aAAa,CAACC,MAJ3B;AAKkBO,IAAAA,CAAC,CAACO,aALpB;;AAOcf,IAAAA,aAAa,CAACC,MAP5B;AAQaU,IAAAA,iBARb;;AAU8BX,IAAAA,aAAa,CAACC,MAV5C;AAW4BO,IAAAA,CAAC,CAACQ,WAX9B,EAW0DP,sBAX1D;AAYoBD,IAAAA,CAAC,CAACK,gCAZtB;;;AAeD,GAnBgC;;AAqBjCZ,EAAAA,MArBiC,kBAqB1BO,CArB0B,EAqBhB;AACf,QAAMS,UAAU,aAAWT,CAAC,CAACE,YAAb,eAAmCF,CAAC,CAACI,iBAArC,MAAhB;AACA,eAAOE,YAAP;AACgBN,IAAAA,CAAC,CAACU,QADlB;AAEmBV,IAAAA,CAAC,CAACW,wBAFrB;AAGYX,IAAAA,CAAC,CAACI,iBAHd;AAIkBJ,IAAAA,CAAC,CAACI,iBAJpB,EAIwEJ,CAAC,CAACI,iBAJ1E;AAKYK,IAAAA,UALZ;AAMUT,IAAAA,CAAC,CAACI,iBANZ;;AAQSJ,IAAAA,CAAC,CAACI,iBARX;;AAUWK,IAAAA,UAVX;;AAYD,GAnCgC;;AAqCjCG,EAAAA,cArCiC,0BAqClBZ,CArCkB,EAqCR;AACvB,QAAMS,UAAU,aAAWT,CAAC,CAACE,YAAb,eAAmCF,CAAC,CAACI,iBAArC,MAAhB;AACA,eAAOE,YAAP;AACgBN,IAAAA,CAAC,CAACa,sBADlB;AAEWJ,IAAAA,UAFX;;AAID,GA3CgC;;AA6CjCK,EAAAA,KA7CiC,iBA6C3Bd,CA7C2B,EA6CjB;AACd,QAAMC,sBAAsB,GAAGD,CAAC,CAACE,YAAjC;AACA,eAAOI,YAAP;;;;;;;AAOiBd,IAAAA,aAAa,CAACE,SAP/B;AAQ8BM,IAAAA,CAAC,CAACI,iBARhC,EAQqDJ,CAAC,CAACe,eARvD;AASkBf,IAAAA,CAAC,CAACe,eATpB;;;AAYiBvB,IAAAA,aAAa,CAACG,iBAZ/B;AAa8BK,IAAAA,CAAC,CAACI,iBAbhC,EAaqDJ,CAAC,CAACgB,iBAbvD;AAckBhB,IAAAA,CAAC,CAACiB,gBAdpB;;;AAiBiBzB,IAAAA,aAAa,CAACI,gBAjB/B;AAkBkBI,IAAAA,CAAC,CAACgB,iBAlBpB;AAmB8BhB,IAAAA,CAAC,CAACI,iBAnBhC,EAmBqDJ,CAAC,CAACgB,iBAnBvD;;AAqBiBxB,IAAAA,aAAa,CAACE,SArB/B,EAqB6CF,aAAa,CAACK,UArB3D;;AAuBkBG,IAAAA,CAAC,CAACe,eAvBpB;;AAyBiBvB,IAAAA,aAAa,CAACG,iBAzB/B,EAyBqDH,aAAa,CAACK,UAzBnE;;AA2BkBG,IAAAA,CAAC,CAACiB,gBA3BpB;AA4B0BjB,IAAAA,CAAC,CAACE,YA5B5B,EA4B4DF,CAAC,CAACE,YA5B9D;AA6BkCF,IAAAA,CAAC,CAACgB,iBA7BpC;;AA+BiBxB,IAAAA,aAAa,CAACC,MA/B/B;AAgC4BO,IAAAA,CAAC,CAACQ,WAhC9B,EAgC0DP,sBAhC1D;;;AAmCD,GAlFgC;;AAoFjCP,EAAAA,SApFiC,qBAoFvBM,CApFuB,EAoFb;AAClB,eAAOM,YAAP;AACmBN,IAAAA,CAAC,CAACkB,kBADrB;AAE4BlB,IAAAA,CAAC,CAACI,iBAF9B,EAEmDJ,CAAC,CAACgB,iBAFrD;;;;;;;;AAUD,GA/FgC;;AAiGjCrB,EAAAA,iBAjGiC,6BAiGfK,CAjGe,EAiGL;AAC1B,eAAOM,YAAP;AACgBN,IAAAA,CAAC,CAACiB,gBADlB;;AAGD,GArGgC;;AAuGjCE,EAAAA,OAvGiC,mBAuGzBnB,CAvGyB,EAuGf;AAChB,eAAOM,YAAP;AAC0BN,IAAAA,CAAC,CAACoB,iBAD5B,EACwDpB,CAAC,CAACqB,kBAD1D,EACgFrB,CAAC,CAACsB,sBADlF;;AAGD,GA3GgC;;AA6GjCC,EAAAA,gBA7GiC,8BA6Gd;AACjB,eAAOjB,YAAP;;;;;;;;;AASD,GAvHgC;;AAyHjCkB,EAAAA,uBAzHiC,mCAyHTxB,CAzHS,EAyHC;AAChC,eAAOM,YAAP;AACgBN,IAAAA,CAAC,CAACyB,cADlB;;AAGD,GA7HgC;;AA+HjCC,EAAAA,SA/HiC,qBA+HvB1B,CA/HuB,EA+Hb;AAClB,eAAOM,YAAP;AAC0BN,IAAAA,CAAC,CAACoB,iBAD5B,EACwDpB,CAAC,CAACqB,kBAD1D,EACgFrB,CAAC,CAAC2B,wBADlF;;AAGD,GAnIgC;;AAqIjCC,EAAAA,OArIiC,mBAqIzB5B,CArIyB,EAqIf;AAChB,eAAOM,YAAP;AAC0BN,IAAAA,CAAC,CAACoB,iBAD5B,EACwDpB,CAAC,CAACqB,kBAD1D,EACgFrB,CAAC,CAAC6B,sBADlF;;AAGD,GAzIgC;;AA2IjCC,EAAAA,OA3IiC,mBA2IzB9B,CA3IyB,EA2If;AAChB,eAAOM,YAAP;AACgBN,IAAAA,CAAC,CAAC+B,YADlB;AAEmB/B,IAAAA,CAAC,CAACkB,kBAFrB;;AAID,GAhJgC;;AAkJjCc,EAAAA,OAlJiC,mBAkJzBhC,CAlJyB,EAkJf;AAChB,eAAOM,YAAP;;AAEYN,IAAAA,CAAC,CAACE,YAFd;;AAIWF,IAAAA,CAAC,CAACQ,WAJb;AAKcR,IAAAA,CAAC,CAACQ,WALhB;;;;;;;AAYD,GA/JgC;;AAiKjCyB,EAAAA,QAjKiC,sBAiKtB;AACT,eAAO3B,YAAP;;;AAGD,GArKgC;;AAuKjC4B,EAAAA,QAvKiC,sBAuKtB;AACT,eAAO5B,YAAP;;;AAGD,GA3KgC;;AA6KjC6B,EAAAA,OA7KiC,mBA6KzBnC,CA7KyB,EA6Kf;AAChB,eAAOM,YAAP;AACWN,IAAAA,CAAC,CAACoC,eADb;AAEmBpC,IAAAA,CAAC,CAACqC,gBAFrB;;AAID,GAlLgC;;AAoLjCC,EAAAA,WApLiC,uBAoLrBtC,CApLqB,EAoLX;AACpB,eAAOM,YAAP;AACWN,IAAAA,CAAC,CAACoC,eADb;AAEepC,IAAAA,CAAC,CAACqC,gBAFjB;;AAID,GAzLgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const globalClasses = prefix('toggle')({\n handle: 'handle',\n container: 'container',\n containerDisabled: 'container-disabled',\n containerLoading: 'container-loading',\n background: 'background',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n const handleWidthWithBorders = t.toggleHeight;\n const handleActiveWidth = `calc(${handleWidthWithBorders} - 2 * ${t.toggleBorderWidth} + ${t.toggleHandleActiveWidthIncrement})`;\n return css`\n display: inline-flex;\n cursor: pointer;\n\n &:hover .${globalClasses.handle} {\n background: ${t.toggleBgHover};\n }\n &:active .${globalClasses.handle} {\n width: ${handleActiveWidth};\n }\n &:active input:checked ~ .${globalClasses.handle} {\n transform: translateX(${t.toggleWidth}) translateX(-${handleWidthWithBorders})\n translateX(-${t.toggleHandleActiveWidthIncrement});\n }\n `;\n },\n\n handle(t: Theme) {\n const handleSize = `calc(${t.toggleHeight} - 2 * ${t.toggleBorderWidth})`;\n return css`\n background: ${t.toggleBg};\n border-radius: ${t.toggleHandleBorderRadius};\n bottom: ${t.toggleBorderWidth};\n box-shadow: 0 ${t.toggleBorderWidth} 0 0 rgba(0, 0, 0, 0.15), 0 0 0 ${t.toggleBorderWidth} rgba(0, 0, 0, 0.15);\n height: ${handleSize};\n left: ${t.toggleBorderWidth};\n position: absolute;\n top: ${t.toggleBorderWidth};\n transition: 0.2s ease-in;\n width: ${handleSize};\n `;\n },\n\n handleDisabled(t: Theme) {\n const handleSize = `calc(${t.toggleHeight} - 2 * ${t.toggleBorderWidth})`;\n return css`\n background: ${t.toggleDisabledHandleBg} !important; // override root hover/active styles\n width: ${handleSize} !important; // override root active styles\n `;\n },\n\n input(t: Theme) {\n const handleWidthWithBorders = t.toggleHeight;\n return css`\n position: absolute;\n opacity: 0;\n\n &:focus {\n outline: none;\n }\n &:checked ~ .${globalClasses.container} {\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBgChecked};\n background: ${t.toggleBgChecked};\n transition: background 0s 0.2s;\n }\n &:checked ~ .${globalClasses.containerDisabled} {\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColor};\n background: ${t.toggleBgDisabled};\n transition: background 0s 0.2s;\n }\n &:checked ~ .${globalClasses.containerLoading} {\n background: ${t.toggleBorderColor};\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColor};\n }\n &:checked ~ .${globalClasses.container} .${globalClasses.background} {\n width: 70%;\n background: ${t.toggleBgChecked};\n }\n &:checked ~ .${globalClasses.containerDisabled} .${globalClasses.background} {\n width: 70%;\n background: ${t.toggleBgDisabled};\n border-radius: calc(${t.toggleHeight} * 0.5) 0 0 calc(${t.toggleHeight} * 0.5);\n box-shadow: inset 0 0 0 1px ${t.toggleBorderColor};\n }\n &:checked ~ .${globalClasses.handle} {\n transform: translateX(${t.toggleWidth}) translateX(-${handleWidthWithBorders});\n }\n `;\n },\n\n container(t: Theme) {\n return css`\n border-radius: ${t.toggleBorderRadius};\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColor};\n height: 100%;\n overflow: hidden;\n position: absolute;\n width: 100%;\n /* fixes overflow issue in Safari: https://bugs.webkit.org/show_bug.cgi?id=98538 */\n z-index: 0;\n `;\n },\n\n containerDisabled(t: Theme) {\n return css`\n background: ${t.toggleBgDisabled};\n `;\n },\n\n focused(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleFocusShadowColor};\n `;\n },\n\n activeBackground() {\n return css`\n background: inherit;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n transition: 0.2s ease-in;\n width: 10px;\n `;\n },\n\n activeBackgroundLoading(t: Theme) {\n return css`\n background: ${t.toggleBgActive};\n `;\n },\n\n isWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleShadowColorWarning};\n `;\n },\n\n isError(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleShadowColorError};\n `;\n },\n\n outline(t: Theme) {\n return css`\n background: ${t.toggleBaseBg};\n border-radius: ${t.toggleBorderRadius};\n `;\n },\n\n wrapper(t: Theme) {\n return css`\n display: inline-block;\n height: ${t.toggleHeight};\n position: relative;\n width: ${t.toggleWidth};\n flex: 1 0 ${t.toggleWidth};\n\n &::after {\n content: '';\n display: inline-block;\n }\n `;\n },\n\n disabled() {\n return css`\n cursor: default;\n `;\n },\n\n rootLeft() {\n return css`\n flex-direction: row-reverse;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.toggleTextColor};\n padding: 0 0 0 ${t.toggleCaptionGap};\n `;\n },\n\n captionLeft(t: Theme) {\n return css`\n color: ${t.toggleTextColor};\n padding: 0 ${t.toggleCaptionGap} 0 0;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Toggle.styles.ts"],"names":["globalClasses","handle","container","disabled","containerDisabled","containerLoading","background","styles","root","t","handleWidthWithBorders","toggleHeight","handleActiveWidth","toggleBorderWidth","toggleHandleActiveWidthIncrement","css","toggleBgHover","toggleWidth","handleSize","toggleBg","toggleHandleBorderRadius","handleDisabled","toggleDisabledHandleBg","input","toggleBgChecked","toggleBorderColorDisabledChecked","toggleBgDisabledChecked","toggleBorderColor","toggleBorderRadius","toggleBgDisabled","toggleBorderColorDisabled","focused","outlineColorFocus","toggleOutlineWidth","toggleFocusShadowColor","activeBackground","disabledBackground","activeBackgroundLoading","toggleBgActive","isWarning","toggleShadowColorWarning","isError","toggleShadowColorError","outline","toggleBaseBg","wrapper","rootLeft","caption","toggleTextColor","toggleCaptionGap","disabledCaption","textColorDisabled","captionLeft"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const globalClasses = prefix('toggle')({\n handle: 'handle',\n container: 'container',\n disabled: 'disabled',\n containerDisabled: 'container-disabled',\n containerLoading: 'container-loading',\n background: 'background',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n const handleWidthWithBorders = t.toggleHeight;\n const handleActiveWidth = `calc(${handleWidthWithBorders} - 2 * ${t.toggleBorderWidth} + ${t.toggleHandleActiveWidthIncrement})`;\n return css`\n display: inline-flex;\n cursor: pointer;\n\n &:hover .${globalClasses.handle} {\n background: ${t.toggleBgHover};\n }\n &:active:not(.${globalClasses.disabled}) .${globalClasses.handle} {\n width: ${handleActiveWidth};\n }\n &:active:not(.${globalClasses.disabled}) input:checked ~ .${globalClasses.handle} {\n transform: translateX(${t.toggleWidth}) translateX(-${handleWidthWithBorders})\n translateX(-${t.toggleHandleActiveWidthIncrement});\n }\n `;\n },\n\n handle(t: Theme) {\n const handleSize = `calc(${t.toggleHeight} - 2 * ${t.toggleBorderWidth})`;\n return css`\n background: ${t.toggleBg};\n border-radius: ${t.toggleHandleBorderRadius};\n bottom: ${t.toggleBorderWidth};\n box-shadow: 0 ${t.toggleBorderWidth} 0 0 rgba(0, 0, 0, 0.15), 0 0 0 ${t.toggleBorderWidth} rgba(0, 0, 0, 0.15);\n height: ${handleSize};\n left: ${t.toggleBorderWidth};\n position: absolute;\n top: ${t.toggleBorderWidth};\n transition: 0.2s ease-in;\n width: ${handleSize};\n `;\n },\n\n handleDisabled(t: Theme) {\n return css`\n background: ${t.toggleDisabledHandleBg} !important; // override root hover/active styles\n `;\n },\n\n input(t: Theme) {\n const handleWidthWithBorders = t.toggleHeight;\n return css`\n position: absolute;\n opacity: 0;\n\n &:focus {\n outline: none;\n }\n &:checked ~ .${globalClasses.container} {\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBgChecked};\n background: ${t.toggleBgChecked};\n transition: background 0s 0.2s;\n }\n &:checked ~ .${globalClasses.containerDisabled} {\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColorDisabledChecked};\n background: ${t.toggleBgDisabledChecked};\n transition: background 0s 0.2s;\n }\n &:checked ~ .${globalClasses.containerLoading} {\n background: ${t.toggleBorderColor};\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColor};\n }\n &:checked ~ .${globalClasses.container} .${globalClasses.background} {\n width: 70%;\n background: ${t.toggleBgChecked};\n }\n &:checked ~ .${globalClasses.containerDisabled} .${globalClasses.background} {\n width: 70%;\n background: ${t.toggleBgDisabledChecked};\n border-radius: calc(${t.toggleHeight} * 0.5) 0 0 calc(${t.toggleHeight} * 0.5);\n box-shadow: inset 0 0 0 1px ${t.toggleBorderColorDisabledChecked};\n }\n &:checked ~ .${globalClasses.handle} {\n transform: translateX(${t.toggleWidth}) translateX(-${handleWidthWithBorders});\n }\n `;\n },\n\n container(t: Theme) {\n return css`\n border-radius: ${t.toggleBorderRadius};\n box-shadow: inset 0 0 0 ${t.toggleBorderWidth} ${t.toggleBorderColor};\n height: 100%;\n overflow: hidden;\n position: absolute;\n width: 100%;\n /* fixes overflow issue in Safari: https://bugs.webkit.org/show_bug.cgi?id=98538 */\n z-index: 0;\n `;\n },\n\n containerDisabled(t: Theme) {\n return css`\n background: ${t.toggleBgDisabled};\n box-shadow: inset 0 0 0 1px ${t.toggleBorderColorDisabled};\n `;\n },\n\n focused(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleFocusShadowColor};\n `;\n },\n\n activeBackground() {\n return css`\n background: inherit;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n transition: 0.2s ease-in;\n width: 10px;\n `;\n },\n\n disabledBackground(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.toggleBorderColorDisabled};\n width: 0;\n `;\n },\n\n activeBackgroundLoading(t: Theme) {\n return css`\n background: ${t.toggleBgActive};\n `;\n },\n\n isWarning(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleShadowColorWarning};\n `;\n },\n\n isError(t: Theme) {\n return css`\n box-shadow: 0 0 0 1px ${t.outlineColorFocus}, 0 0 0 ${t.toggleOutlineWidth} ${t.toggleShadowColorError};\n `;\n },\n\n outline(t: Theme) {\n return css`\n background: ${t.toggleBaseBg};\n border-radius: ${t.toggleBorderRadius};\n `;\n },\n\n wrapper(t: Theme) {\n return css`\n display: inline-block;\n height: ${t.toggleHeight};\n position: relative;\n width: ${t.toggleWidth};\n flex: 1 0 ${t.toggleWidth};\n\n &::after {\n content: '';\n display: inline-block;\n }\n `;\n },\n\n disabled() {\n return css`\n cursor: default;\n `;\n },\n\n rootLeft() {\n return css`\n flex-direction: row-reverse;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.toggleTextColor};\n padding: 0 0 0 ${t.toggleCaptionGap};\n `;\n },\n\n disabledCaption(t: Theme) {\n return css`\n color: ${t.textColorDisabled};\n `;\n },\n\n captionLeft(t: Theme) {\n return css`\n color: ${t.toggleTextColor};\n padding: 0 ${t.toggleCaptionGap} 0 0;\n `;\n },\n});\n"]}
@@ -13,14 +13,29 @@ export interface TooltipMenuProps extends CommonProps {
13
13
  menuWidth?: number | string;
14
14
  /**
15
15
  * Элемент или функция возвращающая элемент,
16
- * если передана, используется вместо ```caption```,
16
+ * если передана, используется вместо `caption`,
17
17
  * в таком случае управлять открытием и закрытием меню
18
18
  * придется в этой функции
19
19
  */
20
20
  caption: PopupMenuProps['caption'];
21
+ /**
22
+ * Произвольный элемент, который будет отрендерен в шапке меню.
23
+ *
24
+ * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.
25
+ */
21
26
  header?: React.ReactNode;
27
+ /**
28
+ * Произвольный элемент, который будет отрендерен в подвале меню.
29
+ *
30
+ * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).
31
+ */
22
32
  footer?: React.ReactNode;
23
- /** Массив разрешенных положений меню относительно caption'а. */
33
+ /** Список позиций доступных для расположения выпадашки относительно `caption`.
34
+ *
35
+ * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.
36
+ *
37
+ * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`
38
+ */
24
39
  positions?: PopupPosition[];
25
40
  /**
26
41
  * Не показывать анимацию
@@ -28,12 +43,15 @@ export interface TooltipMenuProps extends CommonProps {
28
43
  disableAnimations: boolean;
29
44
  }
30
45
  /**
31
- * Меню, раскрывающееся по клику на переданный в ```caption``` элемент.
32
- * Положение зависит от переданного массива ```positions``` и работает так:
33
- * первое значаение в массиве - дефолтная позиция, меню раскрывается так, если ничего не мешает ему раскрыться,
34
- * если раскрыться в данной позиции не получается - берется следующие значение, и так далее.
35
- * Если меню должно раскрываться только в одну сторону - передаем в ```positions``` массив с одним элементом.
36
- * Если ```positions``` передан или передан пустой массив, используются все возможные положения.
46
+ * Меню, раскрывающееся по клику на переданный в `caption` элемент.
47
+ *
48
+ * Положение меню задаётся с помощью массива `positions` и работает так:
49
+ * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,
50
+ * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.
51
+ *
52
+ * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.
53
+ *
54
+ * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.
37
55
  */
38
56
  export declare class TooltipMenu extends React.Component<TooltipMenuProps> {
39
57
  static __KONTUR_REACT_UI__: string;
@@ -28,6 +28,21 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
28
28
 
29
29
 
30
30
 
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
31
46
 
32
47
 
33
48
 
@@ -35,12 +50,15 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
35
50
 
36
51
 
37
52
  /**
38
- * Меню, раскрывающееся по клику на переданный в ```caption``` элемент.
39
- * Положение зависит от переданного массива ```positions``` и работает так:
40
- * первое значаение в массиве - дефолтная позиция, меню раскрывается так, если ничего не мешает ему раскрыться,
41
- * если раскрыться в данной позиции не получается - берется следующие значение, и так далее.
42
- * Если меню должно раскрываться только в одну сторону - передаем в ```positions``` массив с одним элементом.
43
- * Если ```positions``` передан или передан пустой массив, используются все возможные положения.
53
+ * Меню, раскрывающееся по клику на переданный в `caption` элемент.
54
+ *
55
+ * Положение меню задаётся с помощью массива `positions` и работает так:
56
+ * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,
57
+ * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.
58
+ *
59
+ * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.
60
+ *
61
+ * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.
44
62
  */var
45
63
  TooltipMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(TooltipMenu, _React$Component);
46
64