@drivy/cobalt
Version:
Opinionated design system for Drivy's projects.
36 lines (33 loc) • 1.39 kB
JavaScript
import React from 'react';
import cx from 'classnames';
function enforceCTA(cta, variant) {
if (!cta || !React.isValidElement(cta)) {
return cta;
}
return variant === "error"
? React.cloneElement(cta, {
size: "small",
primary: true,
destructive: true,
})
: React.cloneElement(cta, {
size: "small",
variant,
});
}
const Callout = ({ title, children, cta, variant = "neutral", illustrationUrl, className, }) => {
// force CTA to match Callout variant
const enforcedCTA = enforceCTA(cta, variant);
return (React.createElement("div", { className: cx("cobalt-callout", {
"cobalt-callout--warning": variant === "warning",
"cobalt-callout--neutral": variant === "neutral",
"cobalt-callout--error": variant === "error",
}, className) },
React.createElement("div", { className: "cobalt-callout__content" },
title && React.createElement("div", { className: "cobalt-callout__title" }, title),
React.createElement("div", { className: "cobalt-callout__body" }, children),
enforcedCTA),
illustrationUrl && (React.createElement("img", { className: "cobalt-callout__illustration", src: illustrationUrl }))));
};
export { Callout, Callout as default };
//# sourceMappingURL=index.js.map