@semcore/link 16.0.11-prerelease.5 → 17.0.0-prerelease.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [16.0.11] - 2025-10-28
5
+ ## [17.0.0] - 2026-02-18
6
+
7
+ ### BREAK
8
+
9
+ - New major version.
10
+
11
+ ## [16.0.11] - 2025-10-29
6
12
 
7
13
  ### Changed
8
14
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![version](https://img.shields.io/npm/v/@semcore/link.svg)](https://www.npmjs.com/@semcore/link)
4
4
  [![downloads](https://img.shields.io/npm/dt/@semcore/link.svg)](https://www.npmjs.com/package/@semcore/link)
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/semrush/intergalactic/blob/master/LICENSE)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/semrush/intergalactic/blob/HEAD/LICENSE)
6
6
 
7
7
  > This component is part of the Intergalactic Design System
8
8
 
@@ -20,13 +20,13 @@ npm install @semcore/link
20
20
 
21
21
  ## 👤 Author
22
22
 
23
- [UI-kit team](https://github.com/semrush/intergalactic/blob/master/MAINTAINERS) and [others ❤️](https://github.com/semrush/intergalactic/graphs/contributors)
23
+ [UI-kit team](https://github.com/semrush/intergalactic/blob/HEAD/MAINTAINERS) and [others ❤️](https://github.com/semrush/intergalactic/graphs/contributors)
24
24
 
25
25
  ## 🤝 Contributing
26
26
 
27
27
  Contributions, issues and feature requests are welcome!
28
28
 
29
- Feel free to check [issues page](https://github.com/semrush/intergalactic/issues). You can also take a look at the [contributing guide](https://github.com/semrush/intergalactic/blob/master/CONTRIBUTING.md).
29
+ Feel free to check [issues page](https://github.com/semrush/intergalactic/issues). You can also take a look at the [contributing guide](https://github.com/semrush/intergalactic/blob/HEAD/CONTRIBUTING.md).
30
30
 
31
31
  ## Show your support
32
32
 
@@ -34,4 +34,4 @@ Give a ⭐️ if this project helped you!
34
34
 
35
35
  ## 📝 License
36
36
 
37
- This project is [MIT](https://github.com/semrush/intergalactic/blob/master/LICENSE) licensed.
37
+ This project is [MIT](https://github.com/semrush/intergalactic/blob/HEAD/LICENSE) licensed.
package/lib/cjs/Link.js CHANGED
@@ -1,177 +1,133 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
7
+ exports.default = void 0;
13
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
9
  var _core = require("@semcore/core");
10
+ var _baseComponents = require("@semcore/base-components");
15
11
  var _addonTextChildren = _interopRequireDefault(require("@semcore/core/lib/utils/addonTextChildren"));
16
- var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/keyboardFocusEnhance"));
17
12
  var _resolveColorEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/resolveColorEnhance"));
18
13
  var _hasLabels = _interopRequireDefault(require("@semcore/core/lib/utils/hasLabels"));
19
14
  var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
20
- var _flexBox = require("@semcore/flex-box");
21
- var _tooltip = require("@semcore/tooltip");
22
15
  var _typography = require("@semcore/typography");
23
16
  var _react = _interopRequireDefault(require("react"));
24
17
  /*!__reshadow-styles__:"./style/link.shadow.css"*/
25
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SLink_7kc3r_gg_{display:inline-block;font-family:inherit;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}.___SLink_7kc3r_gg_,.___SLink_7kc3r_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SLink_7kc3r_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SLink_7kc3r_gg_::-moz-focus-inner{border:0;padding:0}.___SLink_7kc3r_gg_.__active_7kc3r_gg_,.___SLink_7kc3r_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SLink_7kc3r_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SLink_7kc3r_gg_.__active_7kc3r_gg_ .___SText_7kc3r_gg_,.___SLink_7kc3r_gg_:active .___SText_7kc3r_gg_{border-color:currentColor}@media (hover:hover){.___SLink_7kc3r_gg_:hover .___SText_7kc3r_gg_{border-color:currentColor}}.___SLink_7kc3r_gg_.__enableVisited_7kc3r_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SLink_7kc3r_gg_.__enableVisited_7kc3r_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SLink_7kc3r_gg_.__visually-disabled_7kc3r_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SLink_7kc3r_gg_.__noWrapText_7kc3r_gg_{white-space:nowrap}.___SLink_7kc3r_gg_.__inline_7kc3r_gg_{display:inline}.___SAddon_7kc3r_gg_{display:inline-flex;justify-content:center;align-items:center;margin-bottom:var(--intergalactic-spacing-05x, 2px);vertical-align:middle;pointer-events:none}.___SLink_7kc3r_gg_ .___SAddon_7kc3r_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SLink_7kc3r_gg_ .___SAddon_7kc3r_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SText_7kc3r_gg_{border-bottom-width:1px;border-bottom-style:solid;border-color:transparent;transition:border-bottom-color .15s ease-in-out}.___SLink_7kc3r_gg_.__text-color_7kc3r_gg_{color:var(--text-color_7kc3r)}.___SLink_7kc3r_gg_.__text-color_7kc3r_gg_.__active_7kc3r_gg_,.___SLink_7kc3r_gg_.__text-color_7kc3r_gg_:active{color:var(--text-color_7kc3r);filter:brightness(.8)}@media (hover:hover){.___SLink_7kc3r_gg_.__text-color_7kc3r_gg_:hover{color:var(--text-color_7kc3r);filter:brightness(.8)}}@media (prefers-reduced-motion){.___SLink_7kc3r_gg_,.___SText_7kc3r_gg_{transition:none}}", /*__inner_css_end__*/"7kc3r_gg_"),
18
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SLink_1dx8e_gg_{display:inline;align-items:center;color:var(--intergalactic-text-link, #006dca);position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SLink_1dx8e_gg_,.___SLink_1dx8e_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SLink_1dx8e_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SLink_1dx8e_gg_::-moz-focus-inner{border:0;padding:0}.___SLink_1dx8e_gg_.__active_1dx8e_gg_,.___SLink_1dx8e_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SLink_1dx8e_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SLink_1dx8e_gg_.__active_1dx8e_gg_ .___SText_1dx8e_gg_,.___SLink_1dx8e_gg_:active .___SText_1dx8e_gg_{border-color:currentColor}@media (hover:hover){.___SLink_1dx8e_gg_:hover .___SText_1dx8e_gg_{border-color:currentColor}}.___SLink_1dx8e_gg_.__enableVisited_1dx8e_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SLink_1dx8e_gg_.__enableVisited_1dx8e_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SLink_1dx8e_gg_.__visually-disabled_1dx8e_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SLink_1dx8e_gg_.__noWrap_1dx8e_gg_{white-space:nowrap}.___SLink_1dx8e_gg_.__inline_1dx8e_gg_{display:inline}.___SInner_1dx8e_gg_{align-items:baseline;height:100%;width:100%}.___SAddon_1dx8e_gg_{align-items:baseline;vertical-align:-2px;pointer-events:none;align-self:center}.___SLink_1dx8e_gg_ .___SAddon_1dx8e_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SLink_1dx8e_gg_ .___SAddon_1dx8e_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SText_1dx8e_gg_{border-bottom-width:1px;border-bottom-style:solid;border-color:transparent;transition:border-bottom-color .15s ease-in-out}.___SText_1dx8e_gg_.__ellipsis_1dx8e_gg_{vertical-align:middle}.___SLink_1dx8e_gg_.__text-color_1dx8e_gg_{color:var(--text-color_1dx8e)}.___SLink_1dx8e_gg_.__text-color_1dx8e_gg_.__active_1dx8e_gg_,.___SLink_1dx8e_gg_.__text-color_1dx8e_gg_:active{color:var(--text-color_1dx8e);filter:brightness(.8)}@media (hover:hover){.___SLink_1dx8e_gg_.__text-color_1dx8e_gg_:hover{color:var(--text-color_1dx8e);filter:brightness(.8)}}@media (prefers-reduced-motion){.___SLink_1dx8e_gg_,.___SText_1dx8e_gg_{transition:none}}", /*__inner_css_end__*/"1dx8e_gg_"),
26
19
  /*__reshadow_css_end__*/
27
20
  {
28
- "__SLink": "___SLink_7kc3r_gg_",
29
- "_visually-disabled": "__visually-disabled_7kc3r_gg_",
30
- "_noWrapText": "__noWrapText_7kc3r_gg_",
31
- "_inline": "__inline_7kc3r_gg_",
32
- "__SAddon": "___SAddon_7kc3r_gg_",
33
- "__SText": "___SText_7kc3r_gg_",
34
- "_active": "__active_7kc3r_gg_",
35
- "_enableVisited": "__enableVisited_7kc3r_gg_",
36
- "_text-color": "__text-color_7kc3r_gg_",
37
- "--text-color": "--text-color_7kc3r"
21
+ "__SLink": "___SLink_1dx8e_gg_",
22
+ "_visually-disabled": "__visually-disabled_1dx8e_gg_",
23
+ "_noWrap": "__noWrap_1dx8e_gg_",
24
+ "_inline": "__inline_1dx8e_gg_",
25
+ "__SInner": "___SInner_1dx8e_gg_",
26
+ "__SAddon": "___SAddon_1dx8e_gg_",
27
+ "__SText": "___SText_1dx8e_gg_",
28
+ "_ellipsis": "__ellipsis_1dx8e_gg_",
29
+ "_active": "__active_1dx8e_gg_",
30
+ "_enableVisited": "__enableVisited_1dx8e_gg_",
31
+ "_text-color": "__text-color_1dx8e_gg_",
32
+ "--text-color": "--text-color_1dx8e"
38
33
  });
39
- var RootLink = /*#__PURE__*/function (_Component) {
40
- function RootLink() {
41
- var _this;
42
- (0, _classCallCheck2["default"])(this, RootLink);
43
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
44
- args[_key] = arguments[_key];
45
- }
46
- _this = (0, _callSuper2["default"])(this, RootLink, [].concat(args));
47
- (0, _defineProperty2["default"])(_this, "containerRef", /*#__PURE__*/_react["default"].createRef());
48
- (0, _defineProperty2["default"])(_this, "state", {
34
+ class RootLink extends _core.Component {
35
+ constructor(...args) {
36
+ super(...args);
37
+ (0, _defineProperty2.default)(this, "containerRef", /*#__PURE__*/_react.default.createRef());
38
+ (0, _defineProperty2.default)(this, "state", {
49
39
  ariaLabelledByContent: ''
50
40
  });
51
- return _this;
52
41
  }
53
- (0, _inherits2["default"])(RootLink, _Component);
54
- return (0, _createClass2["default"])(RootLink, [{
55
- key: "componentDidMount",
56
- value: function componentDidMount() {
57
- var _this2 = this;
58
- if (process.env.NODE_ENV !== 'production') {
59
- _logger["default"].warn(this.containerRef.current && !(0, _hasLabels["default"])(this.containerRef.current), "'title' or 'aria-label' or 'aria-labelledby' are required props for links without text content", this.asProps['data-ui-name'] || RootLink.displayName);
60
- }
61
- if (this.asProps['aria-labelledby']) {
62
- setTimeout(function () {
63
- var _document$getElementB, _document$getElementB2;
64
- _this2.setState({
65
- ariaLabelledByContent: (_document$getElementB = (_document$getElementB2 = document.getElementById(_this2.asProps['aria-labelledby'])) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.textContent) !== null && _document$getElementB !== void 0 ? _document$getElementB : ''
66
- });
67
- }, 0);
68
- }
69
- }
70
- }, {
71
- key: "renderLink",
72
- value: function renderLink(_ref0) {
73
- var _ref = this.asProps,
74
- _ref5;
75
- var linkProps = _ref0.linkProps,
76
- children = _ref0.children;
77
- var styles = this.asProps.styles;
78
- var SLink = _typography.Text;
79
- return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SLink, _ref5.cn("SLink", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])({}, linkProps), _ref))), children);
80
- }
81
- }, {
82
- key: "renderLinkWithHint",
83
- value: function renderLinkWithHint(_ref1) {
84
- var _ref2 = this.asProps,
85
- _ref6;
86
- var linkProps = _ref1.linkProps,
87
- children = _ref1.children,
88
- hintProps = _ref1.hintProps;
89
- var styles = this.asProps.styles;
90
- var SLink = _tooltip.Hint;
91
- return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SLink, _ref6.cn("SLink", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, linkProps), hintProps), _ref2))), children);
42
+ componentDidMount() {
43
+ if (process.env.NODE_ENV !== 'production') {
44
+ _logger.default.warn(this.containerRef.current && !(0, _hasLabels.default)(this.containerRef.current), `'title' or 'aria-label' or 'aria-labelledby' are required props for links without text content`, this.asProps['data-ui-name'] || RootLink.displayName);
92
45
  }
93
- }, {
94
- key: "render",
95
- value: function render() {
96
- var _ref7, _ref10, _ref11;
97
- var _this$asProps = this.asProps,
98
- styles = _this$asProps.styles,
99
- noWrap = _this$asProps.noWrap,
100
- color = _this$asProps.color,
101
- resolveColor = _this$asProps.resolveColor,
102
- disabled = _this$asProps.disabled,
103
- href = _this$asProps.href,
104
- hasChildren = _this$asProps.children,
105
- AddonLeft = _this$asProps.addonLeft,
106
- AddonRight = _this$asProps.addonRight,
107
- Children = _this$asProps.Children,
108
- title = _this$asProps.title,
109
- ariaLabel = _this$asProps['aria-label'],
110
- hintPlacement = _this$asProps.hintPlacement;
111
- // @ts-ignore
112
- var Link = this[_core.CORE_INSTANCE];
113
- var children = (_ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, AddonLeft ? /*#__PURE__*/_react["default"].createElement(Link.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonLeft, _ref7.cn("AddonLeft", {}))) : null, (0, _addonTextChildren["default"])(Children, Link.Text, Link.Addon), AddonRight ? /*#__PURE__*/_react["default"].createElement(Link.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonRight, _ref7.cn("AddonRight", {}))) : null));
114
- var hintContent = (_ref10 = (_ref11 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref11 !== void 0 ? _ref11 : this.state.ariaLabelledByContent) !== null && _ref10 !== void 0 ? _ref10 : '';
115
- var linkProps = {
116
- 'role': 'link',
117
- 'tabIndex': disabled ? -1 : 0,
118
- 'use:href': disabled ? undefined : href,
119
- 'visually-disabled': disabled,
120
- 'render': _typography.Text,
121
- 'text-color': resolveColor(color),
122
- 'tag': 'a',
123
- 'noWrapText': noWrap,
124
- 'use:noWrap': false,
125
- 'ref': this.containerRef,
126
- '__excludeProps': ['disabled', 'aria-disabled']
127
- };
128
- var hintProps = {
129
- title: hintContent,
130
- timeout: [250, 50],
131
- placement: hintPlacement,
132
- __excludeProps: []
133
- };
134
- if (hasChildren === undefined || title) {
135
- return this.renderLinkWithHint({
136
- linkProps: linkProps,
137
- hintProps: hintProps,
138
- children: children
46
+ if (this.asProps['aria-labelledby']) {
47
+ setTimeout(() => {
48
+ this.setState({
49
+ ariaLabelledByContent: document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? ''
139
50
  });
140
- }
141
- return this.renderLink({
142
- linkProps: linkProps,
143
- children: children
144
- });
51
+ }, 0);
145
52
  }
146
- }]);
147
- }(_core.Component);
148
- (0, _defineProperty2["default"])(RootLink, "displayName", 'Link');
149
- (0, _defineProperty2["default"])(RootLink, "defaultProps", {
150
- noWrap: true
151
- });
152
- (0, _defineProperty2["default"])(RootLink, "style", style);
153
- (0, _defineProperty2["default"])(RootLink, "enhance", [(0, _keyboardFocusEnhance["default"])(), (0, _resolveColorEnhance["default"])()]);
53
+ }
54
+ render() {
55
+ var _ref = this.asProps,
56
+ _ref4;
57
+ const {
58
+ styles,
59
+ color,
60
+ resolveColor,
61
+ disabled,
62
+ href,
63
+ children,
64
+ addonLeft: AddonLeft,
65
+ addonRight: AddonRight,
66
+ Children,
67
+ title,
68
+ 'aria-label': ariaLabel,
69
+ hintPlacement
70
+ } = this.asProps;
71
+ // @ts-ignore
72
+ const Link = this[_core.CORE_INSTANCE];
73
+ const SLink = _typography.Text;
74
+ const SInner = _baseComponents.Box;
75
+ const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
76
+ const showHint = children === undefined || title;
77
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(SLink, _ref4.cn("SLink", {
78
+ ...(0, _core.assignProps)({
79
+ "role": 'link',
80
+ "tabIndex": disabled ? -1 : 0,
81
+ "use:href": disabled ? undefined : href,
82
+ "visually-disabled": disabled,
83
+ "text-color": resolveColor(color),
84
+ "tag": 'a',
85
+ "ref": this.containerRef,
86
+ "__excludeProps": ['disabled', 'aria-disabled'],
87
+ "aria-label": showHint ? hintContent : undefined
88
+ }, _ref)
89
+ }), /*#__PURE__*/_react.default.createElement(SInner, _ref4.cn("SInner", {
90
+ "tag": 'span',
91
+ "data-ui-name": `${this.asProps['data-ui-name']}.InnerWrapper`
92
+ }), AddonLeft ? /*#__PURE__*/_react.default.createElement(Link.Addon, null, /*#__PURE__*/_react.default.createElement(AddonLeft, _ref4.cn("AddonLeft", {}))) : null, (0, _addonTextChildren.default)(Children, Link.Text, Link.Addon), AddonRight ? /*#__PURE__*/_react.default.createElement(Link.Addon, null, /*#__PURE__*/_react.default.createElement(AddonRight, _ref4.cn("AddonRight", {}))) : null)), showHint && /*#__PURE__*/_react.default.createElement(_baseComponents.Hint, _ref4.cn("Hint", {
93
+ "triggerRef": this.containerRef,
94
+ "timeout": [250, 50],
95
+ "placement": hintPlacement
96
+ }), hintContent));
97
+ }
98
+ }
99
+ (0, _defineProperty2.default)(RootLink, "displayName", 'Link');
100
+ (0, _defineProperty2.default)(RootLink, "style", style);
101
+ (0, _defineProperty2.default)(RootLink, "enhance", [(0, _resolveColorEnhance.default)()]);
154
102
  function LinkText(props) {
155
- var _ref3 = arguments[0],
156
- _ref8;
157
- var SText = _flexBox.Box;
158
- var styles = props.styles;
159
- return _ref8 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SText, _ref8.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
160
- "tag": 'span'
161
- }, _ref3))));
103
+ var _ref2 = arguments[0],
104
+ _ref5;
105
+ const SText = _typography.Text;
106
+ const {
107
+ styles
108
+ } = props;
109
+ return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SText, _ref5.cn("SText", {
110
+ ...(0, _core.assignProps)({
111
+ "tag": 'span'
112
+ }, _ref2)
113
+ }));
162
114
  }
