@semcore/button 5.28.1 → 5.29.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [5.29.0] - 2024-05-30
6
+
7
+ ### Added
8
+
9
+ - `Hint` for Button with addon and without text.
10
+
5
11
  ## [5.28.1] - 2024-05-28
6
12
 
7
13
  ### Changed
package/lib/cjs/Button.js CHANGED
@@ -17,6 +17,7 @@ var _index = require("@semcore/utils/lib/core/index");
17
17
  var _core = _interopRequireWildcard(require("@semcore/core"));
18
18
  var _react = _interopRequireDefault(require("react"));
19
19
  var _flexBox = require("@semcore/flex-box");
20
+ var _tooltip = require("@semcore/tooltip");
20
21
  var _neighborLocation = _interopRequireDefault(require("@semcore/neighbor-location"));
21
22
  var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
22
23
  var _addonTextChildren = _interopRequireDefault(require("@semcore/utils/lib/addonTextChildren"));
@@ -24,32 +25,32 @@ var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
24
25
  var _SpinButton = _interopRequireDefault(require("./SpinButton"));
25
26
  var _hasLabels = _interopRequireDefault(require("@semcore/utils/lib/hasLabels"));
26
27
  /*__reshadow-styles__:"./style/button.shadow.css"*/
27
- var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SButton_bnhfy_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_bnhfy_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_bnhfy_gg_:active,.___SButton_bnhfy_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_bnhfy_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___SButton_bnhfy_gg_.__keyboardFocused_bnhfy_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SButton_bnhfy_gg_.__disabled_bnhfy_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_bnhfy_gg_._size_m_bnhfy_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_bnhfy_gg_._size_l_bnhfy_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-icon-primary-warning, #ff642d)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_:hover{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}}.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_:active{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_bnhfy_gg_._neighborLocation_right_bnhfy_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_{border-radius:0;margin-left:-1px}.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_{position:relative}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_:after,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_:after{background-color:var(--intergalactic-text-primary-invert, #ffffff)}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:after,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_bnhfy_gg_+.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_:after,.___SButton_bnhfy_gg_+.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_bnhfy_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_bnhfy_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_bnhfy_gg_.__loading_bnhfy_gg_{visibility:hidden}.___SText_bnhfy_gg_{display:inline-flex}.___SText_bnhfy_gg_._size_l_bnhfy_gg_,.___SText_bnhfy_gg_._size_m_bnhfy_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_bnhfy_gg_._size_m_bnhfy_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_bnhfy_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}" /*__inner_css_end__*/, "bnhfy_gg_") /*__reshadow_css_end__*/, {
28
- "__SButton": "___SButton_bnhfy_gg_",
29
- "_keyboardFocused": "__keyboardFocused_bnhfy_gg_",
30
- "_disabled": "__disabled_bnhfy_gg_",
31
- "_size_m": "_size_m_bnhfy_gg_",
32
- "_size_l": "_size_l_bnhfy_gg_",
33
- "_neighborLocation_right": "_neighborLocation_right_bnhfy_gg_",
34
- "_neighborLocation_both": "_neighborLocation_both_bnhfy_gg_",
35
- "_neighborLocation_left": "_neighborLocation_left_bnhfy_gg_",
36
- "__SSpin": "___SSpin_bnhfy_gg_",
37
- "__SInner": "___SInner_bnhfy_gg_",
38
- "_loading": "__loading_bnhfy_gg_",
39
- "__SText": "___SText_bnhfy_gg_",
40
- "__SAddon": "___SAddon_bnhfy_gg_",
41
- "_theme_primary-info": "_theme_primary-info_bnhfy_gg_",
42
- "_active": "__active_bnhfy_gg_",
43
- "_theme_primary-success": "_theme_primary-success_bnhfy_gg_",
44
- "_theme_primary-warning": "_theme_primary-warning_bnhfy_gg_",
45
- "_theme_primary-danger": "_theme_primary-danger_bnhfy_gg_",
46
- "_theme_primary-invert": "_theme_primary-invert_bnhfy_gg_",
47
- "_theme_secondary-muted": "_theme_secondary-muted_bnhfy_gg_",
48
- "_theme_secondary-info": "_theme_secondary-info_bnhfy_gg_",
49
- "_theme_secondary-invert": "_theme_secondary-invert_bnhfy_gg_",
50
- "_theme_tertiary-info": "_theme_tertiary-info_bnhfy_gg_",
51
- "_theme_tertiary-muted": "_theme_tertiary-muted_bnhfy_gg_",
52
- "_theme_tertiary-invert": "_theme_tertiary-invert_bnhfy_gg_"
28
+ var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SButton_6i0cn_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_6i0cn_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_6i0cn_gg_:active,.___SButton_6i0cn_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_6i0cn_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___SButton_6i0cn_gg_.__keyboardFocused_6i0cn_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SButton_6i0cn_gg_.__disabled_6i0cn_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_6i0cn_gg_._size_m_6i0cn_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_6i0cn_gg_._size_l_6i0cn_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-icon-primary-warning, #ff642d)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_:hover{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}}.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_:active{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_6i0cn_gg_._neighborLocation_right_6i0cn_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_{border-radius:0;margin-left:-1px}.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_{position:relative}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_:after,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_:after{background-color:var(--intergalactic-text-primary-invert, #ffffff)}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:after,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_6i0cn_gg_+.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_:after,.___SButton_6i0cn_gg_+.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_6i0cn_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_6i0cn_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_6i0cn_gg_.__loading_6i0cn_gg_{visibility:hidden}.___SText_6i0cn_gg_{display:inline-flex}.___SText_6i0cn_gg_._size_l_6i0cn_gg_,.___SText_6i0cn_gg_._size_m_6i0cn_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_6i0cn_gg_._size_m_6i0cn_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_6i0cn_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}" /*__inner_css_end__*/, "6i0cn_gg_") /*__reshadow_css_end__*/, {
29
+ "__SButton": "___SButton_6i0cn_gg_",
30
+ "_keyboardFocused": "__keyboardFocused_6i0cn_gg_",
31
+ "_disabled": "__disabled_6i0cn_gg_",
32
+ "_size_m": "_size_m_6i0cn_gg_",
33
+ "_size_l": "_size_l_6i0cn_gg_",
34
+ "_neighborLocation_right": "_neighborLocation_right_6i0cn_gg_",
35
+ "_neighborLocation_both": "_neighborLocation_both_6i0cn_gg_",
36
+ "_neighborLocation_left": "_neighborLocation_left_6i0cn_gg_",
37
+ "__SSpin": "___SSpin_6i0cn_gg_",
38
+ "__SInner": "___SInner_6i0cn_gg_",
39
+ "_loading": "__loading_6i0cn_gg_",
40
+ "__SText": "___SText_6i0cn_gg_",
41
+ "__SAddon": "___SAddon_6i0cn_gg_",
42
+ "_theme_primary-info": "_theme_primary-info_6i0cn_gg_",
43
+ "_active": "__active_6i0cn_gg_",
44
+ "_theme_primary-success": "_theme_primary-success_6i0cn_gg_",
45
+ "_theme_primary-warning": "_theme_primary-warning_6i0cn_gg_",
46
+ "_theme_primary-danger": "_theme_primary-danger_6i0cn_gg_",
47
+ "_theme_primary-invert": "_theme_primary-invert_6i0cn_gg_",
48
+ "_theme_secondary-muted": "_theme_secondary-muted_6i0cn_gg_",
49
+ "_theme_secondary-info": "_theme_secondary-info_6i0cn_gg_",
50
+ "_theme_secondary-invert": "_theme_secondary-invert_6i0cn_gg_",
51
+ "_theme_tertiary-info": "_theme_tertiary-info_6i0cn_gg_",
52
+ "_theme_tertiary-muted": "_theme_tertiary-muted_6i0cn_gg_",
53
+ "_theme_tertiary-invert": "_theme_tertiary-invert_6i0cn_gg_"
53
54
  });
