@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,5 +1,5 @@
1
1
  /* eslint-disable no-prototype-builtins */
2
- import { createContext, useState, useEffect, useContext, useRef, useCallback, ReactNode } from 'react';
2
+ import { createContext, useState, useEffect, use, useRef, useCallback, ReactNode } from 'react';
3
3
  import get from 'lodash/get';
4
4
  import Cookie from 'js-cookie';
5
5
 
@@ -149,7 +149,7 @@ function LocaleProvider({
149
149
  }
150
150
 
151
151
  function useLocaleContext() {
152
- const context = useContext(LocaleContext);
152
+ const context = use(LocaleContext);
153
153
  return context;
154
154
  }
155
155
 
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable react/jsx-no-bind */
2
- import React, { useState, useContext, useRef, useMemo } from 'react';
2
+ import React, { useState, use, useRef, useMemo } from 'react';
3
3
  import {
4
4
  Button,
5
5
  Typography,
@@ -14,10 +14,9 @@ import {
14
14
  import { Icon as IconifyIcon } from '@iconify/react';
15
15
  import CheckIcon from '@iconify-icons/material-symbols/check';
16
16
  import LanguageIcon from 'iconify-icons-material-symbols-400/language';
17
- import noop from 'lodash/noop';
18
17
 
19
18
  import { LocaleContext } from './context';
20
- import { styled, useTheme } from '../Theme';
19
+ import { styled } from '../Theme';
21
20
  import type { Locale } from '../type';
22
21
  import { mergeSx } from '../Util/style';
23
22
 
@@ -31,20 +30,10 @@ export interface LocaleSelectorProps extends Omit<React.HTMLAttributes<HTMLDivEl
31
30
  }
32
31
 
33
32
  export default function LocaleSelector(props: LocaleSelectorProps) {
34
- const {
35
- showText = true,
36
- popperProps = {},
37
- popperType = 'click',
38
- icon: Icon,
39
- size = 24,
40
- onChange = noop,
41
- ...rest
42
- } = props;
43
- const { locale, changeLocale, languages } = useContext(LocaleContext);
33
+ const { showText = true, popperProps = {}, popperType = 'click', icon: Icon, size = 24, ...rest } = props;
34
+ const { locale, changeLocale, languages } = use(LocaleContext);
44
35
  const anchorEl = useRef<HTMLButtonElement>(null);
45
36
  const [open, setOpen] = useState(false);
46
- const theme = useTheme();
47
- const dark = theme?.palette?.mode === 'dark';
48
37
 
49
38
  const onSelect = (newLocale: Locale) => {
50
39
  changeLocale(newLocale);
@@ -88,9 +77,14 @@ export default function LocaleSelector(props: LocaleSelectorProps) {
88
77
  }, [Icon, size]);
89
78
 
90
79
  return (
80
+ // @ts-ignore
91
81
  <Wrapper {...rest} {...handleEventProps}>
92
82
  <ButtonComponent ref={anchorEl} className="trigger" role="button" aria-label="Locale selector button">
93
- <Box display="flex" alignItems="center">
83
+ <Box
84
+ sx={{
85
+ display: 'flex',
86
+ alignItems: 'center',
87
+ }}>
94
88
  {renderIcon}
95
89
 
96
90
  {showText ? (
@@ -102,7 +96,6 @@ export default function LocaleSelector(props: LocaleSelectorProps) {
102
96
  )}
103
97
  </Box>
104
98
  </ButtonComponent>
105
-
106
99
  <Popper
107
100
  open={open}
108
101
  anchorEl={anchorEl.current}
@@ -0,0 +1,23 @@
1
+ export { default as DarkMode } from './demo/dark-mode';
2
+ export { default as DarkModeLogoOnly } from './demo/dark-mode-logo-only';
3
+ export { default as DarkModeHorizontal } from './demo/dark-mode-horizontal';
4
+ export { default as WithStyling } from './demo/with-styling';
5
+ export { default as LightMode } from './demo/light-mode';
6
+ export { default as LightModeLogoOnly } from './demo/light-mode-logo-only';
7
+ export { default as LightModeHorizontal } from './demo/light-mode-horizontal';
8
+
9
+ export default {
10
+ title: 'ArcBlock/Logo',
11
+
12
+ parameters: {
13
+ docs: {
14
+ description: {
15
+ component: 'Arcblock Logo',
16
+ },
17
+ },
18
+ design: {
19
+ type: 'figma',
20
+ url: 'https://www.figma.com/file/E8TSBWCOyXzETmVOjzbqvw/ArcBlock-UI-Kit?node-id=2412%3A11100',
21
+ },
22
+ },
23
+ };
@@ -0,0 +1,29 @@
1
+ import { Box, Container } from '@mui/material';
2
+ import { ThemeProvider } from '../Theme';
3
+ import { ThemeModeToggle } from '../Config';
4
+
5
+ export { default as Basic } from './demo/basic';
6
+ export { default as HtmlValueAndName } from './demo/html-value-and-name';
7
+
8
+ export default {
9
+ title: 'Data Display/Metric',
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: 'The Metric component is usually used to display statistics on dashboard pages.',
14
+ },
15
+ },
16
+ },
17
+ decorators: [
18
+ (StoryFn) => (
19
+ <ThemeProvider prefer="system">
20
+ <Container>
21
+ <Box sx={{ mb: 2 }}>
22
+ <ThemeModeToggle />
23
+ </Box>
24
+ <StoryFn />
25
+ </Container>
26
+ </ThemeProvider>
27
+ ),
28
+ ],
29
+ };
@@ -0,0 +1,30 @@
1
+ export { default as Basic } from './demo/basic';
2
+ export { default as FixedSize } from './demo/fixed-size';
3
+ export { default as Inset } from './demo/inset';
4
+ export { default as AspectRatio } from './demo/aspect-ratio';
5
+ export { default as NftTypeUrl } from './demo/nft-type-url';
6
+ export { default as MinimumLoadingTime } from './demo/minimum-loading-time';
7
+ export { default as WithForeignObject } from './demo/with-foreign-object';
8
+ export { default as NftTypeSvg } from './demo/nft-type-svg';
9
+ export { default as CustomLoading } from './demo/custom-loading';
10
+ export { default as SvgValidation } from './demo/svg-validation';
11
+ export { default as BrokenImage } from './demo/broken-image';
12
+ export { default as PreferredSvgEmbedderProp } from './demo/preferred-svg-embedder-prop';
13
+ export { default as ImageFilter } from './demo/image-filter';
14
+
15
+ /**
16
+ * @type { import('@storybook/react-vite').Story}
17
+ */
18
+ export default {
19
+ title: 'Data Display/NFTDisplay',
20
+ argTypes: {
21
+ imageFilter: {
22
+ control: 'object',
23
+ defaultValue: {
24
+ imageFilter: 'resize',
25
+ w: '500',
26
+ f: 'webp',
27
+ },
28
+ },
29
+ },
30
+ };
@@ -1,4 +1,4 @@
1
- import Box from '@mui/material/Box';
1
+ import { Box } from '@mui/material';
2
2
  import { styled } from '../Theme';
3
3
 
4
4
  import NFTBroken from './NFTBroken.svg?react';
@@ -1,4 +1,5 @@
1
1
  import axios, { AxiosAdapter, type AxiosResponse } from 'axios';
2
+ // eslint-disable-next-line import/extensions
2
3
  import adapter from 'axios/lib/adapters/xhr.js';
3
4
 
4
5
  const cache = new Map();
@@ -100,7 +100,6 @@ function NFTDisplay({
100
100
  );
101
101
 
102
102
  const parsed = useRef<Record<string, any>>({});
103
-
104
103
  try {
105
104
  // 如果是 raw data 先解析
106
105
  if (typeof data === 'string') {
@@ -0,0 +1,17 @@
1
+ export { default as BasicRouterLink } from './demo/basic-router-link';
2
+ export { default as NestedNavigation } from './demo/nested-navigation';
3
+ export { default as ActiveState } from './demo/active-state';
4
+ export { default as UseItemsProp } from './demo/use-items-prop';
5
+ export { default as LabelIconOnly } from './demo/label-icon-only';
6
+ export { default as InlineMode } from './demo/inline-mode';
7
+
8
+ export default {
9
+ title: 'Navigation/NavMenu',
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: 'The NavMenu component is used to provide a means to navigate through an app or website.',
14
+ },
15
+ },
16
+ },
17
+ };
@@ -1,4 +1,4 @@
1
- import { createContext, useContext } from 'react';
1
+ import { createContext, use } from 'react';
2
2
 
3
3
  export type NavMenuContextValue = {
4
4
  activeId: string | null;
@@ -16,11 +16,11 @@ export type NavMenuContextValue = {
16
16
  const NavMenuContext = createContext<NavMenuContextValue | null>(null);
17
17
 
18
18
  export function NavMenuProvider({ value, children }: { value: NavMenuContextValue; children: React.ReactNode }) {
19
- return <NavMenuContext.Provider value={value}>{children}</NavMenuContext.Provider>;
19
+ return <NavMenuContext value={value}>{children}</NavMenuContext>;
20
20
  }
21
21
 
22
22
  export function useNavMenuContext() {
23
- const context = useContext(NavMenuContext);
23
+ const context = use(NavMenuContext);
24
24
 
25
25
  if (!context) {
26
26
  throw new Error('NavMenuContext is not found');
@@ -1,9 +1,14 @@
1
- import { Children, cloneElement, useEffect, useRef, forwardRef, useLayoutEffect, isValidElement } from 'react';
1
+ import { Children, cloneElement, useEffect, useRef, useLayoutEffect, isValidElement } from 'react';
2
2
  import { ClickAwayListener, type SxProps } from '@mui/material';
3
3
  import clsx from 'clsx';
4
- import { MoreHoriz as MoreHorizIcon, ExpandMore as ExpandMoreIcon, Menu as MenuIcon } from '@mui/icons-material';
5
- import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
4
+ import {
5
+ MoreHoriz as MoreHorizIcon,
6
+ ExpandMore as ExpandMoreIcon,
7
+ Menu as MenuIcon,
8
+ ArrowForward as ArrowForwardIcon,
9
+ } from '@mui/icons-material';
6
10
  import { useCreation, useMemoizedFn, useReactive, useSize, useThrottleFn } from 'ahooks';
11
+ import noop from 'lodash/noop';
7
12
  import { NavMenuProvider, useNavMenuContext } from './nav-menu-context';
8
13
  import { NavMenuRoot, NavMenuItem, NavMenuSub, NavMenuSubList, NavMenuStyled } from './style';
9
14
  import { SubContainer } from './sub-container';
@@ -18,7 +23,7 @@ function filterItems(children: React.ReactNode) {
18
23
  return false;
19
24
  }
20
25
  return child.type === Item || child.type === Sub;
21
- }) as React.ReactElement[];
26
+ }) as React.ReactElement<any>[];
22
27
  }
23
28
  return null;
24
29
  }