163
115
  function Addon(props) {
164
- var _ref4 = arguments[0],
165
- _ref9;
166
- var SAddon = _flexBox.Box;
167
- var styles = props.styles;
168
- return _ref9 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref9.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
169
- "tag": 'span'
170
- }, _ref4))));
116
+ var _ref3 = arguments[0],
117
+ _ref6;
118
+ const SAddon = _baseComponents.Box;
119
+ const {
120
+ styles
121
+ } = props;
122
+ return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SAddon, _ref6.cn("SAddon", {
123
+ ...(0, _core.assignProps)({
124
+ "tag": 'span'
125
+ }, _ref3)
126
+ }));
171
127
  }
172
- var Link = (0, _core.createComponent)(RootLink, {
128
+ const Link = (0, _core.createComponent)(RootLink, {
173
129
  Text: LinkText,
174
- Addon: Addon
130
+ Addon
175
131
  });
176
- var _default = exports["default"] = Link;
132
+ var _default = exports.default = Link;
177
133
  //# sourceMappingURL=Link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","names":["_core","require","_addonTextChildren","_interopRequireDefault","_keyboardFocusEnhance","_resolveColorEnhance","_hasLabels","_logger","_flexBox","_tooltip","_typography","_react","style","sstyled","insert","RootLink","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","React","createRef","ariaLabelledByContent","_inherits2","_createClass2","key","value","componentDidMount","_this2","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","asProps","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderLink","_ref0","_ref","_ref5","linkProps","children","styles","SLink","Text","createElement","cn","_objectSpread2","assignProps","renderLinkWithHint","_ref1","_ref2","_ref6","hintProps","Hint","render","_ref7","_ref10","_ref11","_this$asProps","noWrap","color","resolveColor","disabled","href","hasChildren","AddonLeft","addonLeft","AddonRight","addonRight","Children","title","ariaLabel","hintPlacement","Link","CORE_INSTANCE","Fragment","Addon","addonTextChildren","hintContent","state","undefined","timeout","placement","__excludeProps","Component","keyboardFocusEnhance","resolveColorEnhance","LinkText","props","_ref3","arguments[0]","_ref8","SText","Box","_ref4","_ref9","SAddon","createComponent","_default","exports"],"sources":["../../src/Link.jsx"],"sourcesContent":["import { createComponent, Component, Root, sstyled, CORE_INSTANCE } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport keyboardFocusEnhance from '@semcore/core/lib/utils/enhances/keyboardFocusEnhance';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { Box } from '@semcore/flex-box';\nimport { Hint } from '@semcore/tooltip';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/link.shadow.css';\n\nclass RootLink extends Component {\n static displayName = 'Link';\n static defaultProps = {\n noWrap: true,\n };\n\n static style = style;\n static enhance = [keyboardFocusEnhance(), resolveColorEnhance()];\n containerRef = React.createRef();\n\n state = {\n ariaLabelledByContent: '',\n };\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for links without text content`,\n this.asProps['data-ui-name'] || RootLink.displayName,\n );\n }\n\n if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n renderLink({ linkProps, children }) {\n const { styles } = this.asProps;\n const SLink = Root;\n\n return sstyled(styles)(\n <SLink render={Text} {...linkProps}>\n {children}\n </SLink>,\n );\n }\n\n renderLinkWithHint({ linkProps, children, hintProps }) {\n const { styles } = this.asProps;\n const SLink = Root;\n\n return sstyled(styles)(\n <SLink render={Hint} {...linkProps} {...hintProps}>\n {children}\n </SLink>,\n );\n }\n\n render() {\n const {\n styles,\n noWrap,\n color,\n resolveColor,\n disabled,\n href,\n children: hasChildren,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n Children,\n title,\n 'aria-label': ariaLabel,\n hintPlacement,\n } = this.asProps;\n // @ts-ignore\n const Link = this[CORE_INSTANCE];\n\n const children = sstyled(styles)(\n <>\n {AddonLeft\n ? (\n <Link.Addon>\n <AddonLeft />\n </Link.Addon>\n )\n : null}\n {addonTextChildren(Children, Link.Text, Link.Addon)}\n {AddonRight\n ? (\n <Link.Addon>\n <AddonRight />\n </Link.Addon>\n )\n : null}\n </>,\n );\n\n const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const linkProps = {\n 'role': 'link',\n 'tabIndex': disabled ? -1 : 0,\n 'use:href': disabled ? undefined : href,\n 'visually-disabled': disabled,\n 'render': Text,\n 'text-color': resolveColor(color),\n 'tag': 'a',\n 'noWrapText': noWrap,\n 'use:noWrap': false,\n 'ref': this.containerRef,\n '__excludeProps': ['disabled', 'aria-disabled'],\n };\n\n const hintProps = {\n title: hintContent,\n timeout: [250, 50],\n placement: hintPlacement,\n __excludeProps: [],\n };\n\n if (hasChildren === undefined || title) {\n return this.renderLinkWithHint({ linkProps, hintProps, children });\n }\n\n return this.renderLink({ linkProps, children });\n }\n}\n\nfunction LinkText(props) {\n const SText = Root;\n const { styles } = props;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles } = props;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Link = createComponent(RootLink, {\n Text: LinkText,\n Addon,\n});\n\nexport default Link;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,oBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,UAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,OAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAR,sBAAA,CAAAF,OAAA;AAA0B;AAAA,IAAAW,KAAA,8BAAAZ,KAAA,CAAAa,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAAA,IAIpBC,QAAQ,0BAAAC,UAAA;EAAA,SAAAD,SAAA;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,QAAA;IAAA,SAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,OAAAQ,WAAA,mBAAAV,QAAA,KAAAW,MAAA,CAAAJ,IAAA;IAAA,IAAAK,gBAAA,aAAAV,KAAA,+BAQGW,iBAAK,CAACC,SAAS,CAAC,CAAC;IAAA,IAAAF,gBAAA,aAAAV,KAAA,WAExB;MACNa,qBAAqB,EAAE;IACzB,CAAC;IAAA,OAAAb,KAAA;EAAA;EAAA,IAAAc,UAAA,aAAAhB,QAAA,EAAAC,UAAA;EAAA,WAAAgB,aAAA,aAAAjB,QAAA;IAAAkB,GAAA;IAAAC,KAAA,EAED,SAAAC,iBAAiBA,CAAA,EAAG;MAAA,IAAAC,MAAA;MAClB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCC,kBAAM,CAACC,IAAI,CACT,IAAI,CAACC,YAAY,CAACC,OAAO,IAAI,CAAC,IAAAC,qBAAS,EAAC,IAAI,CAACF,YAAY,CAACC,OAAO,CAAC,oGAElE,IAAI,CAACE,OAAO,CAAC,cAAc,CAAC,IAAI9B,QAAQ,CAAC+B,WAC3C,CAAC;MACH;MAEA,IAAI,IAAI,CAACD,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACnCE,UAAU,CAAC,YAAM;UAAA,IAAAC,qBAAA,EAAAC,sBAAA;UACfb,MAAI,CAACc,QAAQ,CAAC;YACZpB,qBAAqB,GAAAkB,qBAAA,IAAAC,sBAAA,GACnBE,QAAQ,CAACC,cAAc,CAAChB,MAAI,CAACS,OAAO,CAAC,iBAAiB,CAAC,CAAC,cAAAI,sBAAA,uBAAxDA,sBAAA,CAA0DI,WAAW,cAAAL,qBAAA,cAAAA,qBAAA,GAAI;UAC7E,CAAC,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC;MACP;IACF;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAoB,UAAUA,CAAAC,KAAA,EAA0B;MAAA,IAAAC,IAAA,QAAAX,OAAA;QAAAY,KAAA;MAAA,IAAvBC,SAAS,GAAAH,KAAA,CAATG,SAAS;QAAEC,QAAQ,GAAAJ,KAAA,CAARI,QAAQ;MAC9B,IAAQC,MAAM,GAAK,IAAI,CAACf,OAAO,CAAvBe,MAAM;MACd,IAAMC,KAAK,GAGMC,gBAAI;MADrB,OAAAL,KAAA,GAAO,IAAA5C,aAAO,EAAC+C,MAAM,CAAC,eACpBjD,MAAA,YAAAoD,aAAA,CAACF,KAAK,EAAAJ,KAAA,CAAAO,EAAA,cAAAC,cAAA,qBAAAjE,KAAA,CAAAkE,WAAA,MAAAD,cAAA,iBAAmBP,SAAS,GAAAF,IAAA,KAC/BG,QACI,CAAC;IAEZ;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAAiC,kBAAkBA,CAAAC,KAAA,EAAqC;MAAA,IAAAC,KAAA,QAAAxB,OAAA;QAAAyB,KAAA;MAAA,IAAlCZ,SAAS,GAAAU,KAAA,CAATV,SAAS;QAAEC,QAAQ,GAAAS,KAAA,CAART,QAAQ;QAAEY,SAAS,GAAAH,KAAA,CAATG,SAAS;MACjD,IAAQX,MAAM,GAAK,IAAI,CAACf,OAAO,CAAvBe,MAAM;MACd,IAAMC,KAAK,GAGMW,aAAI;MADrB,OAAAF,KAAA,GAAO,IAAAzD,aAAO,EAAC+C,MAAM,CAAC,eACpBjD,MAAA,YAAAoD,aAAA,CAACF,KAAK,EAAAS,KAAA,CAAAN,EAAA,cAAAC,cAAA,qBAAAjE,KAAA,CAAAkE,WAAA,MAAAD,cAAA,iBAAAA,cAAA,iBAAmBP,SAAS,GAAMa,SAAS,GAAAF,KAAA,KAC9CV,QACI,CAAC;IAEZ;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAAuC,MAAMA,CAAA,EAAG;MAAA,IAAAC,KAAA,EAAAC,MAAA,EAAAC,MAAA;MACP,IAAAC,aAAA,GAcI,IAAI,CAAChC,OAAO;QAbde,MAAM,GAAAiB,aAAA,CAANjB,MAAM;QACNkB,MAAM,GAAAD,aAAA,CAANC,MAAM;QACNC,KAAK,GAAAF,aAAA,CAALE,KAAK;QACLC,YAAY,GAAAH,aAAA,CAAZG,YAAY;QACZC,QAAQ,GAAAJ,aAAA,CAARI,QAAQ;QACRC,IAAI,GAAAL,aAAA,CAAJK,IAAI;QACMC,WAAW,GAAAN,aAAA,CAArBlB,QAAQ;QACGyB,SAAS,GAAAP,aAAA,CAApBQ,SAAS;QACGC,UAAU,GAAAT,aAAA,CAAtBU,UAAU;QACVC,QAAQ,GAAAX,aAAA,CAARW,QAAQ;QACRC,KAAK,GAAAZ,aAAA,CAALY,KAAK;QACSC,SAAS,GAAAb,aAAA,CAAvB,YAAY;QACZc,aAAa,GAAAd,aAAA,CAAbc,aAAa;MAEf;MACA,IAAMC,IAAI,GAAG,IAAI,CAACC,mBAAa,CAAC;MAEhC,IAAMlC,QAAQ,IAAAe,KAAA,GAAG,IAAA7D,aAAO,EAAC+C,MAAM,CAAC,eAC9BjD,MAAA,YAAAoD,aAAA,CAAApD,MAAA,YAAAmF,QAAA,QACGV,SAAS,gBAEJzE,MAAA,YAAAoD,aAAA,CAAC6B,IAAI,CAACG,KAAK,qBACTpF,MAAA,YAAAoD,aAAA,CAACqB,SAAS,EAAAV,KAAA,CAAAV,EAAA,iBAAE,CACF,CAAC,GAEf,IAAI,EACP,IAAAgC,6BAAiB,EAACR,QAAQ,EAAEI,IAAI,CAAC9B,IAAI,EAAE8B,IAAI,CAACG,KAAK,CAAC,EAClDT,UAAU,gBAEL3E,MAAA,YAAAoD,aAAA,CAAC6B,IAAI,CAACG,KAAK,qBACTpF,MAAA,YAAAoD,aAAA,CAACuB,UAAU,EAAAZ,KAAA,CAAAV,EAAA,kBAAE,CACH,CAAC,GAEf,IACJ,CAAC,CACJ;MAED,IAAMiC,WAAW,IAAAtB,MAAA,IAAAC,MAAA,GAAGa,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIC,SAAS,cAAAd,MAAA,cAAAA,MAAA,GAAI,IAAI,CAACsB,KAAK,CAACpE,qBAAqB,cAAA6C,MAAA,cAAAA,MAAA,GAAI,EAAE;MAEhF,IAAMjB,SAAS,GAAG;QAChB,MAAM,EAAE,MAAM;QACd,UAAU,EAAEuB,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;QAC7B,UAAU,EAAEA,QAAQ,GAAGkB,SAAS,GAAGjB,IAAI;QACvC,mBAAmB,EAAED,QAAQ;QAC7B,QAAQ,EAAEnB,gBAAI;QACd,YAAY,EAAEkB,YAAY,CAACD,KAAK,CAAC;QACjC,KAAK,EAAE,GAAG;QACV,YAAY,EAAED,MAAM;QACpB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,IAAI,CAACpC,YAAY;QACxB,gBAAgB,EAAE,CAAC,UAAU,EAAE,eAAe;MAChD,CAAC;MAED,IAAM6B,SAAS,GAAG;QAChBkB,KAAK,EAAEQ,WAAW;QAClBG,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;QAClBC,SAAS,EAAEV,aAAa;QACxBW,cAAc,EAAE;MAClB,CAAC;MAED,IAAInB,WAAW,KAAKgB,SAAS,IAAIV,KAAK,EAAE;QACtC,OAAO,IAAI,CAACtB,kBAAkB,CAAC;UAAET,SAAS,EAATA,SAAS;UAAEa,SAAS,EAATA,SAAS;UAAEZ,QAAQ,EAARA;QAAS,CAAC,CAAC;MACpE;MAEA,OAAO,IAAI,CAACL,UAAU,CAAC;QAAEI,SAAS,EAATA,SAAS;QAAEC,QAAQ,EAARA;MAAS,CAAC,CAAC;IACjD;EAAC;AAAA,EA1HoB4C,eAAS;AAAA,IAAA5E,gBAAA,aAA1BZ,QAAQ,iBACS,MAAM;AAAA,IAAAY,gBAAA,aADvBZ,QAAQ,kBAEU;EACpB+D,MAAM,EAAE;AACV,CAAC;AAAA,IAAAnD,gBAAA,aAJGZ,QAAQ,WAMGH,KAAK;AAAA,IAAAe,gBAAA,aANhBZ,QAAQ,aAOK,CAAC,IAAAyF,gCAAoB,EAAC,CAAC,EAAE,IAAAC,+BAAmB,EAAC,CAAC,CAAC;AAsHlE,SAASC,QAAQA,CAACC,KAAK,EAAE;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACvB,IAAMC,KAAK,GAE2BC,YAAG;EADzC,IAAQpD,MAAM,GAAK+C,KAAK,CAAhB/C,MAAM;EACd,OAAAkD,KAAA,GAAO,IAAAjG,aAAO,EAAC+C,MAAM,CAAC,eAACjD,MAAA,YAAAoD,aAAA,CAACgD,KAAK,EAAAD,KAAA,CAAA9C,EAAA,cAAAC,cAAA,qBAAAjE,KAAA,CAAAkE,WAAA;IAAA,OAAkB;EAAM,GAAA0C,KAAA,GAAE,CAAC;AAC1D;AAEA,SAASb,KAAKA,CAACY,KAAK,EAAE;EAAA,IAAAM,KAAA,GAAAJ,YAAA;IAAAK,KAAA;EACpB,IAAMC,MAAM,GAE2BH,YAAG;EAD1C,IAAQpD,MAAM,GAAK+C,KAAK,CAAhB/C,MAAM;EACd,OAAAsD,KAAA,GAAO,IAAArG,aAAO,EAAC+C,MAAM,CAAC,eAACjD,MAAA,YAAAoD,aAAA,CAACoD,MAAM,EAAAD,KAAA,CAAAlD,EAAA,eAAAC,cAAA,qBAAAjE,KAAA,CAAAkE,WAAA;IAAA,OAAkB;EAAM,GAAA+C,KAAA,GAAE,CAAC;AAC3D;AAEA,IAAMrB,IAAI,GAAG,IAAAwB,qBAAe,EAACrG,QAAQ,EAAE;EACrC+C,IAAI,EAAE4C,QAAQ;EACdX,KAAK,EAALA;AACF,CAAC,CAAC;AAAC,IAAAsB,QAAA,GAAAC,OAAA,cAEY1B,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Link.js","names":["_core","require","_baseComponents","_addonTextChildren","_interopRequireDefault","_resolveColorEnhance","_hasLabels","_logger","_typography","_react","style","sstyled","insert","RootLink","Component","constructor","args","_defineProperty2","default","React","createRef","ariaLabelledByContent","componentDidMount","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","asProps","displayName","setTimeout","setState","document","getElementById","textContent","render","_ref","_ref4","styles","color","resolveColor","disabled","href","children","addonLeft","AddonLeft","addonRight","AddonRight","Children","title","ariaLabel","hintPlacement","Link","CORE_INSTANCE","SLink","Text","SInner","Box","hintContent","state","showHint","undefined","createElement","Fragment","cn","assignProps","Addon","addonTextChildren","Hint","resolveColorEnhance","LinkText","props","_ref2","arguments[0]","_ref5","SText","_ref3","_ref6","SAddon","createComponent","_default","exports"],"sources":["../../src/Link.tsx"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport { Flex, Box, Hint } from '@semcore/base-components';\nimport type { Intergalactic, IRootComponentProps } from '@semcore/core';\nimport { createComponent, Component, Root, sstyled, CORE_INSTANCE } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport type { TextProps } from '@semcore/typography';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport type { LinkProps } from './Link.types';\nimport style from './style/link.shadow.css';\n\ntype State = {\n ariaLabelledByContent: string;\n};\n\nclass RootLink extends Component<LinkProps, typeof RootLink.enhance, never, {}, State> {\n static displayName = 'Link';\n\n static style = style;\n static enhance = [resolveColorEnhance()] as const;\n containerRef = React.createRef<HTMLElement | null>();\n\n state: State = {\n ariaLabelledByContent: '',\n };\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for links without text content`,\n this.asProps['data-ui-name'] || RootLink.displayName,\n );\n }\n\n if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n color,\n resolveColor,\n disabled,\n href,\n children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n Children,\n title,\n 'aria-label': ariaLabel,\n hintPlacement,\n } = this.asProps;\n // @ts-ignore\n const Link = this[CORE_INSTANCE];\n const SLink = Root;\n const SInner = Box;\n const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n const showHint = children === undefined || title;\n return sstyled(styles)(\n <>\n <SLink\n role='link'\n tabIndex={disabled ? -1 : 0}\n use:href={disabled ? undefined : href}\n visually-disabled={disabled}\n render={Text}\n text-color={resolveColor(color)}\n tag='a'\n ref={this.containerRef}\n __excludeProps={['disabled', 'aria-disabled']}\n aria-label={showHint ? hintContent : undefined}\n >\n <SInner\n tag='span'\n data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}\n >\n {AddonLeft\n ? (\n <Link.Addon>\n <AddonLeft />\n </Link.Addon>\n )\n : null}\n {addonTextChildren(Children, Link.Text, Link.Addon)}\n {AddonRight\n ? (\n <Link.Addon>\n <AddonRight />\n </Link.Addon>\n )\n : null}\n </SInner>\n </SLink>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {hintContent}\n </Hint>\n )}\n </>,\n );\n }\n}\n\nfunction LinkText(props: IRootComponentProps) {\n const SText = Root;\n const { styles } = props;\n return sstyled(styles)(<SText render={Text} tag='span' />);\n}\n\nfunction Addon(props: IRootComponentProps) {\n const SAddon = Root;\n const { styles } = props;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Link = createComponent(RootLink, {\n Text: LinkText,\n Addon,\n}) as Intergalactic.Component<'a', LinkProps, {}, typeof RootLink.enhance> & {\n Text: Intergalactic.Component<'span', TextProps>;\n Addon: Intergalactic.Component<'span', BoxProps>;\n};\n\nexport default Link;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=Link.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.types.js","names":[],"sources":["../../src/Link.types.ts"],"sourcesContent":["import type { SimpleHintPopperProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { TextProps } from '@semcore/typography';\nimport type React from 'react';\n\nexport type LinkProps = Intergalactic.InternalTypings.EfficientOmit<TextProps, 'ellipsis' | 'hintProps'> & {\n /**\n * CSS property of the display link (inline|inline-block)\n * @default false\n * @deprecated. You should use default inline-flex for all cases.\n */\n inline?: boolean;\n /**\n * Sets the link to the disabled state\n */\n disabled?: boolean;\n /**\n * Sets the link to the active state\n */\n active?: boolean;\n /** This flag enables highlighting of the visited link\n */\n enableVisited?: boolean;\n /** The text will not be moved to a new line\n * @default false\n */\n noWrap?: boolean;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n /**\n * The position of the popper relative to the trigger that called it.\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n};\n"],"mappings":"","ignoreList":[]}
package/lib/cjs/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
10
- return _Link["default"];
9
+ get: function () {
10
+ return _Link.default;
11
11
  }
12
12
  });