54
55
  var MAP_USE_DEFAULT_THEME = {
55
56
  primary: 'info',
@@ -68,6 +69,9 @@ var RootButton = /*#__PURE__*/function (_Component) {
68
69
  }
69
70
  _this = _super.call.apply(_super, [this].concat(args));
70
71
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "containerRef", /*#__PURE__*/_react["default"].createRef());
72
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
73
+ ariaLabelledByContent: ''
74
+ });
71
75
  return _this;
72
76
  }
73
77
  (0, _createClass2["default"])(RootButton, [{
@@ -89,55 +93,91 @@ var RootButton = /*#__PURE__*/function (_Component) {
89
93
  }, {
90
94
  key: "componentDidMount",
91
95
  value: function componentDidMount() {
96
+ var _this2 = this;
92
97
  if (process.env.NODE_ENV !== 'production') {
93
- _logger["default"].warn(this.containerRef.current && !(0, _hasLabels["default"])(this.containerRef.current), "'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || Button.displayName);
98
+ _logger["default"].warn(this.containerRef.current && !(0, _hasLabels["default"])(this.containerRef.current), "'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || RootButton.displayName);
94
99
  }
100
+ if (this.asProps['aria-labelledby']) {
101
+ setTimeout(function () {
102
+ var _document$getElementB, _document$getElementB2;
103
+ _this2.setState({
104
+ ariaLabelledByContent: (_document$getElementB = (_document$getElementB2 = document.getElementById(_this2.asProps['aria-labelledby'])) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.textContent) !== null && _document$getElementB !== void 0 ? _document$getElementB : ''
105
+ });
106
+ }, 0);
107
+ }
108
+ }
109
+ }, {
110
+ key: "renderChildren",
111
+ value: function renderChildren() {
112
+ var _ref4;
113
+ var _this$asProps = this.asProps,
114
+ Children = _this$asProps.Children,
115
+ styles = _this$asProps.styles,
116
+ AddonLeft = _this$asProps.addonLeft,
117
+ AddonRight = _this$asProps.addonRight;
118
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, AddonLeft ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
119
+ tag: AddonLeft
120
+ }) : null, (0, _addonTextChildren["default"])(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
121
+ tag: AddonRight
122
+ }) : null);
123
+ }
124
+ }, {
125
+ key: "renderOnlyAddons",
126
+ value: function renderOnlyAddons() {
127
+ var _ref5, _ref9, _ref10;
128
+ var _this$asProps2 = this.asProps,
129
+ styles = _this$asProps2.styles,
130
+ AddonLeft = _this$asProps2.addonLeft,
131
+ AddonRight = _this$asProps2.addonRight,
132
+ title = _this$asProps2.title,
133
+ ariaLabel = _this$asProps2['aria-label'];
134
+ var hintContent = (_ref9 = (_ref10 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref10 !== void 0 ? _ref10 : this.state.ariaLabelledByContent) !== null && _ref9 !== void 0 ? _ref9 : '';
135
+ return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_tooltip.Hint, _ref5.cn("Hint", {
136
+ "tag": Button.Addon,
137
+ "title": hintContent,
138
+ "timeout": [250, 50],
139
+ "__excludeProps": ['aria-label']
140
+ }), AddonLeft && /*#__PURE__*/_react["default"].createElement(AddonLeft, _ref5.cn("AddonLeft", {})), AddonRight && /*#__PURE__*/_react["default"].createElement(AddonRight, _ref5.cn("AddonRight", {})));
95
141
  }
96
142
  }, {
97
143
  key: "render",
98
144
  value: function render() {
99
145
  var _ref = this.asProps,
100
- _this2 = this;
146
+ _this3 = this;
101
147
  var SButton = _flexBox.Box;
102
148
  var SInner = _flexBox.Box;
103
149
  var SSpin = _flexBox.Box;
104
- var _this$asProps = this.asProps,
105
- Children = _this$asProps.Children,
106
- styles = _this$asProps.styles,
107
- use = _this$asProps.use,
108
- _this$asProps$theme = _this$asProps.theme,
109
- theme = _this$asProps$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps$theme,
110
- loading = _this$asProps.loading,
111
- _this$asProps$disable = _this$asProps.disabled,
112
- disabled = _this$asProps$disable === void 0 ? loading : _this$asProps$disable,
113
- size = _this$asProps.size,
114
- neighborLocation = _this$asProps.neighborLocation,
115
- addonLeft = _this$asProps.addonLeft,
116
- addonRight = _this$asProps.addonRight;
150
+ var _this$asProps3 = this.asProps,
151
+ styles = _this$asProps3.styles,
152
+ use = _this$asProps3.use,
153
+ _this$asProps3$theme = _this$asProps3.theme,
154
+ theme = _this$asProps3$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps3$theme,
155
+ loading = _this$asProps3.loading,
156
+ _this$asProps3$disabl = _this$asProps3.disabled,
157
+ disabled = _this$asProps3$disabl === void 0 ? loading : _this$asProps3$disabl,
158
+ size = _this$asProps3.size,
159
+ neighborLocation = _this$asProps3.neighborLocation,
160
+ hasChildren = _this$asProps3.children;
117
161
  var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
118
162
  return /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"].Detect, {
119
163
  neighborLocation: neighborLocation
120
164
  }, function (neighborLocation) {
121
- var _ref4;
122
- return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref4.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
165
+ var _ref6;
166
+ return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref6.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
123
167
  "type": 'button',
124
168
  "tag": 'button',
125
169
  "disabled": disabled,
126
170
  "neighborLocation": neighborLocation,
127
171
  "use:theme": useTheme,
128
- "ref": _this2.containerRef,
172
+ "ref": _this3.containerRef,
129
173
  "aria-busy": loading,
130
174
  "aria-disabled": disabled
131
- }, _ref))), /*#__PURE__*/_react["default"].createElement(SInner, _ref4.cn("SInner", {
175
+ }, _ref))), /*#__PURE__*/_react["default"].createElement(SInner, _ref6.cn("SInner", {
132
176
  "tag": 'span',
133
177
  "loading": loading
134
- }), addonLeft ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
135
- tag: addonLeft
136
- }) : null, (0, _addonTextChildren["default"])(Children, Button.Text, Button.Addon), addonRight ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
137
- tag: addonRight
138
- }) : null), loading && /*#__PURE__*/_react["default"].createElement(SSpin, _ref4.cn("SSpin", {
178
+ }), hasChildren ? _this3.renderChildren() : _this3.renderOnlyAddons()), loading && /*#__PURE__*/_react["default"].createElement(SSpin, _ref6.cn("SSpin", {
139
179
  "tag": 'span'
140
- }), /*#__PURE__*/_react["default"].createElement(_SpinButton["default"], _ref4.cn("SpinButton", {
180
+ }), /*#__PURE__*/_react["default"].createElement(_SpinButton["default"], _ref6.cn("SpinButton", {
141
181
  "centered": true,
142
182
  "size": size,
143
183
  "theme": useTheme
@@ -156,17 +196,17 @@ var RootButton = /*#__PURE__*/function (_Component) {
156
196
  });
157
197
  function Text(props) {
158
198
  var _ref2 = arguments[0],
159
- _ref5;
199
+ _ref7;
160
200
  var SText = _flexBox.Box;
161
- return _ref5 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SText, _ref5.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
201
+ return _ref7 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SText, _ref7.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
162
202
  "tag": 'span'
163
203
  }, _ref2))));