@@ -125,7 +130,7 @@ function NavMenu({
125
130
  return isAllItemsHidden ? <MenuIcon /> : <MoreHorizIcon />;
126
131
  }, [isAllItemsHidden]);
127
132
 
128
- const renderChildrenWithRef = (childrenElement: React.ReactElement[]) => {
133
+ const renderChildrenWithRef = (childrenElement: React.ReactElement<any>[]) => {
129
134
  return Children.map(childrenElement, (child, index) => {
130
135
  return cloneElement(child, {
131
136
  ref: (el: HTMLElement) => {
@@ -220,7 +225,7 @@ function NavMenu({
220
225
  variant={isTopLevel ? 'default' : 'panel'}
221
226
  ref={
222
227
  isTopLevel
223
- ? (el) => {
228
+ ? (el: HTMLElement) => {
224
229
  itemRefs.current[index] = el!;
225
230
  }
226
231
  : undefined
@@ -246,7 +251,7 @@ function NavMenu({
246
251
  variant={item.variant}
247
252
  ref={
248
253
  isTopLevel
249
- ? (el) => {
254
+ ? (el: HTMLElement) => {
250
255
  itemRefs.current[index] = el!;
251
256
  }
252
257
  : undefined
@@ -260,7 +265,7 @@ function NavMenu({
260
265
  : children?.slice(-currentState.hiddenItemCount);
261
266
 
262
267
  // 当前展开的子菜单
263
- const openedId = currentState.openedIds[0];
268
+ // const openedId = currentState.openedIds[0];
264
269
 
265
270
  return (
266
271
  <NavMenuProvider value={contextValue}>
@@ -288,135 +293,143 @@ export interface ItemProps extends React.HTMLAttributes<HTMLLIElement> {
288
293
  onClick?: () => void;
289
294
  }
290
295
 
291
- export const Item = forwardRef<HTMLLIElement, ItemProps>(
292
- (
293
- {
294
- id: _id = '',
295
- icon = null,
296
- label = '',
297
- description,
298
- active = false,
299
- variant = 'default',
300
- onClick = null,
301
- ...rest
302
- },
303
- ref
304
- ) => {
305
- const id = useUniqueId(_id);
306
- const { mode, activeId, activate, activeTextColor } = useNavMenuContext();
307
- const classes = clsx(
308
- 'navmenu-item',
309
- { 'navmenu-item--active': activeId === id },
310
- `navmenu-item--${mode}`,
311
- `navmenu-item--${variant}`,
312
- rest.className
313
- );
314
- useEffect(() => {
315
- if (active) {
316
- activate?.(id);
317
- }
318
- // eslint-disable-next-line react-hooks/exhaustive-deps
319
- }, [active]);
320
-
321
- const handleClick = () => {
322
- onClick?.();
296
+ export function Item({
297
+ ref,
298
+ id: _id = '',
299
+ icon = null,
300
+ label = '',
301
+ description,
302
+ active = false,
303
+ variant = 'default',
304
+ onClick = noop,
305
+ ...rest
306
+ }: ItemProps & {
307
+ ref?: React.Ref<unknown>;
308
+ }) {
309
+ const id = useUniqueId(_id);
310
+ const { mode, activeId, activate, activeTextColor } = useNavMenuContext();
311
+ const classes = clsx(
312
+ 'navmenu-item',
313
+ { 'navmenu-item--active': activeId === id },
314
+ `navmenu-item--${mode}`,
315
+ `navmenu-item--${variant}`,
316
+ rest.className
317
+ );
318
+ useEffect(() => {
319
+ if (active) {
323
320
  activate?.(id);
324
- };
321
+ }
322
+ // eslint-disable-next-line react-hooks/exhaustive-deps
323
+ }, [active]);
325
324
 
326
- return (
327
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
328
- <NavMenuItem {...rest} className={classes} ref={ref} $activeTextColor={activeTextColor} onClick={handleClick}>
329
- {icon && <span className="navmenu-item__icon">{icon}</span>}
330
- <div className="navmenu-item__content">
331
- <span className="navmenu-item__label">
332
- {label} <ArrowForwardIcon className="navmenu-item__label-arrow" />
333
- </span>
334
- {description && <span className="navmenu-item__desc">{description}</span>}
335
- </div>
336
- </NavMenuItem>
337
- );
338
- }
339
- );
325
+ const handleClick = () => {
326
+ onClick?.();
327
+ activate?.(id);
328
+ };
329
+
330
+ return (
331
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
332
+ <NavMenuItem
333
+ {...rest}
334
+ className={classes}
335
+ ref={ref as React.Ref<HTMLLIElement>}
336
+ $activeTextColor={activeTextColor}
337
+ onClick={handleClick}>
338
+ {icon && <span className="navmenu-item__icon">{icon}</span>}
339
+ <div className="navmenu-item__content">
340
+ <span className="navmenu-item__label">
341
+ {label} <ArrowForwardIcon className="navmenu-item__label-arrow" />
342
+ </span>
343
+ {description && <span className="navmenu-item__desc">{description}</span>}
344
+ </div>
345
+ </NavMenuItem>
346
+ );
347
+ }
340
348
  Item.displayName = 'NavMenu.Item';
341
349
 
342
350
  export interface SubProps extends Omit<ItemProps, 'children' | 'active'> {
343
- children?: Array<React.ReactElement | null> | ((props: { isOpen: boolean }) => React.ReactElement | null);
351
+ children?: Array<React.ReactElement<any> | null> | ((props: { isOpen: boolean }) => React.ReactElement<any> | null);
344
352
  expandIcon?: React.ReactNode | ((props: { isOpen: boolean }) => React.ReactNode);
345
353
  }
346
354
 
347
- export const Sub = forwardRef<HTMLLIElement, SubProps>(
348
- (
349
- {
350
- id: _id = '',
351
- icon = null,
352
- label = null,
353
- description,
354
- variant = 'default',
355
- children,
356
- expandIcon = ({ isOpen }) => (
357
- <ExpandMoreIcon
358
- style={{
359
- transform: `rotate(${isOpen ? 180 : 0}deg)`,
360
- }}
361
- />
362
- ),
363
- ...rest
364
- },
365
- ref
366
- ) => {
367
- const id = useUniqueId(_id);
368
- const { openedIds, open, close, mode, activeTextColor } = useNavMenuContext();
369
- const isOpen = openedIds?.includes(id) ?? false;
370
- const isInlineMode = mode === 'inline';
371
- const classes = clsx(
372
- 'navmenu-sub',
373
- 'navmenu-item',
374
- { 'navmenu-item--panel': variant === 'panel' },
375
- { 'navmenu-sub--opened': isOpen, 'navmenu-item--inline': isInlineMode },
376
- rest.className
377
- );
355
+ export function Sub({
356
+ ref,
357
+ id: _id = '',
358
+ icon = null,
359
+ label = null,
360
+ description,
361
+ variant = 'default',
362
+ children,
363
+
364
+ expandIcon = ({ isOpen }) => (
365
+ <ExpandMoreIcon
366
+ style={{
367
+ transform: `rotate(${isOpen ? 180 : 0}deg)`,
368
+ }}
369
+ />
370
+ ),
378
371
 
379
- // 统一使用 click 事件控制收缩/伸展子菜单
380
- const props = {
381
- onClick: () => {
382
- if (openedIds?.includes(id)) {
383
- close?.(id);
384
- } else {
385
- open?.(id);
386
- }
387
- },
388
- };
389
- // inline mode, 避免点击子菜单项时触发父菜单的 open/close
390
- const containerProps = isInlineMode ? { onClick: (e: React.MouseEvent) => e.stopPropagation() } : {};
391
- const menu = (
392
- <NavMenuSub {...rest} className={classes} {...props} ref={ref} $activeTextColor={activeTextColor}>
393
- {icon && <span className="navmenu-item__icon">{icon}</span>}
394
- <div className="navmenu-item__content">
395
- <span className="navmenu-item__label">{label}</span>
396
- {description && <span className="navmenu-item__desc">{description}</span>}
397
- </div>
398
- {expandIcon && (
399
- <span className="navmenu-sub__expand-icon">
400
- {typeof expandIcon === 'function' ? expandIcon({ isOpen }) : expandIcon}
401
- </span>
402
- )}
403
- <SubContainer inline={isInlineMode} {...containerProps}>
404
- {typeof children === 'function' ? (
405
- children({ isOpen }) // 自定义渲染
406
- ) : (
407
- <NavMenuSubList className="navmenu-sub__list">{filterItems(children)}</NavMenuSubList>
408
- )}
409
- </SubContainer>
410
- </NavMenuSub>
411
- );
372
+ ...rest
373
+ }: SubProps & {
374
+ ref?: React.Ref<unknown>;
375
+ }) {
376
+ const id = useUniqueId(_id);
377
+ const { openedIds, open, close, mode, activeTextColor } = useNavMenuContext();
378
+ const isOpen = openedIds?.includes(id) ?? false;
379
+ const isInlineMode = mode === 'inline';
380
+ const classes = clsx(
381
+ 'navmenu-sub',
382
+ 'navmenu-item',
383
+ { 'navmenu-item--panel': variant === 'panel' },
384
+ { 'navmenu-sub--opened': isOpen, 'navmenu-item--inline': isInlineMode },
385
+ rest.className
386
+ );
412
387
 
413
- if (isInlineMode) {
414
- return menu;
415
- }
388
+ // 统一使用 click 事件控制收缩/伸展子菜单
389
+ const props = {
390
+ onClick: () => {
391
+ if (openedIds?.includes(id)) {
392
+ close?.(id);
393
+ } else {
394
+ open?.(id);
395
+ }
396
+ },
397
+ };
398
+ // inline mode, 避免点击子菜单项时触发父菜单的 open/close
399
+ const containerProps = isInlineMode ? { onClick: (e: React.MouseEvent) => e.stopPropagation() } : {};
400
+ const menu = (
401
+ <NavMenuSub
402
+ {...rest}
403
+ className={classes}
404
+ {...props}
405
+ ref={ref as React.Ref<HTMLLIElement>}
406
+ $activeTextColor={activeTextColor}>
407
+ {icon && <span className="navmenu-item__icon">{icon}</span>}
408
+ <div className="navmenu-item__content">
409
+ <span className="navmenu-item__label">{label}</span>
410
+ {description && <span className="navmenu-item__desc">{description}</span>}
411
+ </div>
412
+ {expandIcon && (
413
+ <span className="navmenu-sub__expand-icon">
414
+ {typeof expandIcon === 'function' ? expandIcon({ isOpen }) : expandIcon}
415
+ </span>
416
+ )}
417
+ <SubContainer inline={isInlineMode} {...containerProps}>
418
+ {typeof children === 'function' ? (
419
+ children({ isOpen }) // 自定义渲染
420
+ ) : (
421
+ <NavMenuSubList className="navmenu-sub__list">{filterItems(children)}</NavMenuSubList>
422
+ )}
423
+ </SubContainer>
424
+ </NavMenuSub>
425
+ );
416
426
 
417
- return <ClickAwayListener onClickAway={() => close?.(id)}>{menu}</ClickAwayListener>;
427
+ if (isInlineMode) {
428
+ return menu;
418
429
  }
419
- );
430
+
431
+ return <ClickAwayListener onClickAway={() => close?.(id)}>{menu}</ClickAwayListener>;
432
+ }
420
433
  Sub.displayName = 'NavMenu.Sub';
421
434
 
422
435
  NavMenu.Item = Item;
@@ -437,7 +437,13 @@ export default function Products({ className, isOpen, ...rest }: ProductsProps)
437
437
  <SubItemGroup key={group.label} label={group.label}>
438
438
  <Grid container columnSpacing={1} rowSpacing={1}>
439
439
  {group.children.map((item) => (
440
- <Grid item xs={12} md={6} lg={4} key={item.description}>
440
+ <Grid
441
+ key={item.description}
442
+ size={{
443
+ xs: 12,
444
+ md: 6,
445
+ lg: 4,
446
+ }}>
441
447
  <Item variant="panel" style={{ padding: '8px' }} {...item} />
442
448
  </Grid>
443
449
  ))}
@@ -8,7 +8,7 @@ type NavMenuProps = {
8
8
  // .navmenu
9
9
  export const NavMenuStyled = styled('nav', {
10
10
  shouldForwardProp: (prop) => prop !== '$bgColor' && prop !== '$textColor',
11
- })<NavMenuProps>(({ $bgColor, $textColor, theme }) => ({
11
+ })<NavMenuProps>(({ $textColor, theme }) => ({
12
12
  position: 'relative',
13
13
  padding: '0 16px',
14
14
  minWidth: '50px',
@@ -35,7 +35,7 @@ export interface PageScrollerProps {
35
35
  animationTimer?: number;
36
36
  blockScrollDown?: false | true;
37
37
  blockScrollUp?: false | true;
38
- children?: React.ReactElement | React.ReactElement[];
38
+ children?: React.ReactElement<any> | React.ReactElement<any>[];
39
39
  height?: number | string;
40
40
  width?: number | string;
41
41
  customPageNumber?: number;
@@ -62,7 +62,7 @@ function PageScroller({
62
62
  const [componentsToRenderLength, setComponentsToRenderLength] = useState(DEFAULT_COMPONENTS_TO_RENDER_LENGTH);
63
63
  const prevComponentIndex = usePrevious(componentIndex);
64
64
  const pageContainer = useRef<HTMLDivElement>(null);
65
- const children = Children.toArray(_children) as React.ReactElement[];
65
+ const children = Children.toArray(_children) as React.ReactElement<any>[];
66
66
 
67
67
  const addNextComponent = useCallback(
68
68
  (componentsToRenderOnMountLength?: number) => {
@@ -0,0 +1,18 @@
1
+ import FullPage from './FullPage';
2
+ import PageContain from './PageContain';
3
+
4
+ export default {
5
+ title: 'Deprecated/PageScroller',
6
+ };
7
+
8
+ export function _FullPage() {
9
+ return <FullPage />;
10
+ }
11
+
12
+ _FullPage.storyName = 'full page';
13
+
14
+ export function _PageContain() {
15
+ return <PageContain />;
16
+ }
17
+
18
+ _PageContain.storyName = 'page contain';
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
 
3
3
  export default function usePrevious<T>(value: T) {
4
- const ref = useRef<T>();
4
+ const ref = useRef<T>(undefined);
5
5
 
6
6
  useEffect(() => {
7
7
  ref.current = value;
@@ -0,0 +1,12 @@
1
+ export { default as Basic } from './demo/basic';
2
+
3
+ export default {
4
+ title: 'Data Display/PhoneInput',
5
+ parameters: {
6
+ docs: {
7
+ description: {
8
+ component: 'Used to input phone number with country code.',
9
+ },
10
+ },
11
+ },
12
+ };