@activecollab/components
Version:
ActiveCollab Components
49 lines • 1.93 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["startAdornment", "label", "onClose", "size", "color", "backgroundColor", "closeClassName", "typographyProps"];
import React, { useMemo } from "react";
import { ChipCloseIcon, ChipContainer, ChipTrigger } from "./Styles";
import { Typography } from "../Typography/Typography";
export const Chip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
let startAdornment = _ref.startAdornment,
label = _ref.label,
onClose = _ref.onClose,
_ref$size = _ref.size,
size = _ref$size === void 0 ? "regular" : _ref$size,
color = _ref.color,
backgroundColor = _ref.backgroundColor,
closeClassName = _ref.closeClassName,
typographyProps = _ref.typographyProps,
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
const showClose = typeof onClose === "function";
const variant = useMemo(() => {
switch (size) {
case "big":
return "Body 1";
case "biggest":
return "Body 1";
default:
return "Caption 1";
}
}, [size]);
return /*#__PURE__*/React.createElement(ChipContainer, _extends({}, rest, {
ref: ref,
size: size,
showClose: showClose,
color: color,
backgroundColor: backgroundColor,
"data-testid": "chip-container"
}), startAdornment, /*#__PURE__*/React.createElement(Typography, _extends({
variant: variant,
"data-testid": "chip-typography",
weight: size === "biggest" ? "medium" : "regular"
}, typographyProps), label), showClose ? /*#__PURE__*/React.createElement(ChipTrigger, {
size: size,
onClick: onClose,
className: closeClassName
}, /*#__PURE__*/React.createElement(ChipCloseIcon, {
fill: color ? color : "currentColor"
})) : null);
});
Chip.displayName = "Chip";
//# sourceMappingURL=Chip.js.map