@mirohq/design-system-link 1.2.17 → 1.2.19
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/dist/main.js +11 -5
- package/dist/main.js.map +1 -1
- package/dist/module.js +11 -5
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
package/dist/main.js
CHANGED
|
@@ -17,6 +17,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
17
17
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
18
18
|
|
|
19
19
|
const TRANSITION_TIME = "250ms";
|
|
20
|
+
const activeSelector = "&:active, &[data-pressed]";
|
|
21
|
+
const hoverSelector = "&:hover, &[data-hovered]";
|
|
20
22
|
const StyledLink = designSystemStitches.styled(designSystemPrimitive.Primitive.a, {
|
|
21
23
|
textDecoration: "none",
|
|
22
24
|
border: 0,
|
|
@@ -34,11 +36,11 @@ const StyledLink = designSystemStitches.styled(designSystemPrimitive.Primitive.a
|
|
|
34
36
|
color: "rgba(66, 98, 255, 1)",
|
|
35
37
|
borderColor: "rgba(217, 224, 255, 1)",
|
|
36
38
|
...designSystemStyles.focus.defaults,
|
|
37
|
-
|
|
39
|
+
[hoverSelector]: {
|
|
38
40
|
color: "rgba(69, 91, 237, 1)",
|
|
39
41
|
borderColor: "rgba(104, 129, 255, 1)"
|
|
40
42
|
},
|
|
41
|
-
|
|
43
|
+
[activeSelector]: {
|
|
42
44
|
color: "rgba(61, 81, 212, 1)",
|
|
43
45
|
borderColor: "rgba(66, 98, 255, 1)"
|
|
44
46
|
}
|
|
@@ -47,11 +49,11 @@ const StyledLink = designSystemStitches.styled(designSystemPrimitive.Primitive.a
|
|
|
47
49
|
color: "rgba(95, 92, 128, 1)",
|
|
48
50
|
borderColor: "rgba(235, 235, 239, 1)",
|
|
49
51
|
...designSystemStyles.focus.defaults,
|
|
50
|
-
|
|
52
|
+
[hoverSelector]: {
|
|
51
53
|
color: "rgba(95, 92, 128, 1)",
|
|
52
54
|
borderColor: "rgba(147, 145, 166, 1)"
|
|
53
55
|
},
|
|
54
|
-
|
|
56
|
+
[activeSelector]: {
|
|
55
57
|
color: "rgba(95, 92, 128, 1)",
|
|
56
58
|
borderColor: "rgba(147, 145, 166, 1)"
|
|
57
59
|
}
|
|
@@ -117,6 +119,10 @@ const Link = React__default["default"].forwardRef(
|
|
|
117
119
|
if (!relProp.includes("noopener")) {
|
|
118
120
|
relProp = "noopener ".concat(relProp);
|
|
119
121
|
}
|
|
122
|
+
relProp = relProp.trim();
|
|
123
|
+
}
|
|
124
|
+
if (relProp === "") {
|
|
125
|
+
relProp = void 0;
|
|
120
126
|
}
|
|
121
127
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
122
128
|
StyledLink,
|
|
@@ -131,7 +137,7 @@ const Link = React__default["default"].forwardRef(
|
|
|
131
137
|
"aria-disabled": !asButton && (disabled || designSystemUtils.booleanify(ariaDisabled)) ? "true" : void 0,
|
|
132
138
|
dashed,
|
|
133
139
|
tabIndex: tabIndex != null ? tabIndex : disabled && !asButton ? -1 : asChild === true && !asButton ? tabIndex != null ? tabIndex : 0 : void 0,
|
|
134
|
-
rel: relProp
|
|
140
|
+
rel: relProp,
|
|
135
141
|
target,
|
|
136
142
|
ref: forwardRef,
|
|
137
143
|
children: asButton ? /* @__PURE__ */ jsxRuntime.jsx("button", { disabled, children }) : children
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/link.styled.ts","../src/link.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nconst TRANSITION_TIME = '250ms'\n\nexport const StyledLink = styled(Primitive.a, {\n textDecoration: 'none',\n border: 0,\n borderBottom: '1px solid currentColor',\n cursor: 'pointer',\n transition: `border ${TRANSITION_TIME}, color ${TRANSITION_TIME}`,\n\n // asButton\n background: 'none',\n padding: '$0',\n margin: '$0',\n font: 'inherit',\n\n variants: {\n variant: {\n primary: {\n color: 'rgba(66, 98, 255, 1)',\n borderColor: 'rgba(217, 224, 255, 1)',\n ...focus.defaults,\n
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/link.styled.ts","../src/link.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nconst TRANSITION_TIME = '250ms'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst hoverSelector = '&:hover, &[data-hovered]'\n\nexport const StyledLink = styled(Primitive.a, {\n textDecoration: 'none',\n border: 0,\n borderBottom: '1px solid currentColor',\n cursor: 'pointer',\n transition: `border ${TRANSITION_TIME}, color ${TRANSITION_TIME}`,\n\n // asButton\n background: 'none',\n padding: '$0',\n margin: '$0',\n font: 'inherit',\n\n variants: {\n variant: {\n primary: {\n color: 'rgba(66, 98, 255, 1)',\n borderColor: 'rgba(217, 224, 255, 1)',\n ...focus.defaults,\n [hoverSelector]: {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n [activeSelector]: {\n color: 'rgba(61, 81, 212, 1)',\n borderColor: 'rgba(66, 98, 255, 1)',\n },\n },\n secondary: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(235, 235, 239, 1)',\n ...focus.defaults,\n [hoverSelector]: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n [activeSelector]: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n },\n },\n dashed: {\n true: {\n borderStyle: 'dashed',\n },\n },\n disabled: {\n true: {\n pointerEvents: 'none',\n },\n },\n },\n})\n\nexport type StyledLinkProps = ComponentPropsWithRef<typeof StyledLink>\n","import React from 'react'\nimport type { ElementRef, ReactNode, DOMAttributes } from 'react'\nimport { mergeProps } from '@react-aria/utils'\nimport { booleanify, removeEventProps } from '@mirohq/design-system-utils'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport { usePress } from '@mirohq/design-system-use-press'\nimport type { PressProps } from '@mirohq/design-system-use-press'\n\nimport type { StyledLinkProps } from './link.styled'\nimport { StyledLink } from './link.styled'\n\nexport interface LinkProps extends StyledLinkProps, PressProps, HoverEvents {\n /**\n * The content\n */\n children: ReactNode\n\n /**\n * Change the link styles\n */\n variant?: StyledLinkProps['variant']\n\n /**\n * Set the underline to dashed mode\n */\n dashed?: boolean\n\n /**\n * Make the link non-interactive\n */\n disabled?: boolean\n}\n\nexport const Link = React.forwardRef<ElementRef<'a' | 'button'>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n 'aria-disabled': ariaDisabled,\n dashed = false,\n asChild,\n rel = '',\n target,\n href,\n onClick,\n onPress,\n children,\n tabIndex,\n onHoverStart,\n onHoverEnd,\n onHoverChange,\n ...restProps\n },\n forwardRef\n ) => {\n const asButton = href === undefined && Boolean(onPress ?? onClick)\n let elementProps: DOMAttributes<any> = { ...restProps, onClick }\n\n if (disabled || booleanify(ariaDisabled)) {\n elementProps = removeEventProps(\n elementProps,\n disabled ? [] : ['onBlur', 'onFocus']\n )\n }\n\n const { pressProps, isPressed } = usePress({\n preventFocusOnPress: true,\n disabled: disabled || booleanify(ariaDisabled),\n onPress,\n ...elementProps,\n })\n\n const { hoverProps, isHovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange,\n })\n\n elementProps = mergeProps(pressProps, hoverProps)\n\n let relProp: string | undefined = rel\n\n if (!asButton && target === '_blank') {\n if (!relProp.includes('noreferrer')) {\n relProp = `noreferrer ${relProp}`\n }\n\n if (!relProp.includes('noopener')) {\n relProp = `noopener ${relProp}`\n }\n\n relProp = relProp.trim()\n }\n\n if (relProp === '') {\n relProp = undefined\n }\n\n return (\n <StyledLink\n {...elementProps}\n data-pressed={isPressed ? '' : undefined}\n data-hovered={isHovered ? '' : undefined}\n asChild={asButton || asChild}\n href={href}\n variant={variant}\n disabled={disabled}\n aria-disabled={\n !asButton && (disabled || booleanify(ariaDisabled))\n ? 'true'\n : undefined\n }\n dashed={dashed}\n tabIndex={\n tabIndex != null\n ? tabIndex\n : disabled && !asButton\n ? -1\n : asChild === true && !asButton\n ? tabIndex ?? 0\n : undefined\n }\n rel={relProp}\n target={target}\n // Link can be an <button> but TS will never know because it will only happen in runtime via asChild\n // @ts-expect-error\n ref={forwardRef}\n >\n {asButton ? <button disabled={disabled}>{children}</button> : children}\n </StyledLink>\n )\n }\n)\n"],"names":["styled","Primitive","focus","React","booleanify","removeEventProps","usePress","useHover","mergeProps","jsx"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -9,6 +9,8 @@ import { styled } from '@mirohq/design-system-stitches';
|
|
|
9
9
|
import { focus } from '@mirohq/design-system-styles';
|
|
10
10
|
|
|
11
11
|
const TRANSITION_TIME = "250ms";
|
|
12
|
+
const activeSelector = "&:active, &[data-pressed]";
|
|
13
|
+
const hoverSelector = "&:hover, &[data-hovered]";
|
|
12
14
|
const StyledLink = styled(Primitive.a, {
|
|
13
15
|
textDecoration: "none",
|
|
14
16
|
border: 0,
|
|
@@ -26,11 +28,11 @@ const StyledLink = styled(Primitive.a, {
|
|
|
26
28
|
color: "rgba(66, 98, 255, 1)",
|
|
27
29
|
borderColor: "rgba(217, 224, 255, 1)",
|
|
28
30
|
...focus.defaults,
|
|
29
|
-
|
|
31
|
+
[hoverSelector]: {
|
|
30
32
|
color: "rgba(69, 91, 237, 1)",
|
|
31
33
|
borderColor: "rgba(104, 129, 255, 1)"
|
|
32
34
|
},
|
|
33
|
-
|
|
35
|
+
[activeSelector]: {
|
|
34
36
|
color: "rgba(61, 81, 212, 1)",
|
|
35
37
|
borderColor: "rgba(66, 98, 255, 1)"
|
|
36
38
|
}
|
|
@@ -39,11 +41,11 @@ const StyledLink = styled(Primitive.a, {
|
|
|
39
41
|
color: "rgba(95, 92, 128, 1)",
|
|
40
42
|
borderColor: "rgba(235, 235, 239, 1)",
|
|
41
43
|
...focus.defaults,
|
|
42
|
-
|
|
44
|
+
[hoverSelector]: {
|
|
43
45
|
color: "rgba(95, 92, 128, 1)",
|
|
44
46
|
borderColor: "rgba(147, 145, 166, 1)"
|
|
45
47
|
},
|
|
46
|
-
|
|
48
|
+
[activeSelector]: {
|
|
47
49
|
color: "rgba(95, 92, 128, 1)",
|
|
48
50
|
borderColor: "rgba(147, 145, 166, 1)"
|
|
49
51
|
}
|
|
@@ -109,6 +111,10 @@ const Link = React.forwardRef(
|
|
|
109
111
|
if (!relProp.includes("noopener")) {
|
|
110
112
|
relProp = "noopener ".concat(relProp);
|
|
111
113
|
}
|
|
114
|
+
relProp = relProp.trim();
|
|
115
|
+
}
|
|
116
|
+
if (relProp === "") {
|
|
117
|
+
relProp = void 0;
|
|
112
118
|
}
|
|
113
119
|
return /* @__PURE__ */ jsx(
|
|
114
120
|
StyledLink,
|
|
@@ -123,7 +129,7 @@ const Link = React.forwardRef(
|
|
|
123
129
|
"aria-disabled": !asButton && (disabled || booleanify(ariaDisabled)) ? "true" : void 0,
|
|
124
130
|
dashed,
|
|
125
131
|
tabIndex: tabIndex != null ? tabIndex : disabled && !asButton ? -1 : asChild === true && !asButton ? tabIndex != null ? tabIndex : 0 : void 0,
|
|
126
|
-
rel: relProp
|
|
132
|
+
rel: relProp,
|
|
127
133
|
target,
|
|
128
134
|
ref: forwardRef,
|
|
129
135
|
children: asButton ? /* @__PURE__ */ jsx("button", { disabled, children }) : children
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../src/link.styled.ts","../src/link.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nconst TRANSITION_TIME = '250ms'\n\nexport const StyledLink = styled(Primitive.a, {\n textDecoration: 'none',\n border: 0,\n borderBottom: '1px solid currentColor',\n cursor: 'pointer',\n transition: `border ${TRANSITION_TIME}, color ${TRANSITION_TIME}`,\n\n // asButton\n background: 'none',\n padding: '$0',\n margin: '$0',\n font: 'inherit',\n\n variants: {\n variant: {\n primary: {\n color: 'rgba(66, 98, 255, 1)',\n borderColor: 'rgba(217, 224, 255, 1)',\n ...focus.defaults,\n
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/link.styled.ts","../src/link.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\n\nconst TRANSITION_TIME = '250ms'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst hoverSelector = '&:hover, &[data-hovered]'\n\nexport const StyledLink = styled(Primitive.a, {\n textDecoration: 'none',\n border: 0,\n borderBottom: '1px solid currentColor',\n cursor: 'pointer',\n transition: `border ${TRANSITION_TIME}, color ${TRANSITION_TIME}`,\n\n // asButton\n background: 'none',\n padding: '$0',\n margin: '$0',\n font: 'inherit',\n\n variants: {\n variant: {\n primary: {\n color: 'rgba(66, 98, 255, 1)',\n borderColor: 'rgba(217, 224, 255, 1)',\n ...focus.defaults,\n [hoverSelector]: {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n [activeSelector]: {\n color: 'rgba(61, 81, 212, 1)',\n borderColor: 'rgba(66, 98, 255, 1)',\n },\n },\n secondary: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(235, 235, 239, 1)',\n ...focus.defaults,\n [hoverSelector]: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n [activeSelector]: {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n },\n },\n dashed: {\n true: {\n borderStyle: 'dashed',\n },\n },\n disabled: {\n true: {\n pointerEvents: 'none',\n },\n },\n },\n})\n\nexport type StyledLinkProps = ComponentPropsWithRef<typeof StyledLink>\n","import React from 'react'\nimport type { ElementRef, ReactNode, DOMAttributes } from 'react'\nimport { mergeProps } from '@react-aria/utils'\nimport { booleanify, removeEventProps } from '@mirohq/design-system-utils'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport { usePress } from '@mirohq/design-system-use-press'\nimport type { PressProps } from '@mirohq/design-system-use-press'\n\nimport type { StyledLinkProps } from './link.styled'\nimport { StyledLink } from './link.styled'\n\nexport interface LinkProps extends StyledLinkProps, PressProps, HoverEvents {\n /**\n * The content\n */\n children: ReactNode\n\n /**\n * Change the link styles\n */\n variant?: StyledLinkProps['variant']\n\n /**\n * Set the underline to dashed mode\n */\n dashed?: boolean\n\n /**\n * Make the link non-interactive\n */\n disabled?: boolean\n}\n\nexport const Link = React.forwardRef<ElementRef<'a' | 'button'>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n 'aria-disabled': ariaDisabled,\n dashed = false,\n asChild,\n rel = '',\n target,\n href,\n onClick,\n onPress,\n children,\n tabIndex,\n onHoverStart,\n onHoverEnd,\n onHoverChange,\n ...restProps\n },\n forwardRef\n ) => {\n const asButton = href === undefined && Boolean(onPress ?? onClick)\n let elementProps: DOMAttributes<any> = { ...restProps, onClick }\n\n if (disabled || booleanify(ariaDisabled)) {\n elementProps = removeEventProps(\n elementProps,\n disabled ? [] : ['onBlur', 'onFocus']\n )\n }\n\n const { pressProps, isPressed } = usePress({\n preventFocusOnPress: true,\n disabled: disabled || booleanify(ariaDisabled),\n onPress,\n ...elementProps,\n })\n\n const { hoverProps, isHovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange,\n })\n\n elementProps = mergeProps(pressProps, hoverProps)\n\n let relProp: string | undefined = rel\n\n if (!asButton && target === '_blank') {\n if (!relProp.includes('noreferrer')) {\n relProp = `noreferrer ${relProp}`\n }\n\n if (!relProp.includes('noopener')) {\n relProp = `noopener ${relProp}`\n }\n\n relProp = relProp.trim()\n }\n\n if (relProp === '') {\n relProp = undefined\n }\n\n return (\n <StyledLink\n {...elementProps}\n data-pressed={isPressed ? '' : undefined}\n data-hovered={isHovered ? '' : undefined}\n asChild={asButton || asChild}\n href={href}\n variant={variant}\n disabled={disabled}\n aria-disabled={\n !asButton && (disabled || booleanify(ariaDisabled))\n ? 'true'\n : undefined\n }\n dashed={dashed}\n tabIndex={\n tabIndex != null\n ? tabIndex\n : disabled && !asButton\n ? -1\n : asChild === true && !asButton\n ? tabIndex ?? 0\n : undefined\n }\n rel={relProp}\n target={target}\n // Link can be an <button> but TS will never know because it will only happen in runtime via asChild\n // @ts-expect-error\n ref={forwardRef}\n >\n {asButton ? <button disabled={disabled}>{children}</button> : children}\n </StyledLink>\n )\n }\n)\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirohq/design-system-link",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Miro",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"@react-aria/utils": "^3.13.0",
|
|
31
31
|
"@react-types/shared": "^3.16.0",
|
|
32
32
|
"@mirohq/design-system-primitive": "^1.1.0",
|
|
33
|
-
"@mirohq/design-system-stitches": "^2.3.
|
|
34
|
-
"@mirohq/design-system-styles": "^1.1.
|
|
33
|
+
"@mirohq/design-system-stitches": "^2.3.6",
|
|
34
|
+
"@mirohq/design-system-styles": "^1.1.2",
|
|
35
35
|
"@mirohq/design-system-utils": "^0.14.1"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|