@activecollab/components
Version:
ActiveCollab Components
56 lines • 2.65 kB
JavaScript
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