@bm-fe/icons 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +353 -0
- package/core/index.ts +46 -0
- package/core/manifest.json +2308 -0
- package/core/types.ts +48 -0
- package/dist/flags/IMF.png +0 -0
- package/dist/flags/aat.png +0 -0
- package/dist/flags/ac.png +0 -0
- package/dist/flags/ad.png +0 -0
- package/dist/flags/ae.png +0 -0
- package/dist/flags/af.png +0 -0
- package/dist/flags/ag.png +0 -0
- package/dist/flags/ai.png +0 -0
- package/dist/flags/al.png +0 -0
- package/dist/flags/am.png +0 -0
- package/dist/flags/ao.png +0 -0
- package/dist/flags/ar.png +0 -0
- package/dist/flags/as.png +0 -0
- package/dist/flags/at.png +0 -0
- package/dist/flags/au.png +0 -0
- package/dist/flags/aw.png +0 -0
- package/dist/flags/az.png +0 -0
- package/dist/flags/ba.png +0 -0
- package/dist/flags/bb.png +0 -0
- package/dist/flags/bd.png +0 -0
- package/dist/flags/be.png +0 -0
- package/dist/flags/bf.png +0 -0
- package/dist/flags/bg.png +0 -0
- package/dist/flags/bh.png +0 -0
- package/dist/flags/bi.png +0 -0
- package/dist/flags/bj.png +0 -0
- package/dist/flags/bm.png +0 -0
- package/dist/flags/bn.png +0 -0
- package/dist/flags/bo.png +0 -0
- package/dist/flags/bq.png +0 -0
- package/dist/flags/br.png +0 -0
- package/dist/flags/bs.png +0 -0
- package/dist/flags/bt.png +0 -0
- package/dist/flags/bw.png +0 -0
- package/dist/flags/by.png +0 -0
- package/dist/flags/bz.png +0 -0
- package/dist/flags/ca.png +0 -0
- package/dist/flags/cd.png +0 -0
- package/dist/flags/cf.png +0 -0
- package/dist/flags/cg.png +0 -0
- package/dist/flags/ch.png +0 -0
- package/dist/flags/ci.png +0 -0
- package/dist/flags/ck.png +0 -0
- package/dist/flags/cl.png +0 -0
- package/dist/flags/cm.png +0 -0
- package/dist/flags/cn.png +0 -0
- package/dist/flags/co.png +0 -0
- package/dist/flags/cr.png +0 -0
- package/dist/flags/cuba.png +0 -0
- package/dist/flags/cv.png +0 -0
- package/dist/flags/cy.png +0 -0
- package/dist/flags/cym.png +0 -0
- package/dist/flags/cz.png +0 -0
- package/dist/flags/de.png +0 -0
- package/dist/flags/dj.png +0 -0
- package/dist/flags/dk.png +0 -0
- package/dist/flags/dm.png +0 -0
- package/dist/flags/do.png +0 -0
- package/dist/flags/dz.png +0 -0
- package/dist/flags/ec.png +0 -0
- package/dist/flags/ee.png +0 -0
- package/dist/flags/eea.png +0 -0
- package/dist/flags/eg.png +0 -0
- package/dist/flags/er.png +0 -0
- package/dist/flags/es.png +0 -0
- package/dist/flags/et.png +0 -0
- package/dist/flags/fi.png +0 -0
- package/dist/flags/fj.png +0 -0
- package/dist/flags/fk.png +0 -0
- package/dist/flags/fm.png +0 -0
- package/dist/flags/fo.png +0 -0
- package/dist/flags/fr.png +0 -0
- package/dist/flags/ga.png +0 -0
- package/dist/flags/gb.png +0 -0
- package/dist/flags/gd.png +0 -0
- package/dist/flags/ge.png +0 -0
- package/dist/flags/gf.png +0 -0
- package/dist/flags/gh.png +0 -0
- package/dist/flags/gi.png +0 -0
- package/dist/flags/gl.png +0 -0
- package/dist/flags/global.png +0 -0
- package/dist/flags/gm.png +0 -0
- package/dist/flags/gn.png +0 -0
- package/dist/flags/gp.png +0 -0
- package/dist/flags/gq.png +0 -0
- package/dist/flags/gr.png +0 -0
- package/dist/flags/gt.png +0 -0
- package/dist/flags/gu.png +0 -0
- package/dist/flags/gw.png +0 -0
- package/dist/flags/gy.png +0 -0
- package/dist/flags/hk.png +0 -0
- package/dist/flags/hn.png +0 -0
- package/dist/flags/hr.png +0 -0
- package/dist/flags/ht.png +0 -0
- package/dist/flags/hu.png +0 -0
- package/dist/flags/id.png +0 -0
- package/dist/flags/ie.png +0 -0
- package/dist/flags/il.png +0 -0
- package/dist/flags/in.png +0 -0
- package/dist/flags/io.png +0 -0
- package/dist/flags/iq.png +0 -0
- package/dist/flags/ir.png +0 -0
- package/dist/flags/is.png +0 -0
- package/dist/flags/it.png +0 -0
- package/dist/flags/je.png +0 -0
- package/dist/flags/jm.png +0 -0
- package/dist/flags/jo.png +0 -0
- package/dist/flags/jp.png +0 -0
- package/dist/flags/ke.png +0 -0
- package/dist/flags/kg.png +0 -0
- package/dist/flags/kh.png +0 -0
- package/dist/flags/ki.png +0 -0
- package/dist/flags/km.png +0 -0
- package/dist/flags/kn.png +0 -0
- package/dist/flags/kp.png +0 -0
- package/dist/flags/kr.png +0 -0
- package/dist/flags/kw.png +0 -0
- package/dist/flags/kz.png +0 -0
- package/dist/flags/la.png +0 -0
- package/dist/flags/lb.png +0 -0
- package/dist/flags/lc.png +0 -0
- package/dist/flags/li.png +0 -0
- package/dist/flags/lk.png +0 -0
- package/dist/flags/lr.png +0 -0
- package/dist/flags/ls.png +0 -0
- package/dist/flags/lt.png +0 -0
- package/dist/flags/lu.png +0 -0
- package/dist/flags/lv.png +0 -0
- package/dist/flags/ly.png +0 -0
- package/dist/flags/ma.png +0 -0
- package/dist/flags/mc.png +0 -0
- package/dist/flags/md.png +0 -0
- package/dist/flags/me.png +0 -0
- package/dist/flags/mg.png +0 -0
- package/dist/flags/mh.png +0 -0
- package/dist/flags/mk.png +0 -0
- package/dist/flags/ml.png +0 -0
- package/dist/flags/mm.png +0 -0
- package/dist/flags/mn.png +0 -0
- package/dist/flags/mo.png +0 -0
- package/dist/flags/mq.png +0 -0
- package/dist/flags/mr.png +0 -0
- package/dist/flags/ms.png +0 -0
- package/dist/flags/mt.png +0 -0
- package/dist/flags/mu.png +0 -0
- package/dist/flags/mv.png +0 -0
- package/dist/flags/mw.png +0 -0
- package/dist/flags/mx.png +0 -0
- package/dist/flags/my.png +0 -0
- package/dist/flags/mz.png +0 -0
- package/dist/flags/na.png +0 -0
- package/dist/flags/nc.png +0 -0
- package/dist/flags/ne.png +0 -0
- package/dist/flags/ng.png +0 -0
- package/dist/flags/ni.png +0 -0
- package/dist/flags/nl.png +0 -0
- package/dist/flags/no.png +0 -0
- package/dist/flags/np.png +0 -0
- package/dist/flags/nr.png +0 -0
- package/dist/flags/nu.png +0 -0
- package/dist/flags/nz.png +0 -0
- package/dist/flags/om.png +0 -0
- package/dist/flags/pa.png +0 -0
- package/dist/flags/pe.png +0 -0
- package/dist/flags/pf.png +0 -0
- package/dist/flags/pg.png +0 -0
- package/dist/flags/ph.png +0 -0
- package/dist/flags/pk.png +0 -0
- package/dist/flags/pl.png +0 -0
- package/dist/flags/pm.png +0 -0
- package/dist/flags/pr.png +0 -0
- package/dist/flags/ps.png +0 -0
- package/dist/flags/pt.png +0 -0
- package/dist/flags/pw.png +0 -0
- package/dist/flags/py.png +0 -0
- package/dist/flags/qa.png +0 -0
- package/dist/flags/re.png +0 -0
- package/dist/flags/ro.png +0 -0
- package/dist/flags/rs.png +0 -0
- package/dist/flags/ru.png +0 -0
- package/dist/flags/rw.png +0 -0
- package/dist/flags/sa.png +0 -0
- package/dist/flags/sb.png +0 -0
- package/dist/flags/sc.png +0 -0
- package/dist/flags/se.png +0 -0
- package/dist/flags/sg.png +0 -0
- package/dist/flags/sh.png +0 -0
- package/dist/flags/si.png +0 -0
- package/dist/flags/sk.png +0 -0
- package/dist/flags/sl.png +0 -0
- package/dist/flags/sm.png +0 -0
- package/dist/flags/sn.png +0 -0
- package/dist/flags/so.png +0 -0
- package/dist/flags/sr.png +0 -0
- package/dist/flags/st.png +0 -0
- package/dist/flags/sudan.png +0 -0
- package/dist/flags/sv.png +0 -0
- package/dist/flags/sz.png +0 -0
- package/dist/flags/tc.png +0 -0
- package/dist/flags/td.png +0 -0
- package/dist/flags/tg.png +0 -0
- package/dist/flags/th.png +0 -0
- package/dist/flags/tj.png +0 -0
- package/dist/flags/tk.png +0 -0
- package/dist/flags/tl.png +0 -0
- package/dist/flags/tm.png +0 -0
- package/dist/flags/tn.png +0 -0
- package/dist/flags/to.png +0 -0
- package/dist/flags/tr.png +0 -0
- package/dist/flags/tt.png +0 -0
- package/dist/flags/tv.png +0 -0
- package/dist/flags/tw.png +0 -0
- package/dist/flags/tz.png +0 -0
- package/dist/flags/ua.png +0 -0
- package/dist/flags/uae.png +0 -0
- package/dist/flags/ug.png +0 -0
- package/dist/flags/us.png +0 -0
- package/dist/flags/uy.png +0 -0
- package/dist/flags/uz.png +0 -0
- package/dist/flags/va.png +0 -0
- package/dist/flags/vc.png +0 -0
- package/dist/flags/vct.png +0 -0
- package/dist/flags/ve.png +0 -0
- package/dist/flags/vi.png +0 -0
- package/dist/flags/vn.png +0 -0
- package/dist/flags/vu.png +0 -0
- package/dist/flags/wf.png +0 -0
- package/dist/flags/ws.png +0 -0
- package/dist/flags/ye.png +0 -0
- package/dist/flags/yu.png +0 -0
- package/dist/flags/za.png +0 -0
- package/dist/flags/zm.png +0 -0
- package/dist/flags/zr.png +0 -0
- package/dist/flags/zw.png +0 -0
- package/package.json +69 -0
- package/react/dist/AED.tsx +26 -0
- package/react/dist/AMD.tsx +24 -0
- package/react/dist/ARS.tsx +24 -0
- package/react/dist/AUD.tsx +24 -0
- package/react/dist/AZN.tsx +24 -0
- package/react/dist/Academy.tsx +16 -0
- package/react/dist/Add.tsx +16 -0
- package/react/dist/Add2.tsx +16 -0
- package/react/dist/Address.tsx +16 -0
- package/react/dist/AffiliateProgram.tsx +16 -0
- package/react/dist/AiHub.tsx +16 -0
- package/react/dist/Amm.tsx +17 -0
- package/react/dist/Apis.tsx +16 -0
- package/react/dist/AppDownload.tsx +16 -0
- package/react/dist/Apple.tsx +16 -0
- package/react/dist/ArrowLeft.tsx +16 -0
- package/react/dist/ArrowRight.tsx +16 -0
- package/react/dist/ArrowRight2.tsx +16 -0
- package/react/dist/Avatar.tsx +16 -0
- package/react/dist/BDT.tsx +24 -0
- package/react/dist/BRL.tsx +25 -0
- package/react/dist/BYN.tsx +25 -0
- package/react/dist/Beacon.tsx +16 -0
- package/react/dist/BitmartCard.tsx +16 -0
- package/react/dist/BitmartTravel.tsx +16 -0
- package/react/dist/BmDiscovery.tsx +16 -0
- package/react/dist/BrokerProgram.tsx +16 -0
- package/react/dist/CLP.tsx +24 -0
- package/react/dist/CNY.tsx +24 -0
- package/react/dist/COP.tsx +24 -0
- package/react/dist/Clear.tsx +16 -0
- package/react/dist/Close.tsx +17 -0
- package/react/dist/CloudBackup.tsx +16 -0
- package/react/dist/CoinM.tsx +16 -0
- package/react/dist/Community.tsx +16 -0
- package/react/dist/Copy.tsx +16 -0
- package/react/dist/CopyTrading.tsx +16 -0
- package/react/dist/CopyTradingClassic.tsx +16 -0
- package/react/dist/Create.tsx +16 -0
- package/react/dist/CreditCard.tsx +16 -0
- package/react/dist/CryptoLoans.tsx +16 -0
- package/react/dist/DZD.tsx +24 -0
- package/react/dist/DailyDraw.tsx +16 -0
- package/react/dist/DarkMode.tsx +16 -0
- package/react/dist/Delete.tsx +16 -0
- package/react/dist/Delete2.tsx +16 -0
- package/react/dist/DemoTrading.tsx +16 -0
- package/react/dist/Deposit.tsx +16 -0
- package/react/dist/Detail.tsx +16 -0
- package/react/dist/Dex.tsx +16 -0
- package/react/dist/Discord.tsx +16 -0
- package/react/dist/Down.tsx +16 -0
- package/react/dist/Download.tsx +16 -0
- package/react/dist/Drag.tsx +16 -0
- package/react/dist/EGP.tsx +24 -0
- package/react/dist/EUR.tsx +24 -0
- package/react/dist/EarnOverview.tsx +16 -0
- package/react/dist/Edit.tsx +16 -0
- package/react/dist/EventsCenter.tsx +16 -0
- package/react/dist/Exchange.tsx +16 -0
- package/react/dist/Facebook.tsx +16 -0
- package/react/dist/Fail.tsx +16 -0
- package/react/dist/FailFilled.tsx +16 -0
- package/react/dist/FiatConvert.tsx +16 -0
- package/react/dist/FiatConvertOutline.tsx +20 -0
- package/react/dist/Filter.tsx +21 -0
- package/react/dist/Fold.tsx +16 -0
- package/react/dist/FuturesKing.tsx +16 -0
- package/react/dist/FuturesOverview.tsx +16 -0
- package/react/dist/GBP.tsx +24 -0
- package/react/dist/GHS.tsx +24 -0
- package/react/dist/Gift.tsx +16 -0
- package/react/dist/Github.tsx +23 -0
- package/react/dist/Google.tsx +19 -0
- package/react/dist/GridBot.tsx +16 -0
- package/react/dist/HKD.tsx +24 -0
- package/react/dist/HUF.tsx +24 -0
- package/react/dist/Hide.tsx +17 -0
- package/react/dist/HistoryOrder.tsx +16 -0
- package/react/dist/HotFilled.tsx +16 -0
- package/react/dist/IDR.tsx +24 -0
- package/react/dist/INR.tsx +24 -0
- package/react/dist/IQD.tsx +24 -0
- package/react/dist/IconPlaceholder.tsx +16 -0
- package/react/dist/Import.tsx +16 -0
- package/react/dist/Info.tsx +16 -0
- package/react/dist/InfoFilled.tsx +16 -0
- package/react/dist/Ino.tsx +16 -0
- package/react/dist/Instagram.tsx +16 -0
- package/react/dist/Institution.tsx +16 -0
- package/react/dist/JOD.tsx +24 -0
- package/react/dist/JPY.tsx +24 -0
- package/react/dist/KES.tsx +24 -0
- package/react/dist/KZT.tsx +24 -0
- package/react/dist/LaunchPrime.tsx +16 -0
- package/react/dist/LightMode.tsx +16 -0
- package/react/dist/Linkedin.tsx +16 -0
- package/react/dist/Loading.tsx +23 -0
- package/react/dist/Lock.tsx +16 -0
- package/react/dist/MAD.tsx +24 -0
- package/react/dist/MRU.tsx +24 -0
- package/react/dist/MXN.tsx +24 -0
- package/react/dist/MYR.tsx +24 -0
- package/react/dist/ManualBackup.tsx +16 -0
- package/react/dist/Margin.tsx +16 -0
- package/react/dist/Markets.tsx +16 -0
- package/react/dist/Medium.tsx +16 -0
- package/react/dist/Message.tsx +16 -0
- package/react/dist/Metamask.tsx +44 -0
- package/react/dist/Microsoft.tsx +19 -0
- package/react/dist/MobileRechard.tsx +16 -0
- package/react/dist/MobileRecharge.tsx +16 -0
- package/react/dist/MobileRechargeAlt.tsx +16 -0
- package/react/dist/More.tsx +16 -0
- package/react/dist/NGN.tsx +24 -0
- package/react/dist/NPR.tsx +24 -0
- package/react/dist/Network.tsx +16 -0
- package/react/dist/News.tsx +16 -0
- package/react/dist/NftMarketplace.tsx +16 -0
- package/react/dist/NonSelected.tsx +16 -0
- package/react/dist/Notification.tsx +16 -0
- package/react/dist/Ok.tsx +16 -0
- package/react/dist/P2p.tsx +16 -0
- package/react/dist/PGK.tsx +24 -0
- package/react/dist/PHP.tsx +24 -0
- package/react/dist/PKR.tsx +24 -0
- package/react/dist/PLN.tsx +24 -0
- package/react/dist/Paste.tsx +16 -0
- package/react/dist/PlusFilled.tsx +16 -0
- package/react/dist/Powerdrop.tsx +16 -0
- package/react/dist/PreMarket.tsx +16 -0
- package/react/dist/PredictionMarket.tsx +20 -0
- package/react/dist/PrepaidCard.tsx +16 -0
- package/react/dist/ProgressFilled.tsx +16 -0
- package/react/dist/QrCode.tsx +16 -0
- package/react/dist/RON.tsx +24 -0
- package/react/dist/RUB.tsx +24 -0
- package/react/dist/Receive.tsx +16 -0
- package/react/dist/Reddit.tsx +16 -0
- package/react/dist/ReferralProgram.tsx +18 -0
- package/react/dist/RemoveFilled.tsx +16 -0
- package/react/dist/Replay.tsx +28 -0
- package/react/dist/RewardsHub.tsx +16 -0
- package/react/dist/Rocket.tsx +16 -0
- package/react/dist/Rwa.tsx +16 -0
- package/react/dist/SAR.tsx +24 -0
- package/react/dist/SEK.tsx +24 -0
- package/react/dist/Scan.tsx +16 -0
- package/react/dist/Search.tsx +16 -0
- package/react/dist/Send.tsx +16 -0
- package/react/dist/Setting.tsx +16 -0
- package/react/dist/Shop.tsx +16 -0
- package/react/dist/ShopOutline.tsx +17 -0
- package/react/dist/Show.tsx +16 -0
- package/react/dist/Sidebar.tsx +16 -0
- package/react/dist/Smart wallet.tsx +16 -0
- package/react/dist/SmartWallet.tsx +16 -0
- package/react/dist/Spot.tsx +16 -0
- package/react/dist/SpotDailyDraw.tsx +17 -0
- package/react/dist/StakeBmxToListing.tsx +16 -0
- package/react/dist/StakeToVote.tsx +16 -0
- package/react/dist/Staking.tsx +16 -0
- package/react/dist/Star.tsx +16 -0
- package/react/dist/StarFilled.tsx +16 -0
- package/react/dist/Success.tsx +16 -0
- package/react/dist/SuccessFilled.tsx +16 -0
- package/react/dist/Support.tsx +19 -0
- package/react/dist/THB.tsx +24 -0
- package/react/dist/TRY.tsx +24 -0
- package/react/dist/TWD.tsx +24 -0
- package/react/dist/TZS.tsx +24 -0
- package/react/dist/Telegram.tsx +16 -0
- package/react/dist/ThirdPartyPayment.tsx +16 -0
- package/react/dist/Tiktok.tsx +16 -0
- package/react/dist/Time.tsx +16 -0
- package/react/dist/TokenManage.tsx +16 -0
- package/react/dist/Transfer.tsx +17 -0
- package/react/dist/UAH.tsx +24 -0
- package/react/dist/USD.tsx +24 -0
- package/react/dist/UZS.tsx +24 -0
- package/react/dist/Unfold.tsx +16 -0
- package/react/dist/Up.tsx +16 -0
- package/react/dist/VES.tsx +24 -0
- package/react/dist/VND.tsx +24 -0
- package/react/dist/Vip.tsx +16 -0
- package/react/dist/VipExclusive.tsx +16 -0
- package/react/dist/Vk.tsx +16 -0
- package/react/dist/Wallet.tsx +16 -0
- package/react/dist/WarningFilled.tsx +16 -0
- package/react/dist/WealthManagement.tsx +16 -0
- package/react/dist/Whatsapp.tsx +16 -0
- package/react/dist/X.tsx +17 -0
- package/react/dist/XAF.tsx +24 -0
- package/react/dist/XInsight.tsx +16 -0
- package/react/dist/XOF.tsx +24 -0
- package/react/dist/Youtube.tsx +16 -0
- package/react/dist/ZAR.tsx +24 -0
- package/react/dist/index.d.mts +23 -0
- package/react/dist/index.d.ts +23 -0
- package/react/dist/index.js +2233 -0
- package/react/dist/index.js.map +1 -0
- package/react/dist/index.mjs +2011 -0
- package/react/dist/index.mjs.map +1 -0
- package/react/dist/index.ts +200 -0
- package/svg/currency/AED.svg +13 -0
- package/svg/currency/AMD.svg +11 -0
- package/svg/currency/ARS.svg +11 -0
- package/svg/currency/AUD.svg +11 -0
- package/svg/currency/AZN.svg +11 -0
- package/svg/currency/BDT.svg +11 -0
- package/svg/currency/BRL.svg +12 -0
- package/svg/currency/BYN.svg +12 -0
- package/svg/currency/CLP.svg +11 -0
- package/svg/currency/CNY.svg +11 -0
- package/svg/currency/COP.svg +11 -0
- package/svg/currency/DZD.svg +11 -0
- package/svg/currency/EGP.svg +11 -0
- package/svg/currency/EUR.svg +11 -0
- package/svg/currency/GBP.svg +11 -0
- package/svg/currency/GHS.svg +11 -0
- package/svg/currency/HKD.svg +11 -0
- package/svg/currency/HUF.svg +11 -0
- package/svg/currency/IDR.svg +11 -0
- package/svg/currency/INR.svg +11 -0
- package/svg/currency/IQD.svg +11 -0
- package/svg/currency/JOD.svg +11 -0
- package/svg/currency/JPY.svg +11 -0
- package/svg/currency/KES.svg +11 -0
- package/svg/currency/KZT.svg +11 -0
- package/svg/currency/MAD.svg +11 -0
- package/svg/currency/MRU.svg +11 -0
- package/svg/currency/MXN.svg +11 -0
- package/svg/currency/MYR.svg +11 -0
- package/svg/currency/NGN.svg +11 -0
- package/svg/currency/NPR.svg +11 -0
- package/svg/currency/PGK.svg +11 -0
- package/svg/currency/PHP.svg +11 -0
- package/svg/currency/PKR.svg +11 -0
- package/svg/currency/PLN.svg +11 -0
- package/svg/currency/RON.svg +11 -0
- package/svg/currency/RUB.svg +11 -0
- package/svg/currency/SAR.svg +11 -0
- package/svg/currency/SEK.svg +11 -0
- package/svg/currency/THB.svg +11 -0
- package/svg/currency/TRY.svg +11 -0
- package/svg/currency/TWD.svg +11 -0
- package/svg/currency/TZS.svg +11 -0
- package/svg/currency/UAH.svg +11 -0
- package/svg/currency/USD.svg +11 -0
- package/svg/currency/UZS.svg +11 -0
- package/svg/currency/VES.svg +11 -0
- package/svg/currency/VND.svg +11 -0
- package/svg/currency/XAF.svg +11 -0
- package/svg/currency/XOF.svg +11 -0
- package/svg/currency/ZAR.svg +11 -0
- package/svg/flags/IMF.png +0 -0
- package/svg/flags/aat.png +0 -0
- package/svg/flags/ac.png +0 -0
- package/svg/flags/ad.png +0 -0
- package/svg/flags/ae.png +0 -0
- package/svg/flags/af.png +0 -0
- package/svg/flags/ag.png +0 -0
- package/svg/flags/ai.png +0 -0
- package/svg/flags/al.png +0 -0
- package/svg/flags/am.png +0 -0
- package/svg/flags/ao.png +0 -0
- package/svg/flags/ar.png +0 -0
- package/svg/flags/as.png +0 -0
- package/svg/flags/at.png +0 -0
- package/svg/flags/au.png +0 -0
- package/svg/flags/aw.png +0 -0
- package/svg/flags/az.png +0 -0
- package/svg/flags/ba.png +0 -0
- package/svg/flags/bb.png +0 -0
- package/svg/flags/bd.png +0 -0
- package/svg/flags/be.png +0 -0
- package/svg/flags/bf.png +0 -0
- package/svg/flags/bg.png +0 -0
- package/svg/flags/bh.png +0 -0
- package/svg/flags/bi.png +0 -0
- package/svg/flags/bj.png +0 -0
- package/svg/flags/bm.png +0 -0
- package/svg/flags/bn.png +0 -0
- package/svg/flags/bo.png +0 -0
- package/svg/flags/bq.png +0 -0
- package/svg/flags/br.png +0 -0
- package/svg/flags/bs.png +0 -0
- package/svg/flags/bt.png +0 -0
- package/svg/flags/bw.png +0 -0
- package/svg/flags/by.png +0 -0
- package/svg/flags/bz.png +0 -0
- package/svg/flags/ca.png +0 -0
- package/svg/flags/cd.png +0 -0
- package/svg/flags/cf.png +0 -0
- package/svg/flags/cg.png +0 -0
- package/svg/flags/ch.png +0 -0
- package/svg/flags/ci.png +0 -0
- package/svg/flags/ck.png +0 -0
- package/svg/flags/cl.png +0 -0
- package/svg/flags/cm.png +0 -0
- package/svg/flags/cn.png +0 -0
- package/svg/flags/co.png +0 -0
- package/svg/flags/cr.png +0 -0
- package/svg/flags/cuba.png +0 -0
- package/svg/flags/cv.png +0 -0
- package/svg/flags/cy.png +0 -0
- package/svg/flags/cym.png +0 -0
- package/svg/flags/cz.png +0 -0
- package/svg/flags/de.png +0 -0
- package/svg/flags/dj.png +0 -0
- package/svg/flags/dk.png +0 -0
- package/svg/flags/dm.png +0 -0
- package/svg/flags/do.png +0 -0
- package/svg/flags/dz.png +0 -0
- package/svg/flags/ec.png +0 -0
- package/svg/flags/ee.png +0 -0
- package/svg/flags/eea.png +0 -0
- package/svg/flags/eg.png +0 -0
- package/svg/flags/er.png +0 -0
- package/svg/flags/es.png +0 -0
- package/svg/flags/et.png +0 -0
- package/svg/flags/fi.png +0 -0
- package/svg/flags/fj.png +0 -0
- package/svg/flags/fk.png +0 -0
- package/svg/flags/fm.png +0 -0
- package/svg/flags/fo.png +0 -0
- package/svg/flags/fr.png +0 -0
- package/svg/flags/ga.png +0 -0
- package/svg/flags/gb.png +0 -0
- package/svg/flags/gd.png +0 -0
- package/svg/flags/ge.png +0 -0
- package/svg/flags/gf.png +0 -0
- package/svg/flags/gh.png +0 -0
- package/svg/flags/gi.png +0 -0
- package/svg/flags/gl.png +0 -0
- package/svg/flags/global.png +0 -0
- package/svg/flags/gm.png +0 -0
- package/svg/flags/gn.png +0 -0
- package/svg/flags/gp.png +0 -0
- package/svg/flags/gq.png +0 -0
- package/svg/flags/gr.png +0 -0
- package/svg/flags/gt.png +0 -0
- package/svg/flags/gu.png +0 -0
- package/svg/flags/gw.png +0 -0
- package/svg/flags/gy.png +0 -0
- package/svg/flags/hk.png +0 -0
- package/svg/flags/hn.png +0 -0
- package/svg/flags/hr.png +0 -0
- package/svg/flags/ht.png +0 -0
- package/svg/flags/hu.png +0 -0
- package/svg/flags/id.png +0 -0
- package/svg/flags/ie.png +0 -0
- package/svg/flags/il.png +0 -0
- package/svg/flags/in.png +0 -0
- package/svg/flags/io.png +0 -0
- package/svg/flags/iq.png +0 -0
- package/svg/flags/ir.png +0 -0
- package/svg/flags/is.png +0 -0
- package/svg/flags/it.png +0 -0
- package/svg/flags/je.png +0 -0
- package/svg/flags/jm.png +0 -0
- package/svg/flags/jo.png +0 -0
- package/svg/flags/jp.png +0 -0
- package/svg/flags/ke.png +0 -0
- package/svg/flags/kg.png +0 -0
- package/svg/flags/kh.png +0 -0
- package/svg/flags/ki.png +0 -0
- package/svg/flags/km.png +0 -0
- package/svg/flags/kn.png +0 -0
- package/svg/flags/kp.png +0 -0
- package/svg/flags/kr.png +0 -0
- package/svg/flags/kw.png +0 -0
- package/svg/flags/kz.png +0 -0
- package/svg/flags/la.png +0 -0
- package/svg/flags/lb.png +0 -0
- package/svg/flags/lc.png +0 -0
- package/svg/flags/li.png +0 -0
- package/svg/flags/lk.png +0 -0
- package/svg/flags/lr.png +0 -0
- package/svg/flags/ls.png +0 -0
- package/svg/flags/lt.png +0 -0
- package/svg/flags/lu.png +0 -0
- package/svg/flags/lv.png +0 -0
- package/svg/flags/ly.png +0 -0
- package/svg/flags/ma.png +0 -0
- package/svg/flags/mc.png +0 -0
- package/svg/flags/md.png +0 -0
- package/svg/flags/me.png +0 -0
- package/svg/flags/mg.png +0 -0
- package/svg/flags/mh.png +0 -0
- package/svg/flags/mk.png +0 -0
- package/svg/flags/ml.png +0 -0
- package/svg/flags/mm.png +0 -0
- package/svg/flags/mn.png +0 -0
- package/svg/flags/mo.png +0 -0
- package/svg/flags/mq.png +0 -0
- package/svg/flags/mr.png +0 -0
- package/svg/flags/ms.png +0 -0
- package/svg/flags/mt.png +0 -0
- package/svg/flags/mu.png +0 -0
- package/svg/flags/mv.png +0 -0
- package/svg/flags/mw.png +0 -0
- package/svg/flags/mx.png +0 -0
- package/svg/flags/my.png +0 -0
- package/svg/flags/mz.png +0 -0
- package/svg/flags/na.png +0 -0
- package/svg/flags/nc.png +0 -0
- package/svg/flags/ne.png +0 -0
- package/svg/flags/ng.png +0 -0
- package/svg/flags/ni.png +0 -0
- package/svg/flags/nl.png +0 -0
- package/svg/flags/no.png +0 -0
- package/svg/flags/np.png +0 -0
- package/svg/flags/nr.png +0 -0
- package/svg/flags/nu.png +0 -0
- package/svg/flags/nz.png +0 -0
- package/svg/flags/om.png +0 -0
- package/svg/flags/pa.png +0 -0
- package/svg/flags/pe.png +0 -0
- package/svg/flags/pf.png +0 -0
- package/svg/flags/pg.png +0 -0
- package/svg/flags/ph.png +0 -0
- package/svg/flags/pk.png +0 -0
- package/svg/flags/pl.png +0 -0
- package/svg/flags/pm.png +0 -0
- package/svg/flags/pr.png +0 -0
- package/svg/flags/ps.png +0 -0
- package/svg/flags/pt.png +0 -0
- package/svg/flags/pw.png +0 -0
- package/svg/flags/py.png +0 -0
- package/svg/flags/qa.png +0 -0
- package/svg/flags/re.png +0 -0
- package/svg/flags/ro.png +0 -0
- package/svg/flags/rs.png +0 -0
- package/svg/flags/ru.png +0 -0
- package/svg/flags/rw.png +0 -0
- package/svg/flags/sa.png +0 -0
- package/svg/flags/sb.png +0 -0
- package/svg/flags/sc.png +0 -0
- package/svg/flags/se.png +0 -0
- package/svg/flags/sg.png +0 -0
- package/svg/flags/sh.png +0 -0
- package/svg/flags/si.png +0 -0
- package/svg/flags/sk.png +0 -0
- package/svg/flags/sl.png +0 -0
- package/svg/flags/sm.png +0 -0
- package/svg/flags/sn.png +0 -0
- package/svg/flags/so.png +0 -0
- package/svg/flags/sr.png +0 -0
- package/svg/flags/st.png +0 -0
- package/svg/flags/sudan.png +0 -0
- package/svg/flags/sv.png +0 -0
- package/svg/flags/sz.png +0 -0
- package/svg/flags/tc.png +0 -0
- package/svg/flags/td.png +0 -0
- package/svg/flags/tg.png +0 -0
- package/svg/flags/th.png +0 -0
- package/svg/flags/tj.png +0 -0
- package/svg/flags/tk.png +0 -0
- package/svg/flags/tl.png +0 -0
- package/svg/flags/tm.png +0 -0
- package/svg/flags/tn.png +0 -0
- package/svg/flags/to.png +0 -0
- package/svg/flags/tr.png +0 -0
- package/svg/flags/tt.png +0 -0
- package/svg/flags/tv.png +0 -0
- package/svg/flags/tw.png +0 -0
- package/svg/flags/tz.png +0 -0
- package/svg/flags/ua.png +0 -0
- package/svg/flags/uae.png +0 -0
- package/svg/flags/ug.png +0 -0
- package/svg/flags/us.png +0 -0
- package/svg/flags/uy.png +0 -0
- package/svg/flags/uz.png +0 -0
- package/svg/flags/va.png +0 -0
- package/svg/flags/vc.png +0 -0
- package/svg/flags/vct.png +0 -0
- package/svg/flags/ve.png +0 -0
- package/svg/flags/vi.png +0 -0
- package/svg/flags/vn.png +0 -0
- package/svg/flags/vu.png +0 -0
- package/svg/flags/wf.png +0 -0
- package/svg/flags/ws.png +0 -0
- package/svg/flags/ye.png +0 -0
- package/svg/flags/yu.png +0 -0
- package/svg/flags/za.png +0 -0
- package/svg/flags/zm.png +0 -0
- package/svg/flags/zr.png +0 -0
- package/svg/flags/zw.png +0 -0
- package/svg/primary/academy.svg +3 -0
- package/svg/primary/affiliate-program.svg +3 -0
- package/svg/primary/ai-hub.svg +3 -0
- package/svg/primary/amm.svg +4 -0
- package/svg/primary/apis.svg +3 -0
- package/svg/primary/beacon.svg +3 -0
- package/svg/primary/bitmart-card.svg +3 -0
- package/svg/primary/bitmart-travel.svg +3 -0
- package/svg/primary/bm-discovery.svg +3 -0
- package/svg/primary/broker-program.svg +3 -0
- package/svg/primary/coin-m.svg +3 -0
- package/svg/primary/community.svg +3 -0
- package/svg/primary/copy-trading-classic.svg +3 -0
- package/svg/primary/copy-trading.svg +3 -0
- package/svg/primary/credit-card.svg +3 -0
- package/svg/primary/crypto-loans.svg +3 -0
- package/svg/primary/daily-draw.svg +3 -0
- package/svg/primary/demo-trading.svg +3 -0
- package/svg/primary/deposit.svg +3 -0
- package/svg/primary/dex.svg +3 -0
- package/svg/primary/earn-overview.svg +3 -0
- package/svg/primary/events-center.svg +3 -0
- package/svg/primary/fiat-convert-outline.svg +7 -0
- package/svg/primary/fiat-convert.svg +3 -0
- package/svg/primary/futures-king.svg +3 -0
- package/svg/primary/futures-overview.svg +3 -0
- package/svg/primary/grid-bot.svg +3 -0
- package/svg/primary/ino.svg +3 -0
- package/svg/primary/institution.svg +3 -0
- package/svg/primary/launch-prime.svg +3 -0
- package/svg/primary/margin.svg +3 -0
- package/svg/primary/markets.svg +3 -0
- package/svg/primary/mobile-recharge-alt.svg +3 -0
- package/svg/primary/mobile-recharge.svg +3 -0
- package/svg/primary/news.svg +3 -0
- package/svg/primary/nft-marketplace.svg +3 -0
- package/svg/primary/p2p.svg +3 -0
- package/svg/primary/powerdrop.svg +3 -0
- package/svg/primary/pre-market.svg +3 -0
- package/svg/primary/prediction-market.svg +7 -0
- package/svg/primary/prepaid-card.svg +3 -0
- package/svg/primary/referral-program.svg +5 -0
- package/svg/primary/rwa.svg +3 -0
- package/svg/primary/shop-outline.svg +4 -0
- package/svg/primary/shop.svg +3 -0
- package/svg/primary/spot-daily-draw.svg +4 -0
- package/svg/primary/spot.svg +3 -0
- package/svg/primary/stake-bmx-to-listing.svg +3 -0
- package/svg/primary/stake-to-vote.svg +3 -0
- package/svg/primary/staking.svg +3 -0
- package/svg/primary/third-party-payment.svg +3 -0
- package/svg/primary/vip-exclusive.svg +3 -0
- package/svg/primary/vip.svg +3 -0
- package/svg/primary/wealth-management.svg +3 -0
- package/svg/primary/x-insight.svg +3 -0
- package/svg/product/add.svg +3 -0
- package/svg/product/add2.svg +3 -0
- package/svg/product/address.svg +3 -0
- package/svg/product/app-download.svg +3 -0
- package/svg/product/apple.svg +3 -0
- package/svg/product/arrow-left.svg +3 -0
- package/svg/product/arrow-right.svg +3 -0
- package/svg/product/arrow-right2.svg +3 -0
- package/svg/product/avatar.svg +3 -0
- package/svg/product/clear.svg +3 -0
- package/svg/product/close.svg +4 -0
- package/svg/product/cloud-backup.svg +3 -0
- package/svg/product/copy.svg +3 -0
- package/svg/product/create.svg +3 -0
- package/svg/product/dark-mode.svg +3 -0
- package/svg/product/delete.svg +3 -0
- package/svg/product/delete2.svg +3 -0
- package/svg/product/detail.svg +3 -0
- package/svg/product/discord.svg +3 -0
- package/svg/product/down.svg +3 -0
- package/svg/product/download.svg +3 -0
- package/svg/product/drag.svg +3 -0
- package/svg/product/edit.svg +3 -0
- package/svg/product/exchange.svg +3 -0
- package/svg/product/facebook.svg +3 -0
- package/svg/product/fail-filled.svg +3 -0
- package/svg/product/fail.svg +3 -0
- package/svg/product/filter.svg +8 -0
- package/svg/product/fold.svg +3 -0
- package/svg/product/gift.svg +3 -0
- package/svg/product/github.svg +10 -0
- package/svg/product/google.svg +6 -0
- package/svg/product/hide.svg +4 -0
- package/svg/product/history-order.svg +3 -0
- package/svg/product/hot-filled.svg +3 -0
- package/svg/product/icon-placeholder.svg +3 -0
- package/svg/product/import.svg +3 -0
- package/svg/product/info-filled.svg +3 -0
- package/svg/product/info.svg +3 -0
- package/svg/product/instagram.svg +3 -0
- package/svg/product/light-mode.svg +3 -0
- package/svg/product/linkedin.svg +3 -0
- package/svg/product/loading.svg +10 -0
- package/svg/product/lock.svg +3 -0
- package/svg/product/manual-backup.svg +3 -0
- package/svg/product/medium.svg +3 -0
- package/svg/product/message.svg +3 -0
- package/svg/product/metamask.svg +31 -0
- package/svg/product/microsoft.svg +6 -0
- package/svg/product/more.svg +3 -0
- package/svg/product/network.svg +3 -0
- package/svg/product/non-selected.svg +3 -0
- package/svg/product/notification.svg +3 -0
- package/svg/product/ok.svg +3 -0
- package/svg/product/paste.svg +3 -0
- package/svg/product/plus-filled.svg +3 -0
- package/svg/product/progress-filled.svg +3 -0
- package/svg/product/qr-code.svg +3 -0
- package/svg/product/receive.svg +3 -0
- package/svg/product/reddit.svg +3 -0
- package/svg/product/remove-filled.svg +3 -0
- package/svg/product/replay.svg +15 -0
- package/svg/product/rewards-hub.svg +3 -0
- package/svg/product/rocket.svg +3 -0
- package/svg/product/scan.svg +3 -0
- package/svg/product/search.svg +3 -0
- package/svg/product/send.svg +3 -0
- package/svg/product/setting.svg +3 -0
- package/svg/product/show.svg +3 -0
- package/svg/product/sidebar.svg +3 -0
- package/svg/product/smart-wallet.svg +3 -0
- package/svg/product/star-filled.svg +3 -0
- package/svg/product/star.svg +3 -0
- package/svg/product/success-filled.svg +3 -0
- package/svg/product/success.svg +3 -0
- package/svg/product/support.svg +6 -0
- package/svg/product/telegram.svg +3 -0
- package/svg/product/tiktok.svg +3 -0
- package/svg/product/time.svg +3 -0
- package/svg/product/token-manage.svg +3 -0
- package/svg/product/transfer.svg +4 -0
- package/svg/product/unfold.svg +3 -0
- package/svg/product/up.svg +3 -0
- package/svg/product/vk.svg +3 -0
- package/svg/product/wallet.svg +3 -0
- package/svg/product/warning-filled.svg +3 -0
- package/svg/product/whatsapp.svg +3 -0
- package/svg/product/x.svg +4 -0
- package/svg/product/youtube.svg +3 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.0-beta.0] - 2024-01-XX
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- 初始版本
|
|
13
|
+
- SVG 源文件管理
|
|
14
|
+
- React 适配层
|
|
15
|
+
- 自动生成器脚本
|
|
16
|
+
- Manifest 生成系统
|
|
17
|
+
- IconBase 基座组件
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- 移除 Vue2/Vue3 适配层,仅保留 React 适配层
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
# @bm-fe/icons
|
|
2
|
+
|
|
3
|
+
BitMart 图标库,提供 SVG 源文件和框架适配层。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
|
|
7
|
+
- 🎨 **SVG 单一事实源**:所有图标源文件统一管理
|
|
8
|
+
- ⚛️ **React 组件**:开箱即用的 React 适配层
|
|
9
|
+
- 🟢 **Vue 支持**:通过 unplugin-icons / vite-svg-loader 引入
|
|
10
|
+
- 🚀 **自动生成**:组件通过生成器自动生成,禁止手改
|
|
11
|
+
- 📦 **类型安全**:完整的 TypeScript 类型定义
|
|
12
|
+
- 🎯 **语义稳定**:图标 API 长期稳定,设计变更不影响业务代码
|
|
13
|
+
- 🖼️ **PNG 优化**:国旗图标自动压缩,节省 67%+ 空间
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @bm-fe/icons
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## React 使用
|
|
22
|
+
|
|
23
|
+
直接导入生成的 React 组件:
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
import { Add, Close, ArrowUp } from '@bm-fe/icons';
|
|
27
|
+
// 或者
|
|
28
|
+
import { Add, Close, ArrowUp } from '@bm-fe/icons/react';
|
|
29
|
+
|
|
30
|
+
function App() {
|
|
31
|
+
return (
|
|
32
|
+
<div>
|
|
33
|
+
<Add size={16} />
|
|
34
|
+
<Close size={20} />
|
|
35
|
+
<ArrowUp size="1.25em" />
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### React 组件 Props
|
|
42
|
+
|
|
43
|
+
| Prop | 类型 | 默认值 | 说明 |
|
|
44
|
+
|------|------|--------|------|
|
|
45
|
+
| `size` | `number \| string` | `24` | 图标尺寸 |
|
|
46
|
+
| `className` | `string` | - | 自定义类名 |
|
|
47
|
+
| `style` | `CSSProperties` | - | 自定义样式 |
|
|
48
|
+
|
|
49
|
+
## Vue 使用
|
|
50
|
+
|
|
51
|
+
### 方式一:unplugin-icons(推荐)
|
|
52
|
+
|
|
53
|
+
[unplugin-icons](https://github.com/unplugin/unplugin-icons) 支持 Vue 2、Vue 3、Vite、Webpack 等多种构建工具。
|
|
54
|
+
|
|
55
|
+
**1. 安装依赖**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pnpm add -D unplugin-icons unplugin-vue-components
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**2. 配置 Vite(Vue 3)**
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
// vite.config.ts
|
|
65
|
+
import { defineConfig } from 'vite';
|
|
66
|
+
import vue from '@vitejs/plugin-vue';
|
|
67
|
+
import Icons from 'unplugin-icons/vite';
|
|
68
|
+
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
|
|
69
|
+
|
|
70
|
+
export default defineConfig({
|
|
71
|
+
plugins: [
|
|
72
|
+
vue(),
|
|
73
|
+
Icons({
|
|
74
|
+
compiler: 'vue3',
|
|
75
|
+
customCollections: {
|
|
76
|
+
// 自定义 bm 图标集合,指向 @bm-fe/icons 的 SVG 目录
|
|
77
|
+
bm: FileSystemIconLoader(
|
|
78
|
+
'./node_modules/@bm-fe/icons/svg/primary',
|
|
79
|
+
(svg) => svg.replace(/^<svg /, '<svg fill="currentColor" ')
|
|
80
|
+
),
|
|
81
|
+
'bm-product': FileSystemIconLoader(
|
|
82
|
+
'./node_modules/@bm-fe/icons/svg/product'
|
|
83
|
+
),
|
|
84
|
+
'bm-coin': FileSystemIconLoader(
|
|
85
|
+
'./node_modules/@bm-fe/icons/svg/coin'
|
|
86
|
+
),
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**3. 配置 Vue 2 / Nuxt 2(Webpack)**
|
|
94
|
+
|
|
95
|
+
```js
|
|
96
|
+
// nuxt.config.js 或 vue.config.js
|
|
97
|
+
const Icons = require('unplugin-icons/webpack');
|
|
98
|
+
const { FileSystemIconLoader } = require('unplugin-icons/loaders');
|
|
99
|
+
|
|
100
|
+
module.exports = {
|
|
101
|
+
configureWebpack: {
|
|
102
|
+
plugins: [
|
|
103
|
+
Icons({
|
|
104
|
+
compiler: 'vue2',
|
|
105
|
+
customCollections: {
|
|
106
|
+
bm: FileSystemIconLoader(
|
|
107
|
+
'./node_modules/@bm-fe/icons/svg/primary',
|
|
108
|
+
(svg) => svg.replace(/^<svg /, '<svg fill="currentColor" ')
|
|
109
|
+
),
|
|
110
|
+
},
|
|
111
|
+
}),
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**4. 在组件中使用**
|
|
118
|
+
|
|
119
|
+
```vue
|
|
120
|
+
<template>
|
|
121
|
+
<div>
|
|
122
|
+
<!-- 自动导入方式 -->
|
|
123
|
+
<IBmAdd class="w-6 h-6 text-blue-500" />
|
|
124
|
+
<IBmClose class="w-4 h-4" />
|
|
125
|
+
|
|
126
|
+
<!-- 显式导入方式 -->
|
|
127
|
+
<AddIcon class="w-6 h-6" />
|
|
128
|
+
</div>
|
|
129
|
+
</template>
|
|
130
|
+
|
|
131
|
+
<script setup>
|
|
132
|
+
// 显式导入(可选)
|
|
133
|
+
import AddIcon from '~icons/bm/add';
|
|
134
|
+
</script>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**命名规则:** `I` + `集合名(首字母大写)` + `图标名(PascalCase)`
|
|
138
|
+
- `svg/primary/add.svg` → `<IBmAdd />`
|
|
139
|
+
- `svg/product/google.svg` → `<IBmProductGoogle />`
|
|
140
|
+
|
|
141
|
+
### 方式二:vite-svg-loader
|
|
142
|
+
|
|
143
|
+
仅支持 Vite 项目,更轻量但功能较少。
|
|
144
|
+
|
|
145
|
+
**1. 安装**
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
pnpm add -D vite-svg-loader
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**2. 配置 Vite**
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
// vite.config.ts
|
|
155
|
+
import { defineConfig } from 'vite';
|
|
156
|
+
import vue from '@vitejs/plugin-vue';
|
|
157
|
+
import svgLoader from 'vite-svg-loader';
|
|
158
|
+
|
|
159
|
+
export default defineConfig({
|
|
160
|
+
plugins: [vue(), svgLoader()],
|
|
161
|
+
resolve: {
|
|
162
|
+
alias: {
|
|
163
|
+
'@icons': './node_modules/@bm-fe/icons/svg',
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**3. 使用**
|
|
170
|
+
|
|
171
|
+
```vue
|
|
172
|
+
<template>
|
|
173
|
+
<AddIcon class="w-6 h-6 text-current" />
|
|
174
|
+
</template>
|
|
175
|
+
|
|
176
|
+
<script setup>
|
|
177
|
+
import AddIcon from '@icons/primary/add.svg?component';
|
|
178
|
+
</script>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 路径别名配置
|
|
182
|
+
|
|
183
|
+
推荐在项目中配置 `@icons` 别名:
|
|
184
|
+
|
|
185
|
+
**Vite:**
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
// vite.config.ts
|
|
189
|
+
export default defineConfig({
|
|
190
|
+
resolve: {
|
|
191
|
+
alias: {
|
|
192
|
+
'@icons': './node_modules/@bm-fe/icons/svg',
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Webpack / Vue CLI:**
|
|
199
|
+
|
|
200
|
+
```js
|
|
201
|
+
// vue.config.js
|
|
202
|
+
const path = require('path');
|
|
203
|
+
|
|
204
|
+
module.exports = {
|
|
205
|
+
configureWebpack: {
|
|
206
|
+
resolve: {
|
|
207
|
+
alias: {
|
|
208
|
+
'@icons': path.resolve(__dirname, 'node_modules/@bm-fe/icons/svg'),
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## PNG 国旗使用
|
|
216
|
+
|
|
217
|
+
国旗图标为 PNG 格式,不包装为组件,直接作为静态资源使用。
|
|
218
|
+
|
|
219
|
+
### 目录说明
|
|
220
|
+
|
|
221
|
+
| 目录 | 说明 |
|
|
222
|
+
|------|------|
|
|
223
|
+
| `svg/flags/` | 原始 PNG 文件 |
|
|
224
|
+
| `dist/flags/` | 压缩后的 PNG 文件(构建时生成,体积减少 67%+) |
|
|
225
|
+
|
|
226
|
+
**生产环境建议使用 `dist/flags/` 目录下的压缩文件。**
|
|
227
|
+
|
|
228
|
+
### 静态导入
|
|
229
|
+
|
|
230
|
+
```vue
|
|
231
|
+
<template>
|
|
232
|
+
<img :src="cnFlag" alt="China" class="w-6 h-4" />
|
|
233
|
+
</template>
|
|
234
|
+
|
|
235
|
+
<script setup>
|
|
236
|
+
// 开发环境(原始文件)
|
|
237
|
+
import cnFlag from '@bm-fe/icons/svg/flags/cn.png';
|
|
238
|
+
|
|
239
|
+
// 生产环境(压缩文件,需配置构建)
|
|
240
|
+
// import cnFlag from '@bm-fe/icons/dist/flags/cn.png';
|
|
241
|
+
</script>
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### 动态导入(Vite)
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
// 批量导入所有国旗
|
|
248
|
+
const flagModules = import.meta.glob('@bm-fe/icons/svg/flags/*.png', {
|
|
249
|
+
eager: true,
|
|
250
|
+
import: 'default',
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// 获取特定国旗
|
|
254
|
+
function getFlagUrl(countryCode: string): string {
|
|
255
|
+
const key = `/node_modules/@bm-fe/icons/svg/flags/${countryCode}.png`;
|
|
256
|
+
return flagModules[key] as string;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// 使用
|
|
260
|
+
const cnFlagUrl = getFlagUrl('cn');
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### 动态导入(Webpack)
|
|
264
|
+
|
|
265
|
+
```js
|
|
266
|
+
// 使用 require.context
|
|
267
|
+
const flagContext = require.context(
|
|
268
|
+
'@bm-fe/icons/svg/flags',
|
|
269
|
+
false,
|
|
270
|
+
/\.png$/
|
|
271
|
+
);
|
|
272
|
+
|
|
273
|
+
function getFlagUrl(countryCode) {
|
|
274
|
+
return flagContext(`./${countryCode}.png`);
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## 图标分类
|
|
279
|
+
|
|
280
|
+
| 分类 | 目录 | 颜色策略 | 说明 |
|
|
281
|
+
|------|------|----------|------|
|
|
282
|
+
| **Primary** | `svg/primary/` | `currentColor` | 基础 UI 图标,支持颜色继承 |
|
|
283
|
+
| **Product** | `svg/product/` | `currentColor` | 产品图标,支持颜色继承 |
|
|
284
|
+
| **Coin** | `svg/coin/` | 固定色 | 币种图标,保持原始颜色 |
|
|
285
|
+
| **Currency** | `svg/currency/` | 固定色 | 货币符号,保持原始颜色 |
|
|
286
|
+
| **Flags** | `svg/flags/` | PNG | 国旗图标,PNG 静态资源 |
|
|
287
|
+
|
|
288
|
+
### 颜色策略说明
|
|
289
|
+
|
|
290
|
+
- **currentColor**: 图标颜色继承父元素的 `color` 属性,可通过 CSS 自定义颜色
|
|
291
|
+
- **固定色**: 图标保持原始设计颜色,不支持颜色自定义
|
|
292
|
+
|
|
293
|
+
## 尺寸规范
|
|
294
|
+
|
|
295
|
+
推荐尺寸:`12 | 16 | 20 | 24 | 32`
|
|
296
|
+
|
|
297
|
+
也支持自定义 `number | string` 值。
|
|
298
|
+
|
|
299
|
+
## 开发
|
|
300
|
+
|
|
301
|
+
### 添加新图标
|
|
302
|
+
|
|
303
|
+
1. 将 SVG 文件放入对应的分类目录(`svg/primary/`, `svg/product/`, 等)
|
|
304
|
+
2. 文件名使用 `kebab-case`(如 `arrow-up.svg`)
|
|
305
|
+
3. 运行 `pnpm build` 生成组件
|
|
306
|
+
|
|
307
|
+
### 添加新国旗
|
|
308
|
+
|
|
309
|
+
1. 将 PNG 文件放入 `svg/flags/` 目录
|
|
310
|
+
2. 文件名使用国家代码小写(如 `cn.png`, `us.png`)
|
|
311
|
+
3. 运行 `pnpm build` 会自动压缩到 `dist/flags/`
|
|
312
|
+
|
|
313
|
+
### 构建
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
pnpm build
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
构建流程:
|
|
320
|
+
1. `optimize:images` - 压缩 PNG 国旗到 `dist/flags/`
|
|
321
|
+
2. `generate:manifest` - 扫描 SVG 目录,生成 `core/manifest.json`
|
|
322
|
+
3. `generate:react` - 基于 manifest 生成 React 组件
|
|
323
|
+
4. `build:react` - 构建 React 组件(生成 CJS/ESM 和类型定义)
|
|
324
|
+
|
|
325
|
+
## 目录结构
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
packages/icons/
|
|
329
|
+
├── svg/ # SVG/PNG 源文件(单一事实源)
|
|
330
|
+
│ ├── primary/ # Primary 图标
|
|
331
|
+
│ ├── product/ # Product 图标
|
|
332
|
+
│ ├── coin/ # Coin 图标
|
|
333
|
+
│ ├── currency/ # Currency 图标
|
|
334
|
+
│ └── flags/ # Flags PNG 静态资源
|
|
335
|
+
├── dist/
|
|
336
|
+
│ └── flags/ # 压缩后的 PNG 国旗
|
|
337
|
+
├── core/ # 核心层(manifest + 工具函数)
|
|
338
|
+
├── react/ # React 适配层
|
|
339
|
+
└── scripts/ # 生成器脚本
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## 约束
|
|
343
|
+
|
|
344
|
+
- ✅ SVG 作为单一事实源
|
|
345
|
+
- ✅ 生成器自动生成,禁止手改产物
|
|
346
|
+
- ✅ Primary/Product 支持 `currentColor`
|
|
347
|
+
- ✅ Coin/Currency 使用固定色
|
|
348
|
+
- ✅ Flags 仅作为静态资源,不包装为组件
|
|
349
|
+
- ✅ PNG 自动压缩,生产环境使用压缩版
|
|
350
|
+
|
|
351
|
+
## License
|
|
352
|
+
|
|
353
|
+
ISC
|
package/core/index.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import type { Manifest, IconMetadata, FlagMetadata } from './types';
|
|
5
|
+
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = dirname(__filename);
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 读取 manifest.json
|
|
11
|
+
*/
|
|
12
|
+
export function readManifest(manifestPath?: string): Manifest {
|
|
13
|
+
const path = manifestPath || join(__dirname, 'manifest.json');
|
|
14
|
+
const content = readFileSync(path, 'utf-8');
|
|
15
|
+
return JSON.parse(content);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 根据名称查找图标
|
|
20
|
+
*/
|
|
21
|
+
export function findIcon(manifest: Manifest, name: string): IconMetadata | undefined {
|
|
22
|
+
return manifest.icons.find((icon) => icon.name === name || icon.componentName === name);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 根据分类获取图标列表
|
|
27
|
+
*/
|
|
28
|
+
export function getIconsByCategory(
|
|
29
|
+
manifest: Manifest,
|
|
30
|
+
category: IconMetadata['category']
|
|
31
|
+
): IconMetadata[] {
|
|
32
|
+
return manifest.icons.filter((icon) => icon.category === category);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 获取所有图标名称
|
|
37
|
+
*/
|
|
38
|
+
export function getAllIconNames(manifest: Manifest): string[] {
|
|
39
|
+
return manifest.icons.map((icon) => icon.componentName);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 导出类型
|
|
44
|
+
*/
|
|
45
|
+
export type { Manifest, IconMetadata, FlagMetadata, IconCategory, ColorStrategy } from './types';
|
|
46
|
+
|