UNPKG

@vectara/vectara-ui

Version:

Vectara's design system, codified as a React and Sass component library

36 lines (35 loc) 1.49 kB
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, type = "default" } = _a, rest = __rest(_a, ["children", "size", "color", "className", "inline", "type"]); const innerClasses = classNames(className, "vuiIcon__inner"); const classes = classNames("vuiIcon", `vuiIcon--${type}`, `vuiIcon--${color}`, { "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, { "aria-hidden": "true" }, { children: icon })) }))); };