UNPKG

@ntragas/pouncejstest

Version:

A collection of UI components from Panther labs

56 lines (47 loc) 1.46 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import React from 'react'; import Box from '../Box'; import useTheme from '../../utils/useTheme'; /** An simple SVG element exported as a React component. It renders a simple <svg> */ export var Icon = /*#__PURE__*/React.forwardRef(function Icon(_ref, ref) { var _icons$type; var type = _ref.type, _ref$size = _ref.size, size = _ref$size === void 0 ? 'large' : _ref$size, _ref$color = _ref.color, color = _ref$color === void 0 ? 'current' : _ref$color, rest = _objectWithoutPropertiesLoose(_ref, ["type", "size", "color"]); var _useTheme = useTheme(), icons = _useTheme.icons; var viewBox = ((_icons$type = icons[type]) == null ? void 0 : _icons$type.viewBox) || '0 0 24 24'; var sizeInPx; switch (size) { case 'x-small': sizeInPx = 12; break; case 'small': sizeInPx = 16; break; case 'medium': sizeInPx = 20; break; case 'large': default: sizeInPx = 24; } return /*#__PURE__*/React.createElement(Box, _extends({ as: "svg", display: "inline-block", verticalAlign: "sub", flexShrink: 0, width: sizeInPx, height: sizeInPx, color: color, viewBox: viewBox, role: "presentation" }, rest, { ref: ref }), icons[type].path); }); export default Icon;