@arcblock/ux 2.13.70 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/lib/ActionButton/ActionButton.stories.d.ts +18 -0
  2. package/lib/ActionButton/index.d.ts +2 -2
  3. package/lib/ActionButton/index.js +43 -94
  4. package/lib/ActivityIndicator/ActivityIndicator.stories.d.ts +8 -0
  5. package/lib/ActivityIndicator/index.d.ts +2 -8
  6. package/lib/ActivityIndicator/index.js +41 -114
  7. package/lib/Address/Address.stories.d.ts +16 -0
  8. package/lib/Address/compact-text.d.ts +4 -14
  9. package/lib/Address/compact-text.js +40 -98
  10. package/lib/Address/did-address.d.ts +5 -4
  11. package/lib/Address/did-address.js +94 -151
  12. package/lib/Address/index.d.ts +4 -2
  13. package/lib/Address/index.js +13 -20
  14. package/lib/Address/responsive-did-address.d.ts +5 -4
  15. package/lib/Address/responsive-did-address.js +80 -114
  16. package/lib/Alert/Alert.stories.d.ts +28 -0
  17. package/lib/Alert/index.d.ts +2 -2
  18. package/lib/Alert/index.js +56 -102
  19. package/lib/AnimationWaiter/AnimationWaiter.stories.d.ts +21 -0
  20. package/lib/AnimationWaiter/{dark-animation.json → dark-animation.json.js} +27 -1
  21. package/lib/AnimationWaiter/{default-animation.json → default-animation.json.js} +29 -1
  22. package/lib/AnimationWaiter/index.d.ts +3 -25
  23. package/lib/AnimationWaiter/index.js +107 -198
  24. package/lib/Async/index.d.ts +2 -4
  25. package/lib/Async/index.js +15 -29
  26. package/lib/Avatar/Avatar.stories.d.ts +11 -0
  27. package/lib/Avatar/did-motif.d.ts +5 -15
  28. package/lib/Avatar/did-motif.js +30 -65
  29. package/lib/Avatar/etherscan-blockies.js +42 -75
  30. package/lib/Avatar/index.d.ts +3 -19
  31. package/lib/Avatar/index.js +114 -180
  32. package/lib/Badge/Badge.stories.d.ts +13 -0
  33. package/lib/Badge/index.d.ts +3 -3
  34. package/lib/Badge/index.js +43 -83
  35. package/lib/Blocklet/Blocklet.stories.d.ts +17 -0
  36. package/lib/Blocklet/blocklet.d.ts +2 -28
  37. package/lib/Blocklet/blocklet.js +108 -191
  38. package/lib/Blocklet/index.d.ts +2 -3
  39. package/lib/Blocklet/index.js +7 -4
  40. package/lib/Blocklet/utils.d.ts +1 -1
  41. package/lib/Blocklet/utils.js +10 -10
  42. package/lib/BlockletContext/index.d.ts +3 -3
  43. package/lib/BlockletContext/index.js +32 -57
  44. package/lib/BlockletNFT/BlockletNFT.stories.d.ts +17 -0
  45. package/lib/BlockletNFT/index.d.ts +3 -38
  46. package/lib/BlockletNFT/index.js +123 -245
  47. package/lib/BlockletV2/Blocklet.stories.d.ts +18 -0
  48. package/lib/BlockletV2/blocklet.d.ts +2 -2
  49. package/lib/BlockletV2/blocklet.js +188 -213
  50. package/lib/BlockletV2/components/icon-text.d.ts +2 -2
  51. package/lib/BlockletV2/components/icon-text.js +43 -33
  52. package/lib/BlockletV2/components/tooltip-icon.js +46 -36
  53. package/lib/BlockletV2/index.d.ts +3 -3
  54. package/lib/BlockletV2/index.js +9 -5
  55. package/lib/BlockletV2/utils.d.ts +1 -1
  56. package/lib/BlockletV2/utils.js +13 -25
  57. package/lib/Button/Button.stories.d.ts +19 -0
  58. package/lib/Button/index.d.ts +1 -1
  59. package/lib/Button/index.js +6 -8
  60. package/lib/Button/wrap.d.ts +3 -3
  61. package/lib/Button/wrap.js +48 -131
  62. package/lib/ButtonGroup/index.d.ts +2 -2
  63. package/lib/ButtonGroup/index.js +6 -16
  64. package/lib/CardSelector/index.js +51 -94
  65. package/lib/Center/Center.stories.d.ts +18 -0
  66. package/lib/Center/index.js +15 -18
  67. package/lib/ClickToCopy/ClickToCopy.stories.d.ts +16 -0
  68. package/lib/ClickToCopy/copy-button.d.ts +3 -2
  69. package/lib/ClickToCopy/copy-button.js +19 -58
  70. package/lib/ClickToCopy/hook.d.ts +2 -2
  71. package/lib/ClickToCopy/hook.js +23 -32
  72. package/lib/ClickToCopy/index.d.ts +3 -14
  73. package/lib/ClickToCopy/index.js +23 -75
  74. package/lib/CloseButton/index.d.ts +1 -1
  75. package/lib/CloseButton/index.js +34 -28
  76. package/lib/CodeBlock/CodeBlock.stories.d.ts +20 -0
  77. package/lib/CodeBlock/LightBox.d.ts +4 -4
  78. package/lib/CodeBlock/LightBox.js +5 -4
  79. package/lib/CodeBlock/index.d.ts +1 -2
  80. package/lib/CodeBlock/index.js +96 -127
  81. package/lib/Colors/Colors.stories.d.ts +34 -0
  82. package/lib/Colors/index.js +8 -4
  83. package/lib/Colors/themes/default.d.ts +1 -1
  84. package/lib/Colors/themes/default.js +5 -7
  85. package/lib/Colors/themes/did-connect.js +43 -44
  86. package/lib/Colors/themes/temp.js +38 -39
  87. package/lib/Config/Config.stories.d.ts +14 -0
  88. package/lib/Config/config-provider.d.ts +8 -8
  89. package/lib/Config/config-provider.js +50 -44
  90. package/lib/Config/index.js +7 -2
  91. package/lib/Config/theme-mode-toggle.js +12 -27
  92. package/lib/ContactForm/ContactForm.stories.d.ts +23 -0
  93. package/lib/ContactForm/index.d.ts +2 -1
  94. package/lib/ContactForm/index.js +137 -164
  95. package/lib/CookieConsent/CookieConsent.stories.d.ts +18 -0
  96. package/lib/CookieConsent/index.d.ts +2 -2
  97. package/lib/CookieConsent/index.js +44 -73
  98. package/lib/CountDown/CountDown.stories.d.ts +14 -0
  99. package/lib/CountDown/index.d.ts +2 -2
  100. package/lib/CountDown/index.js +52 -124
  101. package/lib/DID/DID.stories.d.ts +15 -0
  102. package/lib/DID/index.d.ts +3 -1
  103. package/lib/DID/index.js +262 -327
  104. package/lib/DIDConnect/app-icon.js +26 -31
  105. package/lib/DIDConnect/app-info-item.js +76 -82
  106. package/lib/DIDConnect/auth-apps/auth-apps-info.js +71 -63
  107. package/lib/DIDConnect/auth-apps/index.d.ts +2 -2
  108. package/lib/DIDConnect/auth-apps/index.js +184 -183
  109. package/lib/DIDConnect/did-connect-container.js +231 -247
  110. package/lib/DIDConnect/did-connect-footer.js +66 -68
  111. package/lib/DIDConnect/did-connect-logo.js +10 -11
  112. package/lib/DIDConnect/index.js +22 -10
  113. package/lib/DIDConnect/landing-page.d.ts +1 -1
  114. package/lib/DIDConnect/landing-page.js +165 -189
  115. package/lib/DIDConnect/powered-by.js +55 -46
  116. package/lib/DIDConnect/request-storage-access-api-dialog.d.ts +5 -2
  117. package/lib/DIDConnect/request-storage-access-api-dialog.js +230 -292
  118. package/lib/DIDConnect/with-container.js +200 -236
  119. package/lib/DIDConnect/with-ux-theme.js +15 -22
  120. package/lib/Datatable/CustomToolbar.d.ts +1 -15
  121. package/lib/Datatable/CustomToolbar.js +232 -313
  122. package/lib/Datatable/Datatable.stories.d.ts +32 -0
  123. package/lib/Datatable/DatatableContext.js +23 -35
  124. package/lib/Datatable/TableSearch.d.ts +5 -13
  125. package/lib/Datatable/TableSearch.js +81 -113
  126. package/lib/Datatable/index.d.ts +12 -13
  127. package/lib/Datatable/index.js +226 -479
  128. package/lib/Datatable/utils.js +55 -120
  129. package/lib/Dialog/Dialog.stories.d.ts +20 -0
  130. package/lib/Dialog/confirm.d.ts +4 -25
  131. package/lib/Dialog/confirm.js +99 -125
  132. package/lib/Dialog/dialog.d.ts +30 -23
  133. package/lib/Dialog/dialog.js +62 -148
  134. package/lib/Dialog/index.d.ts +3 -3
  135. package/lib/Dialog/index.js +8 -4
  136. package/lib/Dialog/use-confirm.d.ts +3 -3
  137. package/lib/Dialog/use-confirm.js +91 -171
  138. package/lib/DidLogo/Logo.stories.d.ts +8 -0
  139. package/lib/DidLogo/index.js +19 -19
  140. package/lib/DriftBot/index.js +23 -33
  141. package/lib/Earth/Earth.stories.d.ts +18 -0
  142. package/lib/Earth/countries.json.js +13 -0
  143. package/lib/Earth/index.js +234 -334
  144. package/lib/Earth/util.js +36 -45
  145. package/lib/Empty/Empty.stories.d.ts +17 -0
  146. package/lib/Empty/index.d.ts +3 -11
  147. package/lib/Empty/index.js +17 -50
  148. package/lib/ErrorBoundary/ErrorBoundary.stories.d.ts +12 -0
  149. package/lib/ErrorBoundary/fallback.js +54 -71
  150. package/lib/ErrorBoundary/index.js +6 -1
  151. package/lib/Footer/Footer.stories.d.ts +12 -0
  152. package/lib/Footer/index.d.ts +1 -12
  153. package/lib/Footer/index.js +53 -100
  154. package/lib/Header/Header.stories.d.ts +21 -0
  155. package/lib/Header/addon-button.js +24 -31
  156. package/lib/Header/auto-hidden.d.ts +1 -1
  157. package/lib/Header/auto-hidden.js +9 -16
  158. package/lib/Header/header-addons.d.ts +1 -1
  159. package/lib/Header/header-addons.js +40 -37
  160. package/lib/Header/header.d.ts +2 -1
  161. package/lib/Header/header.js +64 -109
  162. package/lib/Header/index.js +8 -3
  163. package/lib/Header/responsive-header.d.ts +1 -1
  164. package/lib/Header/responsive-header.js +74 -112
  165. package/lib/Icon/Icon.stories.d.ts +23 -0
  166. package/lib/Icon/image.d.ts +1 -1
  167. package/lib/Icon/image.js +32 -33
  168. package/lib/Icon/index.d.ts +4 -4
  169. package/lib/Icon/index.js +30 -53
  170. package/lib/Img/Img.stories.d.ts +13 -0
  171. package/lib/Img/index.d.ts +6 -32
  172. package/lib/Img/index.js +126 -204
  173. package/lib/InfoRow/InfoRow.stories.d.ts +14 -0
  174. package/lib/InfoRow/index.js +27 -41
  175. package/lib/Layout/Layout.stories.d.ts +23 -0
  176. package/lib/Layout/dashboard/external-link.d.ts +1 -1
  177. package/lib/Layout/dashboard/external-link.js +23 -44
  178. package/lib/Layout/dashboard/full-page.d.ts +1 -1
  179. package/lib/Layout/dashboard/full-page.js +31 -48
  180. package/lib/Layout/dashboard/index.d.ts +4 -4
  181. package/lib/Layout/dashboard/index.js +134 -211
  182. package/lib/Layout/dashboard/sidebar.js +44 -78
  183. package/lib/Layout/dashboard-legacy/header.d.ts +1 -1
  184. package/lib/Layout/dashboard-legacy/header.js +70 -87
  185. package/lib/Layout/dashboard-legacy/index.d.ts +2 -2
  186. package/lib/Layout/dashboard-legacy/index.js +82 -90
  187. package/lib/Layout/dashboard-legacy/sidebar.d.ts +1 -1
  188. package/lib/Layout/dashboard-legacy/sidebar.js +44 -76
  189. package/lib/Layout/index.d.ts +2 -2
  190. package/lib/Layout/index.js +129 -189
  191. package/lib/LoadingMask/index.js +91 -82
  192. package/lib/Locale/LocaleSelector.stories.d.ts +22 -0
  193. package/lib/Locale/browser-lang.js +23 -52
  194. package/lib/Locale/context.d.ts +3 -3
  195. package/lib/Locale/context.js +71 -123
  196. package/lib/Locale/languages.js +32 -34
  197. package/lib/Locale/selector.d.ts +2 -2
  198. package/lib/Locale/selector.js +104 -139
  199. package/lib/Locale/util.d.ts +1 -1
  200. package/lib/Locale/util.js +9 -24
  201. package/lib/Logo/Logo.stories.d.ts +22 -0
  202. package/lib/Logo/images/logo-dark-text.svg.js +5 -0
  203. package/lib/Logo/images/logo-dark-top.svg.js +5 -0
  204. package/lib/Logo/images/logo-light-text.svg.js +5 -0
  205. package/lib/Logo/images/logo-light-top.svg.js +5 -0
  206. package/lib/Logo/index.d.ts +1 -1
  207. package/lib/Logo/index.js +27 -107
  208. package/lib/Metric/Metric.stories.d.ts +14 -0
  209. package/lib/Metric/index.js +50 -53
  210. package/lib/MuiWrap/index.js +11 -19
  211. package/lib/NFTDisplay/NFTBroken.svg.js +108 -0
  212. package/lib/NFTDisplay/NFTDisplay.stories.d.ts +15 -0
  213. package/lib/NFTDisplay/aspect-ratio-container.js +9 -20
  214. package/lib/NFTDisplay/broken.js +14 -286
  215. package/lib/NFTDisplay/displayApi.d.ts +1 -1
  216. package/lib/NFTDisplay/displayApi.js +17 -44
  217. package/lib/NFTDisplay/index.d.ts +2 -2
  218. package/lib/NFTDisplay/index.js +160 -343
  219. package/lib/NFTDisplay/loading.js +9 -9
  220. package/lib/NFTDisplay/render-svg.js +15 -22
  221. package/lib/NFTDisplay/svg-embedder/img.js +13 -29
  222. package/lib/NFTDisplay/svg-embedder/inline-svg.d.ts +1 -1
  223. package/lib/NFTDisplay/svg-embedder/inline-svg.js +10 -20
  224. package/lib/NavMenu/NavMenu.stories.d.ts +17 -0
  225. package/lib/NavMenu/images/OCAP.svg.js +5 -0
  226. package/lib/NavMenu/images/abt-network.svg.js +7 -0
  227. package/lib/NavMenu/images/ai-kit.svg.js +7 -0
  228. package/lib/NavMenu/images/aigne.svg.js +7 -0
  229. package/lib/NavMenu/images/aistro.svg.js +5 -0
  230. package/lib/NavMenu/images/arcsphere.svg.js +10 -0
  231. package/lib/NavMenu/images/blocklet-framework.svg.js +7 -0
  232. package/lib/NavMenu/images/blocklet-launcher.svg.js +5 -0
  233. package/lib/NavMenu/images/blocklet-server.svg.js +7 -0
  234. package/lib/NavMenu/images/blocklet-store.svg.js +5 -0
  235. package/lib/NavMenu/images/creator-studio.svg.js +7 -0
  236. package/lib/NavMenu/images/did-connect.svg.js +5 -0
  237. package/lib/NavMenu/images/did-name-service.svg.js +5 -0
  238. package/lib/NavMenu/images/did-wallet.svg.js +7 -0
  239. package/lib/NavMenu/images/did.svg.js +5 -0
  240. package/lib/NavMenu/images/nft-studio.svg.js +5 -0
  241. package/lib/NavMenu/images/vc.svg.js +5 -0
  242. package/lib/NavMenu/images/web3-kit.svg.js +7 -0
  243. package/lib/NavMenu/index.js +6 -3
  244. package/lib/NavMenu/nav-menu-context.js +15 -18
  245. package/lib/NavMenu/nav-menu.d.ts +17 -7
  246. package/lib/NavMenu/nav-menu.js +219 -355
  247. package/lib/NavMenu/products.js +264 -1652
  248. package/lib/NavMenu/style.d.ts +5 -5
  249. package/lib/NavMenu/style.js +156 -172
  250. package/lib/NavMenu/sub-container.d.ts +1 -1
  251. package/lib/NavMenu/sub-container.js +63 -104
  252. package/lib/NavMenu/sub-item-group.js +15 -33
  253. package/lib/PageScroller/index.d.ts +1 -1
  254. package/lib/PageScroller/index.js +116 -252
  255. package/lib/PageScroller/story/FifthComponent.js +7 -9
  256. package/lib/PageScroller/story/FirstComponent.js +7 -9
  257. package/lib/PageScroller/story/FourthComponent.js +7 -12
  258. package/lib/PageScroller/story/FullPage.js +52 -45
  259. package/lib/PageScroller/story/PageContain.js +55 -57
  260. package/lib/PageScroller/story/PageScroller.stories.d.ts +13 -0
  261. package/lib/PageScroller/story/SecondComponent.js +7 -9
  262. package/lib/PageScroller/story/ThirdComponent.js +7 -9
  263. package/lib/PageScroller/usePrevValue.js +10 -8
  264. package/lib/Passport/index.d.ts +1 -1
  265. package/lib/Passport/index.js +4 -2
  266. package/lib/Passport/passport.d.ts +1 -1
  267. package/lib/Passport/passport.js +123 -100
  268. package/lib/PhoneInput/PhoneInput.stories.d.ts +12 -0
  269. package/lib/PhoneInput/country-select.d.ts +2 -2
  270. package/lib/PhoneInput/country-select.js +111 -159
  271. package/lib/PhoneInput/index.js +166 -218
  272. package/lib/PoweredByArcBlock/index.d.ts +1 -1
  273. package/lib/PoweredByArcBlock/index.js +16 -22
  274. package/lib/PricingTable/PricingPlan.js +20 -55
  275. package/lib/PricingTable/PricingTable.stories.d.ts +8 -0
  276. package/lib/PricingTable/index.d.ts +1 -1
  277. package/lib/PricingTable/index.js +34 -37
  278. package/lib/QRCode/QRCode.stories.d.ts +13 -0
  279. package/lib/QRCode/index.d.ts +1 -1
  280. package/lib/QRCode/index.js +31 -49
  281. package/lib/RelativeTime/RelativeTime.stories.d.ts +20 -0
  282. package/lib/RelativeTime/index.d.ts +3 -3
  283. package/lib/RelativeTime/index.js +163 -261
  284. package/lib/Result/Result.stories.d.ts +21 -0
  285. package/lib/Result/common.d.ts +2 -2
  286. package/lib/Result/common.js +97 -129
  287. package/lib/Result/index.d.ts +1 -1
  288. package/lib/Result/index.js +21 -22
  289. package/lib/Result/result.js +45 -32
  290. package/lib/Result/translations.d.ts +1 -1
  291. package/lib/Result/translations.js +28 -25
  292. package/lib/Screenshot/BaseScreenshot/index.d.ts +1 -1
  293. package/lib/Screenshot/BaseScreenshot/index.js +23 -44
  294. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +23 -41
  295. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +24 -26
  296. package/lib/Screenshot/Screenshot.stories.d.ts +13 -0
  297. package/lib/Screenshot/demo/images/bg-01.jpg +0 -0
  298. package/lib/Screenshot/demo/images/bg-02.jpg +0 -0
  299. package/lib/Screenshot/demo/images/bg-03.jpg +0 -0
  300. package/lib/Screenshot/index.d.ts +1 -2
  301. package/lib/Screenshot/index.js +83 -188
  302. package/lib/SessionBlocklet/index.d.ts +2 -2
  303. package/lib/SessionBlocklet/index.js +147 -162
  304. package/lib/SessionManager/SessionManager.stories.d.ts +9 -0
  305. package/lib/SessionManager/index.d.ts +1 -1
  306. package/lib/SessionManager/index.js +4 -2
  307. package/lib/SessionPermission/index.d.ts +1 -0
  308. package/lib/SessionPermission/index.js +12 -20
  309. package/lib/SessionUser/components/did-space.js +65 -117
  310. package/lib/SessionUser/components/logged-in.d.ts +3 -4
  311. package/lib/SessionUser/components/logged-in.js +215 -292
  312. package/lib/SessionUser/components/quick-login-item.js +125 -120
  313. package/lib/SessionUser/components/session-user-item.d.ts +4 -2
  314. package/lib/SessionUser/components/session-user-item.js +85 -89
  315. package/lib/SessionUser/components/session-user-switch.d.ts +1 -1
  316. package/lib/SessionUser/components/session-user-switch.js +187 -187
  317. package/lib/SessionUser/components/un-login.js +196 -222
  318. package/lib/SessionUser/components/user-info.d.ts +1 -1
  319. package/lib/SessionUser/components/user-info.js +163 -150
  320. package/lib/SessionUser/images/did-spaces.svg.js +5 -0
  321. package/lib/SessionUser/index.d.ts +1 -1
  322. package/lib/SessionUser/index.js +27 -30
  323. package/lib/SessionUser/libs/translation.d.ts +1 -1
  324. package/lib/SessionUser/libs/translation.js +25 -24
  325. package/lib/SessionUser/libs/utils.js +33 -23
  326. package/lib/SharedBridge/index.d.ts +6 -5
  327. package/lib/SharedBridge/index.js +76 -93
  328. package/lib/Sparkline/Sparkline.stories.d.ts +12 -0
  329. package/lib/Sparkline/index.js +67 -183
  330. package/lib/Spinner/Spinner.stories.d.ts +18 -0
  331. package/lib/Spinner/index.d.ts +1 -1
  332. package/lib/Spinner/index.js +10 -20
  333. package/lib/SplitButton/SplitButton.stories.d.ts +15 -0
  334. package/lib/SplitButton/index.d.ts +3 -5
  335. package/lib/SplitButton/index.js +39 -83
  336. package/lib/Success/index.js +174 -160
  337. package/lib/Switch/Switch.stories.d.ts +13 -0
  338. package/lib/Switch/index.d.ts +3 -7
  339. package/lib/Switch/index.js +51 -87
  340. package/lib/Tabs/Tabs.stories.d.ts +14 -0
  341. package/lib/Tabs/index.d.ts +2 -2
  342. package/lib/Tabs/index.js +169 -186
  343. package/lib/Tag/Tag.stories.d.ts +13 -0
  344. package/lib/Tag/index.d.ts +7 -4
  345. package/lib/Tag/index.js +40 -88
  346. package/lib/TextCollapse/TextCollapse.stories.d.ts +28 -0
  347. package/lib/TextCollapse/index.js +34 -51
  348. package/lib/Theme/Theme.stories.d.ts +10 -0
  349. package/lib/Theme/index.d.ts +1 -2
  350. package/lib/Theme/index.js +25 -17
  351. package/lib/Theme/theme-provider.d.ts +4 -15
  352. package/lib/Theme/theme-provider.js +111 -232
  353. package/lib/Theme/theme.d.ts +1 -8
  354. package/lib/Theme/theme.js +118 -166
  355. package/lib/Toast/Toast.stories.d.ts +15 -0
  356. package/lib/Toast/index.d.ts +1 -1
  357. package/lib/Toast/index.js +46 -67
  358. package/lib/Typography/index.d.ts +1 -1
  359. package/lib/Typography/index.js +73 -109
  360. package/lib/UserCard/Cards/avatar-only.d.ts +1 -1
  361. package/lib/UserCard/Cards/avatar-only.js +28 -36
  362. package/lib/UserCard/Cards/basic-info.d.ts +1 -2
  363. package/lib/UserCard/Cards/basic-info.js +34 -42
  364. package/lib/UserCard/Cards/index.d.ts +1 -1
  365. package/lib/UserCard/Cards/index.js +13 -21
  366. package/lib/UserCard/Cards/name-only.js +12 -18
  367. package/lib/UserCard/Container/card.d.ts +2 -2
  368. package/lib/UserCard/Container/card.js +34 -41
  369. package/lib/UserCard/Container/dialog.d.ts +1 -1
  370. package/lib/UserCard/Container/dialog.js +27 -27
  371. package/lib/UserCard/Content/basic.d.ts +1 -2
  372. package/lib/UserCard/Content/basic.js +198 -306
  373. package/lib/UserCard/Content/clock.d.ts +2 -0
  374. package/lib/UserCard/Content/clock.js +85 -71
  375. package/lib/UserCard/Content/minimal.d.ts +1 -1
  376. package/lib/UserCard/Content/minimal.js +81 -71
  377. package/lib/UserCard/Content/shorten-label.js +11 -35
  378. package/lib/UserCard/Content/tooltip-avatar.d.ts +1 -1
  379. package/lib/UserCard/Content/tooltip-avatar.js +43 -51
  380. package/lib/UserCard/UserCard.stories.d.ts +18 -0
  381. package/lib/UserCard/components.d.ts +1 -1
  382. package/lib/UserCard/components.js +53 -66
  383. package/lib/UserCard/index.d.ts +1 -2
  384. package/lib/UserCard/index.js +59 -111
  385. package/lib/UserCard/types.d.ts +1 -1
  386. package/lib/UserCard/types.js +10 -37
  387. package/lib/UserCard/utils.js +70 -125
  388. package/lib/Util/WebWalletOpener.stories.d.ts +5 -0
  389. package/lib/Util/constant.js +47 -46
  390. package/lib/Util/deprecate.js +11 -26
  391. package/lib/Util/federated.d.ts +6 -6
  392. package/lib/Util/federated.js +77 -92
  393. package/lib/Util/iframe.js +14 -21
  394. package/lib/Util/index.d.ts +5 -5
  395. package/lib/Util/index.js +278 -479
  396. package/lib/Util/logger.d.ts +1 -1
  397. package/lib/Util/logger.js +17 -25
  398. package/lib/Util/passport.js +72 -87
  399. package/lib/Util/security.js +28 -40
  400. package/lib/Util/style.d.ts +1 -1
  401. package/lib/Util/style.js +4 -14
  402. package/lib/Util/wallet.js +16 -30
  403. package/lib/VerificationCode/index.d.ts +1 -1
  404. package/lib/VerificationCode/index.js +69 -64
  405. package/lib/Video/Video.stories.d.ts +6 -0
  406. package/lib/Video/index.d.ts +1 -9
  407. package/lib/Video/index.js +26 -60
  408. package/lib/Wallet/Action.d.ts +1 -10
  409. package/lib/Wallet/Action.js +37 -65
  410. package/lib/Wallet/Action.stories.d.ts +8 -0
  411. package/lib/Wallet/Download.d.ts +3 -16
  412. package/lib/Wallet/Download.js +41 -440
  413. package/lib/Wallet/Download.stories.d.ts +9 -0
  414. package/lib/Wallet/Open.d.ts +1 -1
  415. package/lib/Wallet/Open.js +27 -27
  416. package/lib/Wallet/OpenInWallet.stories.d.ts +5 -0
  417. package/lib/Wallet/images/android_download.svg.js +5 -0
  418. package/lib/Wallet/images/app-store.svg.js +5 -0
  419. package/lib/Wallet/images/google-play.svg.js +5 -0
  420. package/lib/WalletOSIcon/index.js +15 -73
  421. package/lib/WebWalletSWKeeper/index.js +39 -106
  422. package/lib/WechatPrompt/images/android.png +0 -0
  423. package/lib/WechatPrompt/images/ios.png +0 -0
  424. package/lib/WechatPrompt/index.js +26 -61
  425. package/lib/hooks/use-blocklet-logo.d.ts +2 -2
  426. package/lib/hooks/use-blocklet-logo.js +22 -30
  427. package/lib/hooks/use-clock.d.ts +1 -3
  428. package/lib/hooks/use-clock.js +34 -67
  429. package/lib/hooks/use-location-state.js +55 -79
  430. package/lib/hooks/use-mobile.js +8 -7
  431. package/lib/index.d.ts +35 -35
  432. package/lib/index.js +81 -38
  433. package/lib/ux.css +1 -0
  434. package/lib/withTheme/index.d.ts +1 -3
  435. package/lib/withTheme/index.js +28 -37
  436. package/lib/withTracker/error_boundary.d.ts +1 -1
  437. package/lib/withTracker/error_boundary.js +15 -29
  438. package/lib/withTracker/index.js +21 -48
  439. package/package.json +48 -57
  440. package/src/ActionButton/ActionButton.stories.jsx +61 -0
  441. package/src/ActionButton/index.jsx +30 -14
  442. package/src/ActivityIndicator/ActivityIndicator.stories.jsx +9 -0
  443. package/src/ActivityIndicator/index.jsx +2 -11
  444. package/src/Address/Address.stories.jsx +38 -0
  445. package/src/Address/compact-text.jsx +9 -11
  446. package/src/Address/did-address.tsx +8 -4
  447. package/src/Address/index.tsx +12 -9
  448. package/src/Address/responsive-did-address.tsx +94 -89
  449. package/src/Alert/Alert.stories.jsx +100 -0
  450. package/src/Alert/index.jsx +24 -12
  451. package/src/AnimationWaiter/AnimationWaiter.stories.jsx +35 -0
  452. package/src/AnimationWaiter/index.jsx +10 -23
  453. package/src/Async/index.tsx +2 -2
  454. package/src/Avatar/Avatar.stories.jsx +11 -0
  455. package/src/Avatar/did-motif.jsx +1 -8
  456. package/src/Avatar/index.jsx +36 -13
  457. package/src/Badge/Badge.stories.jsx +41 -0
  458. package/src/Badge/index.jsx +22 -18
  459. package/src/Blocklet/Blocklet.stories.jsx +21 -0
  460. package/src/Blocklet/blocklet.jsx +13 -30
  461. package/src/BlockletContext/index.tsx +2 -2
  462. package/src/BlockletNFT/BlockletNFT.stories.jsx +21 -0
  463. package/src/BlockletNFT/index.jsx +14 -38
  464. package/src/BlockletV2/Blocklet.stories.jsx +34 -0
  465. package/src/BlockletV2/blocklet.tsx +69 -29
  466. package/src/BlockletV2/components/icon-text.tsx +15 -5
  467. package/src/Button/Button.stories.jsx +24 -0
  468. package/src/Button/index.js +1 -1
  469. package/src/Button/wrap.jsx +20 -13
  470. package/src/ButtonGroup/index.js +1 -1
  471. package/src/Center/Center.stories.jsx +20 -0
  472. package/src/ClickToCopy/ClickToCopy.stories.jsx +24 -0
  473. package/src/ClickToCopy/copy-button.tsx +4 -4
  474. package/src/ClickToCopy/index.tsx +28 -12
  475. package/src/CodeBlock/CodeBlock.stories.jsx +22 -0
  476. package/src/CodeBlock/index.tsx +1 -2
  477. package/src/Colors/Colors.stories.jsx +211 -0
  478. package/src/Colors/themes/did-connect.ts +0 -2
  479. package/src/Config/Config.stories.jsx +16 -0
  480. package/src/Config/theme-mode-toggle.tsx +4 -2
  481. package/src/ContactForm/ContactForm.stories.jsx +32 -0
  482. package/src/ContactForm/index.tsx +2 -2
  483. package/src/CookieConsent/CookieConsent.stories.jsx +33 -0
  484. package/src/CookieConsent/index.tsx +1 -1
  485. package/src/CountDown/CountDown.stories.jsx +15 -0
  486. package/src/CountDown/index.tsx +11 -6
  487. package/src/DID/DID.stories.jsx +37 -0
  488. package/src/DID/index.tsx +8 -3
  489. package/src/DIDConnect/app-info-item.tsx +2 -2
  490. package/src/DIDConnect/did-connect-container.tsx +17 -18
  491. package/src/DIDConnect/request-storage-access-api-dialog.tsx +210 -183
  492. package/src/DIDConnect/with-container.tsx +17 -18
  493. package/src/Datatable/CustomToolbar.jsx +32 -34
  494. package/src/Datatable/Datatable.stories.jsx +92 -0
  495. package/src/Datatable/DatatableContext.jsx +2 -2
  496. package/src/Datatable/TableSearch.jsx +10 -12
  497. package/src/Datatable/index.jsx +36 -58
  498. package/src/Datatable/utils.js +7 -7
  499. package/src/Dialog/Dialog.stories.jsx +21 -0
  500. package/src/Dialog/confirm.jsx +11 -21
  501. package/src/Dialog/dialog.jsx +9 -20
  502. package/src/Dialog/use-confirm.jsx +4 -3
  503. package/src/DidLogo/Logo.stories.jsx +8 -0
  504. package/src/DriftBot/index.tsx +4 -6
  505. package/src/Earth/Earth.stories.jsx +39 -0
  506. package/src/Earth/index.tsx +1 -1
  507. package/src/Empty/Empty.stories.jsx +23 -0
  508. package/src/Empty/index.jsx +1 -6
  509. package/src/ErrorBoundary/ErrorBoundary.stories.jsx +13 -0
  510. package/src/ErrorBoundary/fallback.tsx +5 -1
  511. package/src/Footer/Footer.stories.jsx +13 -0
  512. package/src/Footer/index.tsx +10 -18
  513. package/src/Header/Header.stories.jsx +30 -0
  514. package/src/Header/auto-hidden.tsx +1 -1
  515. package/src/Header/header.tsx +21 -4
  516. package/src/Header/responsive-header.tsx +11 -13
  517. package/src/Icon/Icon.stories.jsx +45 -0
  518. package/src/Icon/index.tsx +12 -24
  519. package/src/Img/Img.stories.jsx +17 -0
  520. package/src/Img/index.jsx +14 -30
  521. package/src/InfoRow/InfoRow.stories.jsx +14 -0
  522. package/src/InfoRow/index.tsx +5 -5
  523. package/src/Layout/Layout.stories.jsx +24 -0
  524. package/src/Layout/dashboard/full-page.tsx +4 -4
  525. package/src/Layout/dashboard/index.tsx +24 -21
  526. package/src/Layout/dashboard/sidebar.tsx +1 -1
  527. package/src/Layout/dashboard-legacy/header.tsx +25 -14
  528. package/src/Layout/dashboard-legacy/index.tsx +7 -7
  529. package/src/Layout/dashboard-legacy/sidebar.tsx +1 -3
  530. package/src/Layout/index.tsx +8 -6
  531. package/src/Locale/LocaleSelector.stories.jsx +44 -0
  532. package/src/Locale/context.tsx +2 -2
  533. package/src/Locale/selector.tsx +10 -17
  534. package/src/Logo/Logo.stories.jsx +23 -0
  535. package/src/Metric/Metric.stories.jsx +29 -0
  536. package/src/NFTDisplay/NFTDisplay.stories.jsx +30 -0
  537. package/src/NFTDisplay/broken.tsx +1 -1
  538. package/src/NFTDisplay/displayApi.ts +1 -0
  539. package/src/NFTDisplay/index.tsx +0 -1
  540. package/src/NavMenu/NavMenu.stories.jsx +17 -0
  541. package/src/NavMenu/nav-menu-context.tsx +3 -3
  542. package/src/NavMenu/nav-menu.tsx +138 -125
  543. package/src/NavMenu/products.tsx +7 -1
  544. package/src/NavMenu/style.ts +1 -1
  545. package/src/PageScroller/index.tsx +2 -2
  546. package/src/PageScroller/story/PageScroller.stories.jsx +18 -0
  547. package/src/PageScroller/usePrevValue.ts +1 -1
  548. package/src/PhoneInput/PhoneInput.stories.jsx +12 -0
  549. package/src/PhoneInput/country-select.tsx +107 -103
  550. package/src/PhoneInput/index.tsx +12 -4
  551. package/src/PricingTable/PricingPlan.tsx +1 -4
  552. package/src/PricingTable/PricingTable.stories.jsx +38 -0
  553. package/src/PricingTable/index.tsx +16 -4
  554. package/src/QRCode/QRCode.stories.jsx +13 -0
  555. package/src/RelativeTime/RelativeTime.stories.jsx +20 -0
  556. package/src/RelativeTime/index.tsx +20 -5
  557. package/src/Result/Result.stories.jsx +61 -0
  558. package/src/Result/common.tsx +1 -2
  559. package/src/Result/result.tsx +22 -6
  560. package/src/Screenshot/Screenshot.stories.jsx +44 -0
  561. package/src/Screenshot/index.tsx +33 -15
  562. package/src/SessionManager/SessionManager.stories.jsx +9 -0
  563. package/src/SessionPermission/index.tsx +1 -0
  564. package/src/SessionUser/components/logged-in.tsx +0 -2
  565. package/src/SessionUser/components/quick-login-item.tsx +3 -3
  566. package/src/SessionUser/components/session-user-item.tsx +68 -70
  567. package/src/SessionUser/components/session-user-switch.tsx +9 -1
  568. package/src/SessionUser/components/un-login.tsx +8 -1
  569. package/src/SharedBridge/index.tsx +106 -111
  570. package/src/Sparkline/Sparkline.stories.jsx +13 -0
  571. package/src/Spinner/Spinner.stories.jsx +98 -0
  572. package/src/Spinner/index.tsx +1 -1
  573. package/src/SplitButton/SplitButton.stories.jsx +32 -0
  574. package/src/SplitButton/index.tsx +15 -9
  575. package/src/Switch/Switch.stories.jsx +16 -0
  576. package/src/Switch/index.jsx +2 -6
  577. package/src/Tabs/Tabs.stories.jsx +18 -0
  578. package/src/Tabs/index.tsx +3 -3
  579. package/src/Tag/Tag.stories.jsx +15 -0
  580. package/src/Tag/index.jsx +20 -11
  581. package/src/TextCollapse/TextCollapse.stories.jsx +73 -0
  582. package/src/TextCollapse/index.tsx +1 -1
  583. package/src/Theme/Theme.stories.jsx +10 -0
  584. package/src/Theme/theme-provider.tsx +10 -18
  585. package/src/Theme/theme.ts +7 -2
  586. package/src/Toast/Toast.stories.jsx +28 -0
  587. package/src/Toast/index.tsx +2 -2
  588. package/src/Typography/index.tsx +6 -2
  589. package/src/UserCard/Cards/basic-info.tsx +9 -5
  590. package/src/UserCard/Container/card.tsx +2 -2
  591. package/src/UserCard/Content/basic.tsx +39 -38
  592. package/src/UserCard/Content/clock.tsx +13 -6
  593. package/src/UserCard/Content/minimal.tsx +23 -7
  594. package/src/UserCard/Content/tooltip-avatar.tsx +14 -11
  595. package/src/UserCard/UserCard.stories.jsx +18 -0
  596. package/src/UserCard/components.tsx +6 -3
  597. package/src/UserCard/index.tsx +0 -1
  598. package/src/Util/WebWalletOpener.stories.jsx +5 -0
  599. package/src/Util/index.ts +37 -3
  600. package/src/VerificationCode/index.tsx +16 -14
  601. package/src/Video/Video.stories.jsx +6 -0
  602. package/src/Video/index.tsx +16 -8
  603. package/src/Wallet/Action.stories.jsx +8 -0
  604. package/src/Wallet/Action.tsx +20 -9
  605. package/src/Wallet/Download.stories.jsx +9 -0
  606. package/src/Wallet/Download.tsx +36 -14
  607. package/src/Wallet/Open.tsx +1 -1
  608. package/src/Wallet/OpenInWallet.stories.jsx +5 -0
  609. package/src/WechatPrompt/index.tsx +1 -2
  610. package/src/hooks/use-clock.tsx +2 -1
  611. package/src/withTheme/index.tsx +1 -4
  612. package/vite.config.mjs +34 -0
  613. package/babel.config.es.js +0 -28
  614. package/lib/Dialog/types.d.ts +0 -20
  615. package/lib/Earth/countries.json +0 -8057
  616. package/lib/Header/demo/images/boards.svg +0 -3
  617. package/lib/Header/demo/images/chatbot.svg +0 -3
  618. package/lib/Header/demo/images/gallery.svg +0 -3
  619. package/lib/Logo/images/logo-dark-text.svg +0 -3
  620. package/lib/Logo/images/logo-dark-top.svg +0 -6
  621. package/lib/Logo/images/logo-light-text.svg +0 -3
  622. package/lib/Logo/images/logo-light-top.svg +0 -6
  623. package/lib/NFTDisplay/NFTBroken.svg +0 -34
  624. package/lib/NFTDisplay/README.md +0 -59
  625. package/lib/NFTDisplay/demo/data/asset-state-bad-url.json +0 -7
  626. package/lib/NFTDisplay/demo/data/asset-state-did-space-svg.json +0 -7
  627. package/lib/NFTDisplay/demo/data/asset-state-did-space.json +0 -7
  628. package/lib/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
  629. package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
  630. package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
  631. package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
  632. package/lib/NFTDisplay/demo/data/asset-state-svg.json +0 -29
  633. package/lib/NFTDisplay/demo/data/asset-state-url.json +0 -10
  634. package/lib/NavMenu/images/OCAP.svg +0 -16
  635. package/lib/NavMenu/images/abt-network.svg +0 -18
  636. package/lib/NavMenu/images/ai-kit.svg +0 -46
  637. package/lib/NavMenu/images/aigne.svg +0 -8
  638. package/lib/NavMenu/images/aistro.svg +0 -14
  639. package/lib/NavMenu/images/arcsphere.svg +0 -13
  640. package/lib/NavMenu/images/blocklet-framework.svg +0 -25
  641. package/lib/NavMenu/images/blocklet-launcher.svg +0 -9
  642. package/lib/NavMenu/images/blocklet-server.svg +0 -19
  643. package/lib/NavMenu/images/blocklet-store.svg +0 -11
  644. package/lib/NavMenu/images/creator-studio.svg +0 -42
  645. package/lib/NavMenu/images/did-connect.svg +0 -26
  646. package/lib/NavMenu/images/did-name-service.svg +0 -3
  647. package/lib/NavMenu/images/did-wallet.svg +0 -33
  648. package/lib/NavMenu/images/did.svg +0 -3
  649. package/lib/NavMenu/images/nft-studio.svg +0 -19
  650. package/lib/NavMenu/images/vc.svg +0 -7
  651. package/lib/NavMenu/images/web3-kit.svg +0 -56
  652. package/lib/PageScroller/story/index.css +0 -115
  653. package/lib/Result/demo/fixtures/result-image-404.svg +0 -1
  654. package/lib/Screenshot/devices.css +0 -1366
  655. package/lib/SessionUser/images/did-spaces.svg +0 -17
  656. package/lib/Wallet/images/android_download.svg +0 -22
  657. package/lib/Wallet/images/app-store.svg +0 -30
  658. package/lib/Wallet/images/google-play.svg +0 -69
  659. package/lib/global.d.ts +0 -28
  660. package/lib/type.d.ts +0 -44
  661. package/lib/withTracker/README.md +0 -37
  662. /package/src/PageScroller/story/{FifthComponent.js → FifthComponent.jsx} +0 -0
  663. /package/src/PageScroller/story/{FirstComponent.js → FirstComponent.jsx} +0 -0
  664. /package/src/PageScroller/story/{FourthComponent.js → FourthComponent.jsx} +0 -0
  665. /package/src/PageScroller/story/{FullPage.js → FullPage.jsx} +0 -0
  666. /package/src/PageScroller/story/{PageContain.js → PageContain.jsx} +0 -0
  667. /package/src/PageScroller/story/{SecondComponent.js → SecondComponent.jsx} +0 -0
  668. /package/src/PageScroller/story/{ThirdComponent.js → ThirdComponent.jsx} +0 -0
