import { type AnchorHTMLAttributes } from 'react'; import { Link as ReactRouterLink, NavLink, type NavLinkProps } from 'react-router-dom'; import { type ButtonProps } from '../buttons'; import { type IconName } from '../icon'; type BaseLinkProps = Pick, 'id' | 'className' | 'onClick' | 'aria-disabled' | 'aria-label' | 'target' | 'children' | 'href' | 'rel' | 'onFocus' | 'onBlur' | 'onKeyDown'> & Pick; export type LinkButtonProps = Pick; interface IconOnlyLink { children: never; /** Icon Only Variant (with a tooltip) * Make sure to provide an icon name and a label (for the tooltip) */ icon: { name: IconName; label: string; }; } interface WithIconLink { icon?: { name: IconName; }; } export type LinkProps = BaseLinkProps & { disabled?: boolean; /** Button Link Variant */ button?: LinkButtonProps; /** External Link Variant */ external?: boolean; routerLink?: typeof NavLink | typeof ReactRouterLink; } & (IconOnlyLink | WithIconLink); export {};