@semcore/button 5.44.0-prerelease.0 → 5.44.0-prerelease.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/lib/cjs/component/AbstractButton/AbstractButton.js +182 -0
  2. package/lib/cjs/component/AbstractButton/AbstractButton.js.map +1 -0
  3. package/lib/cjs/component/AbstractButton/AbstractButton.type.js +2 -0
  4. package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +1 -0
  5. package/lib/cjs/component/{Button → AbstractButton}/SpinButton.js +4 -3
  6. package/lib/cjs/component/AbstractButton/SpinButton.js.map +1 -0
  7. package/lib/cjs/component/Button/Button.js +64 -166
  8. package/lib/cjs/component/Button/Button.js.map +1 -1
  9. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  10. package/lib/cjs/component/Button/button.shadow.css +9 -1
  11. package/lib/cjs/component/ButtonLink/ButtonLink.js +68 -35
  12. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  13. package/lib/cjs/component/ButtonLink/ButtonLink.type.js.map +1 -1
  14. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +150 -11
  15. package/lib/cjs/index.js +4 -3
  16. package/lib/cjs/index.js.map +1 -1
  17. package/lib/es6/component/AbstractButton/AbstractButton.js +175 -0
  18. package/lib/es6/component/AbstractButton/AbstractButton.js.map +1 -0
  19. package/lib/es6/component/AbstractButton/AbstractButton.type.js +2 -0
  20. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +1 -0
  21. package/lib/es6/component/{Button → AbstractButton}/SpinButton.js +1 -1
  22. package/lib/es6/component/AbstractButton/SpinButton.js.map +1 -0
  23. package/lib/es6/component/Button/Button.js +57 -163
  24. package/lib/es6/component/Button/Button.js.map +1 -1
  25. package/lib/es6/component/Button/Button.type.js.map +1 -1
  26. package/lib/es6/component/Button/button.shadow.css +9 -1
  27. package/lib/es6/component/ButtonLink/ButtonLink.js +65 -34
  28. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  29. package/lib/es6/component/ButtonLink/ButtonLink.type.js.map +1 -1
  30. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +150 -11
  31. package/lib/es6/index.js +2 -1
  32. package/lib/es6/index.js.map +1 -1
  33. package/lib/esm/component/AbstractButton/AbstractButton.mjs +152 -0
  34. package/lib/esm/component/{Button → AbstractButton}/SpinButton.mjs +3 -2
  35. package/lib/esm/component/Button/Button.mjs +56 -142
  36. package/lib/esm/component/Button/button.shadow.css +9 -1
  37. package/lib/esm/component/ButtonLink/ButtonLink.mjs +61 -33
  38. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +150 -11
  39. package/lib/esm/index.mjs +2 -3
  40. package/lib/types/component/AbstractButton/AbstractButton.d.ts +24 -0
  41. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +39 -0
  42. package/lib/types/component/{Button → AbstractButton}/SpinButton.d.ts +2 -2
  43. package/lib/types/component/Button/Button.d.ts +1 -28
  44. package/lib/types/component/Button/Button.type.d.ts +39 -40
  45. package/lib/types/component/ButtonLink/ButtonLink.d.ts +1 -1
  46. package/lib/types/component/ButtonLink/ButtonLink.type.d.ts +21 -15
  47. package/lib/types/index.d.ts +2 -1
  48. package/package.json +7 -7
  49. package/src/component/Button/button.shadow.css +80 -80
  50. package/src/component/ButtonLink/buttonLink.shadow.css +7 -7
  51. package/lib/cjs/component/Button/SpinButton.js.map +0 -1
  52. package/lib/es6/component/Button/SpinButton.js.map +0 -1
  53. package/lib/esm/component/Button/Button.type.mjs +0 -1
  54. package/lib/esm/component/ButtonLink/ButtonLink.type.mjs +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { Intergalactic, PropGetterFn } from '@semcore/core';\nimport type { NSText } from '@semcore/typography';\nimport type React from 'react';\n\nexport type ButtonProps = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size.\n * @default `m`\n */\n size?: 'l' | 'm';\n /** Button usage.\n * @default `primary`\n */\n use?: 'primary' | 'secondary' | 'tertiary';\n /** Button theme.\n * @default undefined\n */\n theme?: 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n };\n\nexport type ButtonTextProps = NSText.Props;\n\nexport type ButtonAddonProps = BoxProps;\n\nexport type ButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/**\n * @deprecated don't use it. use `danger` for incorrect or danger behavior and `brand` for the orange one.\n */\ntype DeprecatedTheme = 'warning';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\n/** @deprecated */\nexport interface IButtonProps extends ButtonProps, UnknownProperties {}\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme | DeprecatedTheme>;\n\n/** @deprecated */\nexport interface IButtonTextProps extends ButtonTextProps, UnknownProperties {}\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\n/** @deprecated */\nexport interface IButtonAddonProps extends ButtonAddonProps, UnknownProperties {}\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\n/** @deprecated */\nexport interface IButtonContext extends ButtonContext, UnknownProperties {}\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n"],"mappings":""}
