UNPKG

@stakefish/ui

Version:

<div align="center"> <a href="https://www.npmjs.com/package/@stakefish/ui"><img src="https://gateway.pinata.cloud/ipfs/QmbZL1ceA8Yiz2pKALTg919jYx141DPUGegC9L4XpyayW5" width="300" /></a> </div>

261 lines (258 loc) 8.56 kB
import { a as __rest, _ as __assign } from '../tslib.es6-35932c2c.js'; import { jsx } from 'react/jsx-runtime'; import { styled } from '@mui/material/styles'; import ArrowRight from '../icons/ArrowLeft.js'; import ArrowRight$1 from '../icons/ArrowRight.js'; import CloseCircle from '../icons/CloseCircle.js'; import InfoCircle from '../icons/InfoCircle.js'; import ErrorCircle from '../icons/ErrorCircle.js'; import Attention from '../icons/Attention.js'; import HelpCircle from '../icons/HelpCircle.js'; import Document from '../icons/Document.js'; import DocumentText from '../icons/DocumentText.js'; import Lock from '../icons/Lock.js'; import Delete from '../icons/Delete.js'; import Users from '../icons/Users.js'; import Stakefish from '../icons/Stakefish.js'; import Sound from '../icons/Sound.js'; import Beacon from '../icons/Beacon.js'; import TriangleRight from '../icons/TriangleRight.js'; import TriangleLeft from '../icons/TriangleLeft.js'; import TriangleUp from '../icons/TriangleUp.js'; import TriangleDown from '../icons/TriangleDown.js'; import Sent from '../icons/Sent.js'; import Download from '../icons/Download.js'; import Faster from '../icons/Faster.js'; import Slower from '../icons/Slower.js'; import Usb from '../icons/Usb.js'; import Key from '../icons/Key.js'; import Edit from '../icons/Edit.js'; import Expand from '../icons/Expand.js'; import Collapse from '../icons/Collapse.js'; import Success$1 from '../icons/Success.js'; import Success from '../icons/SuccessCircle.js'; import Fail from '../icons/Fail.js'; import Desktop from '../icons/Desktop.js'; import Mobile from '../icons/Mobile.js'; import Loading from '../icons/Loading.js'; import Upload from '../icons/Upload.js'; import Check from '../icons/Check.js'; import ChevronLeft from '../icons/ChevronLeft.js'; import ChevronRight from '../icons/ChevronRight.js'; import Plus from '../icons/Plus.js'; import Minus from '../icons/Minus.js'; import Globe from '../icons/Globe.js'; import Link from '../icons/Link.js'; import Copy from '../icons/Copy.js'; import Medium from '../icons/Medium.js'; import Twitter from '../icons/Twitter.js'; import Telegram from '../icons/Telegram.js'; import Eth from '../icons/Eth.js'; import Sort from '../icons/Sort.js'; import Close from '../icons/Close.js'; import DollarSign from '../icons/DollarSign.js'; import Search from '../icons/Search.js'; import Range from '../icons/Range.js'; import Instagram from '../icons/Instagram.js'; import LinkedIn from '../icons/LinkedIn.js'; import Reddit from '../icons/Reddit.js'; import YouTube from '../icons/YouTube.js'; import Chrome from '../icons/Chrome.js'; import CloudConnect from '../icons/CloudConnect.js'; import Update from '../icons/Update.js'; import Menu from '../icons/Menu.js'; import Settings from '../icons/Settings.js'; /** * Types */ var IconKeyVariants = [ "arrowRight", "arrowLeft", "attention", "check", "checkCircle", "chevronLeft", "chevronRight", "closeCircle", "dollarSign", "globe", "infoCircle", "errorCircle", "link", "triangleRight", "triangleLeft", "triangleUp", "triangleDown", "copy", "close", "search", "range", "instagram", "linkedIn", "medium", "reddit", "telegram", "twitter", "youTube", "eth", "fail", "plus", "minus", "helpCircle", "document", "documentText", "lock", "delete", "users", "stakefish", "sound", "beacon", "sent", "download", "faster", "slower", "usb", "key", "edit", "expand", "collapse", "success", "successCircle", "desktop", "mobile", "loading", "upload", "chrome", "cloudConnect", "sort", "update", "menu", "settings" ]; var IconSizeVariants = ["xs2", "xs1", "sm", "md", "lg", "xl1", "xl2", "xl3"]; /** * Constants */ var iconMap = { checkCircle: jsx(Success, {}, void 0), closeCircle: jsx(CloseCircle, {}, void 0), infoCircle: jsx(InfoCircle, {}, void 0), errorCircle: jsx(ErrorCircle, {}, void 0), helpCircle: jsx(HelpCircle, {}, void 0), attention: jsx(Attention, {}, void 0), document: jsx(Document, {}, void 0), documentText: jsx(DocumentText, {}, void 0), lock: jsx(Lock, {}, void 0), delete: jsx(Delete, {}, void 0), users: jsx(Users, {}, void 0), eth: jsx(Eth, {}, void 0), twitter: jsx(Twitter, {}, void 0), telegram: jsx(Telegram, {}, void 0), medium: jsx(Medium, {}, void 0), instagram: jsx(Instagram, {}, void 0), linkedIn: jsx(LinkedIn, {}, void 0), reddit: jsx(Reddit, {}, void 0), youTube: jsx(YouTube, {}, void 0), stakefish: jsx(Stakefish, {}, void 0), sound: jsx(Sound, {}, void 0), beacon: jsx(Beacon, {}, void 0), triangleRight: jsx(TriangleRight, {}, void 0), triangleLeft: jsx(TriangleLeft, {}, void 0), triangleUp: jsx(TriangleUp, {}, void 0), triangleDown: jsx(TriangleDown, {}, void 0), sort: jsx(Sort, {}, void 0), sent: jsx(Sent, {}, void 0), download: jsx(Download, {}, void 0), faster: jsx(Faster, {}, void 0), slower: jsx(Slower, {}, void 0), usb: jsx(Usb, {}, void 0), key: jsx(Key, {}, void 0), edit: jsx(Edit, {}, void 0), link: jsx(Link, {}, void 0), expand: jsx(Expand, {}, void 0), collapse: jsx(Collapse, {}, void 0), copy: jsx(Copy, {}, void 0), success: jsx(Success$1, {}, void 0), successCircle: jsx(Success, {}, void 0), fail: jsx(Fail, {}, void 0), desktop: jsx(Desktop, {}, void 0), mobile: jsx(Mobile, {}, void 0), loading: jsx(Loading, {}, void 0), check: jsx(Check, {}, void 0), upload: jsx(Upload, {}, void 0), close: jsx(Close, {}, void 0), plus: jsx(Plus, {}, void 0), minus: jsx(Minus, {}, void 0), chevronLeft: jsx(ChevronLeft, {}, void 0), chevronRight: jsx(ChevronRight, {}, void 0), arrowLeft: jsx(ArrowRight, {}, void 0), arrowRight: jsx(ArrowRight$1, {}, void 0), globe: jsx(Globe, {}, void 0), dollarSign: jsx(DollarSign, {}, void 0), search: jsx(Search, {}, void 0), chrome: jsx(Chrome, {}, void 0), cloudConnect: jsx(CloudConnect, {}, void 0), range: jsx(Range, {}, void 0), update: jsx(Update, {}, void 0), menu: jsx(Menu, {}, void 0), settings: jsx(Settings, {}, void 0) }; var iconSizeMap = { xs2: 10, xs1: 20, sm: 24, md: 32, lg: 44, xl1: 64, xl2: 80, xl3: 116 }; var iconPaddingMap = { xs2: 1, xs1: 2, sm: 2, md: 4, lg: 6, xl1: 8, xl2: 8, xl3: 10 }; /** * Styles */ var StyledIcon = styled("i")(function (_a) { var $size = _a.$size, $color = _a.$color, $rotate = _a.$rotate, theme = _a.theme; return ({ display: "inline-block", verticalAlign: "middle", height: "".concat(iconSizeMap[$size !== null && $size !== void 0 ? $size : "sm"], "px"), padding: "".concat(iconPaddingMap[$size !== null && $size !== void 0 ? $size : "sm"], "px"), textAlign: "center", color: "inherit", fontFamily: "inherit !important", boxSizing: "border-box", "&:before": { display: "none !important" }, "& svg": { display: "inline-block", verticalAlign: "top", height: "100%", color: "inherit", transform: "rotate(".concat($rotate !== null && $rotate !== void 0 ? $rotate : 0, "deg)") }, "& path": { fill: theme.palette.icon[$color !== null && $color !== void 0 ? $color : "currentColor"], transition: theme === null || theme === void 0 ? void 0 : theme.transitions.create(["fill"]) } }); }); /** * Main */ var Icon = function (_a) { var iconKey = _a.iconKey, className = _a.className, size = _a.size, color = _a.color, rotate = _a.rotate, props = __rest(_a, ["iconKey", "className", "size", "color", "rotate"]); var stylingProps = { $size: size, $color: color, $rotate: rotate }; return (jsx(StyledIcon, __assign({ className: "icon icon--".concat(iconKey, " ").concat(className !== null && className !== void 0 ? className : "") }, stylingProps, props, { children: iconMap[iconKey] }), void 0)); }; export { IconKeyVariants, IconSizeVariants, Icon as default, iconMap, iconPaddingMap, iconSizeMap };