@atlaskit/primitives
Version:
Primitives are token-backed low-level building blocks.
32 lines (31 loc) • 1.68 kB
TypeScript
import React, { type ReactNode, type Ref } from 'react';
import { type RouterLinkComponentProps } from '@atlaskit/app-provider';
import { type BoxProps } from './box';
export type LinkProps<RouterLinkConfig extends Record<string, any> = never> = RouterLinkComponentProps<RouterLinkConfig> & Omit<BoxProps<'a'>, 'href' | 'as' | 'children' | 'style'> & {
/**
* `children` should be defined to ensure links have text
*/
children: ReactNode;
};
declare const Link: <RouterLinkConfig extends Record<string, any> = never>({ href, children, backgroundColor, padding, paddingBlock, paddingBlockStart, paddingBlockEnd, paddingInline, paddingInlineStart, paddingInlineEnd, testId, xcss: xcssStyles, target, rel, ...htmlAttributes }: LinkProps<RouterLinkConfig>, ref: Ref<HTMLAnchorElement>) => JSX.Element;
/**
* __UNSAFE_LINK__
*
* @internal Still under development. Do not use.
*
* A Link is a primitive component that renders an `<a>` anchor. It utilizes
* the configured router link component in the AppProvider if set.
*
* - [Examples](https://atlassian.design/components/primitives/link/examples)
* - [Code](https://atlassian.design/components/primitives/link/code)
* - [Usage](https://atlassian.design/components/primitives/link/usage)
*/
declare const UNSAFE_LINK: <RouterLinkConfig extends Record<string, any> = never>(props: RouterLinkComponentProps<RouterLinkConfig> & Omit<BoxProps<"a">, "style" | "children" | "as" | "href"> & {
/**
* `children` should be defined to ensure links have text
*/
children: ReactNode;
} & {
ref?: React.Ref<HTMLAnchorElement> | undefined;
}) => ReturnType<typeof Link>;
export default UNSAFE_LINK;