@hh.ru/magritte-ui-link 7.2.4 → 7.2.6

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.
@@ -2,13 +2,15 @@ import './index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
- const CustomElementExample = forwardRef(({ customElementTitle, ...props }, ref) => {
5
+ const CustomElementExample = forwardRef(
6
+ ({ customElementTitle, ...props }, ref) => {
6
7
  const handleClick = () => {
7
- // custom follow logic
8
8
  };
9
- return jsx("span", { title: customElementTitle, onClick: handleClick, ...props, ref: ref });
10
- });
11
- CustomElementExample.displayName = 'CustomElementExample';
9
+ return /* @__PURE__ */ jsx("span", { title: customElementTitle, onClick: handleClick, ...props, ref });
10
+ }
11
+ );
12
+ CustomElementExample.displayName = "CustomElementExample";
13
+ var CustomElementExample_default = CustomElementExample;
12
14
 
13
- export { CustomElementExample as default };
15
+ export { CustomElementExample_default as default };
14
16
  //# sourceMappingURL=CustomElementExample.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomElementExample.js","sources":["src/CustomElementExample.tsx"],"sourcesContent":["import { MouseEventHandler, forwardRef } from 'react';\n\nconst CustomElementExample = forwardRef<HTMLSpanElement, { customElementTitle?: string }>(\n ({ customElementTitle, ...props }, ref) => {\n const handleClick: MouseEventHandler = () => {\n // custom follow logic\n };\n return <span title={customElementTitle} onClick={handleClick} {...props} ref={ref} />;\n }\n);\n\nCustomElementExample.displayName = 'CustomElementExample';\n\nexport default CustomElementExample;\n"],"names":["_jsx"],"mappings":";;;AAEA,MAAM,oBAAoB,GAAG,UAAU,CACnC,CAAC,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACtC,MAAM,WAAW,GAAsB,MAAK;;AAE5C,KAAC,CAAC;AACF,IAAA,OAAOA,GAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAA,GAAM,KAAK,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AAC1F,CAAC,EACH;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;;;"}
1
+ {"version":3,"file":"CustomElementExample.js","sources":["src/CustomElementExample.tsx"],"sourcesContent":["import { MouseEventHandler, forwardRef } from 'react';\n\nconst CustomElementExample = forwardRef<HTMLSpanElement, { customElementTitle?: string }>(\n ({ customElementTitle, ...props }, ref) => {\n const handleClick: MouseEventHandler = () => {\n // custom follow logic\n };\n return <span title={customElementTitle} onClick={handleClick} {...props} ref={ref} />;\n }\n);\n\nCustomElementExample.displayName = 'CustomElementExample';\n\nexport default CustomElementExample;\n"],"names":[],"mappings":";;;AAEA,MAAM,oBAAuB,GAAA,UAAA;AAAA,EACzB,CAAC,EAAE,kBAAA,EAAoB,GAAG,KAAA,IAAS,GAAQ,KAAA;AACvC,IAAA,MAAM,cAAiC,MAAM;AAAA,KAE7C,CAAA;AACA,IAAO,uBAAA,GAAA,CAAC,UAAK,KAAO,EAAA,kBAAA,EAAoB,SAAS,WAAc,EAAA,GAAG,OAAO,GAAU,EAAA,CAAA,CAAA;AAAA,GACvF;AACJ,CAAA,CAAA;AAEA,oBAAA,CAAqB,WAAc,GAAA,sBAAA,CAAA;AAEnC,IAAO,4BAAQ,GAAA;;;;"}
package/Link.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';
2
- import type { LinkProps } from '@hh.ru/magritte-ui-link/types';
2
+ import type { LinkProps } from './types';
3
3
  export declare const LinkForwardRefRenderFunc: PolymorphicForwardRefRenderFunc<LinkProps, 'a'>;
4
- export declare const Link: PolymorphicComponentWithRef<LinkProps, "a">;
4
+ export declare const Link: PolymorphicComponentWithRef<LinkProps, 'a'>;
package/Link.js CHANGED
@@ -5,68 +5,108 @@ import classnames from 'classnames';
5
5
  import { keyboardMatch, keyboardKeys } from '@hh.ru/magritte-common-keyboard';
6
6
  import { useDisabled, DisabledContext } from '@hh.ru/magritte-common-use-disabled';
7
7
  import { isIconElement, IconDynamic } from '@hh.ru/magritte-ui-icon';
8
- import VerticallyCenteredIcon from './VerticallyCenteredIcon.js';
8
+ import VerticallyCenteredIcon_default from './VerticallyCenteredIcon.js';
9
9
  import { useLinkDefaultProps } from './defaultProps.js';
