@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,298 +0,0 @@
1
- /* eslint-disable react/no-danger */
2
- import { isValidElement } from 'react';
3
- import PropTypes from 'prop-types';
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 Button from '../Button';
9
- import Img from '../Img';
10
- import { useTheme, styled } from '../Theme';
11
- import { strippedString } from './utils';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- const Div = styled('div')`
15
- &.arcblock-blocklet {
16
- padding: ${props => props.theme.spacing(2)} ${props => props.theme.spacing(2)} 0
17
- ${props => props.theme.spacing(2)};
18
- }
19
- .arcblock-blocklet__content {
20
- cursor: pointer;
21
- display: flex;
22
- ${props => props.theme.breakpoints.up('sm')} {
23
- align-items: center;
24
- }
25
- }
26
- .arcblock-blocklet__cover {
27
- width: 64px;
28
- height: 64px;
29
- margin-right: ${props => props.theme.spacing(2)};
30
- overflow: hidden;
31
- border-radius: 12px;
32
- /* see: https://stackoverflow.com/questions/49066011/overflow-hidden-with-border-radius-not-working-on-safari */
33
- transform: translateZ(0);
34
- ${props => props.theme.breakpoints.up('sm')} {
35
- width: 80px;
36
- height: 80px;
37
- margin-bottom: 12px;
38
- }
39
- }
40
- .arcblock-blocklet__button--hover {
41
- &:not(.Mui-disabled) {
42
- position: relative;
43
- z-index: 1;
44
- &::before {
45
- content: '';
46
- position: absolute;
47
- height: 100%;
48
- width: 100%;
49
- left: 0;
50
- top: 0;
51
- transition: opacity 0.3s;
52
- }
53
- &:hover::before {
54
- opacity: 0;
55
- }
56
- &::after {
57
- content: '';
58
- position: absolute;
59
- height: 100%;
60
- width: 100%;
61
- background-color: ${props => props.theme.palette.primary.main};
62
- transform: scale(0.1);
63
- opacity: 0;
64
- z-index: -1;
65
- transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
66
- }
67
- &:hover::after {
68
- opacity: 1;
69
- transform-origin: center;
70
- transform: scale(1);
71
- }
72
- }
73
-
74
- &:not(.Mui-disabled) {
75
- background-color: transparent !important;
76
- color: ${props => props.theme.palette.primary.main};
77
- }
78
- &:not(.Mui-disabled) {
79
- &:hover {
80
- color: ${props => props.theme.palette.common.white};
81
- }
82
- }
83
- }
84
- .arcblock-blocklet__info {
85
- flex: 1;
86
- overflow: hidden;
87
- border-bottom: 1px solid ${props => props.theme.palette.divider};
88
- padding-bottom: ${props => props.theme.spacing(2)};
89
- }
90
- .arcblock-blocklet__text {
91
- height: 57px;
92
- overflow: hidden;
93
- }
94
- /* 设置多行文本溢出显示省略号 兼容fireFox、safari */
95
- .arcblock-blocklet__title {
96
- margin: 0;
97
- font-size: 16px;
98
- font-weight: 500;
99
- overflow: hidden;
100
- text-overflow: ellipsis;
101
- white-space: nowrap;
102
- }
103
- .arcblock-blocklet__describe {
104
- margin-top: ${props => props.theme.spacing(0.5)};
105
- color: ${props => props.theme.palette.grey[600]};
106
- font-size: 14px;
107
- font-weight: 500;
108
- line-height: 17px;
109
- max-height: 34px;
110
- overflow: hidden;
111
- text-overflow: ellipsis;
112
- display: -webkit-box;
113
- -webkit-line-clamp: 2;
114
- -webkit-box-orient: vertical;
115
- word-break: break-word;
116
- }
117
- .arcblock-blocklet__version {
118
- color: ${props => props.theme.palette.grey[600]};
119
- font-size: 12px;
120
- }
121
- `;
122
-
123
- /**
124
- * BlockletStore component
125
- * @typedef {{
126
- * title?: string | JSX.Element;
127
- * did?: string;
128
- * description?: string | JSX.Element;
129
- * cover?: string;
130
- * version?: string;
131
- * buttonText?: string;
132
- * buttonDisabled?: boolean;
133
- * buttonLoading?: boolean;
134
- * button?: JSX.Element;
135
- * onButtonClick?: Function;
136
- * onMainClick?: Function;
137
- * className?: string;
138
- * } & import('react').ComponentPropsWithoutRef<"div"> } BlockletStoreProps
139
- */
140
-
141
- /**
142
- * BlockletStore component
143
- * @param {BlockletStoreProps} props
144
- * @returns {JSX.Element}
145
- */
146
- export default function BlockletStore({
147
- title,
148
- did,
149
- description,
150
- cover,
151
- version,
152
- button,
153
- buttonText,
154
- buttonDisabled,
155
- buttonLoading,
156
- onButtonClick,
157
- onMainClick,
158
- className,
159
- ...rest
160
- }) {
161
- const wrapHandler = (handler, stopFn = () => false) => (e, ...args) => {
162
- if (stopFn()) {
163
- e.preventDefault();
164
- e.stopPropagation();
165
- } else if (handler instanceof Function) {
166
- e.preventDefault();
167
- e.stopPropagation();
168
- handler(...args);
169
- }
170
- };
171
- const _onButtonClick = wrapHandler(onButtonClick, () => {
172
- // stop click while custom button or buttonDisabled or buttondLoading
173
- if (button || buttonDisabled || buttonLoading) {
174
- return true;
175
- }
176
- return false;
177
- });
178
- const theme = useTheme();
179
- const isUpSm = useMediaQuery(theme.breakpoints.up('sm'));
180
- const _onMainClick = wrapHandler(onMainClick);
181
- const didAvatarSize = isUpSm ? 80 : 64;
182
- return /*#__PURE__*/_jsx(Div, {
183
- className: `${className} arcblock-blocklet`,
184
- ...rest,
185
- children: /*#__PURE__*/_jsxs("div", {
186
- className: "arcblock-blocklet__content",
187
- onClick: _onMainClick,
188
- children: [cover ? /*#__PURE__*/_jsx("div", {
189
- className: "arcblock-blocklet__cover",
190
- children: /*#__PURE__*/_jsx(Img, {
191
- src: cover
192
- })
193
- }) : did && /*#__PURE__*/_jsx("div", {
194
- className: "arcblock-blocklet__cover",
195
- children: /*#__PURE__*/_jsx(Avatar, {
196
- did: did,
197
- size: didAvatarSize
198
- })
199
- }), /*#__PURE__*/_jsxs("div", {
200
- className: "arcblock-blocklet__info",
201
- children: [/*#__PURE__*/_jsxs("div", {
202
- className: "arcblock-blocklet__text",
203
- children: [/*#__PURE__*/isValidElement(title) ? /*#__PURE__*/_jsx(Typography, {
204
- component: "h3",
205
- variant: "h3",
206
- className: "arcblock-blocklet__title",
207
- children: title
208
- }) : /*#__PURE__*/_jsx(Typography, {
209
- component: "h3",
210
- variant: "h3",
211
- className: "arcblock-blocklet__title",
212
- title: strippedString(title),
213
- dangerouslySetInnerHTML: {
214
- __html: title
215
- }
216
- }), /*#__PURE__*/isValidElement(description) ? /*#__PURE__*/_jsx(Typography, {
217
- component: "div",
218
- variant: "body2",
219
- className: "arcblock-blocklet__describe",
220
- children: description
221
- }) : /*#__PURE__*/_jsx(Typography, {
222
- component: "div",
223
- variant: "body2",
224
- className: "arcblock-blocklet__describe",
225
- title: strippedString(description),
226
- dangerouslySetInnerHTML: {
227
- __html: description
228
- }
229
- })]
230
- }), /*#__PURE__*/_jsxs("div", {
231
- style: {
232
- display: 'flex',
233
- alignItems: 'center',
234
- marginTop: '10px',
235
- flexFlow: 'wrap'
236
- },
237
- children: [/*#__PURE__*/_jsx("div", {
238
- onClick: _onButtonClick,
239
- style: {
240
- marginRight: '12px'
241
- },
242
- children: button || onButtonClick && /*#__PURE__*/_jsxs(Button, {
243
- className: "arcblock-blocklet__button--hover",
244
- variant: "outlined",
245
- color: "primary",
246
- size: "small",
247
- disabled: buttonDisabled || buttonLoading,
248
- style: {
249
- padding: '3px 6px',
250
- fontSize: '14px',
251
- minWidth: '92px',
252
- textAlign: 'center'
253
- },
254
- children: [buttonLoading && /*#__PURE__*/_jsx(CircularProgress, {
255
- size: 15,
256
- style: {
257
- marginRight: 3,
258
- color: 'inherit'
259
- }
260
- }), buttonText]
261
- })
262
- }), /*#__PURE__*/_jsx("div", {
263
- className: "arcblock-blocklet__version",
264
- children: version && `v${version}`
265
- })]
266
- })]
267
- })]
268
- })
269
- });
270
- }
271
- BlockletStore.propTypes = {
272
- title: PropTypes.string || PropTypes.node,
273
- did: PropTypes.string,
274
- description: PropTypes.string || PropTypes.node,
275
- cover: PropTypes.string,
276
- buttonText: PropTypes.string,
277
- buttonDisabled: PropTypes.bool,
278
- buttonLoading: PropTypes.bool,
279
- button: PropTypes.element,
280
- version: PropTypes.string,
281
- onButtonClick: PropTypes.func,
282
- onMainClick: PropTypes.func,
283
- className: PropTypes.string
284
- };
285
- BlockletStore.defaultProps = {
286
- title: '',
287
- description: '',
288
- cover: null,
289
- did: null,
290
- buttonText: 'Install',
291
- buttonDisabled: false,
292
- buttonLoading: false,
293
- button: null,
294
- version: null,
295
- onButtonClick: null,
296
- onMainClick: null,
297
- className: null
298
- };
@@ -1,4 +0,0 @@
1
- import ActionButton, { strippedString } from './utils';
2
- import Blocklet from './blocklet';
3
- export { ActionButton, strippedString };
4
- export default Blocklet;
@@ -1,52 +0,0 @@
1
- import { styled } from '../Theme';
2
- const ActionButton = styled('div')`
3
- background-color: transparent !important;
4
- & > :not(.Mui-disabled) {
5
- position: relative;
6
- z-index: 1;
7
- &::before {
8
- content: '';
9
- position: absolute;
10
- height: 100%;
11
- width: 100%;
12
- left: 0;
13
- top: 0;
14
- transition: opacity 0.3s;
15
- }
16
- &:hover::before {
17
- opacity: 0;
18
- }
19
- &::after {
20
- content: '';
21
- position: absolute;
22
- height: 100%;
23
- width: 100%;
24
- top: 0;
25
- left: 0;
26
- border-radius: 2px;
27
- background-color: ${props => props.theme.palette.primary.main};
28
- transform: scale(0.1);
29
- opacity: 0;
30
- z-index: -1;
31
- transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
32
- }
33
- &:hover::after {
34
- opacity: 1;
35
- transform-origin: center;
36
- transform: scale(1);
37
- }
38
- }
39
- & > :not(.Mui-disabled) {
40
- background-color: transparent !important;
41
- color: ${props => props.theme.palette.primary.main}!important;
42
- }
43
- & > :not(.Mui-disabled) {
44
- &:hover {
45
- color: ${props => props.theme.palette.common.white}!important;
46
- }
47
- }
48
- `;
49
- export default ActionButton;
50
- export const strippedString = (originalString = '') => {
51
- return originalString.replace(/(<([^>]+)>)/gi, '').trim();
52
- };
@@ -1,65 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { useMemoizedFn, useAsyncEffect } from 'ahooks';
3
- import { createContext, useContext, useState } from 'react';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const BlockletContext = /*#__PURE__*/createContext();
6
- const {
7
- Provider,
8
- Consumer
9
- } = BlockletContext;
10
-
11
- /**
12
- *
13
- * @param {object} props
14
- * @param {string} props.baseUrl baseUrl 为 blocklet origin + blocklet prefix
15
- * @param {any} props.children
16
- * @returns
17
- */
18
- function BlockletProvider({
19
- children,
20
- baseUrl,
21
- loading
22
- }) {
23
- const [blockletData, setBlockletData] = useState(null);
24
- const getBlockleData = useMemoizedFn(async () => {
25
- if (!baseUrl || window.location.href.startsWith(baseUrl)) {
26
- throw new Error('no blocklet data');
27
- }
28
- const url = new URL('__blocklet__.js', baseUrl);
29
- url.searchParams.set('type', 'json');
30
- const res = await fetch(url.href);
31
- const jsonData = await res.json();
32
- return jsonData;
33
- });
34
- useAsyncEffect(async () => {
35
- try {
36
- const data = await getBlockleData();
37
- setBlockletData(data);
38
- } catch {
39
- // NOTICE: 如果获取指定 blockletData 失败,则使用 window.blocklet
40
- const data = globalThis.blocklet || globalThis.env;
41
- setBlockletData(data);
42
- }
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- }, [baseUrl]);
45
- return /*#__PURE__*/_jsx(Provider, {
46
- value: blockletData,
47
- children: blockletData ? children : loading || null
48
- });
49
- }
50
- function useBlockletContext() {
51
- const blocklet = useContext(BlockletContext);
52
- return {
53
- blocklet
54
- };
55
- }
56
- BlockletProvider.propTypes = {
57
- baseUrl: PropTypes.string,
58
- children: PropTypes.any.isRequired,
59
- loading: PropTypes.any
60
- };
61
- BlockletProvider.defaultProps = {
62
- baseUrl: '',
63
- loading: null
64
- };
65
- export { BlockletContext, BlockletProvider, Consumer as BlockletConsumer, useBlockletContext };