@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.
Files changed (873) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +353 -0
  3. package/core/index.ts +46 -0
  4. package/core/manifest.json +2308 -0
  5. package/core/types.ts +48 -0
  6. package/dist/flags/IMF.png +0 -0
  7. package/dist/flags/aat.png +0 -0
  8. package/dist/flags/ac.png +0 -0
  9. package/dist/flags/ad.png +0 -0
  10. package/dist/flags/ae.png +0 -0
  11. package/dist/flags/af.png +0 -0
  12. package/dist/flags/ag.png +0 -0
  13. package/dist/flags/ai.png +0 -0
  14. package/dist/flags/al.png +0 -0
  15. package/dist/flags/am.png +0 -0
  16. package/dist/flags/ao.png +0 -0
  17. package/dist/flags/ar.png +0 -0
  18. package/dist/flags/as.png +0 -0
  19. package/dist/flags/at.png +0 -0
  20. package/dist/flags/au.png +0 -0
  21. package/dist/flags/aw.png +0 -0
  22. package/dist/flags/az.png +0 -0
  23. package/dist/flags/ba.png +0 -0
  24. package/dist/flags/bb.png +0 -0
  25. package/dist/flags/bd.png +0 -0
  26. package/dist/flags/be.png +0 -0
  27. package/dist/flags/bf.png +0 -0
  28. package/dist/flags/bg.png +0 -0
  29. package/dist/flags/bh.png +0 -0
  30. package/dist/flags/bi.png +0 -0
  31. package/dist/flags/bj.png +0 -0
  32. package/dist/flags/bm.png +0 -0
  33. package/dist/flags/bn.png +0 -0
  34. package/dist/flags/bo.png +0 -0
  35. package/dist/flags/bq.png +0 -0
  36. package/dist/flags/br.png +0 -0
  37. package/dist/flags/bs.png +0 -0
  38. package/dist/flags/bt.png +0 -0
  39. package/dist/flags/bw.png +0 -0
  40. package/dist/flags/by.png +0 -0
  41. package/dist/flags/bz.png +0 -0
  42. package/dist/flags/ca.png +0 -0
  43. package/dist/flags/cd.png +0 -0
  44. package/dist/flags/cf.png +0 -0
  45. package/dist/flags/cg.png +0 -0
  46. package/dist/flags/ch.png +0 -0
  47. package/dist/flags/ci.png +0 -0
  48. package/dist/flags/ck.png +0 -0
  49. package/dist/flags/cl.png +0 -0
  50. package/dist/flags/cm.png +0 -0
  51. package/dist/flags/cn.png +0 -0
  52. package/dist/flags/co.png +0 -0
  53. package/dist/flags/cr.png +0 -0
  54. package/dist/flags/cuba.png +0 -0
  55. package/dist/flags/cv.png +0 -0
  56. package/dist/flags/cy.png +0 -0
  57. package/dist/flags/cym.png +0 -0
  58. package/dist/flags/cz.png +0 -0
  59. package/dist/flags/de.png +0 -0
  60. package/dist/flags/dj.png +0 -0
  61. package/dist/flags/dk.png +0 -0
  62. package/dist/flags/dm.png +0 -0
  63. package/dist/flags/do.png +0 -0
  64. package/dist/flags/dz.png +0 -0
  65. package/dist/flags/ec.png +0 -0
  66. package/dist/flags/ee.png +0 -0
  67. package/dist/flags/eea.png +0 -0
  68. package/dist/flags/eg.png +0 -0
  69. package/dist/flags/er.png +0 -0
  70. package/dist/flags/es.png +0 -0
  71. package/dist/flags/et.png +0 -0
  72. package/dist/flags/fi.png +0 -0
  73. package/dist/flags/fj.png +0 -0
  74. package/dist/flags/fk.png +0 -0
  75. package/dist/flags/fm.png +0 -0
  76. package/dist/flags/fo.png +0 -0
  77. package/dist/flags/fr.png +0 -0
  78. package/dist/flags/ga.png +0 -0
  79. package/dist/flags/gb.png +0 -0
  80. package/dist/flags/gd.png +0 -0
  81. package/dist/flags/ge.png +0 -0
  82. package/dist/flags/gf.png +0 -0
  83. package/dist/flags/gh.png +0 -0
  84. package/dist/flags/gi.png +0 -0
  85. package/dist/flags/gl.png +0 -0
  86. package/dist/flags/global.png +0 -0
  87. package/dist/flags/gm.png +0 -0
  88. package/dist/flags/gn.png +0 -0
  89. package/dist/flags/gp.png +0 -0
  90. package/dist/flags/gq.png +0 -0
  91. package/dist/flags/gr.png +0 -0
  92. package/dist/flags/gt.png +0 -0
  93. package/dist/flags/gu.png +0 -0
  94. package/dist/flags/gw.png +0 -0
  95. package/dist/flags/gy.png +0 -0
  96. package/dist/flags/hk.png +0 -0
  97. package/dist/flags/hn.png +0 -0
  98. package/dist/flags/hr.png +0 -0
  99. package/dist/flags/ht.png +0 -0
  100. package/dist/flags/hu.png +0 -0
  101. package/dist/flags/id.png +0 -0
  102. package/dist/flags/ie.png +0 -0
  103. package/dist/flags/il.png +0 -0
  104. package/dist/flags/in.png +0 -0
  105. package/dist/flags/io.png +0 -0
  106. package/dist/flags/iq.png +0 -0
  107. package/dist/flags/ir.png +0 -0
  108. package/dist/flags/is.png +0 -0
  109. package/dist/flags/it.png +0 -0
  110. package/dist/flags/je.png +0 -0
  111. package/dist/flags/jm.png +0 -0
  112. package/dist/flags/jo.png +0 -0
  113. package/dist/flags/jp.png +0 -0
  114. package/dist/flags/ke.png +0 -0
  115. package/dist/flags/kg.png +0 -0
  116. package/dist/flags/kh.png +0 -0
  117. package/dist/flags/ki.png +0 -0
  118. package/dist/flags/km.png +0 -0
  119. package/dist/flags/kn.png +0 -0
  120. package/dist/flags/kp.png +0 -0
  121. package/dist/flags/kr.png +0 -0
  122. package/dist/flags/kw.png +0 -0
  123. package/dist/flags/kz.png +0 -0
  124. package/dist/flags/la.png +0 -0
  125. package/dist/flags/lb.png +0 -0
  126. package/dist/flags/lc.png +0 -0
  127. package/dist/flags/li.png +0 -0
  128. package/dist/flags/lk.png +0 -0
  129. package/dist/flags/lr.png +0 -0
  130. package/dist/flags/ls.png +0 -0
  131. package/dist/flags/lt.png +0 -0
  132. package/dist/flags/lu.png +0 -0
  133. package/dist/flags/lv.png +0 -0
  134. package/dist/flags/ly.png +0 -0
  135. package/dist/flags/ma.png +0 -0
  136. package/dist/flags/mc.png +0 -0
  137. package/dist/flags/md.png +0 -0
  138. package/dist/flags/me.png +0 -0
  139. package/dist/flags/mg.png +0 -0
  140. package/dist/flags/mh.png +0 -0
  141. package/dist/flags/mk.png +0 -0
  142. package/dist/flags/ml.png +0 -0
  143. package/dist/flags/mm.png +0 -0
  144. package/dist/flags/mn.png +0 -0
  145. package/dist/flags/mo.png +0 -0
  146. package/dist/flags/mq.png +0 -0
  147. package/dist/flags/mr.png +0 -0
  148. package/dist/flags/ms.png +0 -0
  149. package/dist/flags/mt.png +0 -0
  150. package/dist/flags/mu.png +0 -0
  151. package/dist/flags/mv.png +0 -0
  152. package/dist/flags/mw.png +0 -0
  153. package/dist/flags/mx.png +0 -0
  154. package/dist/flags/my.png +0 -0
  155. package/dist/flags/mz.png +0 -0
  156. package/dist/flags/na.png +0 -0
  157. package/dist/flags/nc.png +0 -0
  158. package/dist/flags/ne.png +0 -0
  159. package/dist/flags/ng.png +0 -0
  160. package/dist/flags/ni.png +0 -0
  161. package/dist/flags/nl.png +0 -0
  162. package/dist/flags/no.png +0 -0
  163. package/dist/flags/np.png +0 -0
  164. package/dist/flags/nr.png +0 -0
  165. package/dist/flags/nu.png +0 -0
  166. package/dist/flags/nz.png +0 -0
  167. package/dist/flags/om.png +0 -0
  168. package/dist/flags/pa.png +0 -0
  169. package/dist/flags/pe.png +0 -0
  170. package/dist/flags/pf.png +0 -0
  171. package/dist/flags/pg.png +0 -0
  172. package/dist/flags/ph.png +0 -0
  173. package/dist/flags/pk.png +0 -0
  174. package/dist/flags/pl.png +0 -0
  175. package/dist/flags/pm.png +0 -0
  176. package/dist/flags/pr.png +0 -0
  177. package/dist/flags/ps.png +0 -0
  178. package/dist/flags/pt.png +0 -0
  179. package/dist/flags/pw.png +0 -0
  180. package/dist/flags/py.png +0 -0
  181. package/dist/flags/qa.png +0 -0
  182. package/dist/flags/re.png +0 -0
  183. package/dist/flags/ro.png +0 -0
  184. package/dist/flags/rs.png +0 -0
  185. package/dist/flags/ru.png +0 -0
  186. package/dist/flags/rw.png +0 -0
  187. package/dist/flags/sa.png +0 -0
  188. package/dist/flags/sb.png +0 -0
  189. package/dist/flags/sc.png +0 -0
  190. package/dist/flags/se.png +0 -0
  191. package/dist/flags/sg.png +0 -0
  192. package/dist/flags/sh.png +0 -0
  193. package/dist/flags/si.png +0 -0
  194. package/dist/flags/sk.png +0 -0
  195. package/dist/flags/sl.png +0 -0
  196. package/dist/flags/sm.png +0 -0
  197. package/dist/flags/sn.png +0 -0
  198. package/dist/flags/so.png +0 -0
  199. package/dist/flags/sr.png +0 -0
  200. package/dist/flags/st.png +0 -0
  201. package/dist/flags/sudan.png +0 -0
  202. package/dist/flags/sv.png +0 -0
  203. package/dist/flags/sz.png +0 -0
  204. package/dist/flags/tc.png +0 -0
  205. package/dist/flags/td.png +0 -0
  206. package/dist/flags/tg.png +0 -0
  207. package/dist/flags/th.png +0 -0
  208. package/dist/flags/tj.png +0 -0
  209. package/dist/flags/tk.png +0 -0
  210. package/dist/flags/tl.png +0 -0
  211. package/dist/flags/tm.png +0 -0
  212. package/dist/flags/tn.png +0 -0
  213. package/dist/flags/to.png +0 -0
  214. package/dist/flags/tr.png +0 -0
  215. package/dist/flags/tt.png +0 -0
  216. package/dist/flags/tv.png +0 -0
  217. package/dist/flags/tw.png +0 -0
  218. package/dist/flags/tz.png +0 -0
  219. package/dist/flags/ua.png +0 -0
  220. package/dist/flags/uae.png +0 -0
  221. package/dist/flags/ug.png +0 -0
  222. package/dist/flags/us.png +0 -0
  223. package/dist/flags/uy.png +0 -0
  224. package/dist/flags/uz.png +0 -0
  225. package/dist/flags/va.png +0 -0
  226. package/dist/flags/vc.png +0 -0
  227. package/dist/flags/vct.png +0 -0
  228. package/dist/flags/ve.png +0 -0
  229. package/dist/flags/vi.png +0 -0
  230. package/dist/flags/vn.png +0 -0
  231. package/dist/flags/vu.png +0 -0
  232. package/dist/flags/wf.png +0 -0
  233. package/dist/flags/ws.png +0 -0
  234. package/dist/flags/ye.png +0 -0
  235. package/dist/flags/yu.png +0 -0
  236. package/dist/flags/za.png +0 -0
  237. package/dist/flags/zm.png +0 -0
  238. package/dist/flags/zr.png +0 -0
  239. package/dist/flags/zw.png +0 -0
  240. package/package.json +69 -0
  241. package/react/dist/AED.tsx +26 -0
  242. package/react/dist/AMD.tsx +24 -0
  243. package/react/dist/ARS.tsx +24 -0
  244. package/react/dist/AUD.tsx +24 -0
  245. package/react/dist/AZN.tsx +24 -0
  246. package/react/dist/Academy.tsx +16 -0
  247. package/react/dist/Add.tsx +16 -0
  248. package/react/dist/Add2.tsx +16 -0
  249. package/react/dist/Address.tsx +16 -0
  250. package/react/dist/AffiliateProgram.tsx +16 -0
  251. package/react/dist/AiHub.tsx +16 -0
  252. package/react/dist/Amm.tsx +17 -0
  253. package/react/dist/Apis.tsx +16 -0
  254. package/react/dist/AppDownload.tsx +16 -0
  255. package/react/dist/Apple.tsx +16 -0
  256. package/react/dist/ArrowLeft.tsx +16 -0
  257. package/react/dist/ArrowRight.tsx +16 -0
  258. package/react/dist/ArrowRight2.tsx +16 -0
  259. package/react/dist/Avatar.tsx +16 -0
  260. package/react/dist/BDT.tsx +24 -0
  261. package/react/dist/BRL.tsx +25 -0
  262. package/react/dist/BYN.tsx +25 -0
  263. package/react/dist/Beacon.tsx +16 -0
  264. package/react/dist/BitmartCard.tsx +16 -0
  265. package/react/dist/BitmartTravel.tsx +16 -0
  266. package/react/dist/BmDiscovery.tsx +16 -0
  267. package/react/dist/BrokerProgram.tsx +16 -0
  268. package/react/dist/CLP.tsx +24 -0
  269. package/react/dist/CNY.tsx +24 -0
  270. package/react/dist/COP.tsx +24 -0
  271. package/react/dist/Clear.tsx +16 -0
  272. package/react/dist/Close.tsx +17 -0
  273. package/react/dist/CloudBackup.tsx +16 -0
  274. package/react/dist/CoinM.tsx +16 -0
  275. package/react/dist/Community.tsx +16 -0
  276. package/react/dist/Copy.tsx +16 -0
  277. package/react/dist/CopyTrading.tsx +16 -0
  278. package/react/dist/CopyTradingClassic.tsx +16 -0
  279. package/react/dist/Create.tsx +16 -0
  280. package/react/dist/CreditCard.tsx +16 -0
  281. package/react/dist/CryptoLoans.tsx +16 -0
  282. package/react/dist/DZD.tsx +24 -0
  283. package/react/dist/DailyDraw.tsx +16 -0
  284. package/react/dist/DarkMode.tsx +16 -0
  285. package/react/dist/Delete.tsx +16 -0
  286. package/react/dist/Delete2.tsx +16 -0
  287. package/react/dist/DemoTrading.tsx +16 -0
  288. package/react/dist/Deposit.tsx +16 -0
  289. package/react/dist/Detail.tsx +16 -0
  290. package/react/dist/Dex.tsx +16 -0
  291. package/react/dist/Discord.tsx +16 -0
  292. package/react/dist/Down.tsx +16 -0
  293. package/react/dist/Download.tsx +16 -0
  294. package/react/dist/Drag.tsx +16 -0
  295. package/react/dist/EGP.tsx +24 -0
  296. package/react/dist/EUR.tsx +24 -0
  297. package/react/dist/EarnOverview.tsx +16 -0
  298. package/react/dist/Edit.tsx +16 -0
  299. package/react/dist/EventsCenter.tsx +16 -0
  300. package/react/dist/Exchange.tsx +16 -0
  301. package/react/dist/Facebook.tsx +16 -0
  302. package/react/dist/Fail.tsx +16 -0
  303. package/react/dist/FailFilled.tsx +16 -0
  304. package/react/dist/FiatConvert.tsx +16 -0
  305. package/react/dist/FiatConvertOutline.tsx +20 -0
  306. package/react/dist/Filter.tsx +21 -0
  307. package/react/dist/Fold.tsx +16 -0
  308. package/react/dist/FuturesKing.tsx +16 -0
  309. package/react/dist/FuturesOverview.tsx +16 -0
  310. package/react/dist/GBP.tsx +24 -0
  311. package/react/dist/GHS.tsx +24 -0
  312. package/react/dist/Gift.tsx +16 -0
  313. package/react/dist/Github.tsx +23 -0
  314. package/react/dist/Google.tsx +19 -0
  315. package/react/dist/GridBot.tsx +16 -0
  316. package/react/dist/HKD.tsx +24 -0
  317. package/react/dist/HUF.tsx +24 -0
  318. package/react/dist/Hide.tsx +17 -0
  319. package/react/dist/HistoryOrder.tsx +16 -0
  320. package/react/dist/HotFilled.tsx +16 -0
  321. package/react/dist/IDR.tsx +24 -0
  322. package/react/dist/INR.tsx +24 -0
  323. package/react/dist/IQD.tsx +24 -0
  324. package/react/dist/IconPlaceholder.tsx +16 -0
  325. package/react/dist/Import.tsx +16 -0
  326. package/react/dist/Info.tsx +16 -0
  327. package/react/dist/InfoFilled.tsx +16 -0
  328. package/react/dist/Ino.tsx +16 -0
  329. package/react/dist/Instagram.tsx +16 -0
  330. package/react/dist/Institution.tsx +16 -0
  331. package/react/dist/JOD.tsx +24 -0
  332. package/react/dist/JPY.tsx +24 -0
  333. package/react/dist/KES.tsx +24 -0
  334. package/react/dist/KZT.tsx +24 -0
  335. package/react/dist/LaunchPrime.tsx +16 -0
  336. package/react/dist/LightMode.tsx +16 -0
  337. package/react/dist/Linkedin.tsx +16 -0
  338. package/react/dist/Loading.tsx +23 -0
  339. package/react/dist/Lock.tsx +16 -0
  340. package/react/dist/MAD.tsx +24 -0
  341. package/react/dist/MRU.tsx +24 -0
  342. package/react/dist/MXN.tsx +24 -0
  343. package/react/dist/MYR.tsx +24 -0
  344. package/react/dist/ManualBackup.tsx +16 -0
  345. package/react/dist/Margin.tsx +16 -0
  346. package/react/dist/Markets.tsx +16 -0
  347. package/react/dist/Medium.tsx +16 -0
  348. package/react/dist/Message.tsx +16 -0
  349. package/react/dist/Metamask.tsx +44 -0
  350. package/react/dist/Microsoft.tsx +19 -0
  351. package/react/dist/MobileRechard.tsx +16 -0
  352. package/react/dist/MobileRecharge.tsx +16 -0
  353. package/react/dist/MobileRechargeAlt.tsx +16 -0
  354. package/react/dist/More.tsx +16 -0
  355. package/react/dist/NGN.tsx +24 -0
  356. package/react/dist/NPR.tsx +24 -0
  357. package/react/dist/Network.tsx +16 -0
  358. package/react/dist/News.tsx +16 -0
  359. package/react/dist/NftMarketplace.tsx +16 -0
  360. package/react/dist/NonSelected.tsx +16 -0
  361. package/react/dist/Notification.tsx +16 -0
  362. package/react/dist/Ok.tsx +16 -0
  363. package/react/dist/P2p.tsx +16 -0
  364. package/react/dist/PGK.tsx +24 -0
  365. package/react/dist/PHP.tsx +24 -0
  366. package/react/dist/PKR.tsx +24 -0
  367. package/react/dist/PLN.tsx +24 -0
  368. package/react/dist/Paste.tsx +16 -0
  369. package/react/dist/PlusFilled.tsx +16 -0
  370. package/react/dist/Powerdrop.tsx +16 -0
  371. package/react/dist/PreMarket.tsx +16 -0
  372. package/react/dist/PredictionMarket.tsx +20 -0
  373. package/react/dist/PrepaidCard.tsx +16 -0
  374. package/react/dist/ProgressFilled.tsx +16 -0
  375. package/react/dist/QrCode.tsx +16 -0
  376. package/react/dist/RON.tsx +24 -0
  377. package/react/dist/RUB.tsx +24 -0
  378. package/react/dist/Receive.tsx +16 -0
  379. package/react/dist/Reddit.tsx +16 -0
  380. package/react/dist/ReferralProgram.tsx +18 -0
  381. package/react/dist/RemoveFilled.tsx +16 -0
  382. package/react/dist/Replay.tsx +28 -0
  383. package/react/dist/RewardsHub.tsx +16 -0
  384. package/react/dist/Rocket.tsx +16 -0
  385. package/react/dist/Rwa.tsx +16 -0
  386. package/react/dist/SAR.tsx +24 -0
  387. package/react/dist/SEK.tsx +24 -0
  388. package/react/dist/Scan.tsx +16 -0
  389. package/react/dist/Search.tsx +16 -0
  390. package/react/dist/Send.tsx +16 -0
  391. package/react/dist/Setting.tsx +16 -0
  392. package/react/dist/Shop.tsx +16 -0
  393. package/react/dist/ShopOutline.tsx +17 -0
  394. package/react/dist/Show.tsx +16 -0
  395. package/react/dist/Sidebar.tsx +16 -0
  396. package/react/dist/Smart wallet.tsx +16 -0
  397. package/react/dist/SmartWallet.tsx +16 -0
  398. package/react/dist/Spot.tsx +16 -0
  399. package/react/dist/SpotDailyDraw.tsx +17 -0
  400. package/react/dist/StakeBmxToListing.tsx +16 -0
  401. package/react/dist/StakeToVote.tsx +16 -0
  402. package/react/dist/Staking.tsx +16 -0
  403. package/react/dist/Star.tsx +16 -0
  404. package/react/dist/StarFilled.tsx +16 -0
  405. package/react/dist/Success.tsx +16 -0
  406. package/react/dist/SuccessFilled.tsx +16 -0
  407. package/react/dist/Support.tsx +19 -0
  408. package/react/dist/THB.tsx +24 -0
  409. package/react/dist/TRY.tsx +24 -0
  410. package/react/dist/TWD.tsx +24 -0
  411. package/react/dist/TZS.tsx +24 -0
  412. package/react/dist/Telegram.tsx +16 -0
  413. package/react/dist/ThirdPartyPayment.tsx +16 -0
  414. package/react/dist/Tiktok.tsx +16 -0
  415. package/react/dist/Time.tsx +16 -0
  416. package/react/dist/TokenManage.tsx +16 -0
  417. package/react/dist/Transfer.tsx +17 -0
  418. package/react/dist/UAH.tsx +24 -0
  419. package/react/dist/USD.tsx +24 -0
  420. package/react/dist/UZS.tsx +24 -0
  421. package/react/dist/Unfold.tsx +16 -0
  422. package/react/dist/Up.tsx +16 -0
  423. package/react/dist/VES.tsx +24 -0
  424. package/react/dist/VND.tsx +24 -0
  425. package/react/dist/Vip.tsx +16 -0
  426. package/react/dist/VipExclusive.tsx +16 -0
  427. package/react/dist/Vk.tsx +16 -0
  428. package/react/dist/Wallet.tsx +16 -0
  429. package/react/dist/WarningFilled.tsx +16 -0
  430. package/react/dist/WealthManagement.tsx +16 -0
  431. package/react/dist/Whatsapp.tsx +16 -0
  432. package/react/dist/X.tsx +17 -0
  433. package/react/dist/XAF.tsx +24 -0
  434. package/react/dist/XInsight.tsx +16 -0
  435. package/react/dist/XOF.tsx +24 -0
  436. package/react/dist/Youtube.tsx +16 -0
  437. package/react/dist/ZAR.tsx +24 -0
  438. package/react/dist/index.d.mts +23 -0
  439. package/react/dist/index.d.ts +23 -0
  440. package/react/dist/index.js +2233 -0
  441. package/react/dist/index.js.map +1 -0
  442. package/react/dist/index.mjs +2011 -0
  443. package/react/dist/index.mjs.map +1 -0
  444. package/react/dist/index.ts +200 -0
  445. package/svg/currency/AED.svg +13 -0
  446. package/svg/currency/AMD.svg +11 -0
  447. package/svg/currency/ARS.svg +11 -0
  448. package/svg/currency/AUD.svg +11 -0
  449. package/svg/currency/AZN.svg +11 -0
  450. package/svg/currency/BDT.svg +11 -0
  451. package/svg/currency/BRL.svg +12 -0
  452. package/svg/currency/BYN.svg +12 -0
  453. package/svg/currency/CLP.svg +11 -0
  454. package/svg/currency/CNY.svg +11 -0
  455. package/svg/currency/COP.svg +11 -0
  456. package/svg/currency/DZD.svg +11 -0
  457. package/svg/currency/EGP.svg +11 -0
  458. package/svg/currency/EUR.svg +11 -0
  459. package/svg/currency/GBP.svg +11 -0
  460. package/svg/currency/GHS.svg +11 -0
  461. package/svg/currency/HKD.svg +11 -0
  462. package/svg/currency/HUF.svg +11 -0
  463. package/svg/currency/IDR.svg +11 -0
  464. package/svg/currency/INR.svg +11 -0
  465. package/svg/currency/IQD.svg +11 -0
  466. package/svg/currency/JOD.svg +11 -0
  467. package/svg/currency/JPY.svg +11 -0
  468. package/svg/currency/KES.svg +11 -0
  469. package/svg/currency/KZT.svg +11 -0
  470. package/svg/currency/MAD.svg +11 -0
  471. package/svg/currency/MRU.svg +11 -0
  472. package/svg/currency/MXN.svg +11 -0
  473. package/svg/currency/MYR.svg +11 -0
  474. package/svg/currency/NGN.svg +11 -0
  475. package/svg/currency/NPR.svg +11 -0
  476. package/svg/currency/PGK.svg +11 -0
  477. package/svg/currency/PHP.svg +11 -0
  478. package/svg/currency/PKR.svg +11 -0
  479. package/svg/currency/PLN.svg +11 -0
  480. package/svg/currency/RON.svg +11 -0
  481. package/svg/currency/RUB.svg +11 -0
  482. package/svg/currency/SAR.svg +11 -0
  483. package/svg/currency/SEK.svg +11 -0
  484. package/svg/currency/THB.svg +11 -0
  485. package/svg/currency/TRY.svg +11 -0
  486. package/svg/currency/TWD.svg +11 -0
  487. package/svg/currency/TZS.svg +11 -0
  488. package/svg/currency/UAH.svg +11 -0
  489. package/svg/currency/USD.svg +11 -0
  490. package/svg/currency/UZS.svg +11 -0
  491. package/svg/currency/VES.svg +11 -0
  492. package/svg/currency/VND.svg +11 -0
  493. package/svg/currency/XAF.svg +11 -0
  494. package/svg/currency/XOF.svg +11 -0
  495. package/svg/currency/ZAR.svg +11 -0
  496. package/svg/flags/IMF.png +0 -0
  497. package/svg/flags/aat.png +0 -0
  498. package/svg/flags/ac.png +0 -0
  499. package/svg/flags/ad.png +0 -0
  500. package/svg/flags/ae.png +0 -0
  501. package/svg/flags/af.png +0 -0
  502. package/svg/flags/ag.png +0 -0
  503. package/svg/flags/ai.png +0 -0
  504. package/svg/flags/al.png +0 -0
  505. package/svg/flags/am.png +0 -0
  506. package/svg/flags/ao.png +0 -0
  507. package/svg/flags/ar.png +0 -0
  508. package/svg/flags/as.png +0 -0
  509. package/svg/flags/at.png +0 -0
  510. package/svg/flags/au.png +0 -0
  511. package/svg/flags/aw.png +0 -0
  512. package/svg/flags/az.png +0 -0
  513. package/svg/flags/ba.png +0 -0
  514. package/svg/flags/bb.png +0 -0
  515. package/svg/flags/bd.png +0 -0
  516. package/svg/flags/be.png +0 -0
  517. package/svg/flags/bf.png +0 -0
  518. package/svg/flags/bg.png +0 -0
  519. package/svg/flags/bh.png +0 -0
  520. package/svg/flags/bi.png +0 -0
  521. package/svg/flags/bj.png +0 -0
  522. package/svg/flags/bm.png +0 -0
  523. package/svg/flags/bn.png +0 -0
  524. package/svg/flags/bo.png +0 -0
  525. package/svg/flags/bq.png +0 -0
  526. package/svg/flags/br.png +0 -0
  527. package/svg/flags/bs.png +0 -0
  528. package/svg/flags/bt.png +0 -0
  529. package/svg/flags/bw.png +0 -0
  530. package/svg/flags/by.png +0 -0
  531. package/svg/flags/bz.png +0 -0
  532. package/svg/flags/ca.png +0 -0
  533. package/svg/flags/cd.png +0 -0
  534. package/svg/flags/cf.png +0 -0
  535. package/svg/flags/cg.png +0 -0
  536. package/svg/flags/ch.png +0 -0
  537. package/svg/flags/ci.png +0 -0
  538. package/svg/flags/ck.png +0 -0
  539. package/svg/flags/cl.png +0 -0
  540. package/svg/flags/cm.png +0 -0
  541. package/svg/flags/cn.png +0 -0
  542. package/svg/flags/co.png +0 -0
  543. package/svg/flags/cr.png +0 -0
  544. package/svg/flags/cuba.png +0 -0
  545. package/svg/flags/cv.png +0 -0
  546. package/svg/flags/cy.png +0 -0
  547. package/svg/flags/cym.png +0 -0
  548. package/svg/flags/cz.png +0 -0
  549. package/svg/flags/de.png +0 -0
  550. package/svg/flags/dj.png +0 -0
  551. package/svg/flags/dk.png +0 -0
  552. package/svg/flags/dm.png +0 -0
  553. package/svg/flags/do.png +0 -0
  554. package/svg/flags/dz.png +0 -0
  555. package/svg/flags/ec.png +0 -0
  556. package/svg/flags/ee.png +0 -0
  557. package/svg/flags/eea.png +0 -0
  558. package/svg/flags/eg.png +0 -0
  559. package/svg/flags/er.png +0 -0
  560. package/svg/flags/es.png +0 -0
  561. package/svg/flags/et.png +0 -0
  562. package/svg/flags/fi.png +0 -0
  563. package/svg/flags/fj.png +0 -0
  564. package/svg/flags/fk.png +0 -0
  565. package/svg/flags/fm.png +0 -0
  566. package/svg/flags/fo.png +0 -0
  567. package/svg/flags/fr.png +0 -0
  568. package/svg/flags/ga.png +0 -0
  569. package/svg/flags/gb.png +0 -0
  570. package/svg/flags/gd.png +0 -0
  571. package/svg/flags/ge.png +0 -0
  572. package/svg/flags/gf.png +0 -0
  573. package/svg/flags/gh.png +0 -0
  574. package/svg/flags/gi.png +0 -0
  575. package/svg/flags/gl.png +0 -0
  576. package/svg/flags/global.png +0 -0
  577. package/svg/flags/gm.png +0 -0
  578. package/svg/flags/gn.png +0 -0
  579. package/svg/flags/gp.png +0 -0
  580. package/svg/flags/gq.png +0 -0
  581. package/svg/flags/gr.png +0 -0
  582. package/svg/flags/gt.png +0 -0
  583. package/svg/flags/gu.png +0 -0
  584. package/svg/flags/gw.png +0 -0
  585. package/svg/flags/gy.png +0 -0
  586. package/svg/flags/hk.png +0 -0
  587. package/svg/flags/hn.png +0 -0
  588. package/svg/flags/hr.png +0 -0
  589. package/svg/flags/ht.png +0 -0
  590. package/svg/flags/hu.png +0 -0
  591. package/svg/flags/id.png +0 -0
  592. package/svg/flags/ie.png +0 -0
  593. package/svg/flags/il.png +0 -0
  594. package/svg/flags/in.png +0 -0
  595. package/svg/flags/io.png +0 -0
  596. package/svg/flags/iq.png +0 -0
  597. package/svg/flags/ir.png +0 -0
  598. package/svg/flags/is.png +0 -0
  599. package/svg/flags/it.png +0 -0
  600. package/svg/flags/je.png +0 -0
  601. package/svg/flags/jm.png +0 -0
  602. package/svg/flags/jo.png +0 -0
  603. package/svg/flags/jp.png +0 -0
  604. package/svg/flags/ke.png +0 -0
  605. package/svg/flags/kg.png +0 -0
  606. package/svg/flags/kh.png +0 -0
  607. package/svg/flags/ki.png +0 -0
  608. package/svg/flags/km.png +0 -0
  609. package/svg/flags/kn.png +0 -0
  610. package/svg/flags/kp.png +0 -0
  611. package/svg/flags/kr.png +0 -0
  612. package/svg/flags/kw.png +0 -0
  613. package/svg/flags/kz.png +0 -0
  614. package/svg/flags/la.png +0 -0
  615. package/svg/flags/lb.png +0 -0
  616. package/svg/flags/lc.png +0 -0
  617. package/svg/flags/li.png +0 -0
  618. package/svg/flags/lk.png +0 -0
  619. package/svg/flags/lr.png +0 -0
  620. package/svg/flags/ls.png +0 -0
  621. package/svg/flags/lt.png +0 -0
  622. package/svg/flags/lu.png +0 -0
  623. package/svg/flags/lv.png +0 -0
  624. package/svg/flags/ly.png +0 -0
  625. package/svg/flags/ma.png +0 -0
  626. package/svg/flags/mc.png +0 -0
  627. package/svg/flags/md.png +0 -0
  628. package/svg/flags/me.png +0 -0
  629. package/svg/flags/mg.png +0 -0
  630. package/svg/flags/mh.png +0 -0
  631. package/svg/flags/mk.png +0 -0
  632. package/svg/flags/ml.png +0 -0
  633. package/svg/flags/mm.png +0 -0
  634. package/svg/flags/mn.png +0 -0
  635. package/svg/flags/mo.png +0 -0
  636. package/svg/flags/mq.png +0 -0
  637. package/svg/flags/mr.png +0 -0
  638. package/svg/flags/ms.png +0 -0
  639. package/svg/flags/mt.png +0 -0
  640. package/svg/flags/mu.png +0 -0
  641. package/svg/flags/mv.png +0 -0
  642. package/svg/flags/mw.png +0 -0
  643. package/svg/flags/mx.png +0 -0
  644. package/svg/flags/my.png +0 -0
  645. package/svg/flags/mz.png +0 -0
  646. package/svg/flags/na.png +0 -0
  647. package/svg/flags/nc.png +0 -0
  648. package/svg/flags/ne.png +0 -0
  649. package/svg/flags/ng.png +0 -0
  650. package/svg/flags/ni.png +0 -0
  651. package/svg/flags/nl.png +0 -0
  652. package/svg/flags/no.png +0 -0
  653. package/svg/flags/np.png +0 -0
  654. package/svg/flags/nr.png +0 -0
  655. package/svg/flags/nu.png +0 -0
  656. package/svg/flags/nz.png +0 -0
  657. package/svg/flags/om.png +0 -0
  658. package/svg/flags/pa.png +0 -0
  659. package/svg/flags/pe.png +0 -0
  660. package/svg/flags/pf.png +0 -0
  661. package/svg/flags/pg.png +0 -0
  662. package/svg/flags/ph.png +0 -0
  663. package/svg/flags/pk.png +0 -0
  664. package/svg/flags/pl.png +0 -0
  665. package/svg/flags/pm.png +0 -0
  666. package/svg/flags/pr.png +0 -0
  667. package/svg/flags/ps.png +0 -0
  668. package/svg/flags/pt.png +0 -0
  669. package/svg/flags/pw.png +0 -0
  670. package/svg/flags/py.png +0 -0
  671. package/svg/flags/qa.png +0 -0
  672. package/svg/flags/re.png +0 -0
  673. package/svg/flags/ro.png +0 -0
  674. package/svg/flags/rs.png +0 -0
  675. package/svg/flags/ru.png +0 -0
  676. package/svg/flags/rw.png +0 -0
  677. package/svg/flags/sa.png +0 -0
  678. package/svg/flags/sb.png +0 -0
  679. package/svg/flags/sc.png +0 -0
  680. package/svg/flags/se.png +0 -0
  681. package/svg/flags/sg.png +0 -0
  682. package/svg/flags/sh.png +0 -0
  683. package/svg/flags/si.png +0 -0
  684. package/svg/flags/sk.png +0 -0
  685. package/svg/flags/sl.png +0 -0
  686. package/svg/flags/sm.png +0 -0
  687. package/svg/flags/sn.png +0 -0
  688. package/svg/flags/so.png +0 -0
  689. package/svg/flags/sr.png +0 -0
  690. package/svg/flags/st.png +0 -0
  691. package/svg/flags/sudan.png +0 -0
  692. package/svg/flags/sv.png +0 -0
  693. package/svg/flags/sz.png +0 -0
  694. package/svg/flags/tc.png +0 -0
  695. package/svg/flags/td.png +0 -0
  696. package/svg/flags/tg.png +0 -0
  697. package/svg/flags/th.png +0 -0
  698. package/svg/flags/tj.png +0 -0
  699. package/svg/flags/tk.png +0 -0
  700. package/svg/flags/tl.png +0 -0
  701. package/svg/flags/tm.png +0 -0
  702. package/svg/flags/tn.png +0 -0
  703. package/svg/flags/to.png +0 -0
  704. package/svg/flags/tr.png +0 -0
  705. package/svg/flags/tt.png +0 -0
  706. package/svg/flags/tv.png +0 -0
  707. package/svg/flags/tw.png +0 -0
  708. package/svg/flags/tz.png +0 -0
  709. package/svg/flags/ua.png +0 -0
  710. package/svg/flags/uae.png +0 -0
  711. package/svg/flags/ug.png +0 -0
  712. package/svg/flags/us.png +0 -0
  713. package/svg/flags/uy.png +0 -0
  714. package/svg/flags/uz.png +0 -0
  715. package/svg/flags/va.png +0 -0
  716. package/svg/flags/vc.png +0 -0
  717. package/svg/flags/vct.png +0 -0
  718. package/svg/flags/ve.png +0 -0
  719. package/svg/flags/vi.png +0 -0
  720. package/svg/flags/vn.png +0 -0
  721. package/svg/flags/vu.png +0 -0
  722. package/svg/flags/wf.png +0 -0
  723. package/svg/flags/ws.png +0 -0
  724. package/svg/flags/ye.png +0 -0
  725. package/svg/flags/yu.png +0 -0
  726. package/svg/flags/za.png +0 -0
  727. package/svg/flags/zm.png +0 -0
  728. package/svg/flags/zr.png +0 -0
  729. package/svg/flags/zw.png +0 -0
  730. package/svg/primary/academy.svg +3 -0
  731. package/svg/primary/affiliate-program.svg +3 -0
  732. package/svg/primary/ai-hub.svg +3 -0
  733. package/svg/primary/amm.svg +4 -0
  734. package/svg/primary/apis.svg +3 -0
  735. package/svg/primary/beacon.svg +3 -0
  736. package/svg/primary/bitmart-card.svg +3 -0
  737. package/svg/primary/bitmart-travel.svg +3 -0
  738. package/svg/primary/bm-discovery.svg +3 -0
  739. package/svg/primary/broker-program.svg +3 -0
  740. package/svg/primary/coin-m.svg +3 -0
  741. package/svg/primary/community.svg +3 -0
  742. package/svg/primary/copy-trading-classic.svg +3 -0
  743. package/svg/primary/copy-trading.svg +3 -0
  744. package/svg/primary/credit-card.svg +3 -0
  745. package/svg/primary/crypto-loans.svg +3 -0
  746. package/svg/primary/daily-draw.svg +3 -0
  747. package/svg/primary/demo-trading.svg +3 -0
  748. package/svg/primary/deposit.svg +3 -0
  749. package/svg/primary/dex.svg +3 -0
  750. package/svg/primary/earn-overview.svg +3 -0
  751. package/svg/primary/events-center.svg +3 -0
  752. package/svg/primary/fiat-convert-outline.svg +7 -0
  753. package/svg/primary/fiat-convert.svg +3 -0
  754. package/svg/primary/futures-king.svg +3 -0
  755. package/svg/primary/futures-overview.svg +3 -0
  756. package/svg/primary/grid-bot.svg +3 -0
  757. package/svg/primary/ino.svg +3 -0
  758. package/svg/primary/institution.svg +3 -0
  759. package/svg/primary/launch-prime.svg +3 -0
  760. package/svg/primary/margin.svg +3 -0
  761. package/svg/primary/markets.svg +3 -0
  762. package/svg/primary/mobile-recharge-alt.svg +3 -0
  763. package/svg/primary/mobile-recharge.svg +3 -0
  764. package/svg/primary/news.svg +3 -0
  765. package/svg/primary/nft-marketplace.svg +3 -0
  766. package/svg/primary/p2p.svg +3 -0
  767. package/svg/primary/powerdrop.svg +3 -0
  768. package/svg/primary/pre-market.svg +3 -0
  769. package/svg/primary/prediction-market.svg +7 -0
  770. package/svg/primary/prepaid-card.svg +3 -0
  771. package/svg/primary/referral-program.svg +5 -0
  772. package/svg/primary/rwa.svg +3 -0
  773. package/svg/primary/shop-outline.svg +4 -0
  774. package/svg/primary/shop.svg +3 -0
  775. package/svg/primary/spot-daily-draw.svg +4 -0
  776. package/svg/primary/spot.svg +3 -0
  777. package/svg/primary/stake-bmx-to-listing.svg +3 -0
  778. package/svg/primary/stake-to-vote.svg +3 -0
  779. package/svg/primary/staking.svg +3 -0
  780. package/svg/primary/third-party-payment.svg +3 -0
  781. package/svg/primary/vip-exclusive.svg +3 -0
  782. package/svg/primary/vip.svg +3 -0
  783. package/svg/primary/wealth-management.svg +3 -0
  784. package/svg/primary/x-insight.svg +3 -0
  785. package/svg/product/add.svg +3 -0
  786. package/svg/product/add2.svg +3 -0
  787. package/svg/product/address.svg +3 -0
  788. package/svg/product/app-download.svg +3 -0
  789. package/svg/product/apple.svg +3 -0
  790. package/svg/product/arrow-left.svg +3 -0
  791. package/svg/product/arrow-right.svg +3 -0
  792. package/svg/product/arrow-right2.svg +3 -0
  793. package/svg/product/avatar.svg +3 -0
  794. package/svg/product/clear.svg +3 -0
  795. package/svg/product/close.svg +4 -0
  796. package/svg/product/cloud-backup.svg +3 -0
  797. package/svg/product/copy.svg +3 -0
  798. package/svg/product/create.svg +3 -0
  799. package/svg/product/dark-mode.svg +3 -0
  800. package/svg/product/delete.svg +3 -0
  801. package/svg/product/delete2.svg +3 -0
  802. package/svg/product/detail.svg +3 -0
  803. package/svg/product/discord.svg +3 -0
  804. package/svg/product/down.svg +3 -0
  805. package/svg/product/download.svg +3 -0
  806. package/svg/product/drag.svg +3 -0
  807. package/svg/product/edit.svg +3 -0
  808. package/svg/product/exchange.svg +3 -0
  809. package/svg/product/facebook.svg +3 -0
  810. package/svg/product/fail-filled.svg +3 -0
  811. package/svg/product/fail.svg +3 -0
  812. package/svg/product/filter.svg +8 -0
  813. package/svg/product/fold.svg +3 -0
  814. package/svg/product/gift.svg +3 -0
  815. package/svg/product/github.svg +10 -0
  816. package/svg/product/google.svg +6 -0
  817. package/svg/product/hide.svg +4 -0
  818. package/svg/product/history-order.svg +3 -0
  819. package/svg/product/hot-filled.svg +3 -0
  820. package/svg/product/icon-placeholder.svg +3 -0
  821. package/svg/product/import.svg +3 -0
  822. package/svg/product/info-filled.svg +3 -0
  823. package/svg/product/info.svg +3 -0
  824. package/svg/product/instagram.svg +3 -0
  825. package/svg/product/light-mode.svg +3 -0
  826. package/svg/product/linkedin.svg +3 -0
  827. package/svg/product/loading.svg +10 -0
  828. package/svg/product/lock.svg +3 -0
  829. package/svg/product/manual-backup.svg +3 -0
  830. package/svg/product/medium.svg +3 -0
  831. package/svg/product/message.svg +3 -0
  832. package/svg/product/metamask.svg +31 -0
  833. package/svg/product/microsoft.svg +6 -0
  834. package/svg/product/more.svg +3 -0
  835. package/svg/product/network.svg +3 -0
  836. package/svg/product/non-selected.svg +3 -0
  837. package/svg/product/notification.svg +3 -0
  838. package/svg/product/ok.svg +3 -0
  839. package/svg/product/paste.svg +3 -0
  840. package/svg/product/plus-filled.svg +3 -0
  841. package/svg/product/progress-filled.svg +3 -0
  842. package/svg/product/qr-code.svg +3 -0
  843. package/svg/product/receive.svg +3 -0
  844. package/svg/product/reddit.svg +3 -0
  845. package/svg/product/remove-filled.svg +3 -0
  846. package/svg/product/replay.svg +15 -0
  847. package/svg/product/rewards-hub.svg +3 -0
  848. package/svg/product/rocket.svg +3 -0
  849. package/svg/product/scan.svg +3 -0
  850. package/svg/product/search.svg +3 -0
  851. package/svg/product/send.svg +3 -0
  852. package/svg/product/setting.svg +3 -0
  853. package/svg/product/show.svg +3 -0
  854. package/svg/product/sidebar.svg +3 -0
  855. package/svg/product/smart-wallet.svg +3 -0
  856. package/svg/product/star-filled.svg +3 -0
  857. package/svg/product/star.svg +3 -0
  858. package/svg/product/success-filled.svg +3 -0
  859. package/svg/product/success.svg +3 -0
  860. package/svg/product/support.svg +6 -0
  861. package/svg/product/telegram.svg +3 -0
  862. package/svg/product/tiktok.svg +3 -0
  863. package/svg/product/time.svg +3 -0
  864. package/svg/product/token-manage.svg +3 -0
  865. package/svg/product/transfer.svg +4 -0
  866. package/svg/product/unfold.svg +3 -0
  867. package/svg/product/up.svg +3 -0
  868. package/svg/product/vk.svg +3 -0
  869. package/svg/product/wallet.svg +3 -0
  870. package/svg/product/warning-filled.svg +3 -0
  871. package/svg/product/whatsapp.svg +3 -0
  872. package/svg/product/x.svg +4 -0
  873. 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
+