"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Link = void 0; const styled_components_1 = __importDefault(require("styled-components")); const styled_system_1 = require("styled-system"); const css_class_1 = require("../../utils/css-class"); const sizeVariants = styled_system_1.variant({ prop: 'size', variants: { sm: { fontSize: 'xs', py: 'sm', }, lg: { fontSize: 'default', }, }, }); const variants = styled_system_1.variant({ variants: { primary: { color: 'primary100', '&:hover': { color: 'hoverBg', '& svg': { fill: 'hoverBg', }, }, '& svg': { fill: 'primary100', }, }, danger: { color: 'error', '&:hover': { color: 'error', }, '& svg': { fill: 'error', }, }, success: { color: 'success', '&:hover': { color: 'success', }, '& svg': { fill: 'success', }, }, info: { color: 'primary60', '&:hover': { color: 'hoverBg', }, '& svg': { fill: 'primary60', }, }, secondary: { color: 'accent', '&:hover': { color: 'hoverBg', }, '& svg': { fill: 'accent', }, }, }, }); /** * @classdesc * * * * Styled form of Link element. * * ### Usage * * ```javascript * import { Link, LinkProps } from '@adminjs/design-system' * ``` * * @component * @subcategory Atoms * @see LinkProps * @see {@link https://storybook.adminjs.co/?path=/story/designsystem-atoms-link--default Storybook} * @hideconstructor * @example All color variants * const variants = ['primary', 'danger', 'success', 'info', 'secondary'] * return ( * * {variants.map(variant => ( * {variant} * ))} * * ) * @example With icons * return ( * * * * With an icon * * * ) * @section design-system */ const Link = styled_components_1.default.a ` font-family: ${({ theme }) => theme.font}; vertical-align: middle; cursor: pointer; text-decoration: none; &:hover { text-decoration: underline; } & svg { padding-right: ${({ theme }) => theme.space.default}; vertical-align: text-top; } ${({ uppercase }) => (uppercase ? 'text-transform: uppercase;' : '')} ${styled_system_1.color}; ${styled_system_1.space}; ${sizeVariants}; ${variants}; `; exports.Link = Link; Link.defaultProps = { color: 'grey60', className: css_class_1.cssClass('Link'), }; exports.default = Link;