UNPKG

@activecollab/components

Version:

ActiveCollab Components

56 lines 2.65 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["as", "children", "variant", "size", "disabled", "className", "isExternal"]; import React, { forwardRef } from "react"; import classNames from "classnames"; import { StyledLink, StyledLinkElement, StyledLinkElements } from "./Styles"; import OpenExpandedIcon from "../Icons/collection/OpenExpanded"; /** * Link component */ export const Link = /*#__PURE__*/forwardRef((_ref, ref) => { let as = _ref.as, children = _ref.children, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? "contained" : _ref$variant, size = _ref.size, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, className = _ref.className, _ref$isExternal = _ref.isExternal, isExternal = _ref$isExternal === void 0 ? false : _ref$isExternal, args = _objectWithoutPropertiesLoose(_ref, _excluded); const Component = as || "a"; return /*#__PURE__*/React.createElement(StyledLink, _extends({ ref: ref, as: Component, disabled: disabled, className: classNames("c-link", className, { "c-link--contained": variant === "primary" || variant === "contained", "c-link--outlined": variant === "secondary" || variant === "outlined", "c-link--text_colored": variant === "tertiary" || variant === "text colored", "c-link--text_gray": variant === "option" || variant === "text gray", "c-link--dark_transparent": variant === "dark transparent", "c-link--circle_raised": variant === "circle raised", "c-link--big": size === "big", "c-link--small": size === "small", "c-link--icon-only": children instanceof Object && !(children instanceof Array), "c-link--disabled": disabled }), variant: variant, size: size, $iconOnly: children instanceof Object && !(children instanceof Array) }, args), children instanceof Array || isExternal ? /*#__PURE__*/React.createElement(StyledLinkElements, { className: "c-link__elements" }, (children instanceof Array ? children : [children]).map((value, index) => value ? /*#__PURE__*/React.createElement(StyledLinkElement, { className: "c-link__elements__element", key: index }, value) : null), isExternal && /*#__PURE__*/React.createElement(StyledLinkElement, { className: "c-link__elements__element" }, /*#__PURE__*/React.createElement(OpenExpandedIcon, { width: 16, height: 16 }))) : children); }); Link.displayName = "Link"; //# sourceMappingURL=Link.js.map