You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					136 lines
				
				3.2 KiB
			
		
		
			
		
	
	
					136 lines
				
				3.2 KiB
			| 
											3 years ago
										 | "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 | ||
|  |  * | ||
|  |  * <img src="components/link.png" /> | ||
|  |  * | ||
|  |  * 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 <caption>All color variants</caption> | ||
|  |  * const variants = ['primary', 'danger', 'success', 'info', 'secondary'] | ||
|  |  * return ( | ||
|  |  * <Box py="xl"> | ||
|  |  *   {variants.map(variant => ( | ||
|  |  *      <Link href="#" variant={variant} mr="xl">{variant}</Link> | ||
|  |  *   ))} | ||
|  |  * </Box> | ||
|  |  * ) | ||
|  |  * @example <caption>With icons</caption> | ||
|  |  * return ( | ||
|  |  * <Box py="xl"> | ||
|  |  *   <Link href="#" mr="xl"> | ||
|  |  *     <Icon icon="Add" /> | ||
|  |  *     With an icon | ||
|  |  *   </Link> | ||
|  |  * </Box> | ||
|  |  * ) | ||
|  |  * @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; |