10
10
  import { Text } from '@hh.ru/magritte-ui-typography';
11
11
  import '@hh.ru/magritte-internal-default-props-context';
12
12
 
13
- var styles = {"link":"magritte-link___b4rEM_7-2-4","link_enable-visited":"magritte-link_enable-visited___Biyib_7-2-4","linkEnableVisited":"magritte-link_enable-visited___Biyib_7-2-4","link_block":"magritte-link_block___Lk0iO_7-2-4","linkBlock":"magritte-link_block___Lk0iO_7-2-4","link__icon-left":"magritte-link__icon-left___1v4WO_7-2-4","linkIconLeft":"magritte-link__icon-left___1v4WO_7-2-4","link__icon-right":"magritte-link__icon-right___VVZpb_7-2-4","linkIconRight":"magritte-link__icon-right___VVZpb_7-2-4","link_big-icon":"magritte-link_big-icon___Z485G_7-2-4","linkBigIcon":"magritte-link_big-icon___Z485G_7-2-4","link_mode_primary":"magritte-link_mode_primary___l6una_7-2-4","linkModePrimary":"magritte-link_mode_primary___l6una_7-2-4","link_style_neutral":"magritte-link_style_neutral___iqoW0_7-2-4","linkStyleNeutral":"magritte-link_style_neutral___iqoW0_7-2-4","icon-without-color":"magritte-icon-without-color___P5ivQ_7-2-4","iconWithoutColor":"magritte-icon-without-color___P5ivQ_7-2-4","link_underlined":"magritte-link_underlined___OBHqe_7-2-4","linkUnderlined":"magritte-link_underlined___OBHqe_7-2-4","link_disabled":"magritte-link_disabled___sbFrN_7-2-4","linkDisabled":"magritte-link_disabled___sbFrN_7-2-4","text":"magritte-text___tkzIl_7-2-4","link_mode_secondary":"magritte-link_mode_secondary___91WgT_7-2-4","linkModeSecondary":"magritte-link_mode_secondary___91WgT_7-2-4","link_mode_tertiary":"magritte-link_mode_tertiary___5IWmJ_7-2-4","linkModeTertiary":"magritte-link_mode_tertiary___5IWmJ_7-2-4","link_style_accent":"magritte-link_style_accent___r-MW4_7-2-4","linkStyleAccent":"magritte-link_style_accent___r-MW4_7-2-4","link_style_positive":"magritte-link_style_positive___LF2So_7-2-4","linkStylePositive":"magritte-link_style_positive___LF2So_7-2-4","link_style_negative":"magritte-link_style_negative___BFuGj_7-2-4","linkStyleNegative":"magritte-link_style_negative___BFuGj_7-2-4","link_style_warning":"magritte-link_style_warning___pYAyP_7-2-4","linkStyleWarning":"magritte-link_style_warning___pYAyP_7-2-4","link_style_constant":"magritte-link_style_constant___w9ENv_7-2-4","linkStyleConstant":"magritte-link_style_constant___w9ENv_7-2-4","link_style_special":"magritte-link_style_special___Egc8j_7-2-4","linkStyleSpecial":"magritte-link_style_special___Egc8j_7-2-4"};
13
+ var styles = {"link":"magritte-link___b4rEM_7-2-6","link_enable-visited":"magritte-link_enable-visited___Biyib_7-2-6","linkEnableVisited":"magritte-link_enable-visited___Biyib_7-2-6","link_block":"magritte-link_block___Lk0iO_7-2-6","linkBlock":"magritte-link_block___Lk0iO_7-2-6","link__icon-left":"magritte-link__icon-left___1v4WO_7-2-6","linkIconLeft":"magritte-link__icon-left___1v4WO_7-2-6","link__icon-right":"magritte-link__icon-right___VVZpb_7-2-6","linkIconRight":"magritte-link__icon-right___VVZpb_7-2-6","link_big-icon":"magritte-link_big-icon___Z485G_7-2-6","linkBigIcon":"magritte-link_big-icon___Z485G_7-2-6","link_mode_primary":"magritte-link_mode_primary___l6una_7-2-6","linkModePrimary":"magritte-link_mode_primary___l6una_7-2-6","link_style_neutral":"magritte-link_style_neutral___iqoW0_7-2-6","linkStyleNeutral":"magritte-link_style_neutral___iqoW0_7-2-6","icon-without-color":"magritte-icon-without-color___P5ivQ_7-2-6","iconWithoutColor":"magritte-icon-without-color___P5ivQ_7-2-6","link_underlined":"magritte-link_underlined___OBHqe_7-2-6","linkUnderlined":"magritte-link_underlined___OBHqe_7-2-6","link_disabled":"magritte-link_disabled___sbFrN_7-2-6","linkDisabled":"magritte-link_disabled___sbFrN_7-2-6","text":"magritte-text___tkzIl_7-2-6","link_mode_secondary":"magritte-link_mode_secondary___91WgT_7-2-6","linkModeSecondary":"magritte-link_mode_secondary___91WgT_7-2-6","link_mode_tertiary":"magritte-link_mode_tertiary___5IWmJ_7-2-6","linkModeTertiary":"magritte-link_mode_tertiary___5IWmJ_7-2-6","link_style_accent":"magritte-link_style_accent___r-MW4_7-2-6","linkStyleAccent":"magritte-link_style_accent___r-MW4_7-2-6","link_style_positive":"magritte-link_style_positive___LF2So_7-2-6","linkStylePositive":"magritte-link_style_positive___LF2So_7-2-6","link_style_negative":"magritte-link_style_negative___BFuGj_7-2-6","linkStyleNegative":"magritte-link_style_negative___BFuGj_7-2-6","link_style_warning":"magritte-link_style_warning___pYAyP_7-2-6","linkStyleWarning":"magritte-link_style_warning___pYAyP_7-2-6","link_style_constant":"magritte-link_style_constant___w9ENv_7-2-6","linkStyleConstant":"magritte-link_style_constant___w9ENv_7-2-6","link_style_special":"magritte-link_style_special___Egc8j_7-2-6","linkStyleSpecial":"magritte-link_style_special___Egc8j_7-2-6"};
14
14
 