164
204
  }
165
205
  function Addon(props) {
166
206
  var _ref3 = arguments[0],
167
- _ref6;
207
+ _ref8;
168
208
  var SAddon = _flexBox.Box;
169
- return _ref6 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref6.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
209
+ return _ref8 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref8.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
170
210
  "tag": 'span'
171
211
  }, _ref3))));
172
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_logger","_SpinButton","_hasLabels","style","_index","sstyled","insert","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","exports","RootButton","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","_createClass2","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","Button","displayName","render","_ref","_this2","SButton","Box","SInner","SSpin","_this$asProps","Children","styles","use","_this$asProps$theme","theme","loading","_this$asProps$disable","disabled","neighborLocation","addonLeft","addonRight","useTheme","createElement","Detect","_ref4","cn","_objectSpread2","assignProps","Addon","tag","addonTextChildren","Text","Component","keyboardFocusEnhance","props","_ref2","arguments[0]","_ref5","SText","_ref3","_ref6","SAddon","createComponent","_default"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n getTextProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || Button.displayName,\n );\n }\n }\n\n render() {\n const SButton = Root;\n const SInner = Box;\n const SSpin = Box;\n const {\n Children,\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n addonLeft,\n addonRight,\n } = this.asProps;\n const useTheme = use && theme ? `${use}-${theme}` : false;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SButton\n render={Box}\n type='button'\n tag='button'\n disabled={disabled}\n neighborLocation={neighborLocation}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n aria-disabled={disabled}\n >\n <SInner tag='span' loading={loading}>\n {addonLeft ? <Button.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {addonRight ? <Button.Addon tag={addonRight} /> : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n});\n\nexport default Button;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_tooltip","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_logger","_SpinButton","_hasLabels","style","_index","sstyled","insert","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","exports","RootButton","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","ariaLabelledByContent","_createClass2","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderChildren","_ref4","_this$asProps","Children","styles","AddonLeft","addonLeft","AddonRight","addonRight","createElement","Fragment","Button","Addon","tag","addonTextChildren","Text","renderOnlyAddons","_ref5","_ref9","_ref10","_this$asProps2","title","ariaLabel","hintContent","state","Hint","cn","render","_ref","_this3","SButton","Box","SInner","SSpin","_this$asProps3","use","_this$asProps3$theme","theme","loading","_this$asProps3$disabl","disabled","neighborLocation","hasChildren","children","useTheme","Detect","_ref6","_objectSpread2","assignProps","Component","keyboardFocusEnhance","props","_ref2","arguments[0]","_ref7","SText","_ref3","_ref8","SAddon","createComponent","_default"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Hint } from '@semcore/tooltip';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n state = {\n ariaLabelledByContent: '',\n };\n\n getTextProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || RootButton.displayName,\n );\n }\n\n if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n renderChildren() {\n const { Children, styles, addonLeft: AddonLeft, addonRight: AddonRight } = this.asProps;\n\n return sstyled(styles)(\n <>\n {AddonLeft ? <Button.Addon tag={AddonLeft} /> : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight ? <Button.Addon tag={AddonRight} /> : null}\n </>,\n );\n }\n\n renderOnlyAddons() {\n const {\n styles,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n title,\n ['aria-label']: ariaLabel,\n } = this.asProps;\n\n const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n return sstyled(styles)(\n <Hint\n tag={Button.Addon}\n title={hintContent}\n timeout={[250, 50]}\n __excludeProps={['aria-label']}\n >\n {AddonLeft && <AddonLeft />}\n {AddonRight && <AddonRight />}\n </Hint>,\n );\n }\n\n render() {\n const SButton = Root;\n const SInner = Box;\n const SSpin = Box;\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children: hasChildren,\n } = this.asProps;\n const useTheme = use && theme ? `${use}-${theme}` : false;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SButton\n render={Box}\n type='button'\n tag='button'\n disabled={disabled}\n neighborLocation={neighborLocation}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n aria-disabled={disabled}\n >\n <SInner tag='span' loading={loading}>\n {hasChildren ? this.renderChildren() : this.renderOnlyAddons()}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n});\n\nexport default Button;\n"],"mappings":"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"}
package/lib/es6/Button.js CHANGED
@@ -12,38 +12,39 @@ import { assignProps as _assignProps } from "@semcore/core";
12
12
  import React from 'react';
