@vectara/vectara-ui
Version:
Vectara's design system, codified as a React and Sass component library
38 lines (37 loc) • 1.44 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import { jsx as _jsx } from "react/jsx-runtime";
import classNames from "classnames";
import { cloneElement } from "react";
import { IconContext } from "react-icons";
const sizeToValueMap = {
xs: "14",
s: "16",
m: "20",
l: "24",
xl: "28",
xxl: "46",
xxxl: "68"
};
export const VuiIcon = (_a) => {
var { children, size = "m", color = "inherit", className, inline } = _a, rest = __rest(_a, ["children", "size", "color", "className", "inline"]);
const innerClasses = classNames(className, "vuiIcon__inner", {
[`vuiIcon--${color}`]: color
});
const classes = classNames("vuiIcon", {
"vuiIcon--inline": inline
});
const icon = cloneElement(children, {
size: sizeToValueMap[size]
});
return (_jsx(IconContext.Provider, Object.assign({ value: { className: innerClasses } }, { children: _jsx("span", Object.assign({ className: classes }, rest, { children: icon })) })));
};