@tolokoban/ui
Version:
React components with theme
36 lines • 4.84 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { styleColor } from "../../../theme/styles/color.js";
import Styles from "./generic-icon.module.css";
export default function GenericIcon(props) {
var _a, _b;
const { value = "M12,10A2,2 0 0,0 10,12C10,13.11 10.9,14 12,14C13.11,14 14,13.11 14,12A2,2 0 0,0 12,10Z", } = props;
const type = (_a = props.type) !== null && _a !== void 0 ? _a : "filled";
const size = sizeToFontSize((_b = props.size) !== null && _b !== void 0 ? _b : "M");
const style = Object.assign(Object.assign({}, styleColor({ textColor: props.color })), { width: size, height: size });
return (_jsxs("svg", { className: getClassName(props), style: style, viewBox: "0 0 24 24", preserveAspectRatio: "xMidYMid meet", onClick: () => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props); }, tabIndex: props.onClick ? 1 : undefined, strokeWidth: 1.5, children: [type === "filled" && (_jsx("path", { d: value, fill: "currentColor", stroke: "none" })), type === "outlined" && (_jsx("path", { d: value, fill: "none", stroke: "currentColor" })), type === "bold" && (_jsx("path", { d: value, fill: "currentColor", stroke: "currentColor" })), type === "dual" && (_jsxs(_Fragment, { children: [_jsx("path", { d: value, opacity: 0.25, fill: "currentColor", stroke: "none" }), _jsx("path", { d: value, fill: "none", stroke: "currentColor" })] }))] }));
}
function getClassName(props) {
const classNames = [Styles.GenericIcon];
if (typeof props.className === "string") {
classNames.push(props.className);
}
if (props.animate === true)
classNames.push(Styles.animate);
if (props.onClick)
classNames.push(Styles.clickable);
return classNames.join(" ");
}
const SIZES = {
XXS: ".5em",
XS: ".75em",
S: "1em",
M: "1.5em",
L: "2em",
XL: "3em",
XXL: "5em",
};
function sizeToFontSize(value) {
var _a;
return (_a = SIZES[value]) !== null && _a !== void 0 ? _a : value;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1pY29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZpZXcvaWNvbnMvZ2VuZXJpYy9nZW5lcmljLWljb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQW1CLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXpFLE9BQU8sTUFBTSxNQUFNLDJCQUEyQixDQUFBO0FBbUI5QyxNQUFNLENBQUMsT0FBTyxVQUFVLFdBQVcsQ0FBQyxLQUF1Qjs7SUFDdkQsTUFBTSxFQUNGLEtBQUssR0FBRyx3RkFBd0YsR0FDbkcsR0FBRyxLQUFLLENBQUE7SUFDVCxNQUFNLElBQUksR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFJLFFBQVEsQ0FBQTtJQUNuQyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxHQUFHLENBQUMsQ0FBQTtJQUM5QyxNQUFNLEtBQUssbUNBQ0osVUFBVSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUN6QyxLQUFLLEVBQUUsSUFBSSxFQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2YsQ0FBQTtJQUNELE9BQU8sQ0FDSCxlQUNJLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQzlCLEtBQUssRUFBRSxLQUFLLEVBQ1osT0FBTyxFQUFDLFdBQVcsRUFDbkIsbUJBQW1CLEVBQUMsZUFBZSxFQUNuQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQUMsT0FBQSxNQUFBLEtBQUssQ0FBQyxPQUFPLHFEQUFJLENBQUEsRUFBQSxFQUNoQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3ZDLFdBQVcsRUFBRSxHQUFHLGFBRWYsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUNsQixlQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsTUFBTSxHQUFHLENBQ3ZELEVBQ0EsSUFBSSxLQUFLLFVBQVUsSUFBSSxDQUNwQixlQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsY0FBYyxHQUFHLENBQ3ZELEVBQ0EsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUNoQixlQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsY0FBYyxHQUFHLENBQy9ELEVBQ0EsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUNoQiw4QkFDSSxlQUNJLENBQUMsRUFBRSxLQUFLLEVBQ1IsT0FBTyxFQUFFLElBQUksRUFDYixJQUFJLEVBQUMsY0FBYyxFQUNuQixNQUFNLEVBQUMsTUFBTSxHQUNmLEVBQ0YsZUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLGNBQWMsR0FBRyxJQUNyRCxDQUNOLElBQ0MsQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQXVCO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZDLElBQUksT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSTtRQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzNELElBQUksS0FBSyxDQUFDLE9BQU87UUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVwRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDL0IsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUEyQjtJQUNsQyxHQUFHLEVBQUUsTUFBTTtJQUNYLEVBQUUsRUFBRSxPQUFPO0lBQ1gsQ0FBQyxFQUFFLEtBQUs7SUFDUixDQUFDLEVBQUUsT0FBTztJQUNWLENBQUMsRUFBRSxLQUFLO0lBQ1IsRUFBRSxFQUFFLEtBQUs7SUFDVCxHQUFHLEVBQUUsS0FBSztDQUNiLENBQUE7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFhOztJQUNqQyxPQUFPLE1BQUEsS0FBSyxDQUFDLEtBQUssQ0FBQyxtQ0FBSSxLQUFLLENBQUE7QUFDaEMsQ0FBQyJ9