@@ -12,6 +12,7 @@ SButton {
12
12
  text-align: center;
13
13
  vertical-align: middle;
14
14
  border: 1px solid transparent;
15
+ outline: 0;
15
16
  box-shadow: none;
16
17
  cursor: pointer;
17
18
  box-sizing: border-box;
@@ -29,11 +30,18 @@ SButton {
29
30
  }
30
31
 
31
32
  &:active,
32
- &:hover {
33
+ &:hover,
34
+ &:focus {
35
+ outline: 0;
33
36
  text-decoration: none;
34
37
  }
35
38
  }
36
39
 
40
+ SButton[keyboardFocused] {
41
+ box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px oklch(0.376 0.247 264.2 / 0.441));
42
+ z-index: 1;
43
+ }
44
+
37
45
  SButton[disabled] {
38
46
  opacity: var(--intergalactic-disabled-opacity, 0.4);
39
47
  cursor: default;
@@ -1,57 +1,88 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
- import _callSuper from "@babel/runtime/helpers/callSuper";
5
4
  import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _createSuper from "@babel/runtime/helpers/createSuper";
6
6
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
- import { sstyled as _sstyled } from "@semcore/core";
7
+ import { sstyled as _sstyled } from "@semcore/utils/lib/core/index";
8
+ import { assignProps as _assignProps2 } from "@semcore/core";
8
9
  import { assignProps as _assignProps } from "@semcore/core";
9
- import { createComponent, sstyled, Root, Component } from '@semcore/core';
10
- import Link from '@semcore/link';
11
10
  import React from 'react';
11
+ import createComponent, { sstyled, Root } from '@semcore/core';
12
12
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
13
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButtonLink_wy7ce_gg_{border:0;font-family:inherit}.___SButtonLink_wy7ce_gg_._use_primary_wy7ce_gg_:not(.__color_wy7ce_gg_){color:var(--intergalactic-text-link, rgb(36, 93, 229))}.___SButtonLink_wy7ce_gg_._use_primary_wy7ce_gg_.__active_wy7ce_gg_:not(.__color_wy7ce_gg_),.___SButtonLink_wy7ce_gg_._use_primary_wy7ce_gg_:not(.__color_wy7ce_gg_):active{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}@media (hover:hover){.___SButtonLink_wy7ce_gg_._use_primary_wy7ce_gg_:not(.__color_wy7ce_gg_):hover{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}}.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_:not(.__color_wy7ce_gg_){color:var(--intergalactic-text-hint, rgba(0, 3, 0, 0.583))}@supports (color:color(display-p3 0 0 0%)){.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_:not(.__color_wy7ce_gg_){color:var(--intergalactic-text-hint, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_:not(.__color_wy7ce_gg_){color:var(--intergalactic-text-hint, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_.__active_wy7ce_gg_:not(.__color_wy7ce_gg_),.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_:not(.__color_wy7ce_gg_):active{color:var(--intergalactic-text-hint-hover-active, rgba(0, 3, 0, 0.605))}@media (hover:hover){.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_:not(.__color_wy7ce_gg_):hover{color:var(--intergalactic-text-hint-hover-active, rgba(0, 3, 0, 0.605))}}.___SButtonLink_wy7ce_gg_._use_secondary_wy7ce_gg_ .___SText_wy7ce_gg_{text-decoration-style:dashed;text-decoration-color:currentColor}", /*__inner_css_end__*/"wy7ce_gg_"),
13
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SButton_1dn0k_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, rgb(36, 93, 229));line-height:normal;position:relative;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;outline:0;background:0 0;transition:color .15s ease-in-out}.___SButton_1dn0k_gg_:active,.___SButton_1dn0k_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_1dn0k_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___SButton_1dn0k_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_1dn0k_gg_.__active_1dn0k_gg_,.___SButton_1dn0k_gg_:active{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}@media (hover:hover){.___SButton_1dn0k_gg_:hover{color:var(--intergalactic-text-link-hover-active, rgb(34, 88, 217))}}.___SButton_1dn0k_gg_.__active_1dn0k_gg_ .___SText_1dn0k_gg_,.___SButton_1dn0k_gg_:active .___SText_1dn0k_gg_{border-color:currentColor}@media (hover:hover){.___SButton_1dn0k_gg_:hover .___SText_1dn0k_gg_{border-color:currentColor}}.___SButton_1dn0k_gg_.__enableVisited_1dn0k_gg_:visited{color:var(--intergalactic-text-link-visited, rgb(128, 41, 236))}@media (hover:hover){.___SButton_1dn0k_gg_.__enableVisited_1dn0k_gg_:visited:hover{color:var(--intergalactic-text-link-visited, rgb(128, 41, 236))}}.___SButton_1dn0k_gg_ .___SText_1dn0k_gg_{border-bottom-width:1px;border-bottom-style:solid;border-color:transparent;transition:border-bottom-color .15s ease-in-out}.___SButton_1dn0k_gg_.__keyboardFocused_1dn0k_gg_{outline-color:var(--intergalactic-keyboard-focus-outline, rgba(0, 18, 193, 0.441));outline-style:solid;outline-width:3px}.___SButton_1dn0k_gg_.__disabled_1dn0k_gg_{opacity:var(--intergalactic-disabled-opacity, 0.4);cursor:default;pointer-events:none}.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_{color:var(--intergalactic-text-hint, rgba(0, 3, 0, 0.583))}@supports (color:color(display-p3 0 0 0)){.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_{color:var(--intergalactic-text-hint, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_{color:var(--intergalactic-text-hint, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_.__active_1dn0k_gg_,.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_:active{color:var(--intergalactic-text-hint-hover-active, rgba(0, 3, 0, 0.605))}@media (hover:hover){.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_:hover{color:var(--intergalactic-text-hint-hover-active, rgba(0, 3, 0, 0.605))}}.___SButton_1dn0k_gg_._use_secondary_1dn0k_gg_ .___SText_1dn0k_gg_{border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_1dn0k_gg_,.___SInner_1dn0k_gg_{display:inline-flex;justify-content:center;align-items:center}.___SInner_1dn0k_gg_{height:100%;width:100%}.___SAddon_1dn0k_gg_{vertical-align:middle;pointer-events:none}.___SButton_1dn0k_gg_ .___SAddon_1dn0k_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_1dn0k_gg_ .___SAddon_1dn0k_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_1dn0k_gg_.__text-color_1dn0k_gg_{color:var(--text-color_1dn0k)}.___SButton_1dn0k_gg_.__text-color_1dn0k_gg_.__active_1dn0k_gg_,.___SButton_1dn0k_gg_.__text-color_1dn0k_gg_:active{color:var(--text-color_1dn0k);filter:brightness(.8)}@media (hover:hover){.___SButton_1dn0k_gg_.__text-color_1dn0k_gg_:hover{color:var(--text-color_1dn0k);filter:brightness(.8)}}.___SButton_1dn0k_gg_._size_100_1dn0k_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_1dn0k_gg_._size_200_1dn0k_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_1dn0k_gg_._size_300_1dn0k_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_1dn0k_gg_._size_400_1dn0k_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_1dn0k_gg_._size_500_1dn0k_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_1dn0k_gg_._size_600_1dn0k_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_1dn0k_gg_._size_700_1dn0k_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_1dn0k_gg_._size_800_1dn0k_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_1dn0k_gg_,.___SText_1dn0k_gg_{transition:none}}", /*__inner_css_end__*/"1dn0k_gg_"),
14
14
  /*__reshadow_css_end__*/
15
15
  {
16
- "__SButtonLink": "___SButtonLink_wy7ce_gg_",
17
- "_use_secondary": "_use_secondary_wy7ce_gg_",
18
- "__SText": "___SText_wy7ce_gg_",
19
- "_use_primary": "_use_primary_wy7ce_gg_",
20
- "_color": "__color_wy7ce_gg_",
21
- "_active": "__active_wy7ce_gg_"
16
+ "__SButton": "___SButton_1dn0k_gg_",
17
+ "_keyboardFocused": "__keyboardFocused_1dn0k_gg_",
18
+ "_disabled": "__disabled_1dn0k_gg_",
19
+ "__SInner": "___SInner_1dn0k_gg_",
20
+ "__SAddon": "___SAddon_1dn0k_gg_",
21
+ "_size_100": "_size_100_1dn0k_gg_",
22
+ "_size_200": "_size_200_1dn0k_gg_",
23
+ "_size_300": "_size_300_1dn0k_gg_",
24
+ "_size_400": "_size_400_1dn0k_gg_",
25
+ "_size_500": "_size_500_1dn0k_gg_",
26
+ "_size_600": "_size_600_1dn0k_gg_",
27
+ "_size_700": "_size_700_1dn0k_gg_",
28
+ "_size_800": "_size_800_1dn0k_gg_",
29
+ "__SText": "___SText_1dn0k_gg_",
30
+ "_active": "__active_1dn0k_gg_",
31
+ "_enableVisited": "__enableVisited_1dn0k_gg_",
32
+ "_use_secondary": "_use_secondary_1dn0k_gg_",
33
+ "_text-color": "__text-color_1dn0k_gg_",
34
+ "--text-color": "--text-color_1dn0k"
22
35
  });
23
- var RootButtonLink = /*#__PURE__*/function (_Component) {
36
+ import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
37
+ import { Box } from '@semcore/flex-box';
38
+ import { AbstractButton } from '../AbstractButton/AbstractButton';
39
+ import resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';
40
+ var enhance = {
41
+ keyboardFocused: keyboardFocusEnhance(),
42
+ resolveColor: resolveColorEnhance()
43
+ };
44
+ var RootButtonLink = /*#__PURE__*/function (_AbstractButton) {
45
+ _inherits(RootButtonLink, _AbstractButton);
46
+ var _super = _createSuper(RootButtonLink);
24
47
  function RootButtonLink() {
25
48
  _classCallCheck(this, RootButtonLink);
26
- return _callSuper(this, RootButtonLink, arguments);
49
+ return _super.apply(this, arguments);
27
50
  }
28
- _inherits(RootButtonLink, _Component);
29
- return _createClass(RootButtonLink, [{
30
- key: "render",
31
- value: function render() {
32
- var _ref = this.asProps,
33
- _ref2;
34
- var SButtonLink = Link;
35
- var disabled = this.asProps.disabled;
36
- return _ref2 = sstyled(style), /*#__PURE__*/React.createElement(SButtonLink, _ref2.cn("SButtonLink", _objectSpread({}, _assignProps({
37
- "tag": 'button',
38
- "type": 'button',
39
- "use:disabled": disabled,
40
- "use:tabIndex": 0
41
- }, _ref))));
51
+ _createClass(RootButtonLink, [{
52
+ key: "getTextColor",
53
+ value: function getTextColor() {
54
+ var _ref5 = this.asProps,
55
+ color = _ref5.color,
56
+ resolveColor = _ref5.resolveColor;
57
+ return resolveColor(color);
42
58
  }
43
59
  }]);
44
- }(Component);
60
+ return RootButtonLink;
61
+ }(AbstractButton);
45
62
  _defineProperty(RootButtonLink, "displayName", 'ButtonLink');
63
+ _defineProperty(RootButtonLink, "enhance", Object.values(enhance));
46
64
  _defineProperty(RootButtonLink, "style", style);
47
65
  _defineProperty(RootButtonLink, "defaultProps", {
48
- use: 'primary',
49
- size: 200
66
+ use: 'primary'
50
67
  });
68
+ function Text(props) {
69
+ var _ref = arguments[0],
70
+ _ref3;
71
+ var SText = Box;
72
+ return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", _objectSpread({}, _assignProps({
73
+ "tag": 'span'
74
+ }, _ref))));
75
+ }
76
+ function Addon(props) {
77
+ var _ref2 = arguments[0],
78
+ _ref4;
79
+ var SAddon = Box;
80
+ return _ref4 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref4.cn("SAddon", _objectSpread({}, _assignProps2({
81
+ "tag": 'span'
82
+ }, _ref2))));
83
+ }
51
84
  export var ButtonLink = createComponent(RootButtonLink, {
52
- Text: Link.Text,
53
- Addon: Link.Addon
54
- }, {
55
- parent: Link
85
+ Text: Text,
86
+ Addon: Addon
56
87
  });
57
88
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.js","names":["createComponent","sstyled","Root","Component","Link","React","style","_sstyled","insert","RootButtonLink","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","render","_ref","asProps","_ref2","SButtonLink","disabled","createElement","cn","_objectSpread","_assignProps","_defineProperty","use","size","ButtonLink","Text","Addon","parent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { createComponent, sstyled, Root, Component } from '@semcore/core';\nimport Link from '@semcore/link';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkComponent, ButtonLinkProps } from './ButtonLink.type';\n\nclass RootButtonLink extends Component<ButtonLinkProps> {\n static displayName = 'ButtonLink';\n static style = style;\n static defaultProps = {\n use: 'primary',\n size: 200,\n };\n\n render(): React.ReactNode {\n const SButtonLink = Root;\n const { disabled } = this.asProps;\n\n return sstyled(style)(\n <SButtonLink\n render={Link}\n tag='button'\n type='button'\n use:disabled={disabled}\n use:tabIndex={0}\n />,\n );\n }\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text: Link.Text,\n Addon: Link.Addon,\n}, {\n parent: Link,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;;;;;AAAA,SAASA,eAAe,EAAEC,OAAO,EAAEC,IAAI,EAAEC,SAAS,QAAQ,eAAe;AACzE,OAAOC,IAAI,MAAM,eAAe;AAChC,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,IAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAAA,IAKpBC,cAAc,0BAAAC,UAAA;EAAA,SAAAD,eAAA;IAAAE,eAAA,OAAAF,cAAA;IAAA,OAAAG,UAAA,OAAAH,cAAA,EAAAI,SAAA;EAAA;EAAAC,SAAA,CAAAL,cAAA,EAAAC,UAAA;EAAA,OAAAK,YAAA,CAAAN,cAAA;IAAAO,GAAA;IAAAC,KAAA,EAQlB,SAAAC,MAAMA,CAAA,EAAoB;MAAA,IAAAC,IAAA,QAAAC,OAAA;QAAAC,KAAA;MACxB,IAAMC,WAAW,GAKLlB,IAAI;MAJhB,IAAQmB,QAAQ,GAAK,IAAI,CAACH,OAAO,CAAzBG,QAAQ;MAEhB,OAAAF,KAAA,GAAOpB,OAAO,CAACK,KAAK,CAAC,eACnBD,KAAA,CAAAmB,aAAA,CAACF,WAAW,EAAAD,KAAA,CAAAI,EAAA,gBAAAC,aAAA,KAAAC,YAAA;QAAA,OAEN,QAAQ;QAAA,QACP,QAAQ;QAAA,gBACCJ,QAAQ;QAAA,gBACR;MAAC,GAAAJ,IAAA,GAChB,CAAC;IAEN;EAAC;AAAA,EArB0BhB,SAAS;AAAAyB,eAAA,CAAhCnB,cAAc,iBACG,YAAY;AAAAmB,eAAA,CAD7BnB,cAAc,WAEHH,KAAK;AAAAsB,eAAA,CAFhBnB,cAAc,kBAGI;EACpBoB,GAAG,EAAE,SAAS;EACdC,IAAI,EAAE;AACR,CAAC;AAkBH,OAAO,IAAMC,UAAU,GAAG/B,eAAe,CAACS,cAAc,EAAE;EACxDuB,IAAI,EAAE5B,IAAI,CAAC4B,IAAI;EACfC,KAAK,EAAE7B,IAAI,CAAC6B;AACd,CAAC,EAAE;EACDC,MAAM,EAAE9B;AACV,CAAC,CAAwB","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.js","names":["React","createComponent","sstyled","Root","style","_sstyled","insert","keyboardFocusEnhance","Box","AbstractButton","resolveColorEnhance","enhance","keyboardFocused","resolveColor","RootButtonLink","_AbstractButton","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","getTextColor","_ref5","asProps","color","_defineProperty","Object","values","use","Text","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_objectSpread","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","ButtonLink"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { sstyled, Root } from '@semcore/core';\nimport style from './buttonLink.shadow.css';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport { Box } from '@semcore/flex-box';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\n\nconst enhance = {\n keyboardFocused: keyboardFocusEnhance(),\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction Text(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,IAAIC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAAC;AAAA,IAAAC,KAAA,+BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAE/D,OAAOC,oBAAoB,MAAM,kDAAkD;AACnF,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,cAAc,QAAQ,kCAAkC;AACjE,OAAOC,mBAAmB,MAAM,iDAAiD;AAGjF,IAAMC,OAAO,GAAG;EACdC,eAAe,EAAEL,oBAAoB,EAAE;EACvCM,YAAY,EAAEH,mBAAmB;AACnC,CAAC;AAAC,IAEII,cAAc,0BAAAC,eAAA;EAAAC,SAAA,CAAAF,cAAA,EAAAC,eAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,cAAA;EAAA,SAAAA,eAAA;IAAAK,eAAA,OAAAL,cAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAAC,YAAA,CAAAR,cAAA;IAAAS,GAAA;IAAAC,KAAA,EAQlB,SAAAC,aAAA,EAA6C;MAC3C,IAAAC,KAAA,GAAgC,IAAI,CAACC,OAAO;QAApCC,KAAK,GAAAF,KAAA,CAALE,KAAK;QAAEf,YAAY,GAAAa,KAAA,CAAZb,YAAY;MAC3B,OAAOA,YAAY,CAACe,KAAK,CAAC;IAC5B;EAAC;EAAA,OAAAd,cAAA;AAAA,EAX0BL,cAAc;AAAAoB,eAAA,CAArCf,cAAc,iBACG,YAAY;AAAAe,eAAA,CAD7Bf,cAAc,aAEDgB,MAAM,CAACC,MAAM,CAACpB,OAAO,CAAC;AAAAkB,eAAA,CAFnCf,cAAc,WAGHV,KAAK;AAAAyB,eAAA,CAHhBf,cAAc,kBAII;EACpBkB,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,IAAIA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACxC,IAAMC,KAAK,GACiC9B,GAAG;EAA/C,OAAA6B,KAAA,GAAOnC,OAAO,CAACgC,KAAK,CAACK,MAAM,CAAC,eAACvC,KAAA,CAAAwC,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA,UAAAC,aAAA,KAAAC,YAAA;IAAA,OAAkB;EAAM,GAAAR,IAAA,IAAG;AAChE;AAEA,SAASS,KAAKA,CAACV,KAA2B,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EAC1C,IAAMC,MAAM,GACiCvC,GAAG;EAAhD,OAAAsC,KAAA,GAAO5C,OAAO,CAACgC,KAAK,CAACK,MAAM,CAAC,eAACvC,KAAA,CAAAwC,aAAA,CAACO,MAAM,EAAAD,KAAA,CAAAL,EAAA,WAAAC,aAAA,KAAAM,aAAA;IAAA,OAAkB;EAAM,GAAAH,KAAA,IAAG;AACjE;AAEA,OAAO,IAAMI,UAAU,GAAGhD,eAAe,CAACa,cAAc,EAAE;EACxDmB,IAAI,EAAJA,IAAI;EACJW,KAAK,EAALA;AACF,CAAC,CAAwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { LinkProps } from '@semcore/link';\nimport type { NSText } from '@semcore/typography';\n\nimport type { ButtonContext } from '../Button/Button.type';\n\nexport type ButtonLinkProps = Intergalactic.InternalTypings.EfficientOmit<LinkProps, 'enableVisited'> & {\n /**\n * Button link type\n * @default primary\n */\n use?: 'primary' | 'secondary';\n};\n\nexport type ButtonLinkTextProps = NSText.Props;\n\nexport type ButtonLinkAddonProps = BoxProps;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonContext\n> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n * @default m\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n"],"mappings":""}
@@ -1,19 +1,70 @@
1
- SButtonLink {
2
- border: none;
1
+ SButton {
2
+ display: inline-flex;
3
3
  font-family: inherit;
4
- }
5
-
6
- SButtonLink[use='primary']:not([color]) {
4
+ font-size: var(--intergalactic-fs-200, 14px);
7
5
  color: var(--intergalactic-text-link, oklch(0.53 0.214 263.4));
6
+ line-height: normal;
7
+ position: relative;
8
+ cursor: pointer;
9
+ text-decoration: none;
10
+ border: none;
11
+ padding: 0;
12
+ margin: 0;
13
+ box-shadow: none;
14
+ -webkit-tap-highlight-color: transparent;
15
+ outline: 0;
16
+ background: none;
17
+ transition: color 0.15s ease-in-out;
8
18
 
9
- &[active],
10
19
  &:active,
11
- &:hover {
20
+ &:hover,
21
+ &:focus {
22
+ outline: 0;
23
+ text-decoration: none;
24
+ }
25
+
26
+ &::-moz-focus-inner {
27
+ border: none;
28
+ padding: 0;
29
+ }
30
+
31
+ &[active],
32
+ &:hover,
33
+ &:active {
12
34
  color: var(--intergalactic-text-link-hover-active, oklch(0.51 0.206 263.4));
35
+
36
+ & SText {
37
+ border-color: currentColor;
38
+ }
39
+ }
40
+
41
+ &[enableVisited]:visited,
42
+ &[enableVisited]:visited:hover {
43
+ color: var(--intergalactic-text-link-visited, oklch(0.53 0.26 296));
13
44
  }
45
+
46
+ SText {
47
+ border-bottom-width: 1px;
48
+ border-bottom-style: solid;
49
+ border-color: transparent;
50
+ transition: border-bottom-color 0.15s ease-in-out;
51
+ }
52
+ }
53
+
54
+ SButton[keyboardFocused] {
55
+ outline-color: var(--intergalactic-keyboard-focus-outline, oklch(0.376 0.247 264.2 / 0.441));
56
+ outline-style: solid;
57
+ outline-width: 3px;
14
58
  }
15
59
 
16
- SButtonLink[use='secondary']:not([color]) {
60
+ SButton[disabled] {
61
+ opacity: var(--intergalactic-disabled-opacity, 0.4);
62
+ cursor: default;
63
+ /* Disable link interactions */
64
+ pointer-events: none;
65
+ }
66
+
67
+ SButton[use='secondary'] {
17
68
  color: var(--intergalactic-text-hint, oklch(0.088 0.026 147.7 / 0.583));
18
69
 
19
70
  &[active],
@@ -21,9 +72,97 @@ SButtonLink[use='secondary']:not([color]) {
21
72
  &:hover {
22
73
  color: var(--intergalactic-text-hint-hover-active, oklch(0.086 0.026 145.8 / 0.605));
23
74
  }
75
+
76
+ SText {
77
+ border-bottom-width: 1px;
78
+ border-bottom-style: dashed;
79
+ border-color: currentColor;
80
+ }
81
+ }
82
+
83
+ SInner {
84
+ display: inline-flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ height: 100%;
88
+ width: 100%;
24
89
  }
25
90
 
26
- SButtonLink[use='secondary'] SText {
27
- text-decoration-style: dashed;
28
- text-decoration-color: currentColor;
91
+ SAddon {
92
+ display: inline-flex;
93
+ justify-content: center;
94
+ align-items: center;
95
+ vertical-align: middle;
96
+ pointer-events: none;
97
+ }
98
+
99
+ SButton SAddon {
100
+ &:not(:only-child):first-child {
101
+ margin-right: var(--intergalactic-spacing-1x, 4px);
102
+ }
103
+
104
+ &:not(:only-child):last-child {
105
+ margin-left: var(--intergalactic-spacing-1x, 4px);
106
+ }
107
+ }
108
+
109
+ SButton[text-color] {
110
+ color: var(--text-color);
111
+
112
+ &[active],
113
+ &:hover,
114
+ &:active {
115
+ color: var(--text-color);
116
+ filter: brightness(0.8);
117
+ }
118
+ }
119
+
120
+ SButton[size='100'] {
121
+ font-size: var(--intergalactic-fs-100, 12px);
122
+ line-height: var(--intergalactic-lh-100, 133%);
123
+ }
124
+
125
+ SButton[size='200'] {
126
+ font-size: var(--intergalactic-fs-200, 14px);
127
+ line-height: var(--intergalactic-lh-200, 142%);
128
+ }
129
+
130
+ SButton[size='300'] {
131
+ font-size: var(--intergalactic-fs-300, 16px);
132
+ line-height: var(--intergalactic-lh-300, 150%);
133
+ }
134
+
135
+ SButton[size='400'] {
136
+ font-size: var(--intergalactic-fs-400, 20px);
137
+ line-height: var(--intergalactic-lh-400, 120%);
138
+ }
139
+
140
+ SButton[size='500'] {
141
+ font-size: var(--intergalactic-fs-500, 24px);
142
+ line-height: var(--intergalactic-lh-500, 117%);
143
+ }
144
+
145
+ SButton[size='600'] {
146
+ font-size: var(--intergalactic-fs-600, 32px);
147
+ line-height: var(--intergalactic-lh-600, 125%);
148
+ }
149
+
150
+ SButton[size='700'] {
151
+ font-size: var(--intergalactic-fs-700, 36px);
152
+ line-height: var(--intergalactic-lh-700, 110%);
153
+ }
154
+
155
+ SButton[size='800'] {
156
+ font-size: var(--intergalactic-fs-800, 48px);
157
+ line-height: var(--intergalactic-lh-800, 117%);
158
+ }
159
+
160
+ @media (prefers-reduced-motion) {
161
+ SButton {
162
+ transition: none;
163
+ }
164
+
165
+ SText {
166
+ transition: none;
167
+ }
29
168
  }
package/lib/es6/index.js CHANGED
@@ -1,5 +1,6 @@
1
- export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';
1
+ export { default } from './component/Button/Button';
2
2
  export * from './component/Button/Button.type';
3
3
  export * from './component/ButtonLink/ButtonLink';
4
4
  export * from './component/ButtonLink/ButtonLink.type';
5
+ export { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,qBAAqB,QAAQ,2BAA2B;AAC1E,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\nexport { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,2BAA2B;AACnD,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC;AACtD,SAASC,qBAAqB,QAAQ,2CAA2C"}
@@ -0,0 +1,152 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
+ import { sstyled, assignProps, CORE_INSTANCE, Component } from "@semcore/core";
9
+ import React from "react";
10
+ import { Box } from "@semcore/flex-box";
11
+ import { Hint } from "@semcore/tooltip";
12
+ import NeighborLocation from "@semcore/neighbor-location";
13
+ import addonTextChildren from "@semcore/utils/lib/addonTextChildren";
14
+ import logger from "@semcore/utils/lib/logger";
15
+ import SpinButton from "./SpinButton.mjs";
16
+ import hasLabels from "@semcore/utils/lib/hasLabels";
17
+ var MAP_USE_DEFAULT_THEME = {
18
+ primary: "info",
19
+ secondary: "muted",
20
+ tertiary: "info"
21
+ };
22
+ var AbstractButton = /* @__PURE__ */ function(_Component) {
23
+ _inherits(AbstractButton2, _Component);
24
+ var _super = _createSuper(AbstractButton2);
25
+ function AbstractButton2() {
26
+ var _this;
27
+ _classCallCheck(this, AbstractButton2);
28
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
+ args[_key] = arguments[_key];
30
+ }
31
+ _this = _super.call.apply(_super, [this].concat(args));
32
+ _defineProperty(_assertThisInitialized(_this), "containerRef", /* @__PURE__ */ React.createRef());
33
+ _defineProperty(_assertThisInitialized(_this), "state", {
34
+ ariaLabelledByContent: null
35
+ });
36
+ return _this;
37
+ }
38
+ _createClass(AbstractButton2, [{
39
+ key: "getTextProps",
40
+ value: function getTextProps() {
41
+ var size = this.asProps.size;
42
+ return {
43
+ size
44
+ };
45
+ }
46
+ }, {
47
+ key: "getAddonProps",
48
+ value: function getAddonProps() {
49
+ var size = this.asProps.size;
50
+ return {
51
+ size
52
+ };
53
+ }
54
+ }, {
55
+ key: "componentDidMount",
56
+ value: function componentDidMount() {
57
+ var _this2 = this;
58
+ if (process.env.NODE_ENV !== "production") {
59
+ logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title, "'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps["data-ui-name"] || AbstractButton2.displayName);
60
+ logger.warn(this.asProps.theme === "warning", "Warning theme is deprecated and will be removed in the next major release.", this.asProps["data-ui-name"] || AbstractButton2.displayName);
61
+ }
62
+ var ariaLabelledby = this.asProps["aria-labelledby"];
63
+ if (ariaLabelledby) {
64
+ setTimeout(function() {
65
+ var _document$getElementB, _document$getElementB2;
66
+ _this2.setState({
67
+ ariaLabelledByContent: (_document$getElementB = (_document$getElementB2 = document.getElementById(ariaLabelledby)) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.textContent) !== null && _document$getElementB !== void 0 ? _document$getElementB : ""
68
+ });
69
+ }, 0);
70
+ }
71
+ }
72
+ }, {
73
+ key: "renderButton",
74
+ value: function renderButton(_ref6) {
75
+ var _ref = this.asProps, _ref3;
76
+ var buttonProps = _ref6.buttonProps, children = _ref6.children;
77
+ var styles = this.asProps.styles;
78
+ var SButton = Box;
79
+ return _ref3 = sstyled(styles), /* @__PURE__ */ React.createElement(SButton, _ref3.cn("SButton", _objectSpread({}, assignProps(_objectSpread({}, buttonProps), _ref))), children);
80
+ }
81
+ }, {
82
+ key: "renderButtonWithHint",
83
+ value: function renderButtonWithHint(_ref7) {
84
+ var _ref2 = this.asProps, _ref4;
85
+ var buttonProps = _ref7.buttonProps, children = _ref7.children, hintProps = _ref7.hintProps;
86
+ var styles = this.asProps.styles;
87
+ var SButton = Hint;
88
+ return _ref4 = sstyled(styles), /* @__PURE__ */ React.createElement(SButton, _ref4.cn("SButton", _objectSpread({}, assignProps(_objectSpread(_objectSpread({}, buttonProps), hintProps), _ref2))), children);
89
+ }
90
+ }, {
91
+ key: "render",
92
+ value: function render() {
93
+ var _ref8, _ref9, _this3 = this;
94
+ var _this$asProps = this.asProps, styles = _this$asProps.styles, use = _this$asProps.use, _this$asProps$theme = _this$asProps.theme, theme = _this$asProps$theme === void 0 ? typeof use === "string" && MAP_USE_DEFAULT_THEME[use] : _this$asProps$theme, loading = _this$asProps.loading, _this$asProps$disable = _this$asProps.disabled, disabled = _this$asProps$disable === void 0 ? loading : _this$asProps$disable, size = _this$asProps.size, neighborLocation = _this$asProps.neighborLocation, hasChildren = _this$asProps.children, title = _this$asProps.title, ariaLabel = _this$asProps["aria-label"], Children = _this$asProps.Children, AddonLeft = _this$asProps.addonLeft, AddonRight = _this$asProps.addonRight, hintPlacement = _this$asProps.hintPlacement;
95
+ var Button = this[CORE_INSTANCE];
96
+ var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
97
+ var SInner = Box;
98
+ var SSpin = Box;
99
+ var buttonAriaLabel = (_ref8 = (_ref9 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref9 !== void 0 ? _ref9 : this.state.ariaLabelledByContent) !== null && _ref8 !== void 0 ? _ref8 : "";
100
+ var buttonProps = {
101
+ type: "button",
102
+ tag: "button",
103
+ disabled,
104
+ "use:theme": useTheme,
105
+ ref: this.containerRef,
106
+ "text-color": this.getTextColor(),
107
+ "aria-busy": loading,
108
+ __excludeProps: ["title"]
109
+ };
110
+ var hintProps = {
111
+ title: buttonAriaLabel,
112
+ timeout: [250, 50],
113
+ placement: hintPlacement,
114
+ theme: theme === "invert" ? "invert" : void 0,
115
+ __excludeProps: []
116
+ };
117
+ return /* @__PURE__ */ React.createElement(NeighborLocation.Detect, {
118
+ neighborLocation
119
+ }, function(neighborLocation2) {
120
+ var _ref5;
121
+ var children = (_ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SInner, _ref5.cn("SInner", {
122
+ "tag": "span",
123
+ "loading": loading
124
+ }), AddonLeft ? /* @__PURE__ */ React.createElement(Button.Addon, null, /* @__PURE__ */ React.createElement(AddonLeft, _ref5.cn("AddonLeft", {}))) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /* @__PURE__ */ React.createElement(Button.Addon, null, /* @__PURE__ */ React.createElement(AddonRight, _ref5.cn("AddonRight", {}))) : null), loading && /* @__PURE__ */ React.createElement(SSpin, _ref5.cn("SSpin", {
125
+ "tag": "span"
126
+ }), /* @__PURE__ */ React.createElement(SpinButton, _ref5.cn("SpinButton", {
127
+ "centered": true,
128
+ "size": size,
129
+ "theme": useTheme
130
+ })))));
131
+ buttonProps.neighborLocation = neighborLocation2;
132
+ if (hasChildren === void 0 || title) {
133
+ return _this3.renderButtonWithHint({
134
+ buttonProps,
135
+ hintProps,
136
+ children
137
+ });
138
+ }
139
+ return _this3.renderButton({
140
+ buttonProps,
141
+ children
142
+ });
143
+ });
144
+ }
145
+ }]);
146
+ return AbstractButton2;
147
+ }(Component);
148
+ _defineProperty(AbstractButton, "displayName", "AbstractButton");
149
+ export {
150
+ AbstractButton,
151
+ MAP_USE_DEFAULT_THEME
152
+ };
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import Spin from "@semcore/spin";
4
3
  import React from "react";
4
+ import Spin from "@semcore/spin";
5
5
  var _excluded = ["theme", "size"];
6
6
  var SPIN_SIZE_MAP = {
7
7
  xl: "m",
@@ -10,7 +10,8 @@ var SPIN_SIZE_MAP = {
10
10
  s: "xxs"
11
11
  };
12
12
  function SpinButton(_ref) {
13
- var theme = _ref.theme, size = _ref.size, others = _objectWithoutProperties(_ref, _excluded);
13
+ _ref.theme;
14
+ var size = _ref.size, others = _objectWithoutProperties(_ref, _excluded);
14
15
  return /* @__PURE__ */ React.createElement(Spin, _extends({
15
16
  size: typeof size === "string" ? SPIN_SIZE_MAP[size] : size,
16
17
  theme: "currentColor"