@mirohq/design-system-link 1.2.11-use-press.1 → 1.2.12

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 CHANGED
@@ -3,10 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var link = require('@react-aria/link');
6
7
  var utils = require('@react-aria/utils');
7
- var designSystemUtils = require('@mirohq/design-system-utils');
8
- var interactions = require('@react-aria/interactions');
9
- var designSystemUsePress = require('@mirohq/design-system-use-press');
8
+ var button = require('@react-aria/button');
10
9
  var designSystemPrimitive = require('@mirohq/design-system-primitive');
11
10
  var designSystemStitches = require('@mirohq/design-system-stitches');
12
11
  var designSystemStyles = require('@mirohq/design-system-styles');
@@ -72,60 +71,62 @@ const Link = React__default["default"].forwardRef(
72
71
  ({
73
72
  variant = "primary",
74
73
  disabled = false,
75
- "aria-disabled": ariaDisabled,
76
74
  dashed = false,
77
- asChild,
78
75
  rel = "",
79
76
  target,
80
77
  href,
81
78
  onClick,
82
79
  onPress,
83
80
  children,
84
- onHoverStart,
85
- onHoverEnd,
86
- onHoverChange,
81
+ tabIndex,
87
82
  ...restProps
88
83
  }, forwardRef) => {
89
- const asButton = href === void 0 && Boolean(onPress != null ? onPress : onClick);
90
- let elementProps = { ...restProps, onClick };
91
- if (disabled || designSystemUtils.booleanify(ariaDisabled)) {
92
- elementProps = designSystemUtils.removeEventProps(
93
- elementProps,
94
- disabled ? [] : ["onBlur", "onFocus"]
95
- );
84
+ const ref = React.useRef(null);
85
+ const refWithFallback = forwardRef != null ? forwardRef : ref;
86
+ const { linkProps } = link.useLink(
87
+ {
88
+ isDisabled: disabled,
89
+ onPress: onPress != null ? onPress : onClick,
90
+ ...restProps
91
+ },
92
+ refWithFallback
93
+ );
94
+ const { buttonProps } = button.useButton(
95
+ {
96
+ isDisabled: disabled,
97
+ href,
98
+ onPress: onPress != null ? onPress : onClick,
99
+ allowFocusWhenDisabled: false,
100
+ ...restProps
101
+ },
102
+ refWithFallback
103
+ );
104
+ const asButton = href == null && (onPress != null ? onPress : onClick) != null;
105
+ const elementProps = utils.mergeProps(
106
+ restProps,
107
+ asButton ? buttonProps : linkProps
108
+ );
109
+ let relProp = rel;
110
+ if (!asButton && target === "_blank") {
111
+ if (!relProp.includes("noreferrer")) {
112
+ relProp = `noreferrer ${relProp}`;
113
+ }
114
+ if (!relProp.includes("noopener")) {
115
+ relProp = `noopener ${relProp}`;
116
+ }
96
117
  }
97
- const { pressProps, isPressed } = designSystemUsePress.usePress({
98
- preventFocusOnPress: true,
99
- disabled: disabled || designSystemUtils.booleanify(ariaDisabled),
100
- onPress,
101
- ...elementProps
102
- });
103
- const { hoverProps, isHovered } = interactions.useHover({
104
- onHoverStart,
105
- onHoverEnd,
106
- onHoverChange
107
- });
108
- elementProps = utils.mergeProps(pressProps, hoverProps);
109
- const relProp = !asButton && {
110
- rel: target === "_blank" ? `noopener noreferrer ${rel}`.trim() : rel
111
- };
112
118
  return /* @__PURE__ */ React__default["default"].createElement(StyledLink, {
113
119
  ...elementProps,
114
- "data-pressed": isPressed ? "" : void 0,
115
- "data-hovered": isHovered ? "" : void 0,
116
- asChild: asButton || asChild,
120
+ ref: refWithFallback,
117
121
  href,
118
122
  variant,
119
123
  disabled,
120
- "aria-disabled": !asButton && (disabled || designSystemUtils.booleanify(ariaDisabled)) ? "true" : void 0,
121
124
  dashed,
122
- tabIndex: disabled && !asButton ? -1 : asChild === true && !asButton ? 0 : void 0,
123
- ...relProp,
124
- target,
125
- ref: forwardRef
126
- }, asButton ? /* @__PURE__ */ React__default["default"].createElement("button", {
127
- disabled
128
- }, children) : children);
125
+ asChild: asButton,
126
+ tabIndex: tabIndex != null ? tabIndex : disabled ? -1 : href != null ? void 0 : onClick != null || onPress != null ? 0 : void 0,
127
+ rel: relProp.trim(),
128
+ target
129
+ }, asButton ? /* @__PURE__ */ React__default["default"].createElement("button", null, children) : children);
129
130
  }