13
13
  import createComponent, { Component, sstyled, Root } from '@semcore/core';
14
14
  import { Box } from '@semcore/flex-box';
15
+ import { Hint } from '@semcore/tooltip';
15
16
  import NeighborLocation from '@semcore/neighbor-location';
16
17
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
17
18
  import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
18
19
  import logger from '@semcore/utils/lib/logger';
19
20
  import SpinButton from './SpinButton';
20
21
  /*__reshadow-styles__:"./style/button.shadow.css"*/
21
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SButton_bnhfy_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_bnhfy_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_bnhfy_gg_:active,.___SButton_bnhfy_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_bnhfy_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___SButton_bnhfy_gg_.__keyboardFocused_bnhfy_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SButton_bnhfy_gg_.__disabled_bnhfy_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_bnhfy_gg_._size_m_bnhfy_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_bnhfy_gg_._size_l_bnhfy_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-success_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-icon-primary-warning, #ff642d)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_:hover{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}}.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-warning_bnhfy_gg_:active{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-danger_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_primary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_secondary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-info_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-muted_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_.__active_bnhfy_gg_,.___SButton_bnhfy_gg_._theme_tertiary-invert_bnhfy_gg_:active{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_bnhfy_gg_._neighborLocation_right_bnhfy_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_{border-radius:0;margin-left:-1px}.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_{position:relative}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_:after,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_:after{background-color:var(--intergalactic-text-primary-invert, #ffffff)}.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:after,.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_._theme_secondary-muted_bnhfy_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_bnhfy_gg_+.___SButton_bnhfy_gg_._neighborLocation_both_bnhfy_gg_:after,.___SButton_bnhfy_gg_+.___SButton_bnhfy_gg_._neighborLocation_left_bnhfy_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_bnhfy_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_bnhfy_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_bnhfy_gg_.__loading_bnhfy_gg_{visibility:hidden}.___SText_bnhfy_gg_{display:inline-flex}.___SText_bnhfy_gg_._size_l_bnhfy_gg_,.___SText_bnhfy_gg_._size_m_bnhfy_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_bnhfy_gg_._size_m_bnhfy_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_bnhfy_gg_._size_l_bnhfy_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_bnhfy_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_bnhfy_gg_._size_m_bnhfy_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_bnhfy_gg_._size_l_bnhfy_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}" /*__inner_css_end__*/, "bnhfy_gg_") /*__reshadow_css_end__*/, {
22
- "__SButton": "___SButton_bnhfy_gg_",
23
- "_keyboardFocused": "__keyboardFocused_bnhfy_gg_",
24
- "_disabled": "__disabled_bnhfy_gg_",
25
- "_size_m": "_size_m_bnhfy_gg_",
26
- "_size_l": "_size_l_bnhfy_gg_",
27
- "_neighborLocation_right": "_neighborLocation_right_bnhfy_gg_",
28
- "_neighborLocation_both": "_neighborLocation_both_bnhfy_gg_",
29
- "_neighborLocation_left": "_neighborLocation_left_bnhfy_gg_",
30
- "__SSpin": "___SSpin_bnhfy_gg_",
31
- "__SInner": "___SInner_bnhfy_gg_",
32
- "_loading": "__loading_bnhfy_gg_",
33
- "__SText": "___SText_bnhfy_gg_",
34
- "__SAddon": "___SAddon_bnhfy_gg_",
35
- "_theme_primary-info": "_theme_primary-info_bnhfy_gg_",
36
- "_active": "__active_bnhfy_gg_",
37
- "_theme_primary-success": "_theme_primary-success_bnhfy_gg_",
38
- "_theme_primary-warning": "_theme_primary-warning_bnhfy_gg_",
39
- "_theme_primary-danger": "_theme_primary-danger_bnhfy_gg_",
40
- "_theme_primary-invert": "_theme_primary-invert_bnhfy_gg_",
41
- "_theme_secondary-muted": "_theme_secondary-muted_bnhfy_gg_",
42
- "_theme_secondary-info": "_theme_secondary-info_bnhfy_gg_",
43
- "_theme_secondary-invert": "_theme_secondary-invert_bnhfy_gg_",
44
- "_theme_tertiary-info": "_theme_tertiary-info_bnhfy_gg_",
45
- "_theme_tertiary-muted": "_theme_tertiary-muted_bnhfy_gg_",
46
- "_theme_tertiary-invert": "_theme_tertiary-invert_bnhfy_gg_"
22
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SButton_6i0cn_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_6i0cn_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_6i0cn_gg_:active,.___SButton_6i0cn_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_6i0cn_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___SButton_6i0cn_gg_.__keyboardFocused_6i0cn_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SButton_6i0cn_gg_.__disabled_6i0cn_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_6i0cn_gg_._size_m_6i0cn_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_6i0cn_gg_._size_l_6i0cn_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-success_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-icon-primary-warning, #ff642d)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_:hover{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}}.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-warning_6i0cn_gg_:active{background-color:var(--intergalactic-icon-primary-warning-hover-active, #CC5024)}.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-danger_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_primary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_secondary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-info_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-muted_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_.__active_6i0cn_gg_,.___SButton_6i0cn_gg_._theme_tertiary-invert_6i0cn_gg_:active{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_6i0cn_gg_._neighborLocation_right_6i0cn_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_{border-radius:0;margin-left:-1px}.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_{position:relative}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_:after,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_:after{background-color:var(--intergalactic-text-primary-invert, #ffffff)}.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:after,.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_._theme_secondary-muted_6i0cn_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_6i0cn_gg_+.___SButton_6i0cn_gg_._neighborLocation_both_6i0cn_gg_:after,.___SButton_6i0cn_gg_+.___SButton_6i0cn_gg_._neighborLocation_left_6i0cn_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_6i0cn_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_6i0cn_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_6i0cn_gg_.__loading_6i0cn_gg_{visibility:hidden}.___SText_6i0cn_gg_{display:inline-flex}.___SText_6i0cn_gg_._size_l_6i0cn_gg_,.___SText_6i0cn_gg_._size_m_6i0cn_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_6i0cn_gg_._size_m_6i0cn_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_6i0cn_gg_._size_l_6i0cn_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_6i0cn_gg_{display:inline-flex;align-items:center;justify-content:center}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_6i0cn_gg_._size_m_6i0cn_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_6i0cn_gg_._size_l_6i0cn_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}" /*__inner_css_end__*/, "6i0cn_gg_") /*__reshadow_css_end__*/, {
23
+ "__SButton": "___SButton_6i0cn_gg_",
24
+ "_keyboardFocused": "__keyboardFocused_6i0cn_gg_",
25
+ "_disabled": "__disabled_6i0cn_gg_",
26
+ "_size_m": "_size_m_6i0cn_gg_",
27
+ "_size_l": "_size_l_6i0cn_gg_",
28
+ "_neighborLocation_right": "_neighborLocation_right_6i0cn_gg_",
29
+ "_neighborLocation_both": "_neighborLocation_both_6i0cn_gg_",
30
+ "_neighborLocation_left": "_neighborLocation_left_6i0cn_gg_",
31
+ "__SSpin": "___SSpin_6i0cn_gg_",
32
+ "__SInner": "___SInner_6i0cn_gg_",
33
+ "_loading": "__loading_6i0cn_gg_",
34
+ "__SText": "___SText_6i0cn_gg_",
35
+ "__SAddon": "___SAddon_6i0cn_gg_",
36
+ "_theme_primary-info": "_theme_primary-info_6i0cn_gg_",
37
+ "_active": "__active_6i0cn_gg_",
38
+ "_theme_primary-success": "_theme_primary-success_6i0cn_gg_",
39
+ "_theme_primary-warning": "_theme_primary-warning_6i0cn_gg_",
40
+ "_theme_primary-danger": "_theme_primary-danger_6i0cn_gg_",
41
+ "_theme_primary-invert": "_theme_primary-invert_6i0cn_gg_",
42
+ "_theme_secondary-muted": "_theme_secondary-muted_6i0cn_gg_",
43
+ "_theme_secondary-info": "_theme_secondary-info_6i0cn_gg_",
44
+ "_theme_secondary-invert": "_theme_secondary-invert_6i0cn_gg_",
45
+ "_theme_tertiary-info": "_theme_tertiary-info_6i0cn_gg_",
46
+ "_theme_tertiary-muted": "_theme_tertiary-muted_6i0cn_gg_",
47
+ "_theme_tertiary-invert": "_theme_tertiary-invert_6i0cn_gg_"
47
48
  });