@@ -1,7 +1,4 @@
1
- import Typography from '@mui/material/Typography';
2
- import Box from '@mui/material/Box';
3
- import Grid from '@mui/material/Grid';
4
- import useTheme from '@mui/material/styles/useTheme';
1
+ import { Typography, Box, Grid, useTheme } from '@mui/material';
5
2
  import { useCreation, useMemoizedFn } from 'ahooks';
6
3
  import styled from '@emotion/styled';
7
4
  import isArray from 'lodash/isArray';
@@ -12,8 +9,8 @@ import PhoneIcon from '@arcblock/icons/lib/Phone';
12
9
  import LocationIcon from '@arcblock/icons/lib/Location';
13
10
  import EmailIcon from '@arcblock/icons/lib/Email';
14
11
  import TimezoneIcon from '@arcblock/icons/lib/Timezone';
15
- import { joinURL, withoutProtocol } from 'ufo';
16
- import { useState, useMemo, useCallback } from 'react';
12
+ import { withoutProtocol } from 'ufo';
13
+ import { useMemo, useCallback } from 'react';
17
14
 
18
15
  import { User } from '../types';
19
16
  import Clock from './clock';
@@ -50,7 +47,6 @@ const iconSize = {
50
47
  };
51
48
  interface BasicContentProps {
52
49
  user: User;
53
- isFull?: boolean;
54
50
  renderFields?: string[];
55
51
  }
