@mirohq/design-system-link 1.2.23-select.0 → 1.3.0-link.0
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 +26 -28
- package/dist/main.js.map +1 -1
- package/dist/module.js +26 -28
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +4 -17
- package/package.json +4 -4
package/dist/main.js
CHANGED
|
@@ -25,48 +25,47 @@ const StyledLink = designSystemStitches.styled(designSystemPrimitive.Primitive.a
|
|
|
25
25
|
borderBottom: "1px solid currentColor",
|
|
26
26
|
cursor: "pointer",
|
|
27
27
|
transition: "border ".concat(TRANSITION_TIME, ", color ").concat(TRANSITION_TIME),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
font: "inherit",
|
|
28
|
+
paddingX: "2px",
|
|
29
|
+
...designSystemStyles.focus.css({
|
|
30
|
+
boxShadow: "$focus-small"
|
|
31
|
+
}),
|
|
33
32
|
variants: {
|
|
34
33
|
variant: {
|
|
35
34
|
primary: {
|
|
36
|
-
color: "
|
|
37
|
-
borderColor: "
|
|
38
|
-
...designSystemStyles.focus.defaults,
|
|
35
|
+
color: "$text-primary",
|
|
36
|
+
borderColor: "$border-primary",
|
|
39
37
|
[hoverSelector]: {
|
|
40
|
-
color: "
|
|
41
|
-
|
|
38
|
+
color: "$text-primary-hover",
|
|
39
|
+
backgroundColor: "$background-primary-subtle-hover",
|
|
40
|
+
borderColor: "$border-primary-hover"
|
|
42
41
|
},
|
|
43
42
|
[activeSelector]: {
|
|
44
|
-
color: "
|
|
45
|
-
|
|
43
|
+
color: "$text-primary-active",
|
|
44
|
+
backgroundColor: "transparent",
|
|
45
|
+
borderColor: "$border-primary-active"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
secondary: {
|
|
49
|
-
color: "
|
|
50
|
-
borderColor: "
|
|
49
|
+
color: "$text-neutrals-subtle",
|
|
50
|
+
borderColor: "$border-neutrals-text-subtle",
|
|
51
51
|
...designSystemStyles.focus.defaults,
|
|
52
52
|
[hoverSelector]: {
|
|
53
|
-
color: "
|
|
54
|
-
|
|
53
|
+
color: "$text-neutrals-subtle-hover",
|
|
54
|
+
backgroundColor: "$background-neutrals-subtle-hover",
|
|
55
|
+
borderColor: "$border-neutrals-text-subtle-hover"
|
|
55
56
|
},
|
|
56
57
|
[activeSelector]: {
|
|
57
|
-
color: "
|
|
58
|
-
|
|
58
|
+
color: "$text-neutrals-subtle-active",
|
|
59
|
+
backgroundColor: "transparent",
|
|
60
|
+
borderColor: "$border-neutrals-text-subtle-active"
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
},
|
|
62
|
-
|
|
63
|
-
true: {
|
|
64
|
-
borderStyle: "dashed"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
disabled: {
|
|
64
|
+
asButton: {
|
|
68
65
|
true: {
|
|
69
|
-
|
|
66
|
+
background: "none",
|
|
67
|
+
paddingY: "$0",
|
|
68
|
+
font: "inherit"
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
}
|
|
@@ -77,7 +76,6 @@ const Link = React__default["default"].forwardRef(
|
|
|
77
76
|
variant = "primary",
|
|
78
77
|
disabled = false,
|
|
79
78
|
"aria-disabled": ariaDisabled,
|
|
80
|
-
dashed = false,
|
|
81
79
|
asChild,
|
|
82
80
|
rel = "",
|
|
83
81
|
target,
|
|
@@ -131,16 +129,16 @@ const Link = React__default["default"].forwardRef(
|
|
|
131
129
|
"data-pressed": isPressed ? "" : void 0,
|
|
132
130
|
"data-hovered": isHovered ? "" : void 0,
|
|
133
131
|
asChild: asButton || asChild,
|
|
132
|
+
asButton,
|
|
134
133
|
href,
|
|
135
134
|
variant,
|
|
136
135
|
disabled,
|
|
137
136
|
"aria-disabled": !asButton && (disabled || designSystemUtils.booleanify(ariaDisabled)) ? "true" : void 0,
|
|
138
|
-
dashed,
|
|
139
137
|
tabIndex: tabIndex != null ? tabIndex : disabled && !asButton ? -1 : asChild === true && !asButton ? tabIndex != null ? tabIndex : 0 : void 0,
|
|
140
138
|
rel: relProp,
|
|
141
139
|
target,
|
|
142
140
|
ref: forwardRef,
|
|
143
|
-
children: asButton ? /* @__PURE__ */ jsxRuntime.jsx("button", {
|
|
141
|
+
children: asButton ? /* @__PURE__ */ jsxRuntime.jsx("button", { children }) : children
|
|
144
142
|
}
|
|
145
143
|
);
|
|
146
144
|
}
|
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\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
|
|
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 paddingX: '2px',\n\n ...focus.css({\n boxShadow: '$focus-small',\n }),\n\n variants: {\n variant: {\n primary: {\n color: '$text-primary',\n borderColor: '$border-primary',\n [hoverSelector]: {\n color: '$text-primary-hover',\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n },\n [activeSelector]: {\n color: '$text-primary-active',\n backgroundColor: 'transparent',\n borderColor: '$border-primary-active',\n },\n },\n secondary: {\n color: '$text-neutrals-subtle',\n borderColor: '$border-neutrals-text-subtle',\n ...focus.defaults,\n [hoverSelector]: {\n color: '$text-neutrals-subtle-hover',\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-text-subtle-hover',\n },\n [activeSelector]: {\n color: '$text-neutrals-subtle-active',\n backgroundColor: 'transparent',\n borderColor: '$border-neutrals-text-subtle-active',\n },\n },\n },\n asButton: {\n true: {\n background: 'none',\n paddingY: '$0',\n font: 'inherit',\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\nexport const Link = React.forwardRef<ElementRef<'a' | 'button'>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n 'aria-disabled': ariaDisabled,\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 asButton={asButton}\n href={href}\n variant={variant}\n disabled={disabled}\n aria-disabled={\n !asButton && (disabled || booleanify(ariaDisabled))\n ? 'true'\n : undefined\n }\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>{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
|
@@ -17,48 +17,47 @@ const StyledLink = styled(Primitive.a, {
|
|
|
17
17
|
borderBottom: "1px solid currentColor",
|
|
18
18
|
cursor: "pointer",
|
|
19
19
|
transition: "border ".concat(TRANSITION_TIME, ", color ").concat(TRANSITION_TIME),
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
font: "inherit",
|
|
20
|
+
paddingX: "2px",
|
|
21
|
+
...focus.css({
|
|
22
|
+
boxShadow: "$focus-small"
|
|
23
|
+
}),
|
|
25
24
|
variants: {
|
|
26
25
|
variant: {
|
|
27
26
|
primary: {
|
|
28
|
-
color: "
|
|
29
|
-
borderColor: "
|
|
30
|
-
...focus.defaults,
|
|
27
|
+
color: "$text-primary",
|
|
28
|
+
borderColor: "$border-primary",
|
|
31
29
|
[hoverSelector]: {
|
|
32
|
-
color: "
|
|
33
|
-
|
|
30
|
+
color: "$text-primary-hover",
|
|
31
|
+
backgroundColor: "$background-primary-subtle-hover",
|
|
32
|
+
borderColor: "$border-primary-hover"
|
|
34
33
|
},
|
|
35
34
|
[activeSelector]: {
|
|
36
|
-
color: "
|
|
37
|
-
|
|
35
|
+
color: "$text-primary-active",
|
|
36
|
+
backgroundColor: "transparent",
|
|
37
|
+
borderColor: "$border-primary-active"
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
secondary: {
|
|
41
|
-
color: "
|
|
42
|
-
borderColor: "
|
|
41
|
+
color: "$text-neutrals-subtle",
|
|
42
|
+
borderColor: "$border-neutrals-text-subtle",
|
|
43
43
|
...focus.defaults,
|
|
44
44
|
[hoverSelector]: {
|
|
45
|
-
color: "
|
|
46
|
-
|
|
45
|
+
color: "$text-neutrals-subtle-hover",
|
|
46
|
+
backgroundColor: "$background-neutrals-subtle-hover",
|
|
47
|
+
borderColor: "$border-neutrals-text-subtle-hover"
|
|
47
48
|
},
|
|
48
49
|
[activeSelector]: {
|
|
49
|
-
color: "
|
|
50
|
-
|
|
50
|
+
color: "$text-neutrals-subtle-active",
|
|
51
|
+
backgroundColor: "transparent",
|
|
52
|
+
borderColor: "$border-neutrals-text-subtle-active"
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
},
|
|
54
|
-
|
|
55
|
-
true: {
|
|
56
|
-
borderStyle: "dashed"
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
disabled: {
|
|
56
|
+
asButton: {
|
|
60
57
|
true: {
|
|
61
|
-
|
|
58
|
+
background: "none",
|
|
59
|
+
paddingY: "$0",
|
|
60
|
+
font: "inherit"
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
}
|
|
@@ -69,7 +68,6 @@ const Link = React.forwardRef(
|
|
|
69
68
|
variant = "primary",
|
|
70
69
|
disabled = false,
|
|
71
70
|
"aria-disabled": ariaDisabled,
|
|
72
|
-
dashed = false,
|
|
73
71
|
asChild,
|
|
74
72
|
rel = "",
|
|
75
73
|
target,
|
|
@@ -123,16 +121,16 @@ const Link = React.forwardRef(
|
|
|
123
121
|
"data-pressed": isPressed ? "" : void 0,
|
|
124
122
|
"data-hovered": isHovered ? "" : void 0,
|
|
125
123
|
asChild: asButton || asChild,
|
|
124
|
+
asButton,
|
|
126
125
|
href,
|
|
127
126
|
variant,
|
|
128
127
|
disabled,
|
|
129
128
|
"aria-disabled": !asButton && (disabled || booleanify(ariaDisabled)) ? "true" : void 0,
|
|
130
|
-
dashed,
|
|
131
129
|
tabIndex: tabIndex != null ? tabIndex : disabled && !asButton ? -1 : asChild === true && !asButton ? tabIndex != null ? tabIndex : 0 : void 0,
|
|
132
130
|
rel: relProp,
|
|
133
131
|
target,
|
|
134
132
|
ref: forwardRef,
|
|
135
|
-
children: asButton ? /* @__PURE__ */ jsx("button", {
|
|
133
|
+
children: asButton ? /* @__PURE__ */ jsx("button", { children }) : children
|
|
136
134
|
}
|
|
137
135
|
);
|
|
138
136
|
}
|
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\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
|
|
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 paddingX: '2px',\n\n ...focus.css({\n boxShadow: '$focus-small',\n }),\n\n variants: {\n variant: {\n primary: {\n color: '$text-primary',\n borderColor: '$border-primary',\n [hoverSelector]: {\n color: '$text-primary-hover',\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n },\n [activeSelector]: {\n color: '$text-primary-active',\n backgroundColor: 'transparent',\n borderColor: '$border-primary-active',\n },\n },\n secondary: {\n color: '$text-neutrals-subtle',\n borderColor: '$border-neutrals-text-subtle',\n ...focus.defaults,\n [hoverSelector]: {\n color: '$text-neutrals-subtle-hover',\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-text-subtle-hover',\n },\n [activeSelector]: {\n color: '$text-neutrals-subtle-active',\n backgroundColor: 'transparent',\n borderColor: '$border-neutrals-text-subtle-active',\n },\n },\n },\n asButton: {\n true: {\n background: 'none',\n paddingY: '$0',\n font: 'inherit',\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\nexport const Link = React.forwardRef<ElementRef<'a' | 'button'>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n 'aria-disabled': ariaDisabled,\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 asButton={asButton}\n href={href}\n variant={variant}\n disabled={disabled}\n aria-disabled={\n !asButton && (disabled || booleanify(ariaDisabled))\n ? 'true'\n : undefined\n }\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>{children}</button> : children}\n </StyledLink>\n )\n }\n)\n"],"names":[],"mappings":";;;;;;;;;;AAKA,MAAM,eAAkB,GAAA,OAAA,CAAA;AAExB,MAAM,cAAiB,GAAA,2BAAA,CAAA;AACvB,MAAM,aAAgB,GAAA,0BAAA,CAAA;AAET,MAAA,UAAA,GAAa,MAAO,CAAA,SAAA,CAAU,CAAG,EAAA;AAAA,EAC5C,cAAgB,EAAA,MAAA;AAAA,EAChB,MAAQ,EAAA,CAAA;AAAA,EACR,YAAc,EAAA,wBAAA;AAAA,EACd,MAAQ,EAAA,SAAA;AAAA,EACR,UAAA,EAAY,SAAU,CAAA,MAAA,CAAA,eAAA,EAAe,UAAW,CAAA,CAAA,MAAA,CAAA,eAAA,CAAA;AAAA,EAChD,QAAU,EAAA,KAAA;AAAA,EAEV,GAAG,MAAM,GAAI,CAAA;AAAA,IACX,SAAW,EAAA,cAAA;AAAA,GACZ,CAAA;AAAA,EAED,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,OAAS,EAAA;AAAA,QACP,KAAO,EAAA,eAAA;AAAA,QACP,WAAa,EAAA,iBAAA;AAAA,QACb,CAAC,aAAa,GAAG;AAAA,UACf,KAAO,EAAA,qBAAA;AAAA,UACP,eAAiB,EAAA,kCAAA;AAAA,UACjB,WAAa,EAAA,uBAAA;AAAA,SACf;AAAA,QACA,CAAC,cAAc,GAAG;AAAA,UAChB,KAAO,EAAA,sBAAA;AAAA,UACP,eAAiB,EAAA,aAAA;AAAA,UACjB,WAAa,EAAA,wBAAA;AAAA,SACf;AAAA,OACF;AAAA,MACA,SAAW,EAAA;AAAA,QACT,KAAO,EAAA,uBAAA;AAAA,QACP,WAAa,EAAA,8BAAA;AAAA,QACb,GAAG,KAAM,CAAA,QAAA;AAAA,QACT,CAAC,aAAa,GAAG;AAAA,UACf,KAAO,EAAA,6BAAA;AAAA,UACP,eAAiB,EAAA,mCAAA;AAAA,UACjB,WAAa,EAAA,oCAAA;AAAA,SACf;AAAA,QACA,CAAC,cAAc,GAAG;AAAA,UAChB,KAAO,EAAA,8BAAA;AAAA,UACP,eAAiB,EAAA,aAAA;AAAA,UACjB,WAAa,EAAA,qCAAA;AAAA,SACf;AAAA,OACF;AAAA,KACF;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,UAAY,EAAA,MAAA;AAAA,QACZ,QAAU,EAAA,IAAA;AAAA,QACV,IAAM,EAAA,SAAA;AAAA,OACR;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;ACtCM,MAAM,OAAO,KAAM,CAAA,UAAA;AAAA,EACxB,CACE;AAAA,IACE,OAAU,GAAA,SAAA;AAAA,IACV,QAAW,GAAA,KAAA;AAAA,IACX,eAAiB,EAAA,YAAA;AAAA,IACjB,OAAA;AAAA,IACA,GAAM,GAAA,EAAA;AAAA,IACN,MAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,GAAG,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAA,MAAM,QAAW,GAAA,IAAA,KAAS,KAAa,CAAA,IAAA,OAAA,CAAQ,4BAAW,OAAO,CAAA,CAAA;AACjE,IAAA,IAAI,YAAmC,GAAA,EAAE,GAAG,SAAA,EAAW,OAAQ,EAAA,CAAA;AAE/D,IAAI,IAAA,QAAA,IAAY,UAAW,CAAA,YAAY,CAAG,EAAA;AACxC,MAAe,YAAA,GAAA,gBAAA;AAAA,QACb,YAAA;AAAA,QACA,QAAW,GAAA,EAAK,GAAA,CAAC,UAAU,SAAS,CAAA;AAAA,OACtC,CAAA;AAAA,KACF;AAEA,IAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,QAAS,CAAA;AAAA,MACzC,mBAAqB,EAAA,IAAA;AAAA,MACrB,QAAA,EAAU,QAAY,IAAA,UAAA,CAAW,YAAY,CAAA;AAAA,MAC7C,OAAA;AAAA,MACA,GAAG,YAAA;AAAA,KACJ,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,QAAS,CAAA;AAAA,MACzC,YAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAe,YAAA,GAAA,UAAA,CAAW,YAAY,UAAU,CAAA,CAAA;AAEhD,IAAA,IAAI,OAA8B,GAAA,GAAA,CAAA;AAElC,IAAI,IAAA,CAAC,QAAY,IAAA,MAAA,KAAW,QAAU,EAAA;AACpC,MAAA,IAAI,CAAC,OAAA,CAAQ,QAAS,CAAA,YAAY,CAAG,EAAA;AACnC,QAAA,OAAA,GAAU,aAAc,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;AAAA,OAC1B;AAEA,MAAA,IAAI,CAAC,OAAA,CAAQ,QAAS,CAAA,UAAU,CAAG,EAAA;AACjC,QAAA,OAAA,GAAU,WAAY,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;AAAA,OACxB;AAEA,MAAA,OAAA,GAAU,QAAQ,IAAK,EAAA,CAAA;AAAA,KACzB;AAEA,IAAA,IAAI,YAAY,EAAI,EAAA;AAClB,MAAU,OAAA,GAAA,KAAA,CAAA,CAAA;AAAA,KACZ;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACE,GAAG,YAAA;AAAA,QACJ,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,QAC/B,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,QAC/B,SAAS,QAAY,IAAA,OAAA;AAAA,QACrB,QAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,iBACE,CAAC,QAAA,KAAa,YAAY,UAAW,CAAA,YAAY,KAC7C,MACA,GAAA,KAAA,CAAA;AAAA,QAEN,QACE,EAAA,QAAA,IAAY,IACR,GAAA,QAAA,GACA,QAAY,IAAA,CAAC,QACb,GAAA,CAAA,CAAA,GACA,OAAY,KAAA,IAAA,IAAQ,CAAC,QAAA,GACrB,8BAAY,CACZ,GAAA,KAAA,CAAA;AAAA,QAEN,GAAK,EAAA,OAAA;AAAA,QACL,MAAA;AAAA,QAGA,GAAK,EAAA,UAAA;AAAA,QAEJ,QAAW,EAAA,QAAA,mBAAA,GAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAS,CAAY,GAAA,QAAA;AAAA,OAAA;AAAA,KAC5C,CAAA;AAAA,GAEJ;AACF;;;;"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,12 +9,10 @@ import * as _stitches_react_types_styled_component from '@stitches/react/types/s
|
|
|
9
9
|
|
|
10
10
|
declare const StyledLink: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
11
11
|
variant?: "primary" | "secondary" | undefined;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}, "dashed" | "disabled" | "variant"> & _stitches_react_types_styled_component.TransformProps<{
|
|
12
|
+
asButton?: boolean | "true" | undefined;
|
|
13
|
+
}, "variant" | "asButton"> & _stitches_react_types_styled_component.TransformProps<{
|
|
15
14
|
variant?: "primary" | "secondary" | undefined;
|
|
16
|
-
|
|
17
|
-
disabled?: boolean | "true" | undefined;
|
|
15
|
+
asButton?: boolean | "true" | undefined;
|
|
18
16
|
}, {}> & _mirohq_design_system_stitches.SafeProps<Omit<Omit<react.DetailedHTMLProps<react.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
|
|
19
17
|
ref?: ((instance: HTMLAnchorElement | null) => void) | react.RefObject<HTMLAnchorElement> | null | undefined;
|
|
20
18
|
} & {
|
|
@@ -231,7 +229,6 @@ declare const StyledLink: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
231
229
|
readonly 'focus-small-outline': "0 0 0 2px $colors$border-focus-outer, inset 0 0 0 1px $colors$border-focus-middle, inset 0 0 0 2px $colors$border-focus-inner";
|
|
232
230
|
readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
|
|
233
231
|
readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
|
|
234
|
-
readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
|
|
235
232
|
};
|
|
236
233
|
sizes: {
|
|
237
234
|
readonly number: string;
|
|
@@ -301,7 +298,6 @@ declare const StyledLink: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
301
298
|
};
|
|
302
299
|
'z-indices': {
|
|
303
300
|
readonly dropdownMenu: 100;
|
|
304
|
-
readonly select: 100;
|
|
305
301
|
readonly popover: 200;
|
|
306
302
|
readonly tooltip: 300;
|
|
307
303
|
};
|
|
@@ -491,8 +487,7 @@ declare const StyledLink: react.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
491
487
|
children?: react.ReactNode;
|
|
492
488
|
} & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLAnchorElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"a">>, {
|
|
493
489
|
variant?: "primary" | "secondary" | undefined;
|
|
494
|
-
|
|
495
|
-
disabled?: boolean | "true" | undefined;
|
|
490
|
+
asButton?: boolean | "true" | undefined;
|
|
496
491
|
}, {}>;
|
|
497
492
|
declare type StyledLinkProps = ComponentPropsWithRef<typeof StyledLink>;
|
|
498
493
|
|
|
@@ -505,14 +500,6 @@ interface LinkProps extends StyledLinkProps, PressProps, HoverEvents {
|
|
|
505
500
|
* Change the link styles
|
|
506
501
|
*/
|
|
507
502
|
variant?: StyledLinkProps['variant'];
|
|
508
|
-
/**
|
|
509
|
-
* Set the underline to dashed mode
|
|
510
|
-
*/
|
|
511
|
-
dashed?: boolean;
|
|
512
|
-
/**
|
|
513
|
-
* Make the link non-interactive
|
|
514
|
-
*/
|
|
515
|
-
disabled?: boolean;
|
|
516
503
|
}
|
|
517
504
|
declare const Link: react__default.ForwardRefExoticComponent<Omit<LinkProps, "ref"> & react__default.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
518
505
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirohq/design-system-link",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0-link.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Miro",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"@react-aria/utils": "^3.13.0",
|
|
31
31
|
"@react-types/shared": "^3.16.0",
|
|
32
32
|
"@mirohq/design-system-primitive": "^1.1.1",
|
|
33
|
-
"@mirohq/design-system-stitches": "^2.3.
|
|
34
|
-
"@mirohq/design-system-
|
|
35
|
-
"@mirohq/design-system-
|
|
33
|
+
"@mirohq/design-system-stitches": "^2.3.10",
|
|
34
|
+
"@mirohq/design-system-utils": "^0.14.3",
|
|
35
|
+
"@mirohq/design-system-styles": "^1.1.7-link.0"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "rollup -c ../../../rollup.config.js",
|