@semcore/button 17.0.0-prerelease.30 → 17.0.0-prerelease.31

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 (56) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/component/Button/Button.js +117 -13
  3. package/lib/cjs/component/Button/Button.js.map +1 -1
  4. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  5. package/lib/cjs/component/Button/SpinButton.js.map +1 -0
  6. package/lib/cjs/component/ButtonLink/ButtonLink.js +28 -53
  7. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  8. package/lib/cjs/component/ButtonLink/ButtonLink.type.js.map +1 -1
  9. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +10 -140
  10. package/lib/cjs/index.js +3 -4
  11. package/lib/cjs/index.js.map +1 -1
  12. package/lib/es6/component/Button/Button.js +119 -15
  13. package/lib/es6/component/Button/Button.js.map +1 -1
  14. package/lib/es6/component/Button/Button.type.js.map +1 -1
  15. package/lib/es6/component/Button/SpinButton.js.map +1 -0
  16. package/lib/es6/component/ButtonLink/ButtonLink.js +29 -55
  17. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  18. package/lib/es6/component/ButtonLink/ButtonLink.type.js.map +1 -1
  19. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +10 -140
  20. package/lib/es6/index.js +1 -2
  21. package/lib/es6/index.js.map +1 -1
  22. package/lib/esm/component/Button/Button.mjs +117 -12
  23. package/lib/esm/component/ButtonLink/ButtonLink.mjs +29 -53
  24. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +10 -140
  25. package/lib/esm/index.mjs +1 -2
  26. package/lib/types/component/Button/Button.d.ts +28 -1
  27. package/lib/types/component/Button/Button.type.d.ts +39 -19
  28. package/lib/types/component/ButtonLink/ButtonLink.type.d.ts +14 -16
  29. package/lib/types/index.d.ts +1 -2
  30. package/package.json +7 -7
  31. package/src/component/Button/Button.tsx +144 -7
  32. package/src/component/Button/Button.type.ts +45 -30
  33. package/src/component/ButtonLink/ButtonLink.tsx +22 -27
  34. package/src/component/ButtonLink/ButtonLink.type.ts +14 -22
  35. package/src/component/ButtonLink/buttonLink.shadow.css +10 -140
  36. package/src/index.ts +1 -2
  37. package/lib/cjs/component/AbstractButton/AbstractButton.js +0 -136
  38. package/lib/cjs/component/AbstractButton/AbstractButton.js.map +0 -1
  39. package/lib/cjs/component/AbstractButton/AbstractButton.type.js +0 -2
  40. package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +0 -1
  41. package/lib/cjs/component/AbstractButton/SpinButton.js.map +0 -1
  42. package/lib/es6/component/AbstractButton/AbstractButton.js +0 -129
  43. package/lib/es6/component/AbstractButton/AbstractButton.js.map +0 -1
  44. package/lib/es6/component/AbstractButton/AbstractButton.type.js +0 -2
  45. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +0 -1
  46. package/lib/es6/component/AbstractButton/SpinButton.js.map +0 -1
  47. package/lib/esm/component/AbstractButton/AbstractButton.mjs +0 -129
  48. package/lib/types/component/AbstractButton/AbstractButton.d.ts +0 -21
  49. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +0 -37
  50. package/src/component/AbstractButton/AbstractButton.tsx +0 -171
  51. package/src/component/AbstractButton/AbstractButton.type.ts +0 -43
  52. /package/lib/cjs/component/{AbstractButton → Button}/SpinButton.js +0 -0
  53. /package/lib/es6/component/{AbstractButton → Button}/SpinButton.js +0 -0
  54. /package/lib/esm/component/{AbstractButton → Button}/SpinButton.mjs +0 -0
  55. /package/lib/types/component/{AbstractButton → Button}/SpinButton.d.ts +0 -0
  56. /package/src/component/{AbstractButton → Button}/SpinButton.tsx +0 -0
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [17.0.0] - 2026-03-09
5
+ ## [17.0.0] - 2026-03-27
6
6
 
7
7
  ### BREAK
8
8
 
@@ -4,13 +4,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.RootButton = exports.MAP_USE_DEFAULT_THEME = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _core = require("@semcore/core");
10
10
  var _baseComponents = require("@semcore/base-components");
