@arcblock/ux 2.9.91 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. package/lib/ActionButton/index.js +36 -48
  2. package/lib/ActivityIndicator/index.js +122 -75
  3. package/lib/Address/compact-text.js +48 -66
  4. package/lib/Address/did-address.js +114 -87
  5. package/lib/Address/index.js +15 -27
  6. package/lib/Address/responsive-did-address.js +48 -50
  7. package/lib/Alert/index.js +58 -52
  8. package/lib/AnimationWaiter/index.js +123 -69
  9. package/lib/Async/index.js +8 -22
  10. package/lib/Avatar/did-motif.js +38 -52
  11. package/lib/Avatar/etherscan-blockies.js +4 -10
  12. package/lib/Avatar/index.js +71 -77
  13. package/lib/Badge/index.js +49 -56
  14. package/lib/Blocklet/blocklet.js +181 -97
  15. package/lib/Blocklet/index.js +4 -24
  16. package/lib/Blocklet/utils.js +50 -13
  17. package/lib/BlockletContext/index.js +21 -31
  18. package/lib/BlockletNFT/index.js +255 -115
  19. package/lib/Button/index.js +5 -11
  20. package/lib/Button/wrap.js +45 -56
  21. package/lib/ButtonGroup/index.js +3 -9
  22. package/lib/CardSelector/index.js +67 -43
  23. package/lib/Center/index.js +19 -20
  24. package/lib/ClickToCopy/copy-button.js +37 -50
  25. package/lib/ClickToCopy/hook.js +10 -18
  26. package/lib/ClickToCopy/index.js +54 -66
  27. package/lib/CodeBlock/LightBox.js +84 -11
  28. package/lib/CodeBlock/index.js +175 -101
  29. package/lib/Colors/index.js +3 -20
  30. package/lib/Colors/themes/default.js +1 -7
  31. package/lib/Colors/themes/temp.js +1 -7
  32. package/lib/ContactForm/index.js +95 -60
  33. package/lib/CookieConsent/index.js +58 -52
  34. package/lib/CountDown/index.js +90 -59
  35. package/lib/DID/index.js +80 -96
  36. package/lib/Datatable/CustomToolbar.js +188 -137
  37. package/lib/Datatable/DatatableContext.js +14 -21
  38. package/lib/Datatable/TableSearch.js +99 -58
  39. package/lib/Datatable/index.js +312 -139
  40. package/lib/Datatable/utils.js +9 -17
  41. package/lib/Dialog/confirm.js +46 -58
  42. package/lib/Dialog/dialog.js +110 -66
  43. package/lib/Dialog/index.js +4 -27
  44. package/lib/Dialog/use-confirm.js +40 -65
  45. package/lib/DidLogo/index.js +14 -22
  46. package/lib/DriftBot/index.js +34 -19
  47. package/lib/Earth/index.js +214 -110
  48. package/lib/Earth/util.js +6 -19
  49. package/lib/Empty/index.js +33 -38
  50. package/lib/ErrorBoundary/fallback.js +45 -43
  51. package/lib/ErrorBoundary/index.js +1 -16
  52. package/lib/Footer/index.js +96 -48
  53. package/lib/Header/auto-hidden.js +28 -31
  54. package/lib/Header/header.js +151 -69
  55. package/lib/Header/index.js +2 -20
  56. package/lib/Header/responsive-header.js +67 -60
  57. package/lib/Icon/image.js +41 -45
  58. package/lib/Icon/index.js +51 -53
  59. package/lib/Img/index.js +77 -88
  60. package/lib/InfoRow/index.js +66 -48
  61. package/lib/Layout/dashboard/external-link.js +38 -53
  62. package/lib/Layout/dashboard/full-page.js +27 -41
  63. package/lib/Layout/dashboard/index.js +177 -132
  64. package/lib/Layout/dashboard/sidebar.js +164 -61
  65. package/lib/Layout/dashboard-legacy/header.js +119 -66
  66. package/lib/Layout/dashboard-legacy/index.js +90 -79
  67. package/lib/Layout/dashboard-legacy/sidebar.js +95 -62
  68. package/lib/Layout/index.js +200 -106
  69. package/lib/LoadingMask/index.js +31 -38
  70. package/lib/Locale/browser-lang.js +2 -8
  71. package/lib/Locale/context.js +46 -69
  72. package/lib/Locale/languages.js +6 -15
  73. package/lib/Locale/selector.js +116 -92
  74. package/lib/Locale/util.js +7 -16
  75. package/lib/Logo/index.js +54 -57
  76. package/lib/Metric/index.js +103 -40
  77. package/lib/NFTDisplay/aspect-ratio-container.js +33 -40
  78. package/lib/NFTDisplay/broken.js +68 -52
  79. package/lib/NFTDisplay/index.js +140 -129
  80. package/lib/NFTDisplay/loading.js +14 -13
  81. package/lib/NFTDisplay/svg-embedder/img.js +18 -33
  82. package/lib/NFTDisplay/svg-embedder/inline-svg.js +28 -32
  83. package/lib/NavMenu/index.js +2 -13
  84. package/lib/NavMenu/nav-menu.js +133 -148
  85. package/lib/NavMenu/style.js +179 -12
  86. package/lib/PageScroller/index.js +82 -93
  87. package/lib/PageScroller/story/FifthComponent.js +4 -10
  88. package/lib/PageScroller/story/FirstComponent.js +4 -10
  89. package/lib/PageScroller/story/FourthComponent.js +4 -10
  90. package/lib/PageScroller/story/FullPage.js +21 -28
  91. package/lib/PageScroller/story/PageContain.js +23 -30
  92. package/lib/PageScroller/story/SecondComponent.js +4 -10
  93. package/lib/PageScroller/story/ThirdComponent.js +4 -10
  94. package/lib/PageScroller/usePrevValue.js +4 -11
  95. package/lib/Passport/index.js +2 -9
  96. package/lib/Passport/passport.js +38 -51
  97. package/lib/PoweredByArcBlock/index.js +19 -33
  98. package/lib/PricingTable/PricingPlan.js +90 -34
  99. package/lib/PricingTable/index.js +28 -26
  100. package/lib/QRCode/index.js +38 -50
  101. package/lib/RelativeTime/index.js +44 -59
  102. package/lib/Result/common.js +85 -107
  103. package/lib/Result/index.js +22 -34
  104. package/lib/Result/result.js +35 -41
  105. package/lib/Result/translations.js +1 -7
  106. package/lib/Screenshot/BaseScreenshot/index.js +65 -43
  107. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +17 -27
  108. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +14 -25
  109. package/lib/Screenshot/index.js +103 -92
  110. package/lib/SessionBlocklet/index.js +125 -143
  111. package/lib/SessionManager/index.js +2 -9
  112. package/lib/SessionPermission/index.js +13 -23
  113. package/lib/SessionUser/components/logged-in.js +139 -158
  114. package/lib/SessionUser/components/session-user-item.js +44 -58
  115. package/lib/SessionUser/components/session-user-switch.js +133 -152
  116. package/lib/SessionUser/components/un-login.js +27 -35
  117. package/lib/SessionUser/components/user-info.js +62 -74
  118. package/lib/SessionUser/index.js +26 -34
  119. package/lib/SessionUser/libs/translation.js +1 -7
  120. package/lib/SessionUser/libs/utils.js +13 -34
  121. package/lib/Sparkline/index.js +4 -10
  122. package/lib/Spinner/index.js +11 -17
  123. package/lib/SplitButton/index.js +72 -68
  124. package/lib/Success/index.js +28 -34
  125. package/lib/Switch/index.js +64 -75
  126. package/lib/Tabs/index.js +84 -103
  127. package/lib/Tag/index.js +52 -56
  128. package/lib/TextCollapse/index.js +57 -50
  129. package/lib/Theme/index.js +8 -47
  130. package/lib/Theme/theme-provider.js +19 -26
  131. package/lib/Theme/theme.js +49 -62
  132. package/lib/Toast/index.js +41 -73
  133. package/lib/Typography/index.js +44 -55
  134. package/lib/Util/constant.js +16 -22
  135. package/lib/Util/deprecate.js +14 -26
  136. package/lib/Util/federated.js +16 -38
  137. package/lib/Util/index.js +63 -113
  138. package/lib/Util/passport.js +23 -33
  139. package/lib/Util/wallet.js +5 -14
  140. package/lib/Video/index.js +34 -34
  141. package/lib/Wallet/Action.js +72 -49
  142. package/lib/Wallet/Download.js +132 -115
  143. package/lib/Wallet/Open.js +26 -25
  144. package/lib/WalletOSIcon/index.js +33 -42
  145. package/lib/WebWalletSWKeeper/index.js +42 -55
  146. package/lib/WechatPrompt/index.js +53 -33
  147. package/lib/index.js +38 -265
  148. package/lib/withTheme/index.js +53 -33
  149. package/lib/withTracker/error_boundary.js +7 -18
  150. package/lib/withTracker/index.js +25 -34
  151. package/package.json +9 -316
  152. package/src/WalletOSIcon/index.jsx +1 -1
  153. package/es/ActionButton/index.js +0 -99
  154. package/es/ActivityIndicator/index.js +0 -180
  155. package/es/Address/compact-text.js +0 -105
  156. package/es/Address/did-address.js +0 -222
  157. package/es/Address/index.js +0 -23
  158. package/es/Address/responsive-did-address.js +0 -87
  159. package/es/Alert/index.js +0 -134
  160. package/es/AnimationWaiter/default-animation.json +0 -1
  161. package/es/AnimationWaiter/index.js +0 -240
  162. package/es/Async/index.js +0 -38
  163. package/es/Avatar/did-motif.js +0 -68
  164. package/es/Avatar/etherscan-blockies.js +0 -83
  165. package/es/Avatar/index.js +0 -179
  166. package/es/Badge/index.js +0 -98
  167. package/es/Blocklet/blocklet.js +0 -298
  168. package/es/Blocklet/index.js +0 -4
  169. package/es/Blocklet/utils.js +0 -52
  170. package/es/BlockletContext/index.js +0 -65
  171. package/es/BlockletNFT/index.js +0 -412
  172. package/es/Button/index.js +0 -8
  173. package/es/Button/wrap.js +0 -140
  174. package/es/ButtonGroup/index.js +0 -6
  175. package/es/CardSelector/index.js +0 -149
  176. package/es/Center/index.js +0 -41
  177. package/es/ClickToCopy/copy-button.js +0 -72
  178. package/es/ClickToCopy/hook.js +0 -39
  179. package/es/ClickToCopy/index.js +0 -92
  180. package/es/CodeBlock/LightBox.js +0 -85
  181. package/es/CodeBlock/index.js +0 -222
  182. package/es/Colors/index.js +0 -3
  183. package/es/Colors/themes/default.js +0 -77
  184. package/es/Colors/themes/temp.js +0 -41
  185. package/es/ContactForm/index.js +0 -230
  186. package/es/CookieConsent/index.js +0 -113
  187. package/es/CountDown/index.js +0 -178
  188. package/es/DID/index.js +0 -249
  189. package/es/Datatable/CustomToolbar.js +0 -396
  190. package/es/Datatable/DatatableContext.js +0 -34
  191. package/es/Datatable/TableSearch.js +0 -166
  192. package/es/Datatable/index.js +0 -629
  193. package/es/Datatable/utils.js +0 -132
  194. package/es/Dialog/confirm.js +0 -123
  195. package/es/Dialog/dialog.js +0 -201
  196. package/es/Dialog/index.js +0 -4
  197. package/es/Dialog/types.d.ts +0 -17
  198. package/es/Dialog/use-confirm.js +0 -133
  199. package/es/DidLogo/index.js +0 -31
  200. package/es/DriftBot/index.js +0 -70
  201. package/es/Earth/countries.json +0 -8057
  202. package/es/Earth/index.js +0 -521
  203. package/es/Earth/util.js +0 -51
  204. package/es/Empty/index.js +0 -65
  205. package/es/ErrorBoundary/fallback.js +0 -73
  206. package/es/ErrorBoundary/index.js +0 -1
  207. package/es/Footer/index.js +0 -172
  208. package/es/Header/auto-hidden.js +0 -35
  209. package/es/Header/header.js +0 -223
  210. package/es/Header/index.js +0 -2
  211. package/es/Header/responsive-header.js +0 -146
  212. package/es/Icon/image.js +0 -65
  213. package/es/Icon/index.js +0 -84
  214. package/es/Img/index.js +0 -218
  215. package/es/InfoRow/index.js +0 -87
  216. package/es/Layout/dashboard/external-link.js +0 -58
  217. package/es/Layout/dashboard/full-page.js +0 -53
  218. package/es/Layout/dashboard/index.js +0 -282
  219. package/es/Layout/dashboard/sidebar.js +0 -209
  220. package/es/Layout/dashboard-legacy/header.js +0 -174
  221. package/es/Layout/dashboard-legacy/index.js +0 -148
  222. package/es/Layout/dashboard-legacy/sidebar.js +0 -129
  223. package/es/Layout/index.js +0 -335
  224. package/es/LoadingMask/index.js +0 -102
  225. package/es/Locale/browser-lang.js +0 -52
  226. package/es/Locale/context.js +0 -139
  227. package/es/Locale/languages.js +0 -60
  228. package/es/Locale/selector.js +0 -186
  229. package/es/Locale/util.js +0 -21
  230. package/es/Logo/images/logo-dark-text.svg +0 -3
  231. package/es/Logo/images/logo-dark-top.svg +0 -6
  232. package/es/Logo/images/logo-light-text.svg +0 -3
  233. package/es/Logo/images/logo-light-top.svg +0 -6
  234. package/es/Logo/index.js +0 -136
  235. package/es/Metric/index.js +0 -132
  236. package/es/NFTDisplay/NFTBroken.svg +0 -34
  237. package/es/NFTDisplay/README.md +0 -59
  238. package/es/NFTDisplay/aspect-ratio-container.js +0 -39
  239. package/es/NFTDisplay/broken.js +0 -132
  240. package/es/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
  241. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
  242. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
  243. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
  244. package/es/NFTDisplay/demo/data/asset-state-svg.json +0 -29
  245. package/es/NFTDisplay/demo/data/asset-state-url.json +0 -10
  246. package/es/NFTDisplay/index.js +0 -328
  247. package/es/NFTDisplay/loading.js +0 -18
  248. package/es/NFTDisplay/svg-embedder/img.js +0 -45
  249. package/es/NFTDisplay/svg-embedder/inline-svg.js +0 -39
  250. package/es/NavMenu/index.js +0 -2
  251. package/es/NavMenu/nav-menu.js +0 -358
  252. package/es/NavMenu/style.js +0 -181
  253. package/es/PageScroller/index.js +0 -286
  254. package/es/PageScroller/story/FifthComponent.js +0 -9
  255. package/es/PageScroller/story/FirstComponent.js +0 -9
  256. package/es/PageScroller/story/FourthComponent.js +0 -12
  257. package/es/PageScroller/story/FullPage.js +0 -47
  258. package/es/PageScroller/story/PageContain.js +0 -59
  259. package/es/PageScroller/story/SecondComponent.js +0 -9
  260. package/es/PageScroller/story/ThirdComponent.js +0 -9
  261. package/es/PageScroller/story/index.css +0 -115
  262. package/es/PageScroller/usePrevValue.js +0 -9
  263. package/es/Passport/index.js +0 -2
  264. package/es/Passport/passport.js +0 -103
  265. package/es/PoweredByArcBlock/index.js +0 -31
  266. package/es/PricingTable/PricingPlan.js +0 -124
  267. package/es/PricingTable/index.js +0 -53
  268. package/es/QRCode/index.js +0 -73
  269. package/es/RelativeTime/index.js +0 -107
  270. package/es/Result/common.js +0 -140
  271. package/es/Result/demo/fixtures/result-image-404.svg +0 -1
  272. package/es/Result/index.js +0 -33
  273. package/es/Result/result.js +0 -59
  274. package/es/Result/translations.js +0 -54
  275. package/es/Screenshot/BaseScreenshot/index.js +0 -91
  276. package/es/Screenshot/BaseScreenshot/shells/Macbook.js +0 -51
  277. package/es/Screenshot/BaseScreenshot/shells/Phone.js +0 -36
  278. package/es/Screenshot/demo/images/bg-00.jpg +0 -0
  279. package/es/Screenshot/demo/images/bg-01.jpg +0 -0
  280. package/es/Screenshot/demo/images/bg-02.jpg +0 -0
  281. package/es/Screenshot/demo/images/bg-03.jpg +0 -0
  282. package/es/Screenshot/demo/images/bg-04.jpg +0 -0
  283. package/es/Screenshot/demo/images/bg-05.jpg +0 -0
  284. package/es/Screenshot/demo/images/bg-06.jpg +0 -0
  285. package/es/Screenshot/demo/images/bg-07.jpg +0 -0
  286. package/es/Screenshot/demo/images/bg-08.jpg +0 -0
  287. package/es/Screenshot/demo/images/bg-09.jpg +0 -0
  288. package/es/Screenshot/devices.css +0 -1366
  289. package/es/Screenshot/index.js +0 -299
  290. package/es/SessionBlocklet/index.js +0 -173
  291. package/es/SessionManager/index.js +0 -2
  292. package/es/SessionPermission/index.js +0 -28
  293. package/es/SessionUser/components/logged-in.js +0 -229
  294. package/es/SessionUser/components/session-user-item.js +0 -102
  295. package/es/SessionUser/components/session-user-switch.js +0 -223
  296. package/es/SessionUser/components/un-login.js +0 -64
  297. package/es/SessionUser/components/user-info.js +0 -167
  298. package/es/SessionUser/index.js +0 -49
  299. package/es/SessionUser/libs/translation.js +0 -19
  300. package/es/SessionUser/libs/utils.js +0 -29
  301. package/es/Sparkline/index.js +0 -193
  302. package/es/Spinner/index.js +0 -28
  303. package/es/SplitButton/index.js +0 -145
  304. package/es/Success/index.js +0 -175
  305. package/es/Switch/index.js +0 -96
  306. package/es/Tabs/index.js +0 -214
  307. package/es/Tag/index.js +0 -108
  308. package/es/TextCollapse/index.js +0 -92
  309. package/es/Theme/index.js +0 -16
  310. package/es/Theme/theme-provider.js +0 -39
  311. package/es/Theme/theme.js +0 -145
  312. package/es/Toast/index.js +0 -97
  313. package/es/Typography/index.js +0 -95
  314. package/es/Util/constant.js +0 -42
  315. package/es/Util/deprecate.js +0 -28
  316. package/es/Util/federated.js +0 -91
  317. package/es/Util/index.js +0 -363
  318. package/es/Util/passport.js +0 -62
  319. package/es/Util/wallet.js +0 -32
  320. package/es/Video/index.js +0 -89
  321. package/es/Wallet/Action.js +0 -119
  322. package/es/Wallet/Download.js +0 -331
  323. package/es/Wallet/Open.js +0 -45
  324. package/es/Wallet/images/abtwallet.png +0 -0
  325. package/es/Wallet/images/android_download.svg +0 -23
  326. package/es/Wallet/images/app-store.svg +0 -20
  327. package/es/Wallet/images/google-play.svg +0 -70
  328. package/es/WalletOSIcon/index.js +0 -82
  329. package/es/WebWalletSWKeeper/index.js +0 -117
  330. package/es/WechatPrompt/images/android.png +0 -0
  331. package/es/WechatPrompt/images/ios.png +0 -0
  332. package/es/WechatPrompt/index.js +0 -88
  333. package/es/index.js +0 -38
  334. package/es/withTheme/index.js +0 -69
  335. package/es/withTracker/README.md +0 -34
  336. package/es/withTracker/error_boundary.js +0 -34
  337. package/es/withTracker/index.js +0 -55