56
52
 
@@ -65,7 +61,13 @@ function TimeZoneField({ value }: { value: string }) {
65
61
  const theme = useTheme();
66
62
  const isDark = theme.palette.mode === 'dark';
67
63
  return (
68
- <Box display="flex" alignItems="center" gap={1} className="user-card__timezone-field">
64
+ <Box
65
+ className="user-card__timezone-field"
66
+ sx={{
67
+ display: 'flex',
68
+ alignItems: 'center',
69
+ gap: 1,
70
+ }}>
69
71
  <TimezoneIcon {...iconSize} style={convertIconColor(isDark)} />
70
72
  <Clock value={value} variant="body2" color="grey.800" />
71
73
  </Box>
@@ -73,34 +75,12 @@ function TimeZoneField({ value }: { value: string }) {
73
75
  }
74
76
 
75
77
  function LinkField({ value }: { value: string }) {
76
- const [useFallback, setUseFallback] = useState(false);
77
78
  const theme = useTheme();
78
79
  const isDark = theme.palette.mode === 'dark';
79
- const faviconUrl = useCreation(() => {
80
- try {
81
- const url = new URL(value);
82
- return joinURL(url.origin, 'favicon.ico');
83
- } catch (e) {
84
- return '';
85
- }
86
- }, [value]);
87
-
88
- const handleImageError = () => {
89
- setUseFallback(true);
90
- };
91
80
 
92
81
  return (
93
82
  <Box display="flex" alignItems="center" gap={1} className="user-card__link-field">
94
- {faviconUrl && !useFallback ? (
95
- <img
96
- src={faviconUrl}
97
- alt="site icon"
98
- style={{ width: 16, height: 16, objectFit: 'contain' }}
99
- onError={handleImageError}
100
- />
101
- ) : (
102
- <LinkIcon {...iconSize} style={convertIconColor(isDark)} />
103
- )}
83
+ <LinkIcon {...iconSize} style={convertIconColor(isDark)} />
104
84
  <LineText variant="body2" color="grey.800">
105
85
  <Typography
106
86
  component="a"
@@ -108,8 +88,10 @@ function LinkField({ value }: { value: string }) {
108
88
  style={{ textDecoration: 'none', color: 'inherit', fontSize: 'inherit' }}
109
89
  target="_blank"
110
90
  variant="body2"
111
- color="grey.800"
112
- rel="noopener noreferrer">
91
+ rel="noopener noreferrer"
92
+ sx={{
93
+ color: 'grey.800',
94
+ }}>
113
95
  {formatLinkDisplay(value)}
114
96
  </Typography>
115
97
  </LineText>
@@ -123,7 +105,14 @@ function BasicField({ field, value, children }: { field: string; value: string;
123
105
  const isDark = theme.palette.mode === 'dark';
124
106
  const iconColor = convertIconColor(isDark);
125
107
  return (
126
- <Box key={field} display="flex" alignItems="center" gap={1} className={`user-card__${field}-field`}>
108
+ <Box
109
+ key={field}
110
+ className={`user-card__${field}-field`}
111
+ sx={{
112
+ display: 'flex',
113
+ alignItems: 'center',
114
+ gap: 1,
115
+ }}>
127
116
  {Icon ? (
128
117
  <Icon {...iconSize} style={iconColor} />
129
118
  ) : (
@@ -136,7 +125,7 @@ function BasicField({ field, value, children }: { field: string; value: string;
136
125
  );
137
126
  }
138
127
 
139
- function BasicContent({ user, isFull = false, renderFields }: BasicContentProps) {
128
+ function BasicContent({ user, renderFields }: BasicContentProps) {
140
129
  const fields = useCreation(() => {
141
130
  return renderFields ?? ['bio', 'email', 'phone', 'location', 'timezone', 'link'];
142
131
  }, [renderFields]);
@@ -291,7 +280,14 @@ function BasicContent({ user, isFull = false, renderFields }: BasicContentProps)
291
280
  };
292
281
 
293
282
  return (
294
- <Box mt={1} display="flex" flexDirection="column" gap={1.5} className="user-card__basic-content">
283
+ <Box
284
+ className="user-card__basic-content"
285
+ sx={{
286
+ mt: 1,
287
+ display: 'flex',
288
+ flexDirection: 'column',
289
+ gap: 1.5,
290
+ }}>
295
291
  {includeBio && user.metadata?.bio && (
296
292
  <LineText variant="body2" color="grey.800" className="user-card__bio-field">
297
293
  {user.metadata.bio}
@@ -301,13 +297,18 @@ function BasicContent({ user, isFull = false, renderFields }: BasicContentProps)
301
297
  {useDoubleColumn ? (
302
298
  <Grid container spacing={0.5}>
303
299
  {renderItems.map((item) => (
304
- <Grid item xs={6} key={item.key}>
300
+ <Grid key={item.key} size={6}>
305
301
  {renderItem(item)}
306
302
  </Grid>
307
303
  ))}
308
304
  </Grid>
309
305
  ) : (
310
- <Box display="flex" flexDirection="column" gap={0.5}>
306
+ <Box
307
+ sx={{
308
+ display: 'flex',
309
+ flexDirection: 'column',
310
+ gap: 0.5,
311
+ }}>
311
312
  {renderItems.map((item) => renderItem(item))}
312
313
  </Box>
313
314
  )}
@@ -1,6 +1,4 @@
1
- import Tooltip from '@mui/material/Tooltip';
2
- import Typography from '@mui/material/Typography';
3
- import Box from '@mui/material/Box';
1
+ import { Tooltip, Typography, Box, type SxProps } from '@mui/material';
4
2
  import { useMemoizedFn } from 'ahooks';
5
3
  import useClock from '../../hooks/use-clock';
6
4
  import { translate } from '../../Locale/util';
@@ -26,7 +24,7 @@ const translations = {
26
24
  },
27
25
  },
28
26
  };
29
- export default function Clock({ value, ...props }: { value: string; [key: string]: any }) {
27
+ export default function Clock({ value, ...props }: { value: string; sx?: SxProps; [key: string]: any }) {
30
28
  const { locale } = useLocaleContext() || { locale: 'en' };
31
29
  const t = useMemoizedFn((key, data = {}) => {
32
30
  return translate(translations, key, locale, 'en', data);
@@ -34,7 +32,16 @@ export default function Clock({ value, ...props }: { value: string; [key: string
34
32
  const timeInfo = useClock(value, locale);
35
33
 
36
34
  return (
37
- <Box display="flex" alignItems="center" gap={1} flex={1} justifyContent="flex-start" overflow="hidden" width="100%">
35
+ <Box
36
+ sx={{
37
+ display: 'flex',
38
+ alignItems: 'center',
39
+ gap: 1,
40
+ flex: 1,
41
+ justifyContent: 'flex-start',
42
+ overflow: 'hidden',
43
+ width: '100%',
44
+ }}>
38
45
  <Typography
39
46
  {...props}
40
47
  noWrap
@@ -57,9 +64,9 @@ export default function Clock({ value, ...props }: { value: string; [key: string
57
64
  arrow>
58
65
  <Typography
59
66
  component="span"
60
- fontSize={14}
61
67
  noWrap
62
68
  sx={{
69
+ fontSize: 14,
63
70
  whiteSpace: 'nowrap',
64
71
  overflow: 'hidden',
65
72
  textOverflow: 'ellipsis',
@@ -1,6 +1,6 @@
1
1
  import React, { memo } from 'react';
2
2
  import { Typography, Box } from '@mui/material';
3
- import DID from '../../DID';
3
+ import { DID } from '../../DID';
4
4
  import { User, UserCardProps } from '../types';
5
5
  import TooltipAvatar from './tooltip-avatar';
6
6
  import { renderTopRight } from '../components';
@@ -32,8 +32,22 @@ function MinimalContent(props: MinimalContentProps) {
32
32
  } = props;
33
33
 
34
34
  return (
35
- <Box display="flex" justifyContent="space-between" alignItems="center" className="user-card__avatar-content">
36
- <Box display="flex" justifyContent="flex-start" alignItems="center" gap={1} flex={1} minWidth={0}>
35
+ <Box
36
+ className="user-card__avatar-content"
37
+ sx={{
38
+ display: 'flex',
39
+ justifyContent: 'space-between',
40
+ alignItems: 'center',
41
+ }}>
42
+ <Box
43
+ sx={{
44
+ display: 'flex',
45
+ justifyContent: 'flex-start',
46
+ alignItems: 'center',
47
+ gap: 1,
48
+ flex: 1,
49
+ minWidth: 0,
50
+ }}>
37
51
  <TooltipAvatar
38
52
  user={user}
39
53
  avatarSize={avatarSize}
@@ -45,12 +59,14 @@ function MinimalContent(props: MinimalContentProps) {
45
59
  <Box>
46
60
  <Typography
47
61
  variant="subtitle1"
48
- fontWeight={500}
49
- color="text.primary"
50
62
  className="user-card__full-name-label"
51
- fontSize={18}
52
63
  noWrap
53
- sx={{ lineHeight: 1.1 }}>
64
+ sx={{
65
+ fontWeight: 500,
66
+ color: 'text.primary',
67
+ fontSize: 18,
68
+ lineHeight: 1.1,
69
+ }}>
54
70
  {renderName ? (
55
71
  renderName(user)
56
72
  ) : (
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import { Box, Tooltip } from '@mui/material';
2
+ import { Zoom, Tooltip } from '@mui/material';
3
3
 
4
- import Zoom from '@mui/material/Zoom';
5
4
  import { User, UserCardProps } from '../types';
6
5
  import { renderAvatar } from '../components';
7
6
 
@@ -53,18 +52,22 @@ function TooltipAvatar({
53
52
  title={renderCardContent ? renderCardContent() : null}
54
53
  placement="bottom"
55
54
  arrow={false}
56
- TransitionComponent={Zoom}
57
- PopperProps={{
58
- sx: {
59
- '& .MuiTooltip-tooltip': {
60
- backgroundColor: 'transparent',
61
- p: 0,
62
- maxWidth: 500,
63
- zIndex: 1000,
55
+ {...(tooltipProps ?? {})}
56
+ slotProps={{
57
+ popper: {
58
+ sx: {
59
+ '& .MuiTooltip-tooltip': {
60
+ backgroundColor: 'transparent',
61
+ p: 0,
62
+ maxWidth: 500,
63
+ zIndex: 1000,
64
+ },
64
65
  },
65
66
  },
66
67
  }}
67
- {...(tooltipProps ?? {})}>
68
+ slots={{
69
+ transition: Zoom,
70
+ }}>
68
71
  {avatarElement}
69
72
  </Tooltip>
70
73
  );
@@ -0,0 +1,18 @@
1
+ export { default as Basic } from './demo/basic';
2
+ export { default as AvatarWithHover } from './demo/avatarWithHover';
3
+ export { default as DetailedCard } from './demo/detailedCard';
4
+ export { default as DidControl } from './demo/didControl';
5
+ export { default as TopRightContent } from './demo/topRightContent';
6
+ export { default as CustomFooter } from './demo/customFooter';
7
+ export { default as DidOnlyAvatar } from './demo/did-only-avatar';
8
+
9
+ export default {
10
+ title: 'Data Display/UserCard',
11
+ parameters: {
12
+ docs: {
13
+ description: {
14
+ component: 'Used to display user information.',
15
+ },
16
+ },
17
+ },
18
+ };
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
- import Box from '@mui/material/Box';
3
- import MaterialAvatar from '@mui/material/Avatar';
2
+ import { Box, Avatar as MaterialAvatar } from '@mui/material';
4
3
  import Avatar from '../Avatar';
5
4
  import { User, UserCardProps } from './types';
6
5
  import { createNameOnlyAvatar } from './utils';
@@ -43,7 +42,11 @@ export const renderAvatar = (
43
42
 
44
43
  // 显示用户头像
45
44
  return (
46
- <Box className="user-card__avatar" display="flex">
45
+ <Box
46
+ className="user-card__avatar"
47
+ sx={{
48
+ display: 'flex',
49
+ }}>
47
50
  <Avatar
48
51
  size={avatarSize}
49
52
  did={user.did}
@@ -1,5 +1,4 @@
1
1
  import { useEffect, useRef, useState } from 'react';
2
- import { toTypeInfo } from '@arcblock/did';
3
2
  import type { User } from './types';
4
3
  import { UserCardProps, CardType } from './types';
5
4
  import AvatarOnlyCard from './Cards/avatar-only';
@@ -0,0 +1,5 @@
1
+ export { default as WebWalletOpener } from './demo/web-wallet-opener';
2
+
3
+ export default {
4
+ title: 'ArcBlock/WebWalletOpener',
5
+ };
package/src/Util/index.ts CHANGED
@@ -8,6 +8,14 @@ import pRetry from 'p-retry';
8
8
  import Cookies from 'js-cookie';
9
9
  import colorConvert from 'color-convert';
10
10
  import deepmerge, { type DeepmergeOptions } from '@mui/utils/deepmerge';
11
+ import dayjs from 'dayjs';
12
+ import 'dayjs/locale/zh-cn';
13
+ import utc from 'dayjs/plugin/utc';
14
+ import timezone from 'dayjs/plugin/timezone';
15
+ import relativeTime from 'dayjs/plugin/relativeTime';
16
+ import updateLocale from 'dayjs/plugin/updateLocale';
17
+ import localizedFormat from 'dayjs/plugin/localizedFormat';
18
+
11
19
  import { DID_PREFIX, BLOCKLET_SERVICE_PATH_PREFIX } from './constant';
12
20
  import type { $TSFixMe, Locale } from '../type';
13
21
  import { getFederatedEnabled } from './federated';
@@ -164,9 +172,10 @@ export function mergeProps<P extends object>(
164
172
  jsonAttrs: string[] = []
165
173
  ) {
166
174
  const newProps = Object.assign({}, props);
167
- Object.keys(component.defaultProps || {}).forEach((x) => {
175
+ const defaultProps = (component as any).defaultProps || {};
176
+ Object.keys(defaultProps).forEach((x) => {
168
177
  if (typeof newProps[x] === 'string' && newProps[x].indexOf('::prop::') === 0) {
169
- newProps[x] = component.defaultProps![x as keyof P];
178
+ newProps[x] = defaultProps[x];
170
179
  }
171
180
  });
172
181
 
@@ -248,7 +257,32 @@ const createDateFormatter =
248
257
  (format: string) =>
249
258
  (date: string | number | Date, { locale, tz, isUtc }: { locale?: Locale; tz?: string; isUtc?: boolean } = {}) => {
250
259
  if (dateTool === null) {
251
- throw new Error('call setDateTool to set the date tool library, such as: setDateTool(dayjs)');
260
+ // 作为默认的 dateTool 使用
261
+ dayjs.extend(localizedFormat);
262
+ dayjs.extend(utc);
263
+ dayjs.extend(timezone);
264
+ dayjs.extend(updateLocale);
265
+ dayjs.extend(relativeTime);
266
+ dayjs.updateLocale('zh-cn', {
267
+ // copy with https://github.com/iamkun/dayjs/blob/dev/src/locale/zh-cn.js
268
+ relativeTime: {
269
+ future: '%s后',
270
+ past: '%s前',
271
+ s: '几秒',
272
+ m: '1 分钟',
273
+ mm: '%d 分钟',
274
+ h: '1 小时',
275
+ hh: '%d 小时',
276
+ d: '1 天',
277
+ dd: '%d 天',
278
+ M: '1 个月',
279
+ MM: '%d 个月',
280
+ y: '1 年',
281
+ yy: '%d 年',
282
+ },
283
+ });
284
+ setDateTool(dayjs);
285
+ // throw new Error('call setDateTool to set the date tool library, such as: setDateTool(dayjs)');
252
286
  }
253
287
 
254
288
  if (isNil(date) || date === '') {
@@ -45,20 +45,6 @@ export default function VerificationCode({
45
45
  key={`code-input-${index}`}
46
46
  value={trim(code[index]) || ''}
47
47
  type="number"
48
- inputProps={{
49
- maxLength: 1,
50
- sx: {
51
- textAlign: 'center',
52
- fontSize: '1.5rem',
53
- '&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
54
- WebkitAppearance: 'none',
55
- margin: 0,
56
- },
57
- },
58
- autoComplete: 'off',
59
- pattern: '[0-9]',
60
- inputMode: 'numeric',
61
- }}
62
48
  onChange={(e) => {
63
49
  const newCode = code.split('');
64
50
  newCode[index] = e.target.value;
@@ -74,6 +60,22 @@ export default function VerificationCode({
74
60
  }}
75
61
  required
76
62
  autoComplete="off"
63
+ slotProps={{
64
+ htmlInput: {
65
+ maxLength: 1,
66
+ sx: {
67
+ textAlign: 'center',
68
+ fontSize: '1.5rem',
69
+ '&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
70
+ WebkitAppearance: 'none',
71
+ margin: 0,
72
+ },
73
+ },
74
+ autoComplete: 'off',
75
+ pattern: '[0-9]',
76
+ inputMode: 'numeric',
77
+ },
78
+ }}
77
79
  />
78
80
  ))}
79
81
  </Box>
@@ -0,0 +1,6 @@
1
+ export { default as Youtube } from './demo/youtube';
2
+ export { default as Tentent } from './demo/tentent';
3
+
4
+ export default {
5
+ title: 'Data Display/Video',
6
+ };
@@ -1,6 +1,7 @@
1
1
  import { useState } from 'react';
2
2
  import Player from 'react-player';
3
- import CircularProgress from '@mui/material/CircularProgress';
3
+ import { CircularProgress } from '@mui/material';
4
+ import isUndefined from 'lodash/isUndefined';
4
5
 
5
6
  import { mergeProps } from '../Util';
6
7
  import { styled } from '../Theme';
@@ -12,7 +13,20 @@ export interface VideoProps {
12
13
  style?: React.CSSProperties;
13
14
  }
14
15
 
15
- export default function Video(props: VideoProps) {
16
+ export default function Video(rawProps: VideoProps) {
17
+ const props = Object.assign({}, rawProps);
18
+ // eslint-disable-next-line react/prop-types
19
+ if (isUndefined(props.width)) {
20
+ props.width = 640;
21
+ }
22
+ // eslint-disable-next-line react/prop-types
23
+ if (isUndefined(props.height)) {
24
+ props.height = 400;
25
+ }
26
+ // eslint-disable-next-line react/prop-types
27
+ if (isUndefined(props.style)) {
28
+ props.style = {};
29
+ }
16
30
  const newProps = mergeProps(props, Video, ['style']);
17
31
  const { url, width, height, style } = newProps;
18
32
  const [loaded, setLoaded] = useState(false);
@@ -40,12 +54,6 @@ export default function Video(props: VideoProps) {
40
54
  );
41
55
  }
42
56
 
43
- Video.defaultProps = {
44
- width: 640,
45
- height: 400,
46
- style: {},
47
- };
48
-
49
57
  const Placeholder = styled('div')`
50
58
  background-color: #222222;
51
59
  display: flex;
@@ -0,0 +1,8 @@
1
+ export { default as DifferentSizes } from './demo/action-different-sizes';
2
+ export { default as DifferentAction } from './demo/action-different-action';
3
+ export { default as TextLayout } from './demo/action-text-layout';
4
+ export { default as CustomizeStyle } from './demo/action-customize-style';
5
+
6
+ export default {
7
+ title: 'ArcBlock/Wallet/Action',
8
+ };
@@ -1,4 +1,5 @@
1
- import Typography from '@mui/material/Typography';
1
+ import { Typography } from '@mui/material';
2
+ import isUndefined from 'lodash/isUndefined';
2
3
 
3
4
  import logo from './images/abtwallet.png';
4
5
  import { mergeProps } from '../Util';
@@ -13,7 +14,24 @@ export interface WalletActionProps {
13
14
  style?: React.CSSProperties;
14
15
  }
15
16
 
16
- export default function WalletAction(props: WalletActionProps) {
17
+ export default function WalletAction(rawProps: WalletActionProps) {
18
+ const props = Object.assign({}, rawProps);
19
+ // eslint-disable-next-line react/prop-types
20
+ if (isUndefined(props.action)) {
21
+ props.action = 'Login';
22
+ }
23
+ // eslint-disable-next-line react/prop-types
24
+ if (isUndefined(props.textLayout)) {
25
+ props.textLayout = 'vertical';
26
+ }
27
+ // eslint-disable-next-line react/prop-types
28
+ if (isUndefined(props.size)) {
29
+ props.size = 'medium';
30
+ }
31
+ // eslint-disable-next-line react/prop-types
32
+ if (isUndefined(props.style)) {
33
+ props.style = {};
34
+ }
17
35
  const newProps = mergeProps(props, WalletAction, ['style']);
18
36
  const { action, size, textLayout, style = {}, ...rest } = newProps;
19
37
  const styles = Object.assign({}, style, { border: 'none', padding: 0 });
@@ -38,13 +56,6 @@ export default function WalletAction(props: WalletActionProps) {
38
56
  );
39
57
  }
40
58
 
41
- WalletAction.defaultProps = {
42
- action: 'Login',
43
- textLayout: 'vertical' as const,
44
- size: 'medium' as const,
45
- style: {},
46
- };
47
-
48
59
  const sizes = {
49
60
  logo: {
50
61
  small: 32,
@@ -0,0 +1,9 @@
1
+ export { default as VerticalLayout } from './demo/download-vertical-layout';
2
+ export { default as CustomTitle } from './demo/download-custom-title';
3
+ export { default as HorizontalLayout1 } from './demo/download-horizontal-layout1';
4
+ export { default as HorizontalLayout2 } from './demo/download-horizontal-layout2';
5
+ export { default as HorizontalLayout3 } from './demo/download-horizontal-layout3';
6
+
7
+ export default {
8
+ title: 'ArcBlock/Wallet/Download',
9
+ };
@@ -1,6 +1,6 @@
1
- import Typography from '@mui/material/Typography';
2
1
  import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
3
- import { type SxProps } from '@mui/material';
2
+ import { Typography, type SxProps } from '@mui/material';
3
+ import isUndefined from 'lodash/isUndefined';
4
4
 
5
5
  import AppStoreIcon from './images/app-store.svg?react';
6
6
  import GooglePlayIcon from './images/google-play.svg?react';
@@ -23,8 +23,41 @@ export interface WalletDownloadProps extends React.HTMLAttributes<HTMLDivElement
23
23
  sx?: SxProps;
24
24
  }
25
25
 
26
- export default function WalletDownload(props: WalletDownloadProps) {
26
+ export default function WalletDownload(rawProps: WalletDownloadProps) {
27
27
  const browser = useBrowser();
28
+ const props = Object.assign({}, rawProps);
29
+ // eslint-disable-next-line react/prop-types
30
+ if (isUndefined(props.title)) {
31
+ props.title = 'Download DID Wallet';
32
+ }
33
+ // eslint-disable-next-line react/prop-types
34
+ if (isUndefined(props.layout)) {
35
+ props.layout = 'vertical';
36
+ }
37
+ // eslint-disable-next-line react/prop-types
38
+ if (isUndefined(props.storeLayout)) {
39
+ props.storeLayout = 'horizontal';
40
+ }
41
+ // eslint-disable-next-line react/prop-types
42
+ if (isUndefined(props.locale)) {
43
+ props.locale = 'zh';
44
+ }
45
+ // eslint-disable-next-line react/prop-types
46
+ if (isUndefined(props.iosLink)) {
47
+ props.iosLink = 'https://itunes.apple.com/app/id1460083542';
48
+ }
49
+ // eslint-disable-next-line react/prop-types
50
+ if (isUndefined(props.androidLink)) {
51
+ props.androidLink = 'https://play.google.com/store/apps/details?id=com.arcblock.wallet.app.product';
52
+ }
53
+ // eslint-disable-next-line react/prop-types
54
+ if (isUndefined(props.androidDownLoadUrl)) {
55
+ props.androidDownLoadUrl = 'https://releases.arcblockio.cn/arcwallet_android/latest/abtwallet.apk';
56
+ }
57
+ // eslint-disable-next-line react/prop-types
58
+ if (isUndefined(props.style)) {
59
+ props.style = {};
60
+ }
28
61
  const newProps = mergeProps(props, WalletDownload, ['style']) as WalletDownloadProps;
29
62
  const { title, children, iosLink, androidLink, androidDownLoadUrl, locale, ...rest } = newProps;
30
63
 
@@ -87,17 +120,6 @@ export default function WalletDownload(props: WalletDownloadProps) {
87
120
  );
88
121
  }
89
122
 
90
- WalletDownload.defaultProps = {
91
- title: 'Download DID Wallet',
92
- layout: 'vertical',
93
- storeLayout: 'horizontal',
94
- iosLink: 'https://itunes.apple.com/app/id1460083542',
95
- androidLink: 'https://play.google.com/store/apps/details?id=com.arcblock.wallet.app.product',
96
- androidDownLoadUrl: 'https://releases.arcblockio.cn/arcwallet_android/latest/abtwallet.apk',
97
- style: {},
98
- locale: 'zh',
99
- } as const;
100
-
101
123
  type ContainerProps = {
102
124
  layout?: WalletDownloadProps['layout'];
103
125
  storeLayout?: WalletDownloadProps['storeLayout'];
@@ -1,5 +1,5 @@
1
1
  import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
2
- import Fab from '@mui/material/Fab';
2
+ import { Fab } from '@mui/material';
3
3
 
4
4
  import { styled } from '../Theme';
5
5
  import type { Locale } from '../type';
@@ -0,0 +1,5 @@
1
+ export { default as OpenInWallet } from './demo/open-in-wallet';
2
+
3
+ export default {
4
+ title: 'ArcBlock/Wallet/OpenInWallet',
5
+ };
@@ -1,5 +1,4 @@
1
- import Typography from '@mui/material/Typography';
2
- import Dialog from '@mui/material/Dialog';
1
+ import { Typography, Dialog } from '@mui/material';
3
2
  import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
4
3
 
5
4
  import IosImage from './images/ios.png';