11
+ var _addonTextChildren = _interopRequireDefault(require("@semcore/core/lib/utils/addonTextChildren"));
12
+ var _hasLabels = _interopRequireDefault(require("@semcore/core/lib/utils/hasLabels"));
13
+ var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
11
14
  var _typography = require("@semcore/typography");
12
15
  var _react = _interopRequireDefault(require("react"));
13
- var _AbstractButton = require("../AbstractButton/AbstractButton");
16
+ var _SpinButton = _interopRequireDefault(require("./SpinButton"));
14
17
  /*!__reshadow-styles__:"./button.shadow.css"*/
15
18
  const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SButton_1vv7x_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;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_1vv7x_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_1vv7x_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_1vv7x_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_1vv7x_gg_.__disabled_1vv7x_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_1vv7x_gg_._size_s_1vv7x_gg_{width:var(--intergalactic-form-control-s, 20px);height:var(--intergalactic-form-control-s, 20px);border-radius:var(--intergalactic-addon-rounded, 4px)}.___SButton_1vv7x_gg_._size_m_1vv7x_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_1vv7x_gg_._size_l_1vv7x_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand, #ff642d)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_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_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_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_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_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_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._neighborLocation_right_1vv7x_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_{border-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{position:relative}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary-invert, #ffffff)}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_1vv7x_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_1vv7x_gg_.__loading_1vv7x_gg_{visibility:hidden}.___SText_1vv7x_gg_{display:inline-flex}.___SText_1vv7x_gg_._size_l_1vv7x_gg_,.___SText_1vv7x_gg_._size_m_1vv7x_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_1vv7x_gg_._size_m_1vv7x_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_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_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_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__*/"1vv7x_gg_"),
16
19
  /*__reshadow_css_end__*/
@@ -42,11 +45,112 @@ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_star
42
45
  "_theme_tertiary-muted": "_theme_tertiary-muted_1vv7x_gg_",
43
46
  "_theme_tertiary-invert": "_theme_tertiary-invert_1vv7x_gg_"
44
47
  });