130
131
  );
131
132
 
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: '$none',\n margin: '$none',\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 '&:hover': {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n '&:active': {\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 '&:hover': {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n '&:active': {\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 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 const relProp = !asButton && {\n rel: target === '_blank' ? `noopener noreferrer ${rel}`.trim() : rel,\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 disabled && !asButton\n ? -1\n : asChild === true && !asButton\n ? 0\n : undefined\n }\n {...relProp}\n target={target}\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"],"mappings":"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"}
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: '$none',\n margin: '$none',\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 '&:hover': {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n '&:active': {\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 '&:hover': {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n '&:active': {\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, { useRef } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { useLink } from '@react-aria/link'\nimport type { AriaLinkProps } from '@react-types/link'\nimport { mergeProps } from '@react-aria/utils'\nimport { useButton } from '@react-aria/button'\n\nimport type { StyledLinkProps } from './link.styled'\nimport { StyledLink } from './link.styled'\n\ntype LinkPropsA11y = StyledLinkProps & AriaLinkProps\n\nexport interface LinkProps\n extends Omit<LinkPropsA11y, 'onClick' | 'isDisabled' | 'elementType'> {\n /**\n * The content\n */\n children: ReactNode\n\n /**\n * Change the link styles\n */\n variant?: StyledLinkProps['variant']\n\n /**\n * Disable the mouse events\n */\n disabled?: boolean\n\n /**\n * Set the underline to dashed mode\n */\n dashed?: boolean\n\n /**\n * Alias for onPress\n */\n onClick?: AriaLinkProps['onPress']\n}\n\nexport const Link = React.forwardRef<ElementRef<typeof StyledLink>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n dashed = false,\n rel = '',\n target,\n href,\n onClick,\n onPress,\n children,\n tabIndex,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLAnchorElement>(null)\n const refWithFallback = forwardRef ?? ref\n const { linkProps } = useLink(\n {\n isDisabled: disabled,\n onPress: onPress ?? onClick,\n ...restProps,\n },\n // @ts-expect-error\n refWithFallback\n )\n\n const { buttonProps } = useButton(\n {\n isDisabled: disabled,\n href,\n onPress: onPress ?? onClick,\n // @ts-expect-error\n allowFocusWhenDisabled: false,\n ...restProps,\n },\n refWithFallback\n )\n\n const asButton = href == null && (onPress ?? onClick) != null\n\n const elementProps = mergeProps(\n restProps,\n asButton ? buttonProps : linkProps\n )\n\n let relProp = 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\n return (\n <StyledLink\n {...elementProps}\n ref={refWithFallback}\n href={href}\n variant={variant}\n disabled={disabled}\n dashed={dashed}\n asChild={asButton}\n tabIndex={\n tabIndex != null\n ? tabIndex\n : disabled\n ? -1\n : href != null\n ? undefined\n : onClick != null || onPress != null\n ? 0\n : undefined\n }\n rel={relProp.trim()}\n target={target}\n >\n {asButton ? <button>{children}</button> : children}\n </StyledLink>\n )\n }\n)\n"],"names":["styled","Primitive","focus","React","useRef","useLink","useButton","mergeProps"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -1,8 +1,7 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
+ import { useLink } from '@react-aria/link';
2
3
  import { mergeProps } from '@react-aria/utils';
3
- import { booleanify, removeEventProps } from '@mirohq/design-system-utils';
4
- import { useHover } from '@react-aria/interactions';
5
- import { usePress } from '@mirohq/design-system-use-press';
4
+ import { useButton } from '@react-aria/button';
6
5
  import { Primitive } from '@mirohq/design-system-primitive';
7
6
  import { styled } from '@mirohq/design-system-stitches';
8
7
  import { focus } from '@mirohq/design-system-styles';
@@ -64,60 +63,62 @@ const Link = React.forwardRef(
64
63
  ({
65
64
  variant = "primary",
66
65
  disabled = false,
67
- "aria-disabled": ariaDisabled,
68
66
  dashed = false,
69
- asChild,
70
67
  rel = "",
71
68
  target,
72
69
  href,
73
70
  onClick,
74
71
  onPress,
75
72
  children,
76
- onHoverStart,
77
- onHoverEnd,
78
- onHoverChange,
73
+ tabIndex,
79
74
  ...restProps
80
75
  }, forwardRef) => {
81
- const asButton = href === void 0 && Boolean(onPress != null ? onPress : onClick);
82
- let elementProps = { ...restProps, onClick };
83
- if (disabled || booleanify(ariaDisabled)) {
84
- elementProps = removeEventProps(
85
- elementProps,
86
- disabled ? [] : ["onBlur", "onFocus"]
87
- );
76
+ const ref = useRef(null);
77
+ const refWithFallback = forwardRef != null ? forwardRef : ref;
78
+ const { linkProps } = useLink(
79
+ {
80
+ isDisabled: disabled,
81
+ onPress: onPress != null ? onPress : onClick,
82
+ ...restProps
83
+ },
84
+ refWithFallback
85
+ );
86
+ const { buttonProps } = useButton(
87
+ {
88
+ isDisabled: disabled,
89
+ href,
90
+ onPress: onPress != null ? onPress : onClick,
91
+ allowFocusWhenDisabled: false,
92
+ ...restProps
93
+ },
94
+ refWithFallback
95
+ );
96
+ const asButton = href == null && (onPress != null ? onPress : onClick) != null;
97
+ const elementProps = mergeProps(
98
+ restProps,
99
+ asButton ? buttonProps : linkProps
100
+ );
101
+ let relProp = rel;
102
+ if (!asButton && target === "_blank") {
103
+ if (!relProp.includes("noreferrer")) {
104
+ relProp = `noreferrer ${relProp}`;
105
+ }
106
+ if (!relProp.includes("noopener")) {
107
+ relProp = `noopener ${relProp}`;
108
+ }
88
109
  }
89
- const { pressProps, isPressed } = usePress({
90
- preventFocusOnPress: true,
91
- disabled: disabled || booleanify(ariaDisabled),
92
- onPress,
93
- ...elementProps
94
- });
95
- const { hoverProps, isHovered } = useHover({
96
- onHoverStart,
97
- onHoverEnd,
98
- onHoverChange
99
- });
100
- elementProps = mergeProps(pressProps, hoverProps);
101
- const relProp = !asButton && {
102
- rel: target === "_blank" ? `noopener noreferrer ${rel}`.trim() : rel
103
- };
104
110
  return /* @__PURE__ */ React.createElement(StyledLink, {
105
111
  ...elementProps,
106
- "data-pressed": isPressed ? "" : void 0,
107
- "data-hovered": isHovered ? "" : void 0,
108
- asChild: asButton || asChild,
112
+ ref: refWithFallback,
109
113
  href,
110
114
  variant,
111
115
  disabled,
112
- "aria-disabled": !asButton && (disabled || booleanify(ariaDisabled)) ? "true" : void 0,
113
116
  dashed,
114
- tabIndex: disabled && !asButton ? -1 : asChild === true && !asButton ? 0 : void 0,
115
- ...relProp,
116
- target,
117
- ref: forwardRef
118
- }, asButton ? /* @__PURE__ */ React.createElement("button", {
119
- disabled
120
- }, children) : children);
117
+ asChild: asButton,
118
+ tabIndex: tabIndex != null ? tabIndex : disabled ? -1 : href != null ? void 0 : onClick != null || onPress != null ? 0 : void 0,
119
+ rel: relProp.trim(),
120
+ target
121
+ }, asButton ? /* @__PURE__ */ React.createElement("button", null, children) : children);
121
122
  }
122
123
  );
123
124
 
@@ -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: '$none',\n margin: '$none',\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 '&:hover': {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n '&:active': {\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 '&:hover': {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n '&:active': {\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 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 const relProp = !asButton && {\n rel: target === '_blank' ? `noopener noreferrer ${rel}`.trim() : rel,\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 disabled && !asButton\n ? -1\n : asChild === true && !asButton\n ? 0\n : undefined\n }\n {...relProp}\n target={target}\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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"}
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: '$none',\n margin: '$none',\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 '&:hover': {\n color: 'rgba(69, 91, 237, 1)',\n borderColor: 'rgba(104, 129, 255, 1)',\n },\n '&:active': {\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 '&:hover': {\n color: 'rgba(95, 92, 128, 1)',\n borderColor: 'rgba(147, 145, 166, 1)',\n },\n '&:active': {\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, { useRef } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { useLink } from '@react-aria/link'\nimport type { AriaLinkProps } from '@react-types/link'\nimport { mergeProps } from '@react-aria/utils'\nimport { useButton } from '@react-aria/button'\n\nimport type { StyledLinkProps } from './link.styled'\nimport { StyledLink } from './link.styled'\n\ntype LinkPropsA11y = StyledLinkProps & AriaLinkProps\n\nexport interface LinkProps\n extends Omit<LinkPropsA11y, 'onClick' | 'isDisabled' | 'elementType'> {\n /**\n * The content\n */\n children: ReactNode\n\n /**\n * Change the link styles\n */\n variant?: StyledLinkProps['variant']\n\n /**\n * Disable the mouse events\n */\n disabled?: boolean\n\n /**\n * Set the underline to dashed mode\n */\n dashed?: boolean\n\n /**\n * Alias for onPress\n */\n onClick?: AriaLinkProps['onPress']\n}\n\nexport const Link = React.forwardRef<ElementRef<typeof StyledLink>, LinkProps>(\n (\n {\n variant = 'primary',\n disabled = false,\n dashed = false,\n rel = '',\n target,\n href,\n onClick,\n onPress,\n children,\n tabIndex,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLAnchorElement>(null)\n const refWithFallback = forwardRef ?? ref\n const { linkProps } = useLink(\n {\n isDisabled: disabled,\n onPress: onPress ?? onClick,\n ...restProps,\n },\n // @ts-expect-error\n refWithFallback\n )\n\n const { buttonProps } = useButton(\n {\n isDisabled: disabled,\n href,\n onPress: onPress ?? onClick,\n // @ts-expect-error\n allowFocusWhenDisabled: false,\n ...restProps,\n },\n refWithFallback\n )\n\n const asButton = href == null && (onPress ?? onClick) != null\n\n const elementProps = mergeProps(\n restProps,\n asButton ? buttonProps : linkProps\n )\n\n let relProp = 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\n return (\n <StyledLink\n {...elementProps}\n ref={refWithFallback}\n href={href}\n variant={variant}\n disabled={disabled}\n dashed={dashed}\n asChild={asButton}\n tabIndex={\n tabIndex != null\n ? tabIndex\n : disabled\n ? -1\n : href != null\n ? undefined\n : onClick != null || onPress != null\n ? 0\n : undefined\n }\n rel={relProp.trim()}\n target={target}\n >\n {asButton ? <button>{children}</button> : children}\n </StyledLink>\n )\n }\n)\n"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { ComponentPropsWithRef, ReactNode } from 'react';
3
- import { HoverEvents } from '@react-types/shared';
4
- import { PressProps } from '@mirohq/design-system-use-press';
3
+ import { AriaLinkProps } from '@react-types/link';
5
4
  import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
6
5
  import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
7
6
  import * as _stitches_react_types_css_util from '@stitches/react/types/css-util';
@@ -11,7 +10,7 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
11
10
  variant?: "primary" | "secondary" | undefined;
12
11
  dashed?: boolean | "true" | undefined;
13
12
  disabled?: boolean | "true" | undefined;
14
- }, "dashed" | "disabled" | "variant"> & _stitches_react_types_styled_component.TransformProps<{
13
+ }, "disabled" | "dashed" | "variant"> & _stitches_react_types_styled_component.TransformProps<{
15
14
  variant?: "primary" | "secondary" | undefined;
16
15
  dashed?: boolean | "true" | undefined;
17
16
  disabled?: boolean | "true" | undefined;
@@ -92,7 +91,6 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
92
91
  readonly 'background-danger-prominent-active'?: any;
93
92
  readonly 'background-danger-prominent-hover'?: any;
94
93
  readonly 'background-neutrals'?: any;
95
- readonly 'background-neutrals-body'?: any;
96
94
  readonly 'background-neutrals-container'?: any;
97
95
  readonly 'background-neutrals-controls-disabled'?: any;
98
96
  readonly 'background-neutrals-disabled'?: any;
@@ -100,6 +98,8 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
100
98
  readonly 'background-neutrals-inactive-hover'?: any;
101
99
  readonly 'background-neutrals-inverted'?: any;
102
100
  readonly 'background-neutrals-inverted-subtle'?: any;
101
+ readonly 'background-neutrals-page'?: any;
102
+ readonly 'background-neutrals-page-subtle'?: any;
103
103
  readonly 'background-neutrals-scrolls'?: any;
104
104
  readonly 'background-neutrals-scrolls-hover'?: any;
105
105
  readonly 'background-neutrals-subtle'?: any;
@@ -123,12 +123,11 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
123
123
  readonly 'text-neutrals'?: any;
124
124
  readonly 'text-neutrals-disabled'?: any;
125
125
  readonly 'text-neutrals-inverted'?: any;
126
- readonly 'text-neutrals-link'?: any;
127
- readonly 'text-neutrals-link-active'?: any;
128
- readonly 'text-neutrals-link-hover'?: any;
129
126
  readonly 'text-neutrals-placeholder'?: any;
130
127
  readonly 'text-neutrals-placeholder-only'?: any;
131
128
  readonly 'text-neutrals-subtle'?: any;
129
+ readonly 'text-neutrals-subtle-active'?: any;
130
+ readonly 'text-neutrals-subtle-hover'?: any;
132
131
  readonly 'text-primary'?: any;
133
132
  readonly 'text-primary-active'?: any;
134
133
  readonly 'text-primary-hover'?: any;
@@ -148,7 +147,7 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
148
147
  readonly 'icon-neutrals-inverted'?: any;
149
148
  readonly 'icon-neutrals-search'?: any;
150
149
  readonly 'icon-neutrals-subtle'?: any;
151
- readonly 'icon-neutrals-with-text'?: any;
150
+ readonly 'icon-neutrals-text'?: any;
152
151
  readonly 'icon-primary'?: any;
153
152
  readonly 'icon-primary-active'?: any;
154
153
  readonly 'icon-primary-hover'?: any;
@@ -157,7 +156,10 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
157
156
  readonly 'icon-success'?: any;
158
157
  readonly 'icon-success-inverted'?: any;
159
158
  readonly 'icon-warning'?: any;
159
+ readonly 'icon-warning-prominent'?: any;
160
160
  readonly 'border-danger'?: any;
161
+ readonly 'border-danger-active'?: any;
162
+ readonly 'border-danger-hover'?: any;
161
163
  readonly 'border-focus-inner'?: any;
162
164
  readonly 'border-focus-middle'?: any;
163
165
  readonly 'border-focus-outer'?: any;
@@ -169,6 +171,9 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
169
171
  readonly 'border-neutrals-hover'?: any;
170
172
  readonly 'border-neutrals-inverted'?: any;
171
173
  readonly 'border-neutrals-subtle'?: any;
174
+ readonly 'border-neutrals-text-subtle'?: any;
175
+ readonly 'border-neutrals-text-subtle-active'?: any;
176
+ readonly 'border-neutrals-text-subtle-hover'?: any;
172
177
  readonly 'border-primary'?: any;
173
178
  readonly 'border-primary-active'?: any;
174
179
  readonly 'border-primary-hover'?: any;
@@ -460,14 +465,15 @@ declare const StyledLink: react.ForwardRefExoticComponent<Pick<Omit<{
460
465
  }> | undefined;
461
466
  }> & {
462
467
  children?: react.ReactNode;
463
- } & _mirohq_design_system_stitches.CustomStylesProps, "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "slot" | "title" | "color" | "translate" | "hidden" | "dashed" | "prefix" | "id" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "disabled" | "target" | "href" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "download" | "hrefLang" | "media" | "ping" | "rel" | "referrerPolicy" | "asChild" | keyof _mirohq_design_system_stitches.CustomStylesProps | "variant"> & react.RefAttributes<HTMLAnchorElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"a">>, {
468
+ } & _mirohq_design_system_stitches.CustomStylesProps, "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "disabled" | "type" | "referrerPolicy" | "media" | "target" | "href" | "download" | "hrefLang" | "ping" | "rel" | "asChild" | "dashed" | keyof _mirohq_design_system_stitches.CustomStylesProps | "variant"> & react.RefAttributes<HTMLAnchorElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"a">>, {
464
469
  variant?: "primary" | "secondary" | undefined;
465
470
  dashed?: boolean | "true" | undefined;
466
471
  disabled?: boolean | "true" | undefined;
467
472
  }, {}>;
468
473
  declare type StyledLinkProps = ComponentPropsWithRef<typeof StyledLink>;
469
474
 
470
- interface LinkProps extends StyledLinkProps, PressProps, HoverEvents {
475
+ declare type LinkPropsA11y = StyledLinkProps & AriaLinkProps;
476
+ interface LinkProps extends Omit<LinkPropsA11y, 'onClick' | 'isDisabled' | 'elementType'> {
471
477
  /**
472
478
  * The content
473
479
  */
@@ -476,15 +482,19 @@ interface LinkProps extends StyledLinkProps, PressProps, HoverEvents {
476
482
  * Change the link styles
477
483
  */
478
484
  variant?: StyledLinkProps['variant'];
485
+ /**
486
+ * Disable the mouse events
487
+ */
488
+ disabled?: boolean;
479
489
  /**
480
490
  * Set the underline to dashed mode
481
491
  */
482
492
  dashed?: boolean;
483
493
  /**
484
- * Make the link non-interactive
494
+ * Alias for onPress
485
495
  */
486
- disabled?: boolean;
496
+ onClick?: AriaLinkProps['onPress'];
487
497
  }
488
- declare const Link: react__default.ForwardRefExoticComponent<Pick<LinkProps, "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "slot" | "title" | "color" | "translate" | "hidden" | "dashed" | "prefix" | "id" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "pressed" | "disabled" | "preventFocusOnPress" | "allowTextSelectionOnPress" | "shouldCancelOnPointerExit" | "target" | "href" | "type" | "onPressStart" | "onPressEnd" | "onPressChange" | "onPress" | "onPressUp" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "download" | "hrefLang" | "media" | "ping" | "rel" | "referrerPolicy" | "asChild" | "css" | "UNSAFE_style" | "variant" | "onHoverStart" | "onHoverEnd" | "onHoverChange"> & react__default.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
498
+ declare const Link: react__default.ForwardRefExoticComponent<Pick<LinkProps, "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "disabled" | "type" | "referrerPolicy" | "media" | "target" | "href" | "download" | "hrefLang" | "ping" | "rel" | "asChild" | "css" | "UNSAFE_style" | "dashed" | "variant" | "onPress" | "onPressStart" | "onPressEnd" | "onPressChange" | "onPressUp" | "onFocusChange"> & react__default.RefAttributes<HTMLAnchorElement>>;
489
499
 
490
500
  export { Link, LinkProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-link",
3
- "version": "1.2.11-use-press.1",
3
+ "version": "1.2.12",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -26,13 +26,14 @@
26
26
  "react": "^16.14 || ^17 || ^18"
27
27
  },
28
28
  "dependencies": {
29
- "@react-aria/interactions": "^3.13.0",
29
+ "@react-aria/button": "^3.5.0",
30
+ "@react-aria/link": "^3.3.0",
30
31
  "@react-aria/utils": "^3.13.0",
31
- "@react-types/shared": "^3.16.0",
32
+ "@react-types/link": "^3.3.0",
32
33
  "@mirohq/design-system-primitive": "^1.1.0",
33
- "@mirohq/design-system-stitches": "^2.3.2-use-press.0",
34
- "@mirohq/design-system-utils": "^0.14.0-use-press.1",
35
- "@mirohq/design-system-styles": "^1.1.0-use-press.0"
34
+ "@mirohq/design-system-utils": "^0.13.2",
35
+ "@mirohq/design-system-styles": "^1.0.24",
36
+ "@mirohq/design-system-stitches": "^2.3.2"
36
37
  },
37
38
  "scripts": {
38
39
  "build": "rollup -c ../../../rollup.config.js",