48
49
  import hasLabels from '@semcore/utils/lib/hasLabels';
49
50
  export var MAP_USE_DEFAULT_THEME = {
@@ -62,6 +63,9 @@ var RootButton = /*#__PURE__*/function (_Component) {
62
63
  }
63
64
  _this = _super.call.apply(_super, [this].concat(args));
64
65
  _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/React.createRef());
66
+ _defineProperty(_assertThisInitialized(_this), "state", {
67
+ ariaLabelledByContent: ''
68
+ });
65
69
  return _this;
66
70
  }
67
71
  _createClass(RootButton, [{
@@ -83,55 +87,91 @@ var RootButton = /*#__PURE__*/function (_Component) {
83
87
  }, {
84
88
  key: "componentDidMount",
85
89
  value: function componentDidMount() {
90
+ var _this2 = this;
86
91
  if (process.env.NODE_ENV !== 'production') {
87
- logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current), "'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || Button.displayName);
92
+ logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current), "'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || RootButton.displayName);
88
93
  }
94
+ if (this.asProps['aria-labelledby']) {
95
+ setTimeout(function () {
96
+ var _document$getElementB, _document$getElementB2;
97
+ _this2.setState({
98
+ ariaLabelledByContent: (_document$getElementB = (_document$getElementB2 = document.getElementById(_this2.asProps['aria-labelledby'])) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.textContent) !== null && _document$getElementB !== void 0 ? _document$getElementB : ''
99
+ });
100
+ }, 0);
101
+ }
102
+ }
103
+ }, {
104
+ key: "renderChildren",
105
+ value: function renderChildren() {
106
+ var _ref4;
107
+ var _this$asProps = this.asProps,
108
+ Children = _this$asProps.Children,
109
+ styles = _this$asProps.styles,
110
+ AddonLeft = _this$asProps.addonLeft,
111
+ AddonRight = _this$asProps.addonRight;
112
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, AddonLeft ? /*#__PURE__*/React.createElement(Button.Addon, {
113
+ tag: AddonLeft
114
+ }) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/React.createElement(Button.Addon, {
115
+ tag: AddonRight
116
+ }) : null);
117
+ }
118
+ }, {
119
+ key: "renderOnlyAddons",
120
+ value: function renderOnlyAddons() {
121
+ var _ref5, _ref9, _ref10;
122
+ var _this$asProps2 = this.asProps,
123
+ styles = _this$asProps2.styles,
124
+ AddonLeft = _this$asProps2.addonLeft,
125
+ AddonRight = _this$asProps2.addonRight,
126
+ title = _this$asProps2.title,
127
+ ariaLabel = _this$asProps2['aria-label'];
128
+ var hintContent = (_ref9 = (_ref10 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref10 !== void 0 ? _ref10 : this.state.ariaLabelledByContent) !== null && _ref9 !== void 0 ? _ref9 : '';
129
+ return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(Hint, _ref5.cn("Hint", {
130
+ "tag": Button.Addon,
131
+ "title": hintContent,
132
+ "timeout": [250, 50],
133
+ "__excludeProps": ['aria-label']
134
+ }), AddonLeft && /*#__PURE__*/React.createElement(AddonLeft, _ref5.cn("AddonLeft", {})), AddonRight && /*#__PURE__*/React.createElement(AddonRight, _ref5.cn("AddonRight", {})));
89
135
  }
90
136
  }, {
91
137
  key: "render",
92
138
  value: function render() {
93
139
  var _ref = this.asProps,
94
- _this2 = this;
140
+ _this3 = this;
95
141
  var SButton = Box;
96
142
  var SInner = Box;
97
143
  var SSpin = Box;
98
- var _this$asProps = this.asProps,
99
- Children = _this$asProps.Children,
100
- styles = _this$asProps.styles,
101
- use = _this$asProps.use,
102
- _this$asProps$theme = _this$asProps.theme,
103
- theme = _this$asProps$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps$theme,
104
- loading = _this$asProps.loading,
105
- _this$asProps$disable = _this$asProps.disabled,
106
- disabled = _this$asProps$disable === void 0 ? loading : _this$asProps$disable,
107
- size = _this$asProps.size,
108
- neighborLocation = _this$asProps.neighborLocation,
109
- addonLeft = _this$asProps.addonLeft,
110
- addonRight = _this$asProps.addonRight;
144
+ var _this$asProps3 = this.asProps,
145
+ styles = _this$asProps3.styles,
146
+ use = _this$asProps3.use,
147
+ _this$asProps3$theme = _this$asProps3.theme,
148
+ theme = _this$asProps3$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps3$theme,
149
+ loading = _this$asProps3.loading,
150
+ _this$asProps3$disabl = _this$asProps3.disabled,
151
+ disabled = _this$asProps3$disabl === void 0 ? loading : _this$asProps3$disabl,
152
+ size = _this$asProps3.size,
153
+ neighborLocation = _this$asProps3.neighborLocation,
154
+ hasChildren = _this$asProps3.children;
111
155
  var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
112
156
  return /*#__PURE__*/React.createElement(NeighborLocation.Detect, {
113
157
  neighborLocation: neighborLocation
114
158
  }, function (neighborLocation) {
115
- var _ref4;
116
- return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SButton, _ref4.cn("SButton", _objectSpread({}, _assignProps({
159
+ var _ref6;
160
+ return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SButton, _ref6.cn("SButton", _objectSpread({}, _assignProps({
117
161
  "type": 'button',
118
162
  "tag": 'button',
119
163
  "disabled": disabled,
120
164
  "neighborLocation": neighborLocation,
121
165
  "use:theme": useTheme,
122
- "ref": _this2.containerRef,
166
+ "ref": _this3.containerRef,
123
167
  "aria-busy": loading,
124
168
  "aria-disabled": disabled
125
- }, _ref))), /*#__PURE__*/React.createElement(SInner, _ref4.cn("SInner", {
169
+ }, _ref))), /*#__PURE__*/React.createElement(SInner, _ref6.cn("SInner", {
126
170
  "tag": 'span',
127
171
  "loading": loading
128
- }), addonLeft ? /*#__PURE__*/React.createElement(Button.Addon, {
129
- tag: addonLeft
130
- }) : null, addonTextChildren(Children, Button.Text, Button.Addon), addonRight ? /*#__PURE__*/React.createElement(Button.Addon, {
131
- tag: addonRight
132
- }) : null), loading && /*#__PURE__*/React.createElement(SSpin, _ref4.cn("SSpin", {
172
+ }), hasChildren ? _this3.renderChildren() : _this3.renderOnlyAddons()), loading && /*#__PURE__*/React.createElement(SSpin, _ref6.cn("SSpin", {
133
173
  "tag": 'span'
134
- }), /*#__PURE__*/React.createElement(SpinButton, _ref4.cn("SpinButton", {
174
+ }), /*#__PURE__*/React.createElement(SpinButton, _ref6.cn("SpinButton", {
135
175
  "centered": true,
136
176
  "size": size,
137
177
  "theme": useTheme
@@ -150,17 +190,17 @@ _defineProperty(RootButton, "defaultProps", {
150
190
  });
151
191
  function Text(props) {
152
192
  var _ref2 = arguments[0],
153
- _ref5;
193
+ _ref7;
154
194
  var SText = Box;
155
- return _ref5 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref5.cn("SText", _objectSpread({}, _assignProps2({
195
+ return _ref7 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref7.cn("SText", _objectSpread({}, _assignProps2({
156
196
  "tag": 'span'
157
197
  }, _ref2))));
158
198
  }
159
199
  function Addon(props) {
160
200
  var _ref3 = arguments[0],
161
- _ref6;
201
+ _ref8;
162
202
  var SAddon = Box;
163
- return _ref6 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref6.cn("SAddon", _objectSpread({}, _assignProps3({
203
+ return _ref8 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, _assignProps3({
164
204
  "tag": 'span'
165
205
  }, _ref3))));
166
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","keyboardFocusEnhance","addonTextChildren","logger","SpinButton","style","_sstyled","insert","hasLabels","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","_createClass","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","process","env","NODE_ENV","warn","containerRef","current","Button","displayName","render","_ref","_this2","SButton","SInner","SSpin","_this$asProps","Children","styles","use","_this$asProps$theme","theme","loading","_this$asProps$disable","disabled","neighborLocation","addonLeft","addonRight","useTheme","createElement","Detect","_ref4","cn","_objectSpread","_assignProps","Addon","tag","Text","props","_ref2","arguments[0]","_ref5","SText","_assignProps2","_ref3","_ref6","SAddon","_assignProps3"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n getTextProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || Button.displayName,\n );\n }\n }\n\n render() {\n const SButton = Root;\n const SInner = Box;\n const SSpin = Box;\n const {\n Children,\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n addonLeft,\n addonRight,\n } = this.asProps;\n const useTheme = use && theme ? `${use}-${theme}` : false;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SButton\n render={Box}\n type='button'\n tag='button'\n disabled={disabled}\n neighborLocation={neighborLocation}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n aria-disabled={disabled}\n >\n <SInner tag='span' loading={loading}>\n {addonLeft ? <Button.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {addonRight ? <Button.Addon tag={addonRight} /> : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n});\n\nexport default Button;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["React","createComponent","Component","sstyled","Root","Box","Hint","NeighborLocation","keyboardFocusEnhance","addonTextChildren","logger","SpinButton","style","_sstyled","insert","hasLabels","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","ariaLabelledByContent","_createClass","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","warn","containerRef","current","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderChildren","_ref4","_this$asProps","Children","styles","AddonLeft","addonLeft","AddonRight","addonRight","createElement","Fragment","Button","Addon","tag","Text","renderOnlyAddons","_ref5","_ref9","_ref10","_this$asProps2","title","ariaLabel","hintContent","state","cn","render","_ref","_this3","SButton","SInner","SSpin","_this$asProps3","use","_this$asProps3$theme","theme","loading","_this$asProps3$disabl","disabled","neighborLocation","hasChildren","children","useTheme","Detect","_ref6","_objectSpread","_assignProps","props","_ref2","arguments[0]","_ref7","SText","_assignProps2","_ref3","_ref8","SAddon","_assignProps3"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Hint } from '@semcore/tooltip';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n state = {\n ariaLabelledByContent: '',\n };\n\n getTextProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || RootButton.displayName,\n );\n }\n\n if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n renderChildren() {\n const { Children, styles, addonLeft: AddonLeft, addonRight: AddonRight } = this.asProps;\n\n return sstyled(styles)(\n <>\n {AddonLeft ? <Button.Addon tag={AddonLeft} /> : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight ? <Button.Addon tag={AddonRight} /> : null}\n </>,\n );\n }\n\n renderOnlyAddons() {\n const {\n styles,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n title,\n ['aria-label']: ariaLabel,\n } = this.asProps;\n\n const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n return sstyled(styles)(\n <Hint\n tag={Button.Addon}\n title={hintContent}\n timeout={[250, 50]}\n __excludeProps={['aria-label']}\n >\n {AddonLeft && <AddonLeft />}\n {AddonRight && <AddonRight />}\n </Hint>,\n );\n }\n\n render() {\n const SButton = Root;\n const SInner = Box;\n const SSpin = Box;\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children: hasChildren,\n } = this.asProps;\n const useTheme = use && theme ? `${use}-${theme}` : false;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SButton\n render={Box}\n type='button'\n tag='button'\n disabled={disabled}\n neighborLocation={neighborLocation}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n aria-disabled={disabled}\n >\n <SInner tag='span' loading={loading}>\n {hasChildren ? this.renderChildren() : this.renderOnlyAddons()}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n});\n\nexport default Button;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/button",
3
3
  "description": "Semrush Button Component",
4
- "version": "5.28.1",
4
+ "version": "5.29.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -12,6 +12,7 @@
12
12
  "@semcore/flex-box": "5.27.1",
13
13
  "@semcore/neighbor-location": "4.25.1",
14
14
  "@semcore/spin": "5.26.1",
15
+ "@semcore/tooltip": "6.34.3",
15
16
  "@semcore/utils": "4.28.1"
16
17
  },
17
18
  "peerDependencies": {
package/src/Button.jsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import createComponent, { Component, sstyled, Root } from '@semcore/core';
3
3
  import { Box } from '@semcore/flex-box';
4
+ import { Hint } from '@semcore/tooltip';
4
5
  import NeighborLocation from '@semcore/neighbor-location';
5
6
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
6
7
  import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
@@ -26,6 +27,10 @@ class RootButton extends Component {
26
27
  };
27
28
  containerRef = React.createRef();
28
29
 
30
+ state = {
31
+ ariaLabelledByContent: '',
32
+ };
33
+
29
34
  getTextProps() {
30
35
  const { size } = this.asProps;
31
36
  return {
@@ -44,10 +49,55 @@ class RootButton extends Component {
44
49
  if (process.env.NODE_ENV !== 'production') {
45
50
  logger.warn(
46
51
  this.containerRef.current && !hasLabels(this.containerRef.current),
47
- `'aria-label' or 'aria-labelledby' are required props for buttons without text content`,
48
- this.asProps['data-ui-name'] || Button.displayName,
52
+ `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,
53
+ this.asProps['data-ui-name'] || RootButton.displayName,
49
54
  );
50
55
  }
56
+
57
+ if (this.asProps['aria-labelledby']) {
58
+ setTimeout(() => {
59
+ this.setState({
60
+ ariaLabelledByContent:
61
+ document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',
62
+ });
63
+ }, 0);
64
+ }
65
+ }
66
+
67
+ renderChildren() {
68
+ const { Children, styles, addonLeft: AddonLeft, addonRight: AddonRight } = this.asProps;
69
+
70
+ return sstyled(styles)(
71
+ <>
72
+ {AddonLeft ? <Button.Addon tag={AddonLeft} /> : null}
73
+ {addonTextChildren(Children, Button.Text, Button.Addon)}
74
+ {AddonRight ? <Button.Addon tag={AddonRight} /> : null}
75
+ </>,
76
+ );
77
+ }
78
+
79
+ renderOnlyAddons() {
80
+ const {
81
+ styles,
82
+ addonLeft: AddonLeft,
83
+ addonRight: AddonRight,
84
+ title,
85
+ ['aria-label']: ariaLabel,
86
+ } = this.asProps;
87
+
88
+ const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
89
+
90
+ return sstyled(styles)(
91
+ <Hint
92
+ tag={Button.Addon}
93
+ title={hintContent}
94
+ timeout={[250, 50]}
95
+ __excludeProps={['aria-label']}
96
+ >
97
+ {AddonLeft && <AddonLeft />}
98
+ {AddonRight && <AddonRight />}
99
+ </Hint>,
100
+ );
51
101
  }
52
102
 
53
103
  render() {
@@ -55,7 +105,6 @@ class RootButton extends Component {
55
105
  const SInner = Box;
56
106
  const SSpin = Box;
57
107
  const {
58
- Children,
59
108
  styles,
60
109
  use,
61
110
  theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],
@@ -63,8 +112,7 @@ class RootButton extends Component {
63
112
  disabled = loading,
64
113
  size,
65
114
  neighborLocation,
66
- addonLeft,
67
- addonRight,
115
+ children: hasChildren,
68
116
  } = this.asProps;
69
117
  const useTheme = use && theme ? `${use}-${theme}` : false;
70
118
 
@@ -84,9 +132,7 @@ class RootButton extends Component {
84
132
  aria-disabled={disabled}
85
133
  >
86
134
  <SInner tag='span' loading={loading}>
87
- {addonLeft ? <Button.Addon tag={addonLeft} /> : null}
88
- {addonTextChildren(Children, Button.Text, Button.Addon)}
89
- {addonRight ? <Button.Addon tag={addonRight} /> : null}
135
+ {hasChildren ? this.renderChildren() : this.renderOnlyAddons()}
90
136
  </SInner>
91
137
  {loading && (
92
138
  <SSpin tag='span'>