@@ -1,412 +0,0 @@
1
- import { useRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Portal from '@mui/material/Portal';
4
- import Typography from '@mui/material/Typography';
5
- import CircularProgress from '@mui/material/CircularProgress';
6
- import useMediaQuery from '@mui/material/useMediaQuery';
7
- import Avatar from '../Avatar';
8
- import Icon from '../Icon';
9
- import Button from '../Button';
10
- import Img from '../Img';
11
- import { useTheme, styled } from '../Theme';
12
-
13
- /**
14
- * 美化数字 1000-->1k
15
- * @param {*} _size
16
- * @param {*} digits
17
- * @returns
18
- */
19
- import { jsx as _jsx } from "react/jsx-runtime";
20
- import { jsxs as _jsxs } from "react/jsx-runtime";
21
- import { Fragment as _Fragment } from "react/jsx-runtime";
22
- function prettySize(_size, digits = 1) {
23
- let size = _size;
24
- const list = ['', 'k', 'm', 'b'];
25
- let index = 0;
26
- while (size > 1000 && index < list.length - 1) {
27
- size = (size / 1000).toFixed(digits);
28
- index += 1;
29
- }
30
- return _size && `${size}${list[index]}`;
31
- }
32
- const Div = styled('div')`
33
- &.arcblock-blocklet {
34
- padding: 0 16px;
35
- background: ${props => props.theme.palette.common.white};
36
- overflow: hidden;
37
- box-shadow: 0px 0px 8px #f0f0f0;
38
- &:hover {
39
- box-shadow: 0px 2px 12px #f0f0f0;
40
- }
41
- }
42
- .arcblock-blocklet__content {
43
- padding: 16px 0 0 0;
44
- }
45
- .arcblock-blocklet__content--main {
46
- display: flex;
47
- align-items: center;
48
- cursor: pointer;
49
- }
50
- .arcblock-blocklet__content--body {
51
- overflow: hidden;
52
- flex: 1;
53
- display: flex;
54
- align-items: flex-start;
55
- }
56
- .arcblock-blocklet__addons {
57
- padding: 16px 0;
58
- }
59
- .arcblock-blocklet__cover {
60
- width: 80px;
61
- height: 80px;
62
- margin-right: 12px;
63
- overflow: hidden;
64
- border-radius: 12px;
65
- /* see: https://stackoverflow.com/questions/49066011/overflow-hidden-with-border-radius-not-working-on-safari */
66
- transform: translateZ(0);
67
- }
68
- .arcblock-blocklet__button--hover {
69
- &:not(.Mui-disabled) {
70
- position: relative;
71
- z-index: 1;
72
- &::before {
73
- content: '';
74
- position: absolute;
75
- height: 100%;
76
- width: 100%;
77
- left: 0;
78
- top: 0;
79
- transition: opacity 0.3s;
80
- }
81
- &:hover::before {
82
- opacity: 0;
83
- }
84
- &::after {
85
- content: '';
86
- position: absolute;
87
- height: 100%;
88
- width: 100%;
89
- top: 0;
90
- left: 0;
91
- background-color: ${props => props.theme.palette.primary.main};
92
- transform: scale(0.1);
93
- opacity: 0;
94
- z-index: -1;
95
- transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
96
- }
97
- &:hover::after {
98
- opacity: 1;
99
- transform-origin: center;
100
- transform: scale(1);
101
- }
102
- }
103
-
104
- &:not(.Mui-disabled) {
105
- background-color: transparent !important;
106
- color: ${props => props.theme.palette.primary.main};
107
- }
108
- &:not(.Mui-disabled) {
109
- &:hover {
110
- color: ${props => props.theme.palette.common.white};
111
- }
112
- }
113
- }
114
- .arcblock-blocklet__info {
115
- flex: 1;
116
- overflow: hidden;
117
- .arcblock-blocklet__button {
118
- margin-top: 16px;
119
- display: inline-block;
120
- }
121
- }
122
- .arcblock-blocklet__title {
123
- margin: 0;
124
- font-size: 18px;
125
- font-weight: 600;
126
- overflow: hidden;
127
- text-overflow: ellipsis;
128
- white-space: nowrap;
129
- }
130
- .arcblock-blocklet__describe {
131
- margin: 0 0 2px 0;
132
- color: #999;
133
- font-size: 14px;
134
- overflow: hidden;
135
- text-overflow: ellipsis;
136
- white-space: nowrap;
137
- }
138
-
139
- .arcblock-blocklet__addons {
140
- display: flex;
141
- justify-content: space-between;
142
- color: #999;
143
- font-size: 14px;
144
- position: relative;
145
- }
146
- .arcblock-blocklet__addons--item {
147
- white-space: nowrap;
148
- }
149
- &.arcblock-blocklet--size-md {
150
- &:hover {
151
- position: relative;
152
- }
153
- .arcblock-blocklet__title {
154
- height: 2.3em;
155
- margin-bottom: 3px;
156
- display: -webkit-box;
157
- -webkit-box-orient: vertical;
158
- -webkit-line-clamp: 2;
159
- overflow: hidden;
160
- text-overflow: initial;
161
- white-space: initial;
162
- word-break: break-all;
163
- }
164
- .arcblock-blocklet__describe {
165
- white-space: normal;
166
- height: 2.86em;
167
- }
168
- .arcblock-blocklet__button {
169
- margin-top: 5px;
170
- }
171
- }
172
- &.arcblock-blocklet--size-sm,
173
- &.arcblock-blocklet--size-xs {
174
- .arcblock-blocklet__cover {
175
- width: 40px;
176
- height: 40px;
177
- border-radius: 6px;
178
- }
179
- .arcblock-blocklet__content {
180
- padding: 16px 0;
181
- }
182
- .arcblock-blocklet__addons {
183
- padding: 8px 0;
184
- .arcblock-blocklet__addons--item {
185
- font-size: 12px;
186
- }
187
- }
188
- }
189
- &.arcblock-blocklet--size-xs {
190
- .arcblock-blocklet__addons {
191
- display: none !important;
192
- }
193
- }
194
- `;
195
- function BlockletIcon({
196
- name
197
- }) {
198
- return /*#__PURE__*/_jsx(Icon, {
199
- name: name,
200
- color: "inherit",
201
- size: 15,
202
- style: {
203
- marginRight: 8
204
- }
205
- });
206
- }
207
- BlockletIcon.propTypes = {
208
- name: PropTypes.string.isRequired
209
- };
210
-
211
- /**
212
- * BlockletNFT 组件
213
- * @typedef {{
214
- * title: string;
215
- * description?: string;
216
- * cover?: string;
217
- * did?: string;
218
- * isStickyButton?: boolean;
219
- * buttonText?: string;
220
- * buttonDisabled?: boolean;
221
- * buttonLoading?: boolean;
222
- * button?: JSX.Element;
223
- * addons?: Array<any>;
224
- * size?: 'xs' | 'sm' | 'md' | 'auto';
225
- * onButtonClick?: Function;
226
- * onMainClick?: Function;
227
- * onTagClick?: Function;
228
- * className?: string;
229
- * scaleClickZone?: number;
230
- * } & import('react').ComponentPropsWithoutRef<"div"> } BlockletNFTProps
231
- */
232
-
233
- /**
234
- * BlockletNFT 组件
235
- * @param {BlockletNFTProps} props
236
- * @returns {JSX.Element}
237
- */
238
- export default function BlockletNFT({
239
- title,
240
- did,
241
- description,
242
- cover,
243
- size,
244
- addons,
245
- button,
246
- buttonText,
247
- buttonDisabled,
248
- buttonLoading,
249
- isStickyButton,
250
- onButtonClick,
251
- onMainClick,
252
- onTagClick,
253
- className,
254
- scaleClickZone,
255
- ...rest
256
- }) {
257
- const wrapHandler = (handler, stopFn = () => false) => (e, ...args) => {
258
- if (stopFn()) {
259
- e.preventDefault();
260
- e.stopPropagation();
261
- } else if (handler instanceof Function) {
262
- e.preventDefault();
263
- e.stopPropagation();
264
- handler(...args);
265
- }
266
- };
267
- const _onButtonClick = wrapHandler(onButtonClick, () => {
268
- // stop click while custom button or buttonDisabled or buttondLoading
269
- if (button || buttonDisabled || buttonLoading) {
270
- return true;
271
- }
272
- return false;
273
- });
274
- const _onMainClick = wrapHandler(onMainClick);
275
- const theme = useTheme();
276
- const isDownSm = useMediaQuery(theme.breakpoints.down('md'));
277
- const isDownMd = useMediaQuery(theme.breakpoints.down('lg'));
278
- const isUpLg = useMediaQuery(theme.breakpoints.up('lg'));
279
-
280
- // If size is auto, need calculate actual size according to screen size
281
- // eslint-disable-next-line no-nested-ternary
282
- const actualSize = size === 'auto' ? isDownSm ? 'xs' : isDownMd ? 'sm' : 'md' : size;
283
- // eslint-disable-next-line no-nested-ternary
284
- const didAvatarSize = size === 'auto' ? isUpLg ? 80 : 40 : size === 'md' ? 80 : 40;
285
- const container = useRef(null);
286
- return /*#__PURE__*/_jsxs(Div, {
287
- ...rest,
288
- scaleClickZone: scaleClickZone,
289
- className: `${className} arcblock-blocklet arcblock-blocklet--size-${actualSize}`,
290
- children: [/*#__PURE__*/_jsx("div", {
291
- className: "arcblock-blocklet__content",
292
- children: /*#__PURE__*/_jsx("div", {
293
- className: "arcblock-blocklet__content--main",
294
- onClick: _onMainClick,
295
- ref: container,
296
- children: /*#__PURE__*/_jsxs("div", {
297
- className: "arcblock-blocklet__content--body",
298
- children: [cover ? /*#__PURE__*/_jsx("div", {
299
- className: "arcblock-blocklet__cover",
300
- children: /*#__PURE__*/_jsx(Img, {
301
- src: cover
302
- })
303
- }) : did && /*#__PURE__*/_jsx("div", {
304
- className: "arcblock-blocklet__cover",
305
- children: /*#__PURE__*/_jsx(Avatar, {
306
- did: did,
307
- size: didAvatarSize
308
- })
309
- }), /*#__PURE__*/_jsxs("div", {
310
- className: "arcblock-blocklet__info",
311
- children: [/*#__PURE__*/_jsx(Typography, {
312
- component: "h3",
313
- variant: "h3",
314
- className: "arcblock-blocklet__title",
315
- title: title,
316
- children: title
317
- }), description && /*#__PURE__*/_jsx(Typography, {
318
- component: "div",
319
- variant: "body2",
320
- className: "arcblock-blocklet__describe",
321
- title: description,
322
- children: description
323
- }), ['md', 'sm', 'xs'].includes(actualSize) && /*#__PURE__*/_jsx(Portal, {
324
- container: container.current,
325
- disablePortal: actualSize === 'md',
326
- children: /*#__PURE__*/_jsx("div", {
327
- className: "arcblock-blocklet__button",
328
- onClick: _onButtonClick,
329
- style: {
330
- display: isStickyButton ? 'block' : ''
331
- },
332
- children: button || onButtonClick && /*#__PURE__*/_jsxs(Button, {
333
- className: "arcblock-blocklet__button--hover",
334
- variant: "outlined",
335
- color: "primary",
336
- size: "small",
337
- disabled: buttonDisabled || buttonLoading,
338
- style: actualSize === 'md' ? {
339
- padding: '3px 20px',
340
- fontSize: '14px'
341
- } : {
342
- padding: '3px 15px',
343
- minWidth: '54px',
344
- fontSize: '13px'
345
- },
346
- children: [buttonLoading && /*#__PURE__*/_jsx(CircularProgress, {
347
- size: actualSize === 'md' ? 15 : 13,
348
- style: {
349
- marginRight: 3,
350
- color: 'inherit'
351
- }
352
- }), buttonText]
353
- })
354
- })
355
- })]
356
- })]
357
- })
358
- })
359
- }), /*#__PURE__*/_jsx("div", {
360
- className: "arcblock-blocklet__addons",
361
- children: addons.map((item, index) => /*#__PURE__*/_jsx(Typography, {
362
- component: "span",
363
- variant: "caption",
364
- className: "arcblock-blocklet__addons--item"
365
- // eslint-disable-next-line react/no-array-index-key
366
- ,
367
-
368
- title: item.title,
369
- children: item.empty ? null : /*#__PURE__*/_jsxs(_Fragment, {
370
- children: [/*#__PURE__*/_jsx(BlockletIcon, {
371
- name: item.icon
372
- }), item.pretty ? prettySize(item.value) : item.value]
373
- })
374
- }, index))
375
- })]
376
- });
377
- }
378
- BlockletNFT.propTypes = {
379
- title: PropTypes.string.isRequired,
380
- did: PropTypes.string,
381
- isStickyButton: PropTypes.bool,
382
- description: PropTypes.string,
383
- cover: PropTypes.string,
384
- buttonText: PropTypes.string,
385
- buttonDisabled: PropTypes.bool,
386
- buttonLoading: PropTypes.bool,
387
- button: PropTypes.element,
388
- addons: PropTypes.arrayOf(PropTypes.object),
389
- size: PropTypes.oneOf(['xs', 'sm', 'md', 'auto']),
390
- onButtonClick: PropTypes.func,
391
- onMainClick: PropTypes.func,
392
- onTagClick: PropTypes.func,
393
- className: PropTypes.string,
394
- scaleClickZone: PropTypes.number
395
- };
396
- BlockletNFT.defaultProps = {
397
- description: null,
398
- cover: null,
399
- did: null,
400
- isStickyButton: false,
401
- buttonText: 'Install',
402
- buttonDisabled: false,
403
- buttonLoading: false,
404
- button: null,
405
- size: 'auto',
406
- addons: [],
407
- onButtonClick: null,
408
- onMainClick: null,
409
- onTagClick: null,
410
- className: null,
411
- scaleClickZone: 1.5
412
- };
@@ -1,8 +0,0 @@
1
- // @ts-check
2
-
3
- import Button from '@mui/material/Button';
4
- import wrap from './wrap';
5
-
6
- /** @type {import('./wrap').ButtonComponent} */
7
- const ButtonComponent = wrap(Button);
8
- export default ButtonComponent;
package/es/Button/wrap.js DELETED
@@ -1,140 +0,0 @@
1
- /* eslint-disable prefer-destructuring */
2
- /* eslint-disable func-names */
3
- import { forwardRef } from 'react';
4
- import PropTypes from 'prop-types';
5
- import CircularProgress from '@mui/material/CircularProgress';
6
- import colors from '../Colors';
7
- import { mergeProps } from '../Util';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const extendedColors = {
11
- did: {
12
- contained: {
13
- backgroundColor: colors.did.primary,
14
- color: colors.common.white
15
- },
16
- outlined: {
17
- borderColor: colors.did.primary,
18
- color: colors.did.primary
19
- }
20
- },
21
- reverse: {
22
- contained: {
23
- backgroundColor: 'rgba(255, 255, 255, 0.9)',
24
- color: colors.grey[900]
25
- },
26
- outlined: {
27
- borderColor: colors.grey[900],
28
- color: colors.grey[900]
29
- }
30
- }
31
- };
32
-
33
- /**
34
- * @typedef {{
35
- * rounded?: boolean,
36
- * loading?: boolean,
37
- * forwardedRef?: import('react').ForwardedRef<any>,
38
- * color?: 'default' | 'inherit' | 'primary' | 'secondary' | 'danger' | 'warning' | 'reverse' | 'did'
39
- * } & import('@mui/material').ButtonProps} ButtonProps
40
- */
41
-
42
- /**
43
- * @typedef {React.ForwardRefExoticComponent<React.PropsWithoutRef<ButtonProps> & React.RefAttributes<HTMLButtonElement>>} ButtonComponent
44
- */
45
-
46
- /**
47
- * @description
48
- * @export
49
- * @param {import('@mui/material').ExtendButtonBase<import('@mui/material').ButtonTypeMap<{}, "button">>} BaseComponent
50
- * @return {ButtonComponent}
51
- */
52
- export default function (BaseComponent) {
53
- /**
54
- *
55
- * @param {ButtonProps} props
56
- * @returns
57
- */
58
- function WrappedComponent(props) {
59
- /**
60
- * @type {ButtonProps}
61
- */
62
- const newProps = mergeProps(props, WrappedComponent, ['style']);
63
- const {
64
- children,
65
- rounded,
66
- loading,
67
- disabled,
68
- style,
69
- forwardedRef,
70
- color,
71
- ...rest
72
- } = newProps;
73
- const isDisabled = disabled || loading;
74
- let loadingSize = 16;
75
- switch (rest.size) {
76
- case 'small':
77
- loadingSize = 14;
78
- break;
79
- case 'large':
80
- loadingSize = 18;
81
- break;
82
- default:
83
- }
84
-
85
- // mui v4 只支持 4 种 color 值: default/inherit/primary/secondary (传入这 4 种之外的值会报 warning),
86
- // 这里扩展 danger/warning/reverse/did 四种 color
87
- // !! 已升级到 mui v5, error/warning 等 color 已经默认支持, extendedColors 只扩展了 did/reverse
88
- const matched = extendedColors[color] && extendedColors[color][rest.variant];
89
-
90
- /**
91
- * @type {import('react').CSSProperties}
92
- */
93
- const styles = Object.assign({}, style, {
94
- boxShadow: 'none',
95
- textTransform: 'capitalize',
96
- ...matched
97
- });
98
- let _rest = rest;
99
- if (!matched) {
100
- // mui button 本身支持的 color 交由 mui 处理
101
- _rest = {
102
- ..._rest,
103
- color
104
- };
105
- }
106
- if (rounded) {
107
- // styles.borderRadius = { small: 16, medium: 18, large: 20 }[rest.size];
108
- styles.borderRadius = '100vw';
109
- }
110
- return /*#__PURE__*/_jsxs(BaseComponent, {
111
- style: styles,
112
- ref: forwardedRef,
113
- disabled: isDisabled,
114
- ..._rest,
115
- children: [loading && /*#__PURE__*/_jsx(CircularProgress, {
116
- size: loadingSize,
117
- style: {
118
- marginRight: 5
119
- }
120
- }), children]
121
- });
122
- }
123
- WrappedComponent.propTypes = {
124
- children: PropTypes.any.isRequired,
125
- style: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
126
- size: PropTypes.oneOf(['large', 'medium', 'small']),
127
- forwardedRef: PropTypes.any,
128
- rounded: PropTypes.bool
129
- };
130
- WrappedComponent.defaultProps = {
131
- rounded: false,
132
- size: 'medium',
133
- forwardedRef: null,
134
- style: {}
135
- };
136
- return /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(WrappedComponent, {
137
- ...props,
138
- forwardedRef: ref
139
- }));
140
- }
@@ -1,6 +0,0 @@
1
- import ButtonGroup from '@mui/material/ButtonGroup';
2
- import wrap from '../Button/wrap';
3
-
4
- // deprecated, ux ButtonGroup 组件废弃, 建议直接使用 @mui/material/ButtonGroup
5
- // (该定制组件原本目的是调整 ButtonGroup 的圆角, 但最新设计规范已经不再使用较大的圆角, 改为使用 mui button 默认的圆角)
6
- export default wrap(ButtonGroup);
@@ -1,149 +0,0 @@
1
- import { useState, useEffect, useRef } from 'react';
2
- import styled from '@emotion/styled';
3
- import PropTypes from 'prop-types';
4
- import noop from 'lodash/noop';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- export default function CardSelector({
7
- list,
8
- width,
9
- height,
10
- cardSpace,
11
- onSelect,
12
- defaultIndex
13
- }) {
14
- const [selectedId, setSelectedId] = useState(0);
15
- const [translateX, setTranslateX] = useState(0);
16
- const outterCon = useRef(null);
17
-
18
- // 选择卡片
19
- const selectedItem = i => {
20
- if (i < 0 || i > list.length - 1) {
21
- return;
22
- }
23
- setSelectedId(i);
24
-
25
- // 外部容器大小
26
- const outerWidth = outterCon.current.clientWidth;
27
- setTranslateX(i * (width + cardSpace) - (outerWidth - width) / 2 + cardSpace * 0.5);
28
- onSelect(i);
29
- };
30
- useEffect(() => {
31
- selectedItem(defaultIndex);
32
- const func = e => e.preventDefault();
33
- outterCon.current.addEventListener('touchmove', func, {
34
- passive: false
35
- });
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
37
- }, []);
38
- let startX;
39
- const touchstart = e => {
40
- const point = e.touches[0];
41
- startX = point.clientX;
42
- };
43
- const touchend = e => {
44
- const point = e.changedTouches[0];
45
- const diffX = startX - point.clientX;
46
- if (Math.abs(diffX) > 60) {
47
- if (diffX > 0) {
48
- selectedItem(selectedId + 1);
49
- } else {
50
- selectedItem(selectedId - 1);
51
- }
52
- }
53
- };
54
- return /*#__PURE__*/_jsx(Contianer, {
55
- ref: outterCon,
56
- onTouchStart: touchstart,
57
- onTouchEnd: touchend,
58
- children: /*#__PURE__*/_jsx("div", {
59
- className: "card-container",
60
- style: {
61
- transform: `translate(${-translateX}px, 0)`
62
- },
63
- children: list.map((e, i) => {
64
- if (e instanceof Function) {
65
- return /*#__PURE__*/_jsx("div", {
66
- className: `card-item ${i === selectedId ? 'selected' : ''}`,
67
- style: {
68
- width,
69
- height,
70
- margin: cardSpace / 2
71
- }
72
- // eslint-disable-next-line react/no-array-index-key
73
- ,
74
-
75
- onClick: () => selectedItem(i),
76
- children: e(i)
77
- }, i);
78
- }
79
- return /*#__PURE__*/_jsx("div", {
80
- className: `card-item ${i === selectedId ? 'selected' : ''}`,
81
- style: {
82
- width,
83
- height,
84
- margin: cardSpace / 2
85
- }
86
- // eslint-disable-next-line react/no-array-index-key
87
- ,
88
-
89
- onClick: () => selectedItem(i),
90
- children: /*#__PURE__*/_jsx("img", {
91
- src: e.src,
92
- alt: e.name
93
- })
94
- }, i);
95
- })
96
- })
97
- });
98
- }
99
- const Contianer = styled.div`
100
- overflow: hidden;
101
- mask-image: linear-gradient(to left, transparent, black 3%, black 97%, transparent);
102
- overflow: hidden;
103
- .card-container {
104
- display: flex;
105
- white-space: nowrap;
106
- width: max-content;
107
- transition: all ease 0.3s;
108
- }
109
- .card-item {
110
- display: inline-flex;
111
- justify-content: center;
112
- align-items: center;
113
- flex-shrink: 0;
114
- cursor: pointer;
115
- img,
116
- svg {
117
- max-width: 100%;
118
- max-height: 100%;
119
- width: auto;
120
- height: auto;
121
- outline: #526ded solid 0;
122
- transition: all ease 0.2s;
123
- box-shadow: rgba(0, 0, 0, 0.2) 0 0 10px;
124
- }
125
- &.selected {
126
- cursor: default;
127
- img,
128
- svg {
129
- outline: #526ded solid 5px;
130
- }
131
- }
132
- }
133
- `;
134
- CardSelector.propTypes = {
135
- list: PropTypes.array,
136
- width: PropTypes.number,
137
- height: PropTypes.number,
138
- cardSpace: PropTypes.number,
139
- onSelect: PropTypes.func,
140
- defaultIndex: PropTypes.number
141
- };
142
- CardSelector.defaultProps = {
143
- list: '',
144
- width: 300,
145
- height: 400,
146
- cardSpace: 40,
147
- onSelect: noop,
148
- defaultIndex: 0
149
- };