@drivy/cobalt
Version:
Opinionated design system for Drivy's projects.
37 lines (36 loc) • 1.54 kB
JavaScript
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
import classnames from "classnames";
import { Icon } from "../Icon/index.js";
const getButtonContent = ({ children, icon, iconPosition = icon ? "left" : void 0 })=>{
if (!children && !icon) throw new Error("Either an icon or children are required");
const iconMarkup = icon ? /*#__PURE__*/ jsx("span", {
className: classnames("cob-Button__Icon", {
"cob-Button__Icon--left": !!children && "left" === iconPosition,
"cob-Button__Icon--right": !!children && "right" === iconPosition
}),
children: /*#__PURE__*/ jsx(Icon, {
source: icon
})
}, iconPosition) : null;
const leftIcon = "left" === iconPosition ? iconMarkup : null;
const rightIcon = "right" === iconPosition ? iconMarkup : null;
const childContent = children ? /*#__PURE__*/ jsx("span", {
className: "cob-Button__content",
children: children
}, "children") : null;
return /*#__PURE__*/ jsxs(Fragment, {
children: [
leftIcon,
childContent,
rightIcon
]
});
};
const getButtonCommonClassNames = ({ rounded, size, fullWidth, className, disabled })=>classnames(className, "cob-Button", {
"cob-Button--rounded": rounded,
"cob-Button--fullWidth": fullWidth,
"cob-Button--large": "large" === size,
"cob-Button--disabled": disabled
});
export { getButtonCommonClassNames, getButtonContent };
//# sourceMappingURL=helpers.js.map