45
- class RootButton extends _AbstractButton.AbstractButton {
46
- getTextColor() {
47
- return undefined;
48
+ const MAP_USE_DEFAULT_THEME = exports.MAP_USE_DEFAULT_THEME = {
49
+ primary: 'info',
50
+ secondary: 'muted',
51
+ tertiary: 'info'
52
+ };
53
+ class RootButton extends _core.Component {
54
+ constructor(...args) {
55
+ super(...args);
56
+ (0, _defineProperty2.default)(this, "containerRef", /*#__PURE__*/_react.default.createRef());
57
+ (0, _defineProperty2.default)(this, "state", {
58
+ ariaLabelledByContent: null
59
+ });
60
+ }
61
+ getTextProps() {
62
+ const {
63
+ size
64
+ } = this.asProps;
65
+ return {
66
+ size,
67
+ 'hint:triggerRef': this.containerRef
68
+ };
69
+ }
70
+ getAddonProps() {
71
+ const {
72
+ size
73
+ } = this.asProps;
74
+ return {
75
+ size
76
+ };
77
+ }
78
+ componentDidMount() {
79
+ if (process.env.NODE_ENV !== 'production') {
80
+ _logger.default.warn(this.containerRef.current && !(0, _hasLabels.default)(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'] || RootButton.displayName);
81
+ }
82
+ const ariaLabelledby = this.asProps['aria-labelledby'];
83
+ if (ariaLabelledby) {
84
+ setTimeout(() => {
85
+ this.setState({
86
+ ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? ''
87
+ });
88
+ }, 0);
89
+ }
90
+ }
91
+ render() {
92
+ var _ref = this.asProps;
93
+ const {
94
+ styles,
95
+ use,
96
+ theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],
97
+ loading,
98
+ disabled = loading,
99
+ size,
100
+ neighborLocation,
101
+ children,
102
+ title,
103
+ ['aria-label']: ariaLabel,
104
+ Children,
105
+ addonLeft: AddonLeft,
106
+ addonRight: AddonRight,
107
+ hintPlacement
108
+ } = this.asProps;
109
+ const SButton = _baseComponents.Box;
110
+ // @ts-ignore
111
+ const Button = this[_core.CORE_INSTANCE];
112
+ const useTheme = use && theme ? `${use}-${theme}` : false;
113
+ const SInner = _baseComponents.Box;
114
+ const SSpin = _baseComponents.Box;
115
+ const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
116
+ const showHint = children === undefined || title;
117
+ return /*#__PURE__*/_react.default.createElement(_baseComponents.NeighborLocation.Detect, {
118
+ neighborLocation: neighborLocation
119
+ }, neighborLocation => {
120
+ var _ref4;
121
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(SButton, _ref4.cn("SButton", {
122
+ ...(0, _core.assignProps)({
123
+ "invertOutline": theme === 'invert',
124
+ "type": 'button',
125
+ "tag": 'button',
126
+ "tabIndex": 0,
127
+ "disabled": disabled,
128
+ "use:theme": useTheme,
129
+ "ref": this.containerRef,
130
+ "aria-busy": loading,
131
+ "__excludeProps": ['title'],
132
+ "aria-label": showHint ? buttonAriaLabel : undefined,
133
+ "neighborLocation": neighborLocation
134
+ }, _ref)
135
+ }), /*#__PURE__*/_react.default.createElement(SInner, _ref4.cn("SInner", {
136
+ "tag": 'span',
137
+ "loading": loading,
138
+ "data-ui-name": `${this.asProps['data-ui-name']}.InnerWrapper`
139
+ }), AddonLeft ? /*#__PURE__*/_react.default.createElement(Button.Addon, null, /*#__PURE__*/_react.default.createElement(AddonLeft, _ref4.cn("AddonLeft", {}))) : null, (0, _addonTextChildren.default)(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react.default.createElement(Button.Addon, null, /*#__PURE__*/_react.default.createElement(AddonRight, _ref4.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/_react.default.createElement(SSpin, _ref4.cn("SSpin", {
140
+ "tag": 'span'
141
+ }), /*#__PURE__*/_react.default.createElement(_SpinButton.default, _ref4.cn("SpinButton", {
142
+ "centered": true,
143
+ "size": size,
144
+ "theme": useTheme
145
+ })))), showHint && /*#__PURE__*/_react.default.createElement(_baseComponents.Hint, _ref4.cn("Hint", {
146
+ "triggerRef": this.containerRef,
147
+ "timeout": [250, 50],
148
+ "placement": hintPlacement
149
+ }), buttonAriaLabel));
150
+ });
48
151
  }
49
152
  }
153
+ exports.RootButton = RootButton;
50
154
  (0, _defineProperty2.default)(RootButton, "displayName", 'Button');
51
155
  (0, _defineProperty2.default)(RootButton, "style", style);
52
156
  (0, _defineProperty2.default)(RootButton, "defaultProps", {
@@ -54,21 +158,21 @@ class RootButton extends _AbstractButton.AbstractButton {
54
158
  size: 'm'
55
159
  });
56
160
  function ButtonText(props) {
57
- var _ref = arguments[0],
58
- _ref3;
161
+ var _ref2 = arguments[0],
162
+ _ref5;
59
163
  const SText = _typography.Text;
60
- return _ref3 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SText, _ref3.cn("SText", {
61
- ...(0, _core.assignProps)({}, _ref)
164
+ return _ref5 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SText, _ref5.cn("SText", {
165
+ ...(0, _core.assignProps)({}, _ref2)
62
166
  }));
63
167
  }
64
168
  function Addon(props) {
65
- var _ref2 = arguments[0],
66
- _ref4;
169
+ var _ref3 = arguments[0],
170
+ _ref6;
67
171
  const SAddon = _baseComponents.Box;
68
- return _ref4 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SAddon, _ref4.cn("SAddon", {
172
+ return _ref6 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SAddon, _ref6.cn("SAddon", {
69
173
  ...(0, _core.assignProps)({
70
174
  "tag": 'span'
71
- }, _ref2)
175
+ }, _ref3)
72
176
  }));
73
177
  }
74
178
  const Button = (0, _core.createComponent)(RootButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["_core","require","_baseComponents","_typography","_react","_interopRequireDefault","_AbstractButton","style","sstyled","insert","RootButton","AbstractButton","getTextColor","undefined","_defineProperty2","default","use","size","ButtonText","props","_ref","arguments[0]","_ref3","SText","Text","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","Box","Button","createComponent","_default","exports"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction ButtonText(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text: ButtonText,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAIA,IAAAK,eAAA,GAAAL,OAAA;AAAkE;AAAA,MAAAM,KAAA,8BAAAP,KAAA,CAAAQ,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,UAAU,SAASC,8BAAc,CAAC;EAQ5BC,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAAC,IAAAC,gBAAA,CAAAC,OAAA,EAXKL,UAAU,iBACO,QAAQ;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EADzBL,UAAU,WAECH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAFhBL,UAAU,kBAGQ;EACpBM,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,UAAUA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC1C,MAAMC,KAAK,GACiCC,gBAAI;EAAhD,OAAAF,KAAA,GAAO,IAAAd,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAA3B,KAAA,CAAA4B,WAAA,MAAAR,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASS,KAAKA,CAACV,KAAuB,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EACtC,MAAMC,MAAM,GACiCC,mBAAG;EAAhD,OAAAF,KAAA,GAAO,IAAAvB,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAA3B,KAAA,CAAA4B,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMI,MAAM,GAAG,IAAAC,qBAAe,EAACzB,UAAU,EAAE;EACzCc,IAAI,EAAEN,UAAU;EAChBW;AACF,CAAC,CAAoB;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEPmB,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"Button.js","names":["_core","require","_baseComponents","_addonTextChildren","_interopRequireDefault","_hasLabels","_logger","_typography","_react","_SpinButton","style","sstyled","insert","MAP_USE_DEFAULT_THEME","exports","primary","secondary","tertiary","RootButton","Component","constructor","args","_defineProperty2","default","React","createRef","ariaLabelledByContent","getTextProps","size","asProps","containerRef","getAddonProps","componentDidMount","process","env","NODE_ENV","logger","warn","current","hasLabels","title","displayName","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","theme","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Box","Button","CORE_INSTANCE","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","NeighborLocation","Detect","_ref4","Fragment","cn","assignProps","Addon","addonTextChildren","Text","Hint","ButtonText","props","_ref2","arguments[0]","_ref5","SText","_ref3","_ref6","SAddon","createComponent","_default"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, createComponent, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonProps, ButtonAddonProps, ButtonTextProps, ButtonComponent } from './Button.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport class RootButton extends Component<ButtonProps, [], never, {}, State> {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n getTextProps() {\n const { size } = this.asProps;\n\n return {\n size,\n 'hint:triggerRef': this.containerRef,\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) && !this.asProps.title,\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 const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\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,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction ButtonText(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text: ButtonText,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\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/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\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> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
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 { TextProps } 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 = TextProps;\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":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinButton.js","names":["_spin","_interopRequireDefault","require","_react","SPIN_SIZE_MAP","exports","xl","l","m","s","SpinButton","theme","size","others","default","createElement","_extends2"],"sources":["../../../../src/component/Button/SpinButton.tsx"],"sourcesContent":["import Spin from '@semcore/spin';\nimport React from 'react';\n\nexport const SPIN_SIZE_MAP: Record<string, string> = {\n xl: 'm',\n l: 's',\n m: 'xs',\n s: 'xxs',\n};\n\nexport default function SpinButton({ theme, size, ...others }: any) {\n return (\n <Spin\n size={typeof size === 'string' ? SPIN_SIZE_MAP[size] : size}\n theme='currentColor'\n {...others}\n />\n );\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEO,MAAME,aAAqC,GAAAC,OAAA,CAAAD,aAAA,GAAG;EACnDE,EAAE,EAAE,GAAG;EACPC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAC;AAEc,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAE,GAAGC;AAAY,CAAC,EAAE;EAClE,oBACEV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACf,KAAA,CAAAc,OAAI,MAAAE,SAAA,CAAAF,OAAA;IACHF,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAGR,aAAa,CAACQ,IAAI,CAAC,GAAGA,IAAK;IAC5DD,KAAK,EAAC;EAAc,GAChBE,MAAM,CACX,CAAC;AAEN","ignoreList":[]}
@@ -7,72 +7,47 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ButtonLink = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _core = require("@semcore/core");
10
- var _baseComponents = require("@semcore/base-components");
11
- var _resolveColorEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/resolveColorEnhance"));
12
- var _typography = require("@semcore/typography");
10
+ var _link = _interopRequireDefault(require("@semcore/link"));
13
11
  var _react = _interopRequireDefault(require("react"));
14
- var _AbstractButton = require("../AbstractButton/AbstractButton");
15
12
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
16
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SButton_b33zi_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_b33zi_gg_,.___SButton_b33zi_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_b33zi_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_b33zi_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_b33zi_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_b33zi_gg_.__active_b33zi_gg_ .___SText_b33zi_gg_,.___SButton_b33zi_gg_:active .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_b33zi_gg_:hover .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_b33zi_gg_.__disabled_b33zi_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_b33zi_gg_,.___SInner_b33zi_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_b33zi_gg_{height:100%;width:100%}.___SAddon_b33zi_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_{color:var(--text-color_b33zi)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_.__text-color_b33zi_gg_:active{color:var(--text-color_b33zi);filter:brightness(.8)}@media (hover:hover){.___SButton_b33zi_gg_.__text-color_b33zi_gg_:hover{color:var(--text-color_b33zi);filter:brightness(.8)}}.___SButton_b33zi_gg_._size_100_b33zi_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_b33zi_gg_._size_200_b33zi_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_b33zi_gg_._size_300_b33zi_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_b33zi_gg_._size_400_b33zi_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_b33zi_gg_._size_500_b33zi_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_b33zi_gg_._size_600_b33zi_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_b33zi_gg_._size_700_b33zi_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_b33zi_gg_._size_800_b33zi_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_b33zi_gg_,.___SButton_b33zi_gg_ .___SText_b33zi_gg_{transition:none}}", /*__inner_css_end__*/"b33zi_gg_"),
13
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SButtonLink_3pzzd_gg_{border:0;font-family:inherit}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-link, #006dca)}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-hint, #6c6e79)}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_ .___SText_3pzzd_gg_{text-decoration-style:dashed;text-decoration-color:currentColor}", /*__inner_css_end__*/"3pzzd_gg_"),
17
14
  /*__reshadow_css_end__*/
18
15
  {
19
- "__SButton": "___SButton_b33zi_gg_",
20
- "_disabled": "__disabled_b33zi_gg_",
21
- "__SInner": "___SInner_b33zi_gg_",
22
- "__SAddon": "___SAddon_b33zi_gg_",
23
- "_size_100": "_size_100_b33zi_gg_",
24
- "_size_200": "_size_200_b33zi_gg_",
25
- "_size_300": "_size_300_b33zi_gg_",
26
- "_size_400": "_size_400_b33zi_gg_",
27
- "_size_500": "_size_500_b33zi_gg_",
28
- "_size_600": "_size_600_b33zi_gg_",
29
- "_size_700": "_size_700_b33zi_gg_",
30
- "_size_800": "_size_800_b33zi_gg_",
31
- "_active": "__active_b33zi_gg_",
32
- "__SText": "___SText_b33zi_gg_",
33
- "_enableVisited": "__enableVisited_b33zi_gg_",
34
- "_use_secondary": "_use_secondary_b33zi_gg_",
35
- "_text-color": "__text-color_b33zi_gg_",
36
- "--text-color": "--text-color_b33zi"
16
+ "__SButtonLink": "___SButtonLink_3pzzd_gg_",
17
+ "_use_secondary": "_use_secondary_3pzzd_gg_",
18
+ "__SText": "___SText_3pzzd_gg_",
19
+ "_use_primary": "_use_primary_3pzzd_gg_",
20
+ "_color": "__color_3pzzd_gg_",
21
+ "_active": "__active_3pzzd_gg_"
37
22
  });
38
- const enhance = {
39
- resolveColor: (0, _resolveColorEnhance.default)()
40
- };
41
- class RootButtonLink extends _AbstractButton.AbstractButton {
42
- getTextColor() {
23
+ class RootButtonLink extends _core.Component {
24
+ render() {
25
+ var _ref = this.asProps,
26
+ _ref2;
27
+ const SButtonLink = _link.default;
43
28
  const {
44
- color,
45
- resolveColor
29
+ disabled
46
30
  } = this.asProps;
47
- return resolveColor(color);
31
+ return _ref2 = (0, _core.sstyled)(style), /*#__PURE__*/_react.default.createElement(SButtonLink, _ref2.cn("SButtonLink", {
32
+ ...(0, _core.assignProps)({
33
+ "tag": 'button',
34
+ "type": 'button',
35
+ "use:disabled": disabled,
36
+ "use:tabIndex": 0
37
+ }, _ref)
38
+ }));
48
39
  }
49
40
  }
50
41
  (0, _defineProperty2.default)(RootButtonLink, "displayName", 'ButtonLink');
51
- (0, _defineProperty2.default)(RootButtonLink, "enhance", Object.values(enhance));
52
42
  (0, _defineProperty2.default)(RootButtonLink, "style", style);
53
43
  (0, _defineProperty2.default)(RootButtonLink, "defaultProps", {
54
- use: 'primary'
44
+ use: 'primary',
45
+ size: 200
55
46
  });
56
- function LinkText(props) {
57
- var _ref = arguments[0],
58
- _ref3;
59
- const SText = _typography.Text;
60
- return _ref3 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SText, _ref3.cn("SText", {
61
- ...(0, _core.assignProps)({}, _ref)
62
- }));
63
- }
64
- function Addon(props) {
65
- var _ref2 = arguments[0],
66
- _ref4;
67
- const SAddon = _baseComponents.Box;
68
- return _ref4 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SAddon, _ref4.cn("SAddon", {
69
- ...(0, _core.assignProps)({
70
- "tag": 'span'
71
- }, _ref2)
72
- }));
73
- }
74
47
  const ButtonLink = exports.ButtonLink = (0, _core.createComponent)(RootButtonLink, {
75
- Text: LinkText,
76
- Addon
48
+ Text: _link.default.Text,
49
+ Addon: _link.default.Addon
50
+ }, {
51
+ parent: _link.default
77
52
  });
78
53
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.js","names":["_core","require","_baseComponents","_resolveColorEnhance","_interopRequireDefault","_typography","_react","_AbstractButton","style","sstyled","insert","enhance","resolveColor","resolveColorEnhance","RootButtonLink","AbstractButton","getTextColor","color","asProps","_defineProperty2","default","Object","values","use","LinkText","props","_ref","arguments[0]","_ref3","SText","Text","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","Box","ButtonLink","exports","createComponent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\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 LinkText(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\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: LinkText,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAF,sBAAA,CAAAH,OAAA;AAIA,IAAAM,eAAA,GAAAN,OAAA;AAAkE;AAAA,MAAAO,KAAA,8BAAAR,KAAA,CAAAS,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAE,IAAAC,4BAAmB,EAAC;AACpC,CAAC;AAED,MAAMC,cAAc,SAASC,8BAAc,CAAC;EAQhCC,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEL;IAAa,CAAC,GAAG,IAAI,CAACM,OAAc;IACnD,OAAON,YAAY,CAACK,KAAK,CAAC;EAC5B;AACF;AAAC,IAAAE,gBAAA,CAAAC,OAAA,EAZKN,cAAc,iBACG,YAAY;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAD7BN,cAAc,aAEDO,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC;AAAA,IAAAQ,gBAAA,CAAAC,OAAA,EAFnCN,cAAc,WAGHN,KAAK;AAAA,IAAAW,gBAAA,CAAAC,OAAA,EAHhBN,cAAc,kBAII;EACpBS,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,QAAQA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC5C,MAAMC,KAAK,GACiCC,gBAAI;EAAhD,OAAAF,KAAA,GAAO,IAAAnB,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAAjC,KAAA,CAAAkC,WAAA,MAAAR,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASS,KAAKA,CAACV,KAA2B,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EAC1C,MAAMC,MAAM,GACiCC,mBAAG;EAAhD,OAAAF,KAAA,GAAO,IAAA5B,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAAjC,KAAA,CAAAkC,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEO,MAAMI,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,qBAAe,EAAC5B,cAAc,EAAE;EACxDgB,IAAI,EAAEN,QAAQ;EACdW;AACF,CAAC,CAAwB","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.js","names":["_core","require","_link","_interopRequireDefault","_react","style","sstyled","insert","RootButtonLink","Component","render","_ref","asProps","_ref2","SButtonLink","Link","disabled","default","createElement","cn","assignProps","_defineProperty2","use","size","ButtonLink","exports","createComponent","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,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA0B;AAAA,MAAAI,KAAA,8BAAAL,KAAA,CAAAM,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAK1B,MAAMC,cAAc,SAASC,eAAS,CAAkB;EAQtDC,MAAMA,CAAA,EAAoB;IAAA,IAAAC,IAAA,QAAAC,OAAA;MAAAC,KAAA;IACxB,MAAMC,WAAW,GAKLC,aAAI;IAJhB,MAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACJ,OAAO;IAEjC,OAAAC,KAAA,GAAO,IAAAP,aAAO,EAACD,KAAK,CAAC,eACnBD,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACJ,WAAW,EAAAD,KAAA,CAAAM,EAAA;MAAA,OAAAnB,KAAA,CAAAoB,WAAA;QAAA,OAEN,QAAQ;QAAA,QACP,QAAQ;QAAA,gBACCJ,QAAQ;QAAA,gBACR;MAAC,GAAAL,IAAA;IAAA,EAChB,CAAC;EAEN;AACF;AAAC,IAAAU,gBAAA,CAAAJ,OAAA,EAtBKT,cAAc,iBACG,YAAY;AAAA,IAAAa,gBAAA,CAAAJ,OAAA,EAD7BT,cAAc,WAEHH,KAAK;AAAA,IAAAgB,gBAAA,CAAAJ,OAAA,EAFhBT,cAAc,kBAGI;EACpBc,GAAG,EAAE,SAAS;EACdC,IAAI,EAAE;AACR,CAAC;AAkBI,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,qBAAe,EAAClB,cAAc,EAAE;EACxDmB,IAAI,EAAEZ,aAAI,CAACY,IAAI;EACfC,KAAK,EAAEb,aAAI,CAACa;AACd,CAAC,EAAE;EACDC,MAAM,EAAEd;AACV,CAAC,CAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\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> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
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 { TextProps } 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 = TextProps;\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,59 +1,19 @@
1
- SButton {
2
- display: inline-flex;
1
+ SButtonLink {
2
+ border: none;
3
3
  font-family: inherit;
4
- font-size: var(--intergalactic-fs-200, 14px);
4
+ }
5
+
6
+ SButtonLink[use='primary']:not([color]) {
5
7
  color: var(--intergalactic-text-link, #006dca);
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
- background: none;
16
- transition: color 0.15s ease-in-out;
17
8
 
9
+ &[active],
18
10
  &:active,
19
11
  &:hover {
20
- text-decoration: none;
21
- }
22
-
23
- &::-moz-focus-inner {
24
- border: none;
25
- padding: 0;
26
- }
27
-
28
- &[active],
29
- &:hover,
30
- &:active {
31
12
  color: var(--intergalactic-text-link-hover-active, #044792);
32
-
33
- & SText {
34
- box-shadow: 0 1px 0 0 currentColor;
35
- }
36
- }
37
-
38
- &[enableVisited]:visited,
39
- &[enableVisited]:visited:hover {
40
- color: var(--intergalactic-text-link-visited, #8649e1);
41
13
  }
42
-
43
- SText {
44
- box-shadow: 0 1px 0 0 transparent;
45
- transition: box-shadow 0.15s ease-in-out;
46
- }
47
- }
48
-
49
- SButton[disabled] {
50
- opacity: var(--intergalactic-disabled-opacity, 0.3);
51
- cursor: default;
52
- /* Disable link interactions */
53
- pointer-events: none;
54
14
  }
55
15
 
56
- SButton[use='secondary'] {
16
+ SButtonLink[use='secondary']:not([color]) {
57
17
  color: var(--intergalactic-text-hint, #6c6e79);
58
18
 
59
19
  &[active],
@@ -61,99 +21,9 @@ SButton[use='secondary'] {
61
21
  &:hover {
62
22
  color: var(--intergalactic-text-hint-hover-active, #484a54);
63
23
  }
64
-
65
- SText {
66
- box-shadow: none;
67
- border-bottom-width: 1px;
68
- border-bottom-style: dashed;
69
- border-color: currentColor;
70
- }
71
24
  }
72
25
 
73
- SInner {
74
- display: inline-flex;
75
- align-items: baseline;
76
- justify-content: center;
77
- height: 100%;
78
- width: 100%;
79
- }
80
-
81
- SAddon {
82
- display: inline-flex;
83
- justify-content: center;
84
- align-items: baseline;
85
- vertical-align: middle;
86
- pointer-events: none;
87
- align-self: center;
88
- }
89
-
90
- SButton SAddon {
91
- &:not(:only-child):first-child {
92
- margin-right: var(--intergalactic-spacing-1x, 4px);
93
- }
94
-
95
- &:not(:only-child):last-child {
96
- margin-left: var(--intergalactic-spacing-1x, 4px);
97
- }
98
- }
99
-
100
- SButton[text-color] {
101
- color: var(--text-color);
102
-
103
- &[active],
104
- &:hover,
105
- &:active {
106
- color: var(--text-color);
107
- filter: brightness(0.8);
108
- }
109
- }
110
-
111
- SButton[size='100'] {
112
- font-size: var(--intergalactic-fs-100, 12px);
113
- line-height: var(--intergalactic-lh-100, 133%);
114
- }
115
-
116
- SButton[size='200'] {
117
- font-size: var(--intergalactic-fs-200, 14px);
118
- line-height: var(--intergalactic-lh-200, 142%);
119
- }
120
-
121
- SButton[size='300'] {
122
- font-size: var(--intergalactic-fs-300, 16px);
123
- line-height: var(--intergalactic-lh-300, 150%);
124
- }
125
-
126
- SButton[size='400'] {
127
- font-size: var(--intergalactic-fs-400, 20px);
128
- line-height: var(--intergalactic-lh-400, 120%);
129
- }
130
-
131
- SButton[size='500'] {
132
- font-size: var(--intergalactic-fs-500, 24px);
133
- line-height: var(--intergalactic-lh-500, 117%);
134
- }
135
-
136
- SButton[size='600'] {
137
- font-size: var(--intergalactic-fs-600, 32px);
138
- line-height: var(--intergalactic-lh-600, 125%);
139
- }
140
-
141
- SButton[size='700'] {
142
- font-size: var(--intergalactic-fs-700, 36px);
143
- line-height: var(--intergalactic-lh-700, 110%);
144
- }
145
-
146
- SButton[size='800'] {
147
- font-size: var(--intergalactic-fs-800, 48px);
148
- line-height: var(--intergalactic-lh-800, 117%);
149
- }
150
-
151
- @media (prefers-reduced-motion) {
152
- SButton {
153
- transition: none;
154
-
155
- SText {
156
- transition: none;
157
- }
158
- }
26
+ SButtonLink[use='secondary'] SText {
27
+ text-decoration-style: dashed;
28
+ text-decoration-color: currentColor;
159
29
  }
package/lib/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -10,7 +10,7 @@ var _exportNames = {
10
10
  Object.defineProperty(exports, "MAP_USE_DEFAULT_THEME", {
11
11
  enumerable: true,
12
12
  get: function () {
13
- return _AbstractButton.MAP_USE_DEFAULT_THEME;
13
+ return _Button.MAP_USE_DEFAULT_THEME;
14
14
  }
15
15
  });
16
16
  Object.defineProperty(exports, "default", {
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "default", {
19
19
  return _Button.default;
20
20
  }
21
21
  });
22
- var _Button = _interopRequireDefault(require("./component/Button/Button"));
22
+ var _Button = _interopRequireWildcard(require("./component/Button/Button"));
23
23
  var _Button2 = require("./component/Button/Button.type");
24
24
  Object.keys(_Button2).forEach(function (key) {
25
25
  if (key === "default" || key === "__esModule") return;
@@ -56,5 +56,4 @@ Object.keys(_ButtonLink2).forEach(function (key) {
56
56
  }
57
57
  });
58
58
  });
59
- var _AbstractButton = require("./component/AbstractButton/AbstractButton");
60
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Button","_interopRequireDefault","require","_Button2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_ButtonLink","_ButtonLink2","_AbstractButton"],"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,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,WAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,WAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,WAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,WAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,YAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,YAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,YAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,YAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,eAAA,GAAAhB,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_Button","_interopRequireWildcard","require","_Button2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_ButtonLink","_ButtonLink2"],"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,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,WAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,WAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,WAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,WAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,YAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,YAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,YAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,YAAA,CAAAV,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}