@arcblock/ux 2.9.91 → 2.10.0

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,299 +0,0 @@
1
- import { createElement, Children, cloneElement, useEffect, useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { mergeProps } from '../Util';
4
- import { styled } from '../Theme';
5
- import BaseScreenshot from './BaseScreenshot';
6
- import './devices.css';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
9
- const types = {
10
- 'iphone-x': {
11
- borderRadius: 32,
12
- width: 342,
13
- scale: 0.78
14
- },
15
- 'iphone-8': {
16
- borderRadius: 0,
17
- width: 336,
18
- scale: 0.78
19
- },
20
- 'ipad-pro': {
21
- borderRadius: 0,
22
- width: 560,
23
- scale: 0.62
24
- },
25
- 'imac-pro': {
26
- borderRadius: 0,
27
- width: 624,
28
- scale: 0.56
29
- },
30
- macbook: {
31
- borderRadius: 0,
32
- width: 740,
33
- scale: 0.47
34
- },
35
- 'macbook-pro': {
36
- borderRadius: 0,
37
- width: 740,
38
- scale: 0.47
39
- },
40
- 'surface-pro': {
41
- borderRadius: 0,
42
- width: 561,
43
- scale: 0.62
44
- },
45
- 'surface-book': {
46
- borderRadius: 0,
47
- width: 728,
48
- scale: 0.47
49
- },
50
- 'surface-studio': {
51
- borderRadius: 0,
52
- width: 640,
53
- scale: 0.55
54
- },
55
- 'galaxy-s8': {
56
- borderRadius: 0,
57
- width: 321,
58
- scale: 0.8
59
- },
60
- 'google-pixel': {
61
- borderRadius: 0,
62
- width: 360,
63
- scale: 0.72
64
- },
65
- 'google-pixel-2-xl': {
66
- borderRadius: 0,
67
- width: 360,
68
- scale: 0.72
69
- },
70
- 'apple-watch': {
71
- borderRadius: 0,
72
- width: 200,
73
- scale: 1
74
- }
75
- };
76
- const childProps = {
77
- img: ['alt', 'title', 'src', 'srcSet', 'sizes', 'loading', 'key', 'children'],
78
- video: ['alt', 'title', 'muted', 'autoplay', 'loop', 'key', 'children']
79
- };
80
- const createChild = child => [/*#__PURE__*/createElement(child.type, childProps[child.type].reduce((acc, x) => {
81
- acc[x] = child.props[x];
82
- return acc;
83
- }, {}))];
84
- const findChildren = (children, returnArgWhenNotFound = true) => {
85
- for (let i = 0; i < children.length; i++) {
86
- const child = children[i];
87
- if (['img', 'video'].includes(child.type)) {
88
- return createChild(child);
89
- }
90
- if (child.props && child.props.children) {
91
- const subChildren = Children.toArray(child.props.children);
92
- const result = findChildren(subChildren, false);
93
- if (result) {
94
- return result;
95
- }
96
- }
97
- }
98
- if (returnArgWhenNotFound) {
99
- return children;
100
- }
101
- return null;
102
- };
103
-
104
- // This component is built upon the awesome device.css lib
105
- // By default it will find and only render img/video tags in the children
106
- // If neither of them are found, the whole child tree is rendered
107
- function OldScreenshot(props) {
108
- const newProps = mergeProps(props, OldScreenshot, ['style', 'width', 'height']);
109
- const {
110
- type,
111
- children,
112
- style,
113
- className,
114
- width,
115
- height,
116
- ...rest
117
- } = newProps;
118
- const {
119
- zIndex = 0,
120
- borderRadius = 0
121
- } = types[type] || {};
122
- return /*#__PURE__*/_jsxs(Div, {
123
- ...rest,
124
- type: type,
125
- className: `device device-${type} ${className}`.trim(),
126
- style: style,
127
- contentRadius: borderRadius,
128
- contentZIndex: zIndex,
129
- children: [/*#__PURE__*/_jsx("div", {
130
- className: "device-frame",
131
- children: /*#__PURE__*/_jsx("div", {
132
- className: "device-content",
133
- children: findChildren(Children.toArray(children)).map((item, index) => /*#__PURE__*/cloneElement(item, {
134
- key: index
135
- }))
136
- })
137
- }), /*#__PURE__*/_jsx("div", {
138
- className: "device-stripe"
139
- }), /*#__PURE__*/_jsx("div", {
140
- className: "device-header"
141
- }), /*#__PURE__*/_jsx("div", {
142
- className: "device-sensors"
143
- }), /*#__PURE__*/_jsx("div", {
144
- className: "device-btns"
145
- }), /*#__PURE__*/_jsx("div", {
146
- className: "device-power"
147
- })]
148
- });
149
- }
150
- const Div = styled('div')`
151
- @media (max-width: ${props => types[props.type].width}px) {
152
- transform-origin: 0 0;
153
- transform: scale(${props => types[props.type].scale});
154
- }
155
- .device-content {
156
- overflow: hidden;
157
- }
158
- .device-content video,
159
- .device-content img {
160
- border-radius: ${props => props.contentRadius}px;
161
- background-color: #fff;
162
- background-position: center center;
163
- background-size: cover;
164
- object-fit: cover;
165
- width: 100.1%;
166
- height: 100.1%;
167
- }
168
- `;
169
- OldScreenshot.propTypes = {
170
- type: PropTypes.oneOf(Object.keys(types)),
171
- children: PropTypes.any.isRequired,
172
- className: PropTypes.string,
173
- width: PropTypes.number,
174
- height: PropTypes.number,
175
- style: PropTypes.oneOfType([PropTypes.object, PropTypes.string])
176
- };
177
- OldScreenshot.defaultProps = {
178
- type: 'iphone-x',
179
- className: '',
180
- style: '{}',
181
- width: 0,
182
- height: 0
183
- };
184
-
185
- /**
186
- * 用于修正旧版 Screenshot 无法匹配尺寸的问题
187
- * @param {*} props params to OldScreenshot
188
- * @returns <OldScreenshot />
189
- */
190
- function ScreenFixer(props) {
191
- const screenEl = useRef(null);
192
- const [height, setHeight] = useState(undefined);
193
- const [scale, setScale] = useState(null);
194
- useEffect(() => {
195
- let resizeObs;
196
- const fixSize = () => {
197
- const {
198
- clientWidth
199
- } = screenEl.current;
200
-
201
- // 获取内部元素的宽高
202
- const {
203
- clientWidth: targetWidth,
204
- clientHeight: targetHeight
205
- } = screenEl.current.children[0];
206
- const realScale = clientWidth / targetWidth;
207
- if (realScale < 1) {
208
- setScale(realScale);
209
- setHeight(realScale * targetHeight);
210
- } else {
211
- setScale(null);
212
- setHeight(undefined);
213
- }
214
- };
215
- if (screenEl.current) {
216
- resizeObs = new ResizeObserver(fixSize);
217
- resizeObs.observe(screenEl.current);
218
- }
219
- return () => {
220
- if (resizeObs) {
221
- resizeObs.disconnect();
222
- }
223
- };
224
- // eslint-disable-next-line react-hooks/exhaustive-deps
225
- }, [screenEl.current]);
226
- return /*#__PURE__*/_jsx(ReScreen, {
227
- ref: screenEl,
228
- style: {
229
- height
230
- },
231
- children: /*#__PURE__*/_jsx(OldScreenshot, {
232
- ...props,
233
- style: {
234
- transform: scale ? `scale(${scale})` : undefined
235
- }
236
- })
237
- });
238
- }
239
- const ReScreen = styled('div')`
240
- div[type] {
241
- transform: scale(1);
242
- transform-origin: 0 0;
243
- }
244
- `;
245
- function Screenshot({
246
- type,
247
- src,
248
- children,
249
- style,
250
- sx,
251
- ...rest
252
- }) {
253
- const _type = type.toLowerCase();
254
-
255
- // 新版采用容器采用BaseScreenshot,svg集成,更容易拓展,响应式更好
256
- if (['phone', 'macbook'].includes(_type)) {
257
- return /*#__PURE__*/_jsx(BaseScreenshot, {
258
- type: _type,
259
- sx: {
260
- ...sx,
261
- ...style
262
- },
263
- ...rest,
264
- children: children || (src ? /*#__PURE__*/_jsx("img", {
265
- src: src,
266
- alt: "screenshot"
267
- }) : null)
268
- });
269
- }
270
-
271
- // 旧版采用纯css制作,定制性欠缺,暂时保留使用
272
- return /*#__PURE__*/_jsx(ScreenFixer, {
273
- type: type,
274
- ...rest,
275
- sx: {
276
- ...sx,
277
- ...style,
278
- margin: 'auto'
279
- },
280
- children: children || (src ? /*#__PURE__*/_jsx("img", {
281
- src: src,
282
- alt: "screenshot"
283
- }) : null)
284
- });
285
- }
286
- Screenshot.propTypes = {
287
- type: PropTypes.string.isRequired,
288
- src: PropTypes.string,
289
- style: PropTypes.object,
290
- sx: PropTypes.object,
291
- children: PropTypes.any
292
- };
293
- Screenshot.defaultProps = {
294
- src: '',
295
- children: null,
296
- style: {},
297
- sx: {}
298
- };
299
- export default Screenshot;
@@ -1,173 +0,0 @@
1
- import { useRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Box, ClickAwayListener, Fade, IconButton, List, ListItem, ListItemButton, Paper, Popper, Typography } from '@mui/material';
4
- import { Icon } from '@iconify/react';
5
- import DashboardOutlineRoundedIcon from 'iconify-icons-material-symbols-400/dashboard-outline-rounded';
6
- import WidgetsOutlineRoundedIcon from '@iconify-icons/material-symbols/widgets-outline-rounded';
7
- import { useMemoizedFn, useReactive } from 'ahooks';
8
- import Button from '../Button';
9
- import { temp as colors } from '../Colors';
10
- import { AUTH_SERVICE_PREFIX, NAVIGATION_URL } from '../Util/constant';
11
- import SessionPermission from '../SessionPermission';
12
- import { getTranslation } from '../Util';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
- import { Fragment as _Fragment } from "react/jsx-runtime";
16
- export default function SessionBlocklet({
17
- session,
18
- locale,
19
- size
20
- }) {
21
- const blocklet = window?.blocklet || {};
22
- const sessionMenuList = (blocklet.navigation || []
23
- // HACK 过滤掉默认插入的 /sessionManager 菜单
24
- ).filter(item => item.section === 'sessionManager' && !['/sessionManager'].includes(item.id)).filter(item => {
25
- if ((item?.role || []).includes(session?.user?.role || 'guest')) {
26
- return true;
27
- }
28
- return false;
29
- }).map(item => {
30
- const component = (blocklet?.componentMountPoints || []).find(x => item.component === x.name);
31
- return {
32
- ...item,
33
- component
34
- };
35
- });
36
- const popperAnchorRef = useRef(null);
37
- const currentState = useReactive({
38
- open: false
39
- });
40
- const onTogglePopper = useMemoizedFn((value = !currentState.open) => {
41
- currentState.open = value;
42
- });
43
- if (sessionMenuList.length === 0 || !session?.user) {
44
- return null;
45
- }
46
- return /*#__PURE__*/_jsxs(_Fragment, {
47
- children: [/*#__PURE__*/_jsx(IconButton, {
48
- size: "medium",
49
- ref: popperAnchorRef,
50
- onClick: () => onTogglePopper(),
51
- children: /*#__PURE__*/_jsx(Icon, {
52
- icon: DashboardOutlineRoundedIcon,
53
- fontSize: size,
54
- style: {
55
- transform: 'scale(1.08)'
56
- }
57
- })
58
- }), /*#__PURE__*/_jsx(Popper, {
59
- open: currentState.open,
60
- onClose: () => onTogglePopper(false),
61
- anchorEl: popperAnchorRef.current,
62
- transition: true,
63
- placement: "bottom-end",
64
- sx: {
65
- zIndex: 1600
66
- },
67
- children: ({
68
- TransitionProps
69
- }) => /*#__PURE__*/_jsx(ClickAwayListener, {
70
- onClickAway: e => {
71
- e.preventDefault();
72
- e.stopPropagation();
73
- onTogglePopper(false);
74
- },
75
- children: /*#__PURE__*/_jsx(Fade, {
76
- ...TransitionProps,
77
- timeout: 350,
78
- children: /*#__PURE__*/_jsxs(Paper, {
79
- variant: "outlined",
80
- sx: {
81
- borderRadius: 3,
82
- width: 350,
83
- maxWidth: '90vw',
84
- borderColor: colors.lineStep,
85
- p: 2,
86
- border: '0 !important',
87
- boxShadow: `0px 8px 16px 0px ${colors.gray6}, 0px 0px 0px 1px ${colors.gray6}`
88
- },
89
- children: [/*#__PURE__*/_jsx(List, {
90
- sx: {
91
- display: 'grid',
92
- gridTemplateColumns: 'repeat(auto-fill, 100px)',
93
- gridAutoRows: 'minmax(100px, max-content)',
94
- justifyContent: 'space-between',
95
- maxHeight: 350,
96
- overflowY: 'auto',
97
- p: 0
98
- },
99
- children: sessionMenuList.map(item => /*#__PURE__*/_jsx(ListItem, {
100
- disablePadding: true,
101
- children: /*#__PURE__*/_jsxs(ListItemButton, {
102
- href: item.link,
103
- sx: {
104
- p: 1,
105
- display: 'flex',
106
- flexDirection: 'column',
107
- alignItems: 'center',
108
- gap: 1,
109
- width: '100%',
110
- height: '100%',
111
- borderRadius: 2,
112
- '&:hover': {
113
- backgroundColor: colors.surfacePrimarySubtitle
114
- }
115
- },
116
- children: [item?.component?.did ? /*#__PURE__*/_jsx(Box, {
117
- component: "img",
118
- src: `${AUTH_SERVICE_PREFIX}/blocklet/logo-bundle/${item.component.did}`,
119
- sx: {
120
- borderRadius: 2,
121
- width: 50,
122
- height: 50,
123
- objectFit: 'contain'
124
- }
125
- }) : /*#__PURE__*/_jsx(Icon, {
126
- fontSize: 50,
127
- icon: item.icon || WidgetsOutlineRoundedIcon,
128
- color: colors.textSubtitle
129
- }), /*#__PURE__*/_jsx(Typography, {
130
- sx: {
131
- fontSize: '12px',
132
- color: colors.textBase,
133
- textAlign: 'center',
134
- lineHeight: 'normal'
135
- },
136
- children: getTranslation(item.title, locale)
137
- })]
138
- })
139
- }, item.id))
140
- }), /*#__PURE__*/_jsx(SessionPermission, {
141
- session: session,
142
- children: /*#__PURE__*/_jsx(Button, {
143
- variant: "outlined",
144
- fullWidth: true,
145
- href: NAVIGATION_URL,
146
- sx: {
147
- mt: 1,
148
- borderRadius: 2,
149
- color: colors.textBase,
150
- borderColor: colors.lineBorderStrong,
151
- '&:hover': {
152
- color: colors.primaryBase,
153
- borderColor: colors.primaryBase
154
- }
155
- },
156
- children: locale === 'zh' ? '管理' : 'Manage'
157
- })
158
- })]
159
- })
160
- })
161
- })
162
- })]
163
- });
164
- }
165
- SessionBlocklet.propTypes = {
166
- session: PropTypes.object.isRequired,
167
- locale: PropTypes.string,
168
- size: PropTypes.number
169
- };
170
- SessionBlocklet.defaultProps = {
171
- locale: 'en',
172
- size: 24
173
- };
@@ -1,2 +0,0 @@
1
- import SessionUser from '../SessionUser';
2
- export default SessionUser;
@@ -1,28 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { useCreation } from 'ahooks';
3
- const roleList = ['owner', 'admin', 'member', 'guest'];
4
- export default function SessionPermission({
5
- session,
6
- roles,
7
- children
8
- }) {
9
- const hasPermission = useCreation(() => {
10
- return roles.includes(session?.user?.role || 'guest');
11
- }, [session?.user?.role, roles]);
12
- if (typeof children === 'function') {
13
- return children({
14
- hasPermission
15
- });
16
- }
17
- if (hasPermission) {
18
- return children;
19
- }
20
- }
21
- SessionPermission.propTypes = {
22
- children: PropTypes.any.isRequired,
23
- session: PropTypes.object.isRequired,
24
- roles: PropTypes.arrayOf(PropTypes.oneOf(roleList))
25
- };
26
- SessionPermission.defaultProps = {
27
- roles: ['owner', 'admin']
28
- };