15
- const TYPOGRAPHY_WITH_ICON = ['subtitle-1-semibold', 'label-2-regular', 'label-3-regular'];
16
- const TYPOGRAPHY_WITH_BIG_ICON = ['subtitle-1-semibold'];
15
+ const TYPOGRAPHY_WITH_ICON = ["subtitle-1-semibold", "label-2-regular", "label-3-regular"];
16
+ const TYPOGRAPHY_WITH_BIG_ICON = ["subtitle-1-semibold"];
17
17
  const LinkForwardRefRenderFunc = (props, ref) => {
18
- const defaultProps = useLinkDefaultProps();
19
- const { Element = 'a', children, mode = 'primary', style: _style = 'accent', inline = false, disabled = false, iconLeft, iconRight, href, typography = 'label-2-regular', enableVisited = false, underlined = false, 'data-qa': dataQa = 'link', 'aria-label': ariaLabel, overflowWrap, ...otherProps } = { ...defaultProps, ...props };
20
- const textRef = useRef(null);
21
- const forceDisabled = useDisabled();
22
- const isComponentDisabled = forceDisabled || disabled;
23
- const withIcon = TYPOGRAPHY_WITH_ICON.includes(typography);
24
- const withBigIcon = TYPOGRAPHY_WITH_BIG_ICON.includes(typography);
25
- // Для mode 'tertiary' доступен только style 'neutral'
26
- const style = mode === 'tertiary' ? 'neutral' : _style;
27
- const iconLeftWithColor = iconLeft &&
28
- isIconElement(iconLeft) &&
29
- (!!iconLeft.props.initialColor || !!iconLeft.props.highlightedColor || !!iconLeft.props.disabledColor);
30
- const iconRightWithColor = iconRight &&
31
- isIconElement(iconRight) &&
32
- (!!iconRight.props.initialColor || !!iconRight.props.highlightedColor || !!iconRight.props.disabledColor);
33
- let additionalAttributes;
34
- if (Element === 'button') {
35
- additionalAttributes = {
36
- type: 'button',
37
- };
38
- }
39
- else {
40
- additionalAttributes = {
41
- tabIndex: isComponentDisabled ? -1 : 0,
42
- href,
43
- };
18
+ const defaultProps = useLinkDefaultProps();
19
+ const {
20
+ Element = "a",
21
+ children,
22
+ mode = "primary",
23
+ style: _style = "accent",
24
+ inline = false,
25
+ disabled = false,
26
+ iconLeft,
27
+ iconRight,
28
+ href,
29
+ typography = "label-2-regular",
30
+ enableVisited = false,
31
+ underlined = false,
32
+ "data-qa": dataQa = "link",
33
+ "aria-label": ariaLabel,
34
+ overflowWrap,
35
+ ...otherProps
36
+ } = { ...defaultProps, ...props };
37
+ const textRef = useRef(null);
38
+ const forceDisabled = useDisabled();
39
+ const isComponentDisabled = forceDisabled || disabled;
40
+ const withIcon = TYPOGRAPHY_WITH_ICON.includes(typography);
41
+ const withBigIcon = TYPOGRAPHY_WITH_BIG_ICON.includes(typography);
42
+ const style = mode === "tertiary" ? "neutral" : _style;
43
+ const iconLeftWithColor = iconLeft && isIconElement(iconLeft) && (!!iconLeft.props.initialColor || !!iconLeft.props.highlightedColor || !!iconLeft.props.disabledColor);
44
+ const iconRightWithColor = iconRight && isIconElement(iconRight) && (!!iconRight.props.initialColor || !!iconRight.props.highlightedColor || !!iconRight.props.disabledColor);
45
+ let additionalAttributes;
46
+ if (Element === "button") {
47
+ additionalAttributes = {
48
+ type: "button"
49
+ };
50
+ } else {
51
+ additionalAttributes = {
52
+ tabIndex: isComponentDisabled ? -1 : 0,
53
+ href
54
+ };
55
+ }
56
+ if (ref) {
57
+ additionalAttributes.ref = ref;
58
+ }
59
+ const handleKeyDown = (e) => {
60
+ if (keyboardMatch(e.nativeEvent, keyboardKeys.Enter)) {
61
+ textRef.current?.click();
62
+ e.stopPropagation();
63
+ e.preventDefault();
44
64
  }
45
- if (ref) {
46
- additionalAttributes.ref = ref;
65
+ };
66
+ const renderTextAndRightIcon = () => /* @__PURE__ */ jsxs(Fragment, { children: [
67
+ /* @__PURE__ */ jsx("span", { ref: textRef, "data-qa": `${dataQa}-text`, className: styles.text, children }),
68
+ withIcon && iconRight && /* @__PURE__ */ jsx(
69
+ "span",
70
+ {
71
+ className: classnames(styles.linkIconRight, {
72
+ [styles.iconWithoutColor]: !iconRightWithColor
73
+ }),
74
+ children: /* @__PURE__ */ jsx(VerticallyCenteredIcon_default, { icon: iconRight, "data-qa": `${dataQa}-icon-external` })
75
+ }
76
+ )
77
+ ] });
78
+ const render = () => /* @__PURE__ */ jsx(
79
+ Element,
80
+ {
81
+ className: classnames(styles.link, styles[`link_mode_${mode}`], styles[`link_style_${style}`], {
82
+ [styles.link_disabled]: isComponentDisabled,
83
+ [styles.linkBigIcon]: withBigIcon,
84
+ [styles.linkBlock]: !inline,
85
+ [styles.linkEnableVisited]: enableVisited,
86
+ [styles.linkUnderlined]: underlined
87
+ }),
88
+ "data-qa": dataQa,
89
+ disabled: isComponentDisabled,
90
+ "aria-label": ariaLabel,
91
+ onKeyDown: handleKeyDown,
92
+ style: { overflowWrap },
93
+ ...additionalAttributes,
94
+ ...otherProps,
95
+ children: /* @__PURE__ */ jsx(DisabledContext.Provider, { value: isComponentDisabled, children: /* @__PURE__ */ jsx(IconDynamic, { Element: "span", children: /* @__PURE__ */ jsx(Text, { Element: "span", typography, children: withIcon && iconLeft ? /* @__PURE__ */ jsxs(Fragment, { children: [
96
+ /* @__PURE__ */ jsx(
97
+ "span",
98
+ {
99
+ className: classnames(styles.linkIconLeft, {
100
+ [styles.iconWithoutColor]: !iconLeftWithColor
101
+ }),
102
+ children: /* @__PURE__ */ jsx(VerticallyCenteredIcon_default, { icon: iconLeft, "data-qa": `${dataQa}-icon-left` })
103
+ }
104
+ ),
105
+ /* @__PURE__ */ jsx("span", { children: renderTextAndRightIcon() })
106
+ ] }) : renderTextAndRightIcon() }) }) })
47
107
  }
48
- const handleKeyDown = (e) => {
49
- // Поддержка перехода по ссылке при нажатии Enter в случае кастомного элемента
50
- if (keyboardMatch(e.nativeEvent, keyboardKeys.Enter)) {
51
- // Кликаю не по кастомному элементу, а внутри него, тк кастомный может не поддерживать ни ref, ни onClick
52
- textRef.current?.click();
53
- e.stopPropagation();
54
- e.preventDefault();
55
- }
56
- };
57
- const renderTextAndRightIcon = () => (jsxs(Fragment, { children: [jsx("span", { ref: textRef, "data-qa": `${dataQa}-text`, className: styles.text, children: children }), withIcon && iconRight && (jsx("span", { className: classnames(styles.linkIconRight, {
58
- [styles.iconWithoutColor]: !iconRightWithColor,
59
- }), children: jsx(VerticallyCenteredIcon, { icon: iconRight, "data-qa": `${dataQa}-icon-external` }) }))] }));
60
- const render = () => (jsx(Element, { className: classnames(styles.link, styles[`link_mode_${mode}`], styles[`link_style_${style}`], {
61
- [styles.link_disabled]: isComponentDisabled,
62
- [styles.linkBigIcon]: withBigIcon,
63
- [styles.linkBlock]: !inline,
64
- [styles.linkEnableVisited]: enableVisited,
65
- [styles.linkUnderlined]: underlined,
66
- }), "data-qa": dataQa, disabled: isComponentDisabled, "aria-label": ariaLabel, onKeyDown: handleKeyDown, style: { overflowWrap }, ...additionalAttributes, ...otherProps, children: jsx(DisabledContext.Provider, { value: isComponentDisabled, children: jsx(IconDynamic, { Element: "span", children: jsx(Text, { Element: "span", typography: typography, children: withIcon && iconLeft ? (jsxs(Fragment, { children: [jsx("span", { className: classnames(styles.linkIconLeft, {
67
- [styles.iconWithoutColor]: !iconLeftWithColor,
68
- }), children: jsx(VerticallyCenteredIcon, { icon: iconLeft, "data-qa": `${dataQa}-icon-left` }) }), jsx("span", { children: renderTextAndRightIcon() })] })) : (renderTextAndRightIcon()) }) }) }) }));
69
- return inline ? render() : jsx("div", { children: render() });
108
+ );
109
+ return inline ? render() : /* @__PURE__ */ jsx("div", { children: render() });
70
110
  };
71
111
  const Link = forwardRef(LinkForwardRefRenderFunc);
72
112
  const LinkWithFlag = Link;
package/Link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sources":["src/Link.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { keyboardMatch, keyboardKeys } from '@hh.ru/magritte-common-keyboard';\nimport { useDisabled, DisabledContext } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { IconDynamic, isIconElement } from '@hh.ru/magritte-ui-icon';\nimport VerticallyCenteredIcon from '@hh.ru/magritte-ui-link/VerticallyCenteredIcon';\nimport { useLinkDefaultProps } from '@hh.ru/magritte-ui-link/defaultProps';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link/types';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './link.less';\n\nconst TYPOGRAPHY_WITH_ICON = ['subtitle-1-semibold', 'label-2-regular', 'label-3-regular'];\n\nconst TYPOGRAPHY_WITH_BIG_ICON = ['subtitle-1-semibold'];\n\nexport const LinkForwardRefRenderFunc: PolymorphicForwardRefRenderFunc<LinkProps, 'a'> = (props, ref) => {\n const defaultProps = useLinkDefaultProps();\n\n const {\n Element = 'a',\n children,\n mode = 'primary',\n style: _style = 'accent',\n inline = false,\n disabled = false,\n iconLeft,\n iconRight,\n href,\n typography = 'label-2-regular',\n enableVisited = false,\n underlined = false,\n 'data-qa': dataQa = 'link',\n 'aria-label': ariaLabel,\n overflowWrap,\n ...otherProps\n } = { ...defaultProps, ...props } as typeof props;\n\n const textRef = useRef<HTMLSpanElement>(null);\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || disabled;\n const withIcon = TYPOGRAPHY_WITH_ICON.includes(typography);\n const withBigIcon = TYPOGRAPHY_WITH_BIG_ICON.includes(typography);\n // Для mode 'tertiary' доступен только style 'neutral'\n const style = mode === 'tertiary' ? 'neutral' : _style;\n const iconLeftWithColor =\n iconLeft &&\n isIconElement(iconLeft) &&\n (!!iconLeft.props.initialColor || !!iconLeft.props.highlightedColor || !!iconLeft.props.disabledColor);\n\n const iconRightWithColor =\n iconRight &&\n isIconElement(iconRight) &&\n (!!iconRight.props.initialColor || !!iconRight.props.highlightedColor || !!iconRight.props.disabledColor);\n\n let additionalAttributes: Record<string, unknown>;\n\n if (Element === 'button') {\n additionalAttributes = {\n type: 'button',\n };\n } else {\n additionalAttributes = {\n tabIndex: isComponentDisabled ? -1 : 0,\n href,\n };\n }\n\n if (ref) {\n additionalAttributes.ref = ref;\n }\n\n const handleKeyDown: React.KeyboardEventHandler = (e) => {\n // Поддержка перехода по ссылке при нажатии Enter в случае кастомного элемента\n if (keyboardMatch(e.nativeEvent, keyboardKeys.Enter)) {\n // Кликаю не по кастомному элементу, а внутри него, тк кастомный может не поддерживать ни ref, ни onClick\n textRef.current?.click();\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n const renderTextAndRightIcon = () => (\n <>\n <span ref={textRef} data-qa={`${dataQa}-text`} className={styles.text}>\n {children}\n </span>\n {withIcon && iconRight && (\n <span\n className={classnames(styles.linkIconRight, {\n [styles.iconWithoutColor]: !iconRightWithColor,\n })}\n >\n <VerticallyCenteredIcon icon={iconRight} data-qa={`${dataQa}-icon-external`} />\n </span>\n )}\n </>\n );\n\n const render = () => (\n <Element\n className={classnames(styles.link, styles[`link_mode_${mode}`], styles[`link_style_${style}`], {\n [styles.link_disabled]: isComponentDisabled,\n [styles.linkBigIcon]: withBigIcon,\n [styles.linkBlock]: !inline,\n [styles.linkEnableVisited]: enableVisited,\n [styles.linkUnderlined]: underlined,\n })}\n data-qa={dataQa}\n disabled={isComponentDisabled}\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n style={{ overflowWrap }}\n {...additionalAttributes}\n {...otherProps}\n >\n <DisabledContext.Provider value={isComponentDisabled}>\n <IconDynamic Element=\"span\">\n <Text Element=\"span\" typography={typography}>\n {withIcon && iconLeft ? (\n <>\n <span\n className={classnames(styles.linkIconLeft, {\n [styles.iconWithoutColor]: !iconLeftWithColor,\n })}\n >\n <VerticallyCenteredIcon icon={iconLeft} data-qa={`${dataQa}-icon-left`} />\n </span>\n <span>{renderTextAndRightIcon()}</span>\n </>\n ) : (\n renderTextAndRightIcon()\n )}\n </Text>\n </IconDynamic>\n </DisabledContext.Provider>\n </Element>\n );\n\n return inline ? render() : <div>{render()}</div>;\n};\n\nexport const Link = forwardRef(LinkForwardRefRenderFunc) as PolymorphicComponentWithRef<LinkProps, 'a'>;\nconst LinkWithFlag = Link as typeof Link & { isLink: true };\nLinkWithFlag.isLink = true;\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Link.js","sources":["src/Link.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { keyboardMatch, keyboardKeys } from '@hh.ru/magritte-common-keyboard';\nimport { useDisabled, DisabledContext } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { IconDynamic, isIconElement } from '@hh.ru/magritte-ui-icon';\nimport VerticallyCenteredIcon from '@hh.ru/magritte-ui-link/VerticallyCenteredIcon';\nimport { useLinkDefaultProps } from '@hh.ru/magritte-ui-link/defaultProps';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link/types';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './link.less';\n\nconst TYPOGRAPHY_WITH_ICON = ['subtitle-1-semibold', 'label-2-regular', 'label-3-regular'];\n\nconst TYPOGRAPHY_WITH_BIG_ICON = ['subtitle-1-semibold'];\n\nexport const LinkForwardRefRenderFunc: PolymorphicForwardRefRenderFunc<LinkProps, 'a'> = (props, ref) => {\n const defaultProps = useLinkDefaultProps();\n\n const {\n Element = 'a',\n children,\n mode = 'primary',\n style: _style = 'accent',\n inline = false,\n disabled = false,\n iconLeft,\n iconRight,\n href,\n typography = 'label-2-regular',\n enableVisited = false,\n underlined = false,\n 'data-qa': dataQa = 'link',\n 'aria-label': ariaLabel,\n overflowWrap,\n ...otherProps\n } = { ...defaultProps, ...props } as typeof props;\n\n const textRef = useRef<HTMLSpanElement>(null);\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || disabled;\n const withIcon = TYPOGRAPHY_WITH_ICON.includes(typography);\n const withBigIcon = TYPOGRAPHY_WITH_BIG_ICON.includes(typography);\n // Для mode 'tertiary' доступен только style 'neutral'\n const style = mode === 'tertiary' ? 'neutral' : _style;\n const iconLeftWithColor =\n iconLeft &&\n isIconElement(iconLeft) &&\n (!!iconLeft.props.initialColor || !!iconLeft.props.highlightedColor || !!iconLeft.props.disabledColor);\n\n const iconRightWithColor =\n iconRight &&\n isIconElement(iconRight) &&\n (!!iconRight.props.initialColor || !!iconRight.props.highlightedColor || !!iconRight.props.disabledColor);\n\n let additionalAttributes: Record<string, unknown>;\n\n if (Element === 'button') {\n additionalAttributes = {\n type: 'button',\n };\n } else {\n additionalAttributes = {\n tabIndex: isComponentDisabled ? -1 : 0,\n href,\n };\n }\n\n if (ref) {\n additionalAttributes.ref = ref;\n }\n\n const handleKeyDown: React.KeyboardEventHandler = (e) => {\n // Поддержка перехода по ссылке при нажатии Enter в случае кастомного элемента\n if (keyboardMatch(e.nativeEvent, keyboardKeys.Enter)) {\n // Кликаю не по кастомному элементу, а внутри него, тк кастомный может не поддерживать ни ref, ни onClick\n textRef.current?.click();\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n const renderTextAndRightIcon = () => (\n <>\n <span ref={textRef} data-qa={`${dataQa}-text`} className={styles.text}>\n {children}\n </span>\n {withIcon && iconRight && (\n <span\n className={classnames(styles.linkIconRight, {\n [styles.iconWithoutColor]: !iconRightWithColor,\n })}\n >\n <VerticallyCenteredIcon icon={iconRight} data-qa={`${dataQa}-icon-external`} />\n </span>\n )}\n </>\n );\n\n const render = () => (\n <Element\n className={classnames(styles.link, styles[`link_mode_${mode}`], styles[`link_style_${style}`], {\n [styles.link_disabled]: isComponentDisabled,\n [styles.linkBigIcon]: withBigIcon,\n [styles.linkBlock]: !inline,\n [styles.linkEnableVisited]: enableVisited,\n [styles.linkUnderlined]: underlined,\n })}\n data-qa={dataQa}\n disabled={isComponentDisabled}\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n style={{ overflowWrap }}\n {...additionalAttributes}\n {...otherProps}\n >\n <DisabledContext.Provider value={isComponentDisabled}>\n <IconDynamic Element=\"span\">\n <Text Element=\"span\" typography={typography}>\n {withIcon && iconLeft ? (\n <>\n <span\n className={classnames(styles.linkIconLeft, {\n [styles.iconWithoutColor]: !iconLeftWithColor,\n })}\n >\n <VerticallyCenteredIcon icon={iconLeft} data-qa={`${dataQa}-icon-left`} />\n </span>\n <span>{renderTextAndRightIcon()}</span>\n </>\n ) : (\n renderTextAndRightIcon()\n )}\n </Text>\n </IconDynamic>\n </DisabledContext.Provider>\n </Element>\n );\n\n return inline ? render() : <div>{render()}</div>;\n};\n\nexport const Link = forwardRef(LinkForwardRefRenderFunc) as PolymorphicComponentWithRef<LinkProps, 'a'>;\nconst LinkWithFlag = Link as typeof Link & { isLink: true };\nLinkWithFlag.isLink = true;\n"],"names":["VerticallyCenteredIcon"],"mappings":"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"}
@@ -2,13 +2,14 @@ import './index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import React from 'react';
4
4
 
5
- var styles = {"vertically-centered-icon":"magritte-vertically-centered-icon___Zstk8_7-2-4","verticallyCenteredIcon":"magritte-vertically-centered-icon___Zstk8_7-2-4"};
5
+ var styles = {"vertically-centered-icon":"magritte-vertically-centered-icon___Zstk8_7-2-6","verticallyCenteredIcon":"magritte-vertically-centered-icon___Zstk8_7-2-6"};
6
6
 
7
- const VerticallyCenteredIcon = ({ icon, 'data-qa': dataQa }) => {
8
- return (jsx("span", { className: styles.verticallyCenteredIcon, children: React.cloneElement(icon, {
9
- 'data-qa': dataQa,
10
- }) }));
7
+ const VerticallyCenteredIcon = ({ icon, "data-qa": dataQa }) => {
8
+ return /* @__PURE__ */ jsx("span", { className: styles.verticallyCenteredIcon, children: React.cloneElement(icon, {
9
+ "data-qa": dataQa
10
+ }) });
11
11
  };
12
+ var VerticallyCenteredIcon_default = VerticallyCenteredIcon;
12
13
 
13
- export { VerticallyCenteredIcon as default };
14
+ export { VerticallyCenteredIcon_default as default };
14
15
  //# sourceMappingURL=VerticallyCenteredIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerticallyCenteredIcon.js","sources":["src/VerticallyCenteredIcon.tsx"],"sourcesContent":["import React, { FC, ReactElement } from 'react';\n\nimport styles from './vertically-centered-icon.less';\n\ninterface VerticallyCenteredIconProps {\n icon: ReactElement;\n 'data-qa'?: string;\n}\n\nconst VerticallyCenteredIcon: FC<VerticallyCenteredIconProps> = ({ icon, 'data-qa': dataQa }) => {\n return (\n <span className={styles.verticallyCenteredIcon}>\n {React.cloneElement(icon, {\n 'data-qa': dataQa,\n })}\n </span>\n );\n};\nexport default VerticallyCenteredIcon;\n"],"names":["_jsx"],"mappings":";;;;;AASM,MAAA,sBAAsB,GAAoC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAI;AAC5F,IAAA,QACIA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,sBAAsB,EAAA,QAAA,EACzC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;AACtB,YAAA,SAAS,EAAE,MAAM;SACpB,CAAC,EAAA,CACC,EACT;AACN;;;;"}
1
+ {"version":3,"file":"VerticallyCenteredIcon.js","sources":["src/VerticallyCenteredIcon.tsx"],"sourcesContent":["import React, { FC, ReactElement } from 'react';\n\nimport styles from './vertically-centered-icon.less';\n\ninterface VerticallyCenteredIconProps {\n icon: ReactElement;\n 'data-qa'?: string;\n}\n\nconst VerticallyCenteredIcon: FC<VerticallyCenteredIconProps> = ({ icon, 'data-qa': dataQa }) => {\n return (\n <span className={styles.verticallyCenteredIcon}>\n {React.cloneElement(icon, {\n 'data-qa': dataQa,\n })}\n </span>\n );\n};\nexport default VerticallyCenteredIcon;\n"],"names":[],"mappings":";;;;;AASA,MAAM,yBAA0D,CAAC,EAAE,IAAM,EAAA,SAAA,EAAW,QAAa,KAAA;AAC7F,EAAA,2BACK,MAAK,EAAA,EAAA,SAAA,EAAW,OAAO,sBACnB,EAAA,QAAA,EAAA,KAAA,CAAM,aAAa,IAAM,EAAA;AAAA,IACtB,SAAW,EAAA,MAAA;AAAA,GACd,CACL,EAAA,CAAA,CAAA;AAER,CAAA,CAAA;AACA,IAAO,8BAAQ,GAAA;;;;"}
package/defaultProps.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LinkProps } from '@hh.ru/magritte-ui-link/types';
1
+ import type { LinkProps } from './types';
2
2
  /**
3
3
  * Провайдер дефолтных пропсов для ссылок в поддереве.
4
4
  * Заданные пропсы применяются ко всем `Link` внутри как дефолтные — явные пропсы на самой ссылке побеждают.
package/defaultProps.js CHANGED
@@ -1,13 +1,8 @@
1
1
  import './index.css';
2
2
  import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';
3
3
 
4
- const { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext('Link');
5
- /**
6
- * Провайдер дефолтных пропсов для ссылок в поддереве.
7
- * Заданные пропсы применяются ко всем `Link` внутри как дефолтные — явные пропсы на самой ссылке побеждают.
8
- */
4
+ const { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext("Link");
9
5
  const LinkDefaultPropsContext = DefaultPropsContext;
10
- /** Внутренний хук чтения дефолтов ссылки из ближайшего `LinkDefaultPropsContext`. */
11
6
  const useLinkDefaultProps = useDefaultProps;
12
7
 
13
8
  export { LinkDefaultPropsContext, useLinkDefaultProps };
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["src/defaultProps.ts"],"sourcesContent":["import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link/types';\n\nconst { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext<LinkProps>('Link');\n\n/**\n * Провайдер дефолтных пропсов для ссылок в поддереве.\n * Заданные пропсы применяются ко всем `Link` внутри как дефолтные — явные пропсы на самой ссылке побеждают.\n */\nexport const LinkDefaultPropsContext = DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов ссылки из ближайшего `LinkDefaultPropsContext`. */\nexport const useLinkDefaultProps = useDefaultProps;\n"],"names":[],"mappings":";;AAGA,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,yBAAyB,CAAY,MAAM,CAAC,CAAC;AAE9F;;;AAGG;AACI,MAAM,uBAAuB,GAAG,oBAAoB;AAE3D;AACO,MAAM,mBAAmB,GAAG;;;;"}
1
+ {"version":3,"file":"defaultProps.js","sources":["src/defaultProps.ts"],"sourcesContent":["import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link/types';\n\nconst { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext<LinkProps>('Link');\n\n/**\n * Провайдер дефолтных пропсов для ссылок в поддереве.\n * Заданные пропсы применяются ко всем `Link` внутри как дефолтные — явные пропсы на самой ссылке побеждают.\n */\nexport const LinkDefaultPropsContext = DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов ссылки из ближайшего `LinkDefaultPropsContext`. */\nexport const useLinkDefaultProps = useDefaultProps;\n"],"names":[],"mappings":";;AAGA,MAAM,EAAE,mBAAA,EAAqB,eAAgB,EAAA,GAAI,0BAAqC,MAAM,CAAA,CAAA;AAMrF,MAAM,uBAA0B,GAAA,oBAAA;AAGhC,MAAM,mBAAsB,GAAA;;;;"}