13
13
  var _Link = _interopRequireDefault(require("./Link"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Link","_interopRequireDefault","require"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Link';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_Link","_interopRequireDefault","require"],"sources":["../../src/index.ts"],"sourcesContent":["import type { LinkProps } from './Link.types';\n\nexport { default } from './Link';\nexport type { LinkProps };\n"],"mappings":";;;;;;;;;;;;AAEA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA","ignoreList":[]}
@@ -1,15 +1,10 @@
1
1
  SLink {
2
- display: inline-block;
3
- font-family: inherit;
2
+ display: inline;
3
+ align-items: center;
4
4
  color: var(--intergalactic-text-link, #006dca);
5
- line-height: normal;
6
5
  position: relative;
7
6
  cursor: pointer;
8
7
  text-decoration: none;
9
- border: none;
10
- padding: 0;
11
- margin: 0;
12
- box-shadow: none;
13
8
  -webkit-tap-highlight-color: transparent;
14
9
  background: none;
15
10
  transition: color 0.15s ease-in-out;
@@ -47,7 +42,7 @@ SLink[visually-disabled] {
47
42
  pointer-events: none;
48
43
  }
49
44
 
50
- SLink[noWrapText] {
45
+ SLink[noWrap] {
51
46
  white-space: nowrap;
52
47
  }
53
48
 
@@ -55,13 +50,17 @@ SLink[inline] {
55
50
  display: inline;
56
51
  }
57
52
 
53
+ SInner {
54
+ align-items: baseline;
55
+ height: 100%;
56
+ width: 100%;
57
+ }
58
+
58
59
  SAddon {
59
- display: inline-flex;
60
- justify-content: center;
61
- align-items: center;
62
- margin-bottom: var(--intergalactic-spacing-05x, 2px);
63
- vertical-align: middle;
60
+ align-items: baseline;
61
+ vertical-align: -2px;
64
62
  pointer-events: none;
63
+ align-self: center;
65
64
  }
66
65
 
67
66
  SLink SAddon {
@@ -80,6 +79,9 @@ SText {
80
79
  border-color: transparent;
81
80
  transition: border-bottom-color 0.15s ease-in-out;
82
81
  }
82
+ SText[ellipsis] {
83
+ vertical-align: middle;
84
+ }
83
85
 
84
86
  SLink[text-color] {
85
87
  color: var(--text-color);