@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.
- package/lib/ActionButton/ActionButton.stories.d.ts +18 -0
- package/lib/ActionButton/index.d.ts +2 -2
- package/lib/ActionButton/index.js +43 -94
- package/lib/ActivityIndicator/ActivityIndicator.stories.d.ts +8 -0
- package/lib/ActivityIndicator/index.d.ts +2 -8
- package/lib/ActivityIndicator/index.js +41 -114
- package/lib/Address/Address.stories.d.ts +16 -0
- package/lib/Address/compact-text.d.ts +4 -14
- package/lib/Address/compact-text.js +40 -98
- package/lib/Address/did-address.d.ts +5 -4
- package/lib/Address/did-address.js +94 -151
- package/lib/Address/index.d.ts +4 -2
- package/lib/Address/index.js +13 -20
- package/lib/Address/responsive-did-address.d.ts +5 -4
- package/lib/Address/responsive-did-address.js +80 -114
- package/lib/Alert/Alert.stories.d.ts +28 -0
- package/lib/Alert/index.d.ts +2 -2
- package/lib/Alert/index.js +56 -102
- package/lib/AnimationWaiter/AnimationWaiter.stories.d.ts +21 -0
- package/lib/AnimationWaiter/{dark-animation.json → dark-animation.json.js} +27 -1
- package/lib/AnimationWaiter/{default-animation.json → default-animation.json.js} +29 -1
- package/lib/AnimationWaiter/index.d.ts +3 -25
- package/lib/AnimationWaiter/index.js +107 -198
- package/lib/Async/index.d.ts +2 -4
- package/lib/Async/index.js +15 -29
- package/lib/Avatar/Avatar.stories.d.ts +11 -0
- package/lib/Avatar/did-motif.d.ts +5 -15
- package/lib/Avatar/did-motif.js +30 -65
- package/lib/Avatar/etherscan-blockies.js +42 -75
- package/lib/Avatar/index.d.ts +3 -19
- package/lib/Avatar/index.js +114 -180
- package/lib/Badge/Badge.stories.d.ts +13 -0
- package/lib/Badge/index.d.ts +3 -3
- package/lib/Badge/index.js +43 -83
- package/lib/Blocklet/Blocklet.stories.d.ts +17 -0
- package/lib/Blocklet/blocklet.d.ts +2 -28
- package/lib/Blocklet/blocklet.js +108 -191
- package/lib/Blocklet/index.d.ts +2 -3
- package/lib/Blocklet/index.js +7 -4
- package/lib/Blocklet/utils.d.ts +1 -1
- package/lib/Blocklet/utils.js +10 -10
- package/lib/BlockletContext/index.d.ts +3 -3
- package/lib/BlockletContext/index.js +32 -57
- package/lib/BlockletNFT/BlockletNFT.stories.d.ts +17 -0
- package/lib/BlockletNFT/index.d.ts +3 -38
- package/lib/BlockletNFT/index.js +123 -245
- package/lib/BlockletV2/Blocklet.stories.d.ts +18 -0
- package/lib/BlockletV2/blocklet.d.ts +2 -2
- package/lib/BlockletV2/blocklet.js +188 -213
- package/lib/BlockletV2/components/icon-text.d.ts +2 -2
- package/lib/BlockletV2/components/icon-text.js +43 -33
- package/lib/BlockletV2/components/tooltip-icon.js +46 -36
- package/lib/BlockletV2/index.d.ts +3 -3
- package/lib/BlockletV2/index.js +9 -5
- package/lib/BlockletV2/utils.d.ts +1 -1
- package/lib/BlockletV2/utils.js +13 -25
- package/lib/Button/Button.stories.d.ts +19 -0
- package/lib/Button/index.d.ts +1 -1
- package/lib/Button/index.js +6 -8
- package/lib/Button/wrap.d.ts +3 -3
- package/lib/Button/wrap.js +48 -131
- package/lib/ButtonGroup/index.d.ts +2 -2
- package/lib/ButtonGroup/index.js +6 -16
- package/lib/CardSelector/index.js +51 -94
- package/lib/Center/Center.stories.d.ts +18 -0
- package/lib/Center/index.js +15 -18
- package/lib/ClickToCopy/ClickToCopy.stories.d.ts +16 -0
- package/lib/ClickToCopy/copy-button.d.ts +3 -2
- package/lib/ClickToCopy/copy-button.js +19 -58
- package/lib/ClickToCopy/hook.d.ts +2 -2
- package/lib/ClickToCopy/hook.js +23 -32
- package/lib/ClickToCopy/index.d.ts +3 -14
- package/lib/ClickToCopy/index.js +23 -75
- package/lib/CloseButton/index.d.ts +1 -1
- package/lib/CloseButton/index.js +34 -28
- package/lib/CodeBlock/CodeBlock.stories.d.ts +20 -0
- package/lib/CodeBlock/LightBox.d.ts +4 -4
- package/lib/CodeBlock/LightBox.js +5 -4
- package/lib/CodeBlock/index.d.ts +1 -2
- package/lib/CodeBlock/index.js +96 -127
- package/lib/Colors/Colors.stories.d.ts +34 -0
- package/lib/Colors/index.js +8 -4
- package/lib/Colors/themes/default.d.ts +1 -1
- package/lib/Colors/themes/default.js +5 -7
- package/lib/Colors/themes/did-connect.js +43 -44
- package/lib/Colors/themes/temp.js +38 -39
- package/lib/Config/Config.stories.d.ts +14 -0
- package/lib/Config/config-provider.d.ts +8 -8
- package/lib/Config/config-provider.js +50 -44
- package/lib/Config/index.js +7 -2
- package/lib/Config/theme-mode-toggle.js +12 -27
- package/lib/ContactForm/ContactForm.stories.d.ts +23 -0
- package/lib/ContactForm/index.d.ts +2 -1
- package/lib/ContactForm/index.js +137 -164
- package/lib/CookieConsent/CookieConsent.stories.d.ts +18 -0
- package/lib/CookieConsent/index.d.ts +2 -2
- package/lib/CookieConsent/index.js +44 -73
- package/lib/CountDown/CountDown.stories.d.ts +14 -0
- package/lib/CountDown/index.d.ts +2 -2
- package/lib/CountDown/index.js +52 -124
- package/lib/DID/DID.stories.d.ts +15 -0
- package/lib/DID/index.d.ts +3 -1
- package/lib/DID/index.js +262 -327
- package/lib/DIDConnect/app-icon.js +26 -31
- package/lib/DIDConnect/app-info-item.js +76 -82
- package/lib/DIDConnect/auth-apps/auth-apps-info.js +71 -63
- package/lib/DIDConnect/auth-apps/index.d.ts +2 -2
- package/lib/DIDConnect/auth-apps/index.js +184 -183
- package/lib/DIDConnect/did-connect-container.js +231 -247
- package/lib/DIDConnect/did-connect-footer.js +66 -68
- package/lib/DIDConnect/did-connect-logo.js +10 -11
- package/lib/DIDConnect/index.js +22 -10
- package/lib/DIDConnect/landing-page.d.ts +1 -1
- package/lib/DIDConnect/landing-page.js +165 -189
- package/lib/DIDConnect/powered-by.js +55 -46
- package/lib/DIDConnect/request-storage-access-api-dialog.d.ts +5 -2
- package/lib/DIDConnect/request-storage-access-api-dialog.js +230 -292
- package/lib/DIDConnect/with-container.js +200 -236
- package/lib/DIDConnect/with-ux-theme.js +15 -22
- package/lib/Datatable/CustomToolbar.d.ts +1 -15
- package/lib/Datatable/CustomToolbar.js +232 -313
- package/lib/Datatable/Datatable.stories.d.ts +32 -0
- package/lib/Datatable/DatatableContext.js +23 -35
- package/lib/Datatable/TableSearch.d.ts +5 -13
- package/lib/Datatable/TableSearch.js +81 -113
- package/lib/Datatable/index.d.ts +12 -13
- package/lib/Datatable/index.js +226 -479
- package/lib/Datatable/utils.js +55 -120
- package/lib/Dialog/Dialog.stories.d.ts +20 -0
- package/lib/Dialog/confirm.d.ts +4 -25
- package/lib/Dialog/confirm.js +99 -125
- package/lib/Dialog/dialog.d.ts +30 -23
- package/lib/Dialog/dialog.js +62 -148
- package/lib/Dialog/index.d.ts +3 -3
- package/lib/Dialog/index.js +8 -4
- package/lib/Dialog/use-confirm.d.ts +3 -3
- package/lib/Dialog/use-confirm.js +91 -171
- package/lib/DidLogo/Logo.stories.d.ts +8 -0
- package/lib/DidLogo/index.js +19 -19
- package/lib/DriftBot/index.js +23 -33
- package/lib/Earth/Earth.stories.d.ts +18 -0
- package/lib/Earth/countries.json.js +13 -0
- package/lib/Earth/index.js +234 -334
- package/lib/Earth/util.js +36 -45
- package/lib/Empty/Empty.stories.d.ts +17 -0
- package/lib/Empty/index.d.ts +3 -11
- package/lib/Empty/index.js +17 -50
- package/lib/ErrorBoundary/ErrorBoundary.stories.d.ts +12 -0
- package/lib/ErrorBoundary/fallback.js +54 -71
- package/lib/ErrorBoundary/index.js +6 -1
- package/lib/Footer/Footer.stories.d.ts +12 -0
- package/lib/Footer/index.d.ts +1 -12
- package/lib/Footer/index.js +53 -100
- package/lib/Header/Header.stories.d.ts +21 -0
- package/lib/Header/addon-button.js +24 -31
- package/lib/Header/auto-hidden.d.ts +1 -1
- package/lib/Header/auto-hidden.js +9 -16
- package/lib/Header/header-addons.d.ts +1 -1
- package/lib/Header/header-addons.js +40 -37
- package/lib/Header/header.d.ts +2 -1
- package/lib/Header/header.js +64 -109
- package/lib/Header/index.js +8 -3
- package/lib/Header/responsive-header.d.ts +1 -1
- package/lib/Header/responsive-header.js +74 -112
- package/lib/Icon/Icon.stories.d.ts +23 -0
- package/lib/Icon/image.d.ts +1 -1
- package/lib/Icon/image.js +32 -33
- package/lib/Icon/index.d.ts +4 -4
- package/lib/Icon/index.js +30 -53
- package/lib/Img/Img.stories.d.ts +13 -0
- package/lib/Img/index.d.ts +6 -32
- package/lib/Img/index.js +126 -204
- package/lib/InfoRow/InfoRow.stories.d.ts +14 -0
- package/lib/InfoRow/index.js +27 -41
- package/lib/Layout/Layout.stories.d.ts +23 -0
- package/lib/Layout/dashboard/external-link.d.ts +1 -1
- package/lib/Layout/dashboard/external-link.js +23 -44
- package/lib/Layout/dashboard/full-page.d.ts +1 -1
- package/lib/Layout/dashboard/full-page.js +31 -48
- package/lib/Layout/dashboard/index.d.ts +4 -4
- package/lib/Layout/dashboard/index.js +134 -211
- package/lib/Layout/dashboard/sidebar.js +44 -78
- package/lib/Layout/dashboard-legacy/header.d.ts +1 -1
- package/lib/Layout/dashboard-legacy/header.js +70 -87
- package/lib/Layout/dashboard-legacy/index.d.ts +2 -2
- package/lib/Layout/dashboard-legacy/index.js +82 -90
- package/lib/Layout/dashboard-legacy/sidebar.d.ts +1 -1
- package/lib/Layout/dashboard-legacy/sidebar.js +44 -76
- package/lib/Layout/index.d.ts +2 -2
- package/lib/Layout/index.js +129 -189
- package/lib/LoadingMask/index.js +91 -82
- package/lib/Locale/LocaleSelector.stories.d.ts +22 -0
- package/lib/Locale/browser-lang.js +23 -52
- package/lib/Locale/context.d.ts +3 -3
- package/lib/Locale/context.js +71 -123
- package/lib/Locale/languages.js +32 -34
- package/lib/Locale/selector.d.ts +2 -2
- package/lib/Locale/selector.js +104 -139
- package/lib/Locale/util.d.ts +1 -1
- package/lib/Locale/util.js +9 -24
- package/lib/Logo/Logo.stories.d.ts +22 -0
- package/lib/Logo/images/logo-dark-text.svg.js +5 -0
- package/lib/Logo/images/logo-dark-top.svg.js +5 -0
- package/lib/Logo/images/logo-light-text.svg.js +5 -0
- package/lib/Logo/images/logo-light-top.svg.js +5 -0
- package/lib/Logo/index.d.ts +1 -1
- package/lib/Logo/index.js +27 -107
- package/lib/Metric/Metric.stories.d.ts +14 -0
- package/lib/Metric/index.js +50 -53
- package/lib/MuiWrap/index.js +11 -19
- package/lib/NFTDisplay/NFTBroken.svg.js +108 -0
- package/lib/NFTDisplay/NFTDisplay.stories.d.ts +15 -0
- package/lib/NFTDisplay/aspect-ratio-container.js +9 -20
- package/lib/NFTDisplay/broken.js +14 -286
- package/lib/NFTDisplay/displayApi.d.ts +1 -1
- package/lib/NFTDisplay/displayApi.js +17 -44
- package/lib/NFTDisplay/index.d.ts +2 -2
- package/lib/NFTDisplay/index.js +160 -343
- package/lib/NFTDisplay/loading.js +9 -9
- package/lib/NFTDisplay/render-svg.js +15 -22
- package/lib/NFTDisplay/svg-embedder/img.js +13 -29
- package/lib/NFTDisplay/svg-embedder/inline-svg.d.ts +1 -1
- package/lib/NFTDisplay/svg-embedder/inline-svg.js +10 -20
- package/lib/NavMenu/NavMenu.stories.d.ts +17 -0
- package/lib/NavMenu/images/OCAP.svg.js +5 -0
- package/lib/NavMenu/images/abt-network.svg.js +7 -0
- package/lib/NavMenu/images/ai-kit.svg.js +7 -0
- package/lib/NavMenu/images/aigne.svg.js +7 -0
- package/lib/NavMenu/images/aistro.svg.js +5 -0
- package/lib/NavMenu/images/arcsphere.svg.js +10 -0
- package/lib/NavMenu/images/blocklet-framework.svg.js +7 -0
- package/lib/NavMenu/images/blocklet-launcher.svg.js +5 -0
- package/lib/NavMenu/images/blocklet-server.svg.js +7 -0
- package/lib/NavMenu/images/blocklet-store.svg.js +5 -0
- package/lib/NavMenu/images/creator-studio.svg.js +7 -0
- package/lib/NavMenu/images/did-connect.svg.js +5 -0
- package/lib/NavMenu/images/did-name-service.svg.js +5 -0
- package/lib/NavMenu/images/did-wallet.svg.js +7 -0
- package/lib/NavMenu/images/did.svg.js +5 -0
- package/lib/NavMenu/images/nft-studio.svg.js +5 -0
- package/lib/NavMenu/images/vc.svg.js +5 -0
- package/lib/NavMenu/images/web3-kit.svg.js +7 -0
- package/lib/NavMenu/index.js +6 -3
- package/lib/NavMenu/nav-menu-context.js +15 -18
- package/lib/NavMenu/nav-menu.d.ts +17 -7
- package/lib/NavMenu/nav-menu.js +219 -355
- package/lib/NavMenu/products.js +264 -1652
- package/lib/NavMenu/style.d.ts +5 -5
- package/lib/NavMenu/style.js +156 -172
- package/lib/NavMenu/sub-container.d.ts +1 -1
- package/lib/NavMenu/sub-container.js +63 -104
- package/lib/NavMenu/sub-item-group.js +15 -33
- package/lib/PageScroller/index.d.ts +1 -1
- package/lib/PageScroller/index.js +116 -252
- package/lib/PageScroller/story/FifthComponent.js +7 -9
- package/lib/PageScroller/story/FirstComponent.js +7 -9
- package/lib/PageScroller/story/FourthComponent.js +7 -12
- package/lib/PageScroller/story/FullPage.js +52 -45
- package/lib/PageScroller/story/PageContain.js +55 -57
- package/lib/PageScroller/story/PageScroller.stories.d.ts +13 -0
- package/lib/PageScroller/story/SecondComponent.js +7 -9
- package/lib/PageScroller/story/ThirdComponent.js +7 -9
- package/lib/PageScroller/usePrevValue.js +10 -8
- package/lib/Passport/index.d.ts +1 -1
- package/lib/Passport/index.js +4 -2
- package/lib/Passport/passport.d.ts +1 -1
- package/lib/Passport/passport.js +123 -100
- package/lib/PhoneInput/PhoneInput.stories.d.ts +12 -0
- package/lib/PhoneInput/country-select.d.ts +2 -2
- package/lib/PhoneInput/country-select.js +111 -159
- package/lib/PhoneInput/index.js +166 -218
- package/lib/PoweredByArcBlock/index.d.ts +1 -1
- package/lib/PoweredByArcBlock/index.js +16 -22
- package/lib/PricingTable/PricingPlan.js +20 -55
- package/lib/PricingTable/PricingTable.stories.d.ts +8 -0
- package/lib/PricingTable/index.d.ts +1 -1
- package/lib/PricingTable/index.js +34 -37
- package/lib/QRCode/QRCode.stories.d.ts +13 -0
- package/lib/QRCode/index.d.ts +1 -1
- package/lib/QRCode/index.js +31 -49
- package/lib/RelativeTime/RelativeTime.stories.d.ts +20 -0
- package/lib/RelativeTime/index.d.ts +3 -3
- package/lib/RelativeTime/index.js +163 -261
- package/lib/Result/Result.stories.d.ts +21 -0
- package/lib/Result/common.d.ts +2 -2
- package/lib/Result/common.js +97 -129
- package/lib/Result/index.d.ts +1 -1
- package/lib/Result/index.js +21 -22
- package/lib/Result/result.js +45 -32
- package/lib/Result/translations.d.ts +1 -1
- package/lib/Result/translations.js +28 -25
- package/lib/Screenshot/BaseScreenshot/index.d.ts +1 -1
- package/lib/Screenshot/BaseScreenshot/index.js +23 -44
- package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +23 -41
- package/lib/Screenshot/BaseScreenshot/shells/Phone.js +24 -26
- package/lib/Screenshot/Screenshot.stories.d.ts +13 -0
- package/lib/Screenshot/demo/images/bg-01.jpg +0 -0
- package/lib/Screenshot/demo/images/bg-02.jpg +0 -0
- package/lib/Screenshot/demo/images/bg-03.jpg +0 -0
- package/lib/Screenshot/index.d.ts +1 -2
- package/lib/Screenshot/index.js +83 -188
- package/lib/SessionBlocklet/index.d.ts +2 -2
- package/lib/SessionBlocklet/index.js +147 -162
- package/lib/SessionManager/SessionManager.stories.d.ts +9 -0
- package/lib/SessionManager/index.d.ts +1 -1
- package/lib/SessionManager/index.js +4 -2
- package/lib/SessionPermission/index.d.ts +1 -0
- package/lib/SessionPermission/index.js +12 -20
- package/lib/SessionUser/components/did-space.js +65 -117
- package/lib/SessionUser/components/logged-in.d.ts +3 -4
- package/lib/SessionUser/components/logged-in.js +215 -292
- package/lib/SessionUser/components/quick-login-item.js +125 -120
- package/lib/SessionUser/components/session-user-item.d.ts +4 -2
- package/lib/SessionUser/components/session-user-item.js +85 -89
- package/lib/SessionUser/components/session-user-switch.d.ts +1 -1
- package/lib/SessionUser/components/session-user-switch.js +187 -187
- package/lib/SessionUser/components/un-login.js +196 -222
- package/lib/SessionUser/components/user-info.d.ts +1 -1
- package/lib/SessionUser/components/user-info.js +163 -150
- package/lib/SessionUser/images/did-spaces.svg.js +5 -0
- package/lib/SessionUser/index.d.ts +1 -1
- package/lib/SessionUser/index.js +27 -30
- package/lib/SessionUser/libs/translation.d.ts +1 -1
- package/lib/SessionUser/libs/translation.js +25 -24
- package/lib/SessionUser/libs/utils.js +33 -23
- package/lib/SharedBridge/index.d.ts +6 -5
- package/lib/SharedBridge/index.js +76 -93
- package/lib/Sparkline/Sparkline.stories.d.ts +12 -0
- package/lib/Sparkline/index.js +67 -183
- package/lib/Spinner/Spinner.stories.d.ts +18 -0
- package/lib/Spinner/index.d.ts +1 -1
- package/lib/Spinner/index.js +10 -20
- package/lib/SplitButton/SplitButton.stories.d.ts +15 -0
- package/lib/SplitButton/index.d.ts +3 -5
- package/lib/SplitButton/index.js +39 -83
- package/lib/Success/index.js +174 -160
- package/lib/Switch/Switch.stories.d.ts +13 -0
- package/lib/Switch/index.d.ts +3 -7
- package/lib/Switch/index.js +51 -87
- package/lib/Tabs/Tabs.stories.d.ts +14 -0
- package/lib/Tabs/index.d.ts +2 -2
- package/lib/Tabs/index.js +169 -186
- package/lib/Tag/Tag.stories.d.ts +13 -0
- package/lib/Tag/index.d.ts +7 -4
- package/lib/Tag/index.js +40 -88
- package/lib/TextCollapse/TextCollapse.stories.d.ts +28 -0
- package/lib/TextCollapse/index.js +34 -51
- package/lib/Theme/Theme.stories.d.ts +10 -0
- package/lib/Theme/index.d.ts +1 -2
- package/lib/Theme/index.js +25 -17
- package/lib/Theme/theme-provider.d.ts +4 -15
- package/lib/Theme/theme-provider.js +111 -232
- package/lib/Theme/theme.d.ts +1 -8
- package/lib/Theme/theme.js +118 -166
- package/lib/Toast/Toast.stories.d.ts +15 -0
- package/lib/Toast/index.d.ts +1 -1
- package/lib/Toast/index.js +46 -67
- package/lib/Typography/index.d.ts +1 -1
- package/lib/Typography/index.js +73 -109
- package/lib/UserCard/Cards/avatar-only.d.ts +1 -1
- package/lib/UserCard/Cards/avatar-only.js +28 -36
- package/lib/UserCard/Cards/basic-info.d.ts +1 -2
- package/lib/UserCard/Cards/basic-info.js +34 -42
- package/lib/UserCard/Cards/index.d.ts +1 -1
- package/lib/UserCard/Cards/index.js +13 -21
- package/lib/UserCard/Cards/name-only.js +12 -18
- package/lib/UserCard/Container/card.d.ts +2 -2
- package/lib/UserCard/Container/card.js +34 -41
- package/lib/UserCard/Container/dialog.d.ts +1 -1
- package/lib/UserCard/Container/dialog.js +27 -27
- package/lib/UserCard/Content/basic.d.ts +1 -2
- package/lib/UserCard/Content/basic.js +198 -306
- package/lib/UserCard/Content/clock.d.ts +2 -0
- package/lib/UserCard/Content/clock.js +85 -71
- package/lib/UserCard/Content/minimal.d.ts +1 -1
- package/lib/UserCard/Content/minimal.js +81 -71
- package/lib/UserCard/Content/shorten-label.js +11 -35
- package/lib/UserCard/Content/tooltip-avatar.d.ts +1 -1
- package/lib/UserCard/Content/tooltip-avatar.js +43 -51
- package/lib/UserCard/UserCard.stories.d.ts +18 -0
- package/lib/UserCard/components.d.ts +1 -1
- package/lib/UserCard/components.js +53 -66
- package/lib/UserCard/index.d.ts +1 -2
- package/lib/UserCard/index.js +59 -111
- package/lib/UserCard/types.d.ts +1 -1
- package/lib/UserCard/types.js +10 -37
- package/lib/UserCard/utils.js +70 -125
- package/lib/Util/WebWalletOpener.stories.d.ts +5 -0
- package/lib/Util/constant.js +47 -46
- package/lib/Util/deprecate.js +11 -26
- package/lib/Util/federated.d.ts +6 -6
- package/lib/Util/federated.js +77 -92
- package/lib/Util/iframe.js +14 -21
- package/lib/Util/index.d.ts +5 -5
- package/lib/Util/index.js +278 -479
- package/lib/Util/logger.d.ts +1 -1
- package/lib/Util/logger.js +17 -25
- package/lib/Util/passport.js +72 -87
- package/lib/Util/security.js +28 -40
- package/lib/Util/style.d.ts +1 -1
- package/lib/Util/style.js +4 -14
- package/lib/Util/wallet.js +16 -30
- package/lib/VerificationCode/index.d.ts +1 -1
- package/lib/VerificationCode/index.js +69 -64
- package/lib/Video/Video.stories.d.ts +6 -0
- package/lib/Video/index.d.ts +1 -9
- package/lib/Video/index.js +26 -60
- package/lib/Wallet/Action.d.ts +1 -10
- package/lib/Wallet/Action.js +37 -65
- package/lib/Wallet/Action.stories.d.ts +8 -0
- package/lib/Wallet/Download.d.ts +3 -16
- package/lib/Wallet/Download.js +41 -440
- package/lib/Wallet/Download.stories.d.ts +9 -0
- package/lib/Wallet/Open.d.ts +1 -1
- package/lib/Wallet/Open.js +27 -27
- package/lib/Wallet/OpenInWallet.stories.d.ts +5 -0
- package/lib/Wallet/images/android_download.svg.js +5 -0
- package/lib/Wallet/images/app-store.svg.js +5 -0
- package/lib/Wallet/images/google-play.svg.js +5 -0
- package/lib/WalletOSIcon/index.js +15 -73
- package/lib/WebWalletSWKeeper/index.js +39 -106
- package/lib/WechatPrompt/images/android.png +0 -0
- package/lib/WechatPrompt/images/ios.png +0 -0
- package/lib/WechatPrompt/index.js +26 -61
- package/lib/hooks/use-blocklet-logo.d.ts +2 -2
- package/lib/hooks/use-blocklet-logo.js +22 -30
- package/lib/hooks/use-clock.d.ts +1 -3
- package/lib/hooks/use-clock.js +34 -67
- package/lib/hooks/use-location-state.js +55 -79
- package/lib/hooks/use-mobile.js +8 -7
- package/lib/index.d.ts +35 -35
- package/lib/index.js +81 -38
- package/lib/ux.css +1 -0
- package/lib/withTheme/index.d.ts +1 -3
- package/lib/withTheme/index.js +28 -37
- package/lib/withTracker/error_boundary.d.ts +1 -1
- package/lib/withTracker/error_boundary.js +15 -29
- package/lib/withTracker/index.js +21 -48
- package/package.json +48 -57
- package/src/ActionButton/ActionButton.stories.jsx +61 -0
- package/src/ActionButton/index.jsx +30 -14
- package/src/ActivityIndicator/ActivityIndicator.stories.jsx +9 -0
- package/src/ActivityIndicator/index.jsx +2 -11
- package/src/Address/Address.stories.jsx +38 -0
- package/src/Address/compact-text.jsx +9 -11
- package/src/Address/did-address.tsx +8 -4
- package/src/Address/index.tsx +12 -9
- package/src/Address/responsive-did-address.tsx +94 -89
- package/src/Alert/Alert.stories.jsx +100 -0
- package/src/Alert/index.jsx +24 -12
- package/src/AnimationWaiter/AnimationWaiter.stories.jsx +35 -0
- package/src/AnimationWaiter/index.jsx +10 -23
- package/src/Async/index.tsx +2 -2
- package/src/Avatar/Avatar.stories.jsx +11 -0
- package/src/Avatar/did-motif.jsx +1 -8
- package/src/Avatar/index.jsx +36 -13
- package/src/Badge/Badge.stories.jsx +41 -0
- package/src/Badge/index.jsx +22 -18
- package/src/Blocklet/Blocklet.stories.jsx +21 -0
- package/src/Blocklet/blocklet.jsx +13 -30
- package/src/BlockletContext/index.tsx +2 -2
- package/src/BlockletNFT/BlockletNFT.stories.jsx +21 -0
- package/src/BlockletNFT/index.jsx +14 -38
- package/src/BlockletV2/Blocklet.stories.jsx +34 -0
- package/src/BlockletV2/blocklet.tsx +69 -29
- package/src/BlockletV2/components/icon-text.tsx +15 -5
- package/src/Button/Button.stories.jsx +24 -0
- package/src/Button/index.js +1 -1
- package/src/Button/wrap.jsx +20 -13
- package/src/ButtonGroup/index.js +1 -1
- package/src/Center/Center.stories.jsx +20 -0
- package/src/ClickToCopy/ClickToCopy.stories.jsx +24 -0
- package/src/ClickToCopy/copy-button.tsx +4 -4
- package/src/ClickToCopy/index.tsx +28 -12
- package/src/CodeBlock/CodeBlock.stories.jsx +22 -0
- package/src/CodeBlock/index.tsx +1 -2
- package/src/Colors/Colors.stories.jsx +211 -0
- package/src/Colors/themes/did-connect.ts +0 -2
- package/src/Config/Config.stories.jsx +16 -0
- package/src/Config/theme-mode-toggle.tsx +4 -2
- package/src/ContactForm/ContactForm.stories.jsx +32 -0
- package/src/ContactForm/index.tsx +2 -2
- package/src/CookieConsent/CookieConsent.stories.jsx +33 -0
- package/src/CookieConsent/index.tsx +1 -1
- package/src/CountDown/CountDown.stories.jsx +15 -0
- package/src/CountDown/index.tsx +11 -6
- package/src/DID/DID.stories.jsx +37 -0
- package/src/DID/index.tsx +8 -3
- package/src/DIDConnect/app-info-item.tsx +2 -2
- package/src/DIDConnect/did-connect-container.tsx +17 -18
- package/src/DIDConnect/request-storage-access-api-dialog.tsx +210 -183
- package/src/DIDConnect/with-container.tsx +17 -18
- package/src/Datatable/CustomToolbar.jsx +32 -34
- package/src/Datatable/Datatable.stories.jsx +92 -0
- package/src/Datatable/DatatableContext.jsx +2 -2
- package/src/Datatable/TableSearch.jsx +10 -12
- package/src/Datatable/index.jsx +36 -58
- package/src/Datatable/utils.js +7 -7
- package/src/Dialog/Dialog.stories.jsx +21 -0
- package/src/Dialog/confirm.jsx +11 -21
- package/src/Dialog/dialog.jsx +9 -20
- package/src/Dialog/use-confirm.jsx +4 -3
- package/src/DidLogo/Logo.stories.jsx +8 -0
- package/src/DriftBot/index.tsx +4 -6
- package/src/Earth/Earth.stories.jsx +39 -0
- package/src/Earth/index.tsx +1 -1
- package/src/Empty/Empty.stories.jsx +23 -0
- package/src/Empty/index.jsx +1 -6
- package/src/ErrorBoundary/ErrorBoundary.stories.jsx +13 -0
- package/src/ErrorBoundary/fallback.tsx +5 -1
- package/src/Footer/Footer.stories.jsx +13 -0
- package/src/Footer/index.tsx +10 -18
- package/src/Header/Header.stories.jsx +30 -0
- package/src/Header/auto-hidden.tsx +1 -1
- package/src/Header/header.tsx +21 -4
- package/src/Header/responsive-header.tsx +11 -13
- package/src/Icon/Icon.stories.jsx +45 -0
- package/src/Icon/index.tsx +12 -24
- package/src/Img/Img.stories.jsx +17 -0
- package/src/Img/index.jsx +14 -30
- package/src/InfoRow/InfoRow.stories.jsx +14 -0
- package/src/InfoRow/index.tsx +5 -5
- package/src/Layout/Layout.stories.jsx +24 -0
- package/src/Layout/dashboard/full-page.tsx +4 -4
- package/src/Layout/dashboard/index.tsx +24 -21
- package/src/Layout/dashboard/sidebar.tsx +1 -1
- package/src/Layout/dashboard-legacy/header.tsx +25 -14
- package/src/Layout/dashboard-legacy/index.tsx +7 -7
- package/src/Layout/dashboard-legacy/sidebar.tsx +1 -3
- package/src/Layout/index.tsx +8 -6
- package/src/Locale/LocaleSelector.stories.jsx +44 -0
- package/src/Locale/context.tsx +2 -2
- package/src/Locale/selector.tsx +10 -17
- package/src/Logo/Logo.stories.jsx +23 -0
- package/src/Metric/Metric.stories.jsx +29 -0
- package/src/NFTDisplay/NFTDisplay.stories.jsx +30 -0
- package/src/NFTDisplay/broken.tsx +1 -1
- package/src/NFTDisplay/displayApi.ts +1 -0
- package/src/NFTDisplay/index.tsx +0 -1
- package/src/NavMenu/NavMenu.stories.jsx +17 -0
- package/src/NavMenu/nav-menu-context.tsx +3 -3
- package/src/NavMenu/nav-menu.tsx +138 -125
- package/src/NavMenu/products.tsx +7 -1
- package/src/NavMenu/style.ts +1 -1
- package/src/PageScroller/index.tsx +2 -2
- package/src/PageScroller/story/PageScroller.stories.jsx +18 -0
- package/src/PageScroller/usePrevValue.ts +1 -1
- package/src/PhoneInput/PhoneInput.stories.jsx +12 -0
- package/src/PhoneInput/country-select.tsx +107 -103
- package/src/PhoneInput/index.tsx +12 -4
- package/src/PricingTable/PricingPlan.tsx +1 -4
- package/src/PricingTable/PricingTable.stories.jsx +38 -0
- package/src/PricingTable/index.tsx +16 -4
- package/src/QRCode/QRCode.stories.jsx +13 -0
- package/src/RelativeTime/RelativeTime.stories.jsx +20 -0
- package/src/RelativeTime/index.tsx +20 -5
- package/src/Result/Result.stories.jsx +61 -0
- package/src/Result/common.tsx +1 -2
- package/src/Result/result.tsx +22 -6
- package/src/Screenshot/Screenshot.stories.jsx +44 -0
- package/src/Screenshot/index.tsx +33 -15
- package/src/SessionManager/SessionManager.stories.jsx +9 -0
- package/src/SessionPermission/index.tsx +1 -0
- package/src/SessionUser/components/logged-in.tsx +0 -2
- package/src/SessionUser/components/quick-login-item.tsx +3 -3
- package/src/SessionUser/components/session-user-item.tsx +68 -70
- package/src/SessionUser/components/session-user-switch.tsx +9 -1
- package/src/SessionUser/components/un-login.tsx +8 -1
- package/src/SharedBridge/index.tsx +106 -111
- package/src/Sparkline/Sparkline.stories.jsx +13 -0
- package/src/Spinner/Spinner.stories.jsx +98 -0
- package/src/Spinner/index.tsx +1 -1
- package/src/SplitButton/SplitButton.stories.jsx +32 -0
- package/src/SplitButton/index.tsx +15 -9
- package/src/Switch/Switch.stories.jsx +16 -0
- package/src/Switch/index.jsx +2 -6
- package/src/Tabs/Tabs.stories.jsx +18 -0
- package/src/Tabs/index.tsx +3 -3
- package/src/Tag/Tag.stories.jsx +15 -0
- package/src/Tag/index.jsx +20 -11
- package/src/TextCollapse/TextCollapse.stories.jsx +73 -0
- package/src/TextCollapse/index.tsx +1 -1
- package/src/Theme/Theme.stories.jsx +10 -0
- package/src/Theme/theme-provider.tsx +10 -18
- package/src/Theme/theme.ts +7 -2
- package/src/Toast/Toast.stories.jsx +28 -0
- package/src/Toast/index.tsx +2 -2
- package/src/Typography/index.tsx +6 -2
- package/src/UserCard/Cards/basic-info.tsx +9 -5
- package/src/UserCard/Container/card.tsx +2 -2
- package/src/UserCard/Content/basic.tsx +39 -38
- package/src/UserCard/Content/clock.tsx +13 -6
- package/src/UserCard/Content/minimal.tsx +23 -7
- package/src/UserCard/Content/tooltip-avatar.tsx +14 -11
- package/src/UserCard/UserCard.stories.jsx +18 -0
- package/src/UserCard/components.tsx +6 -3
- package/src/UserCard/index.tsx +0 -1
- package/src/Util/WebWalletOpener.stories.jsx +5 -0
- package/src/Util/index.ts +37 -3
- package/src/VerificationCode/index.tsx +16 -14
- package/src/Video/Video.stories.jsx +6 -0
- package/src/Video/index.tsx +16 -8
- package/src/Wallet/Action.stories.jsx +8 -0
- package/src/Wallet/Action.tsx +20 -9
- package/src/Wallet/Download.stories.jsx +9 -0
- package/src/Wallet/Download.tsx +36 -14
- package/src/Wallet/Open.tsx +1 -1
- package/src/Wallet/OpenInWallet.stories.jsx +5 -0
- package/src/WechatPrompt/index.tsx +1 -2
- package/src/hooks/use-clock.tsx +2 -1
- package/src/withTheme/index.tsx +1 -4
- package/vite.config.mjs +34 -0
- package/babel.config.es.js +0 -28
- package/lib/Dialog/types.d.ts +0 -20
- package/lib/Earth/countries.json +0 -8057
- package/lib/Header/demo/images/boards.svg +0 -3
- package/lib/Header/demo/images/chatbot.svg +0 -3
- package/lib/Header/demo/images/gallery.svg +0 -3
- package/lib/Logo/images/logo-dark-text.svg +0 -3
- package/lib/Logo/images/logo-dark-top.svg +0 -6
- package/lib/Logo/images/logo-light-text.svg +0 -3
- package/lib/Logo/images/logo-light-top.svg +0 -6
- package/lib/NFTDisplay/NFTBroken.svg +0 -34
- package/lib/NFTDisplay/README.md +0 -59
- package/lib/NFTDisplay/demo/data/asset-state-bad-url.json +0 -7
- package/lib/NFTDisplay/demo/data/asset-state-did-space-svg.json +0 -7
- package/lib/NFTDisplay/demo/data/asset-state-did-space.json +0 -7
- package/lib/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
- package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
- package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
- package/lib/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
- package/lib/NFTDisplay/demo/data/asset-state-svg.json +0 -29
- package/lib/NFTDisplay/demo/data/asset-state-url.json +0 -10
- package/lib/NavMenu/images/OCAP.svg +0 -16
- package/lib/NavMenu/images/abt-network.svg +0 -18
- package/lib/NavMenu/images/ai-kit.svg +0 -46
- package/lib/NavMenu/images/aigne.svg +0 -8
- package/lib/NavMenu/images/aistro.svg +0 -14
- package/lib/NavMenu/images/arcsphere.svg +0 -13
- package/lib/NavMenu/images/blocklet-framework.svg +0 -25
- package/lib/NavMenu/images/blocklet-launcher.svg +0 -9
- package/lib/NavMenu/images/blocklet-server.svg +0 -19
- package/lib/NavMenu/images/blocklet-store.svg +0 -11
- package/lib/NavMenu/images/creator-studio.svg +0 -42
- package/lib/NavMenu/images/did-connect.svg +0 -26
- package/lib/NavMenu/images/did-name-service.svg +0 -3
- package/lib/NavMenu/images/did-wallet.svg +0 -33
- package/lib/NavMenu/images/did.svg +0 -3
- package/lib/NavMenu/images/nft-studio.svg +0 -19
- package/lib/NavMenu/images/vc.svg +0 -7
- package/lib/NavMenu/images/web3-kit.svg +0 -56
- package/lib/PageScroller/story/index.css +0 -115
- package/lib/Result/demo/fixtures/result-image-404.svg +0 -1
- package/lib/Screenshot/devices.css +0 -1366
- package/lib/SessionUser/images/did-spaces.svg +0 -17
- package/lib/Wallet/images/android_download.svg +0 -22
- package/lib/Wallet/images/app-store.svg +0 -30
- package/lib/Wallet/images/google-play.svg +0 -69
- package/lib/global.d.ts +0 -28
- package/lib/type.d.ts +0 -44
- package/lib/withTracker/README.md +0 -37
- /package/src/PageScroller/story/{FifthComponent.js → FifthComponent.jsx} +0 -0
- /package/src/PageScroller/story/{FirstComponent.js → FirstComponent.jsx} +0 -0
- /package/src/PageScroller/story/{FourthComponent.js → FourthComponent.jsx} +0 -0
- /package/src/PageScroller/story/{FullPage.js → FullPage.jsx} +0 -0
- /package/src/PageScroller/story/{PageContain.js → PageContain.jsx} +0 -0
- /package/src/PageScroller/story/{SecondComponent.js → SecondComponent.jsx} +0 -0
- /package/src/PageScroller/story/{ThirdComponent.js → ThirdComponent.jsx} +0 -0
package/lib/NFTDisplay/index.js
CHANGED
@@ -1,343 +1,175 @@
|
|
1
|
-
import { jsx as
|
2
|
-
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
18
|
-
import
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
* 从 assetState 中获取 nft data, 兼容新旧两种类型的数据结构, 建议将该方法的返回值传入 NFTDisplay 组件的 data prop
|
23
|
-
* - 旧: assetState.data.value (.credentialSubject.display)
|
24
|
-
* - 新: assetState.display
|
25
|
-
*/
|
26
|
-
export function getNFTData(assetState) {
|
27
|
-
return assetState?.display || assetState?.data?.value;
|
1
|
+
import { jsx as n, jsxs as H, Fragment as J } from "react/jsx-runtime";
|
2
|
+
import { useRef as M, useState as P, useEffect as A } from "react";
|
3
|
+
import S from "clsx";
|
4
|
+
import { Buffer as O } from "buffer";
|
5
|
+
import K from "lodash/get";
|
6
|
+
import Q from "pako";
|
7
|
+
import X from "base64-url";
|
8
|
+
import B from "is-svg";
|
9
|
+
import Y from "lodash/noop";
|
10
|
+
import { Box as Z } from "@mui/material";
|
11
|
+
import rr from "./aspect-ratio-container.js";
|
12
|
+
import er from "./svg-embedder/img.js";
|
13
|
+
import tr from "./svg-embedder/inline-svg.js";
|
14
|
+
import or from "./loading.js";
|
15
|
+
import C from "./broken.js";
|
16
|
+
import { styled as nr } from "../Theme/index.js";
|
17
|
+
import ir from "./displayApi.js";
|
18
|
+
import sr from "./render-svg.js";
|
19
|
+
function Nr(e) {
|
20
|
+
var s;
|
21
|
+
return (e == null ? void 0 : e.display) || ((s = e == null ? void 0 : e.data) == null ? void 0 : s.value);
|
28
22
|
}
|
29
|
-
function
|
30
|
-
if (typeof
|
31
|
-
throw new Error(
|
32
|
-
|
33
|
-
return Buffer.from(base64.unescape(v), 'base64');
|
23
|
+
function ar(e) {
|
24
|
+
if (typeof e != "string")
|
25
|
+
throw new Error("fromBase64 requires input to be a string");
|
26
|
+
return O.from(X.unescape(e), "base64");
|
34
27
|
}
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
data,
|
55
|
-
address,
|
56
|
-
inset,
|
57
|
-
aspect,
|
58
|
-
component = 'span',
|
59
|
-
className = '',
|
60
|
-
renderError,
|
61
|
-
renderLoading,
|
62
|
-
preferredSvgEmbedder = 'img',
|
63
|
-
checkSvg = false,
|
64
|
-
minimumLoadingTime = 0,
|
65
|
-
onCompleted = noop,
|
66
|
-
imageFilter = null,
|
67
|
-
...rest
|
28
|
+
const L = (e) => ({
|
29
|
+
img: er,
|
30
|
+
svg: tr
|
31
|
+
})[e];
|
32
|
+
function lr({
|
33
|
+
data: e,
|
34
|
+
address: s,
|
35
|
+
inset: m,
|
36
|
+
aspect: g,
|
37
|
+
component: T = "span",
|
38
|
+
className: z = "",
|
39
|
+
renderError: b,
|
40
|
+
renderLoading: j,
|
41
|
+
preferredSvgEmbedder: E = "img",
|
42
|
+
checkSvg: x = !1,
|
43
|
+
minimumLoadingTime: h = 0,
|
44
|
+
onCompleted: W = Y,
|
45
|
+
imageFilter: I = null,
|
46
|
+
...k
|
68
47
|
}) {
|
69
|
-
|
70
|
-
|
71
|
-
...rest,
|
72
|
-
className: clsx(className, {
|
73
|
-
'nft-display--inset': inset
|
74
|
-
}),
|
75
|
-
children: children
|
76
|
-
});
|
77
|
-
const parsed = useRef({});
|
48
|
+
var R;
|
49
|
+
const F = (l) => /* @__PURE__ */ n(cr, { component: T, ...k, className: S(z, { "nft-display--inset": m }), children: l }), a = M({});
|
78
50
|
try {
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
}
|
85
|
-
const {
|
86
|
-
vcId
|
87
|
-
} = parsed.current;
|
88
|
-
// 需要兼容新旧两种类型的数据结构, nft data 有 credentialSubject 属性, 说明是旧 nft data, 否则是新 nft data
|
89
|
-
const display = parsed.current.credentialSubject ? get(parsed.current, 'credentialSubject.display') : parsed.current;
|
90
|
-
const {
|
91
|
-
content,
|
92
|
-
type
|
93
|
-
} = display;
|
94
|
-
const isUrlType = type === 'url';
|
95
|
-
|
96
|
-
// 首次加载, 对于 url type 的情况, loading 为 true
|
97
|
-
const [state, setState] = useState({
|
98
|
-
loading: isUrlType,
|
99
|
-
error: false,
|
100
|
-
loadingUrlType: true,
|
51
|
+
typeof e == "string" ? a.current = JSON.parse(e) : a.current = e;
|
52
|
+
const { vcId: l } = a.current, U = a.current.credentialSubject ? K(a.current, "credentialSubject.display") : a.current, { content: f, type: y } = U, G = y === "url", [t, c] = P({
|
53
|
+
loading: G,
|
54
|
+
error: !1,
|
55
|
+
loadingUrlType: !0,
|
101
56
|
urlType: null
|
102
|
-
})
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
t
|
110
|
-
} = {}) => {
|
111
|
-
const urlObj = new URL(content);
|
112
|
-
|
113
|
-
// check protocol
|
114
|
-
if (window.location.protocol === 'https:' && urlObj.protocol === 'http:') {
|
115
|
-
urlObj.protocol = 'https:';
|
116
|
-
}
|
117
|
-
if (!urlObj.searchParams.has('assetId')) {
|
118
|
-
urlObj.searchParams.append('assetId', address);
|
119
|
-
}
|
120
|
-
if (!urlObj.searchParams.has('vcId') && vcId) {
|
121
|
-
urlObj.searchParams.append('vcId', vcId);
|
122
|
-
}
|
123
|
-
|
124
|
-
// image filter
|
125
|
-
if (useImageFilter && imageFilter) {
|
126
|
-
Object.entries(imageFilter).forEach(([key, value]) => {
|
127
|
-
urlObj.searchParams.append(key, value);
|
128
|
-
});
|
129
|
-
}
|
130
|
-
|
131
|
-
// other params
|
132
|
-
if (t) {
|
133
|
-
urlObj.searchParams.append('t', t);
|
134
|
-
}
|
135
|
-
return urlObj.href;
|
136
|
-
};
|
137
|
-
|
138
|
-
// get url content type
|
139
|
-
const getUrlContentType = async () => {
|
57
|
+
}), [w, V] = P(h <= 0), d = ({ useImageFilter: o = !1, t: i } = {}) => {
|
58
|
+
const r = new URL(f);
|
59
|
+
return window.location.protocol === "https:" && r.protocol === "http:" && (r.protocol = "https:"), r.searchParams.has("assetId") || r.searchParams.append("assetId", s), !r.searchParams.has("vcId") && l && r.searchParams.append("vcId", l), o && I && Object.entries(I).forEach(([p, u]) => {
|
60
|
+
r.searchParams.append(p, u);
|
61
|
+
}), i && r.searchParams.append("t", i), r.href;
|
62
|
+
}, _ = async () => {
|
63
|
+
var o, i;
|
140
64
|
try {
|
141
|
-
const
|
142
|
-
url:
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
const contentType = response?.headers?.get('Content-Type');
|
150
|
-
setState({
|
151
|
-
...state,
|
152
|
-
loadingUrlType: false,
|
153
|
-
urlType: contentType
|
154
|
-
});
|
155
|
-
} catch (error) {
|
156
|
-
console.error('Failed to fetch url content type', error);
|
157
|
-
// display an error message when timeout occurs to avoid repeated waiting.
|
158
|
-
if (error?.message?.includes('timeout')) {
|
159
|
-
setState({
|
160
|
-
...state,
|
161
|
-
loadingUrlType: false,
|
162
|
-
loading: false,
|
163
|
-
error: true
|
164
|
-
});
|
65
|
+
const r = await ir({
|
66
|
+
url: d({ useImageFilter: !1, t: "nftdisplay" }),
|
67
|
+
method: "HEAD"
|
68
|
+
}), p = (o = r == null ? void 0 : r.headers) == null ? void 0 : o.get("Content-Type");
|
69
|
+
c({ ...t, loadingUrlType: !1, urlType: p });
|
70
|
+
} catch (r) {
|
71
|
+
if (console.error("Failed to fetch url content type", r), (i = r == null ? void 0 : r.message) != null && i.includes("timeout")) {
|
72
|
+
c({ ...t, loadingUrlType: !1, loading: !1, error: !0 });
|
165
73
|
return;
|
166
74
|
}
|
167
|
-
|
168
|
-
...state,
|
169
|
-
loadingUrlType: false,
|
170
|
-
urlType: null
|
171
|
-
});
|
172
|
-
}
|
173
|
-
};
|
174
|
-
useEffect(() => {
|
175
|
-
let timer;
|
176
|
-
if (minimumLoadingTime > 0) {
|
177
|
-
timer = setTimeout(() => setMinimumLoadingReady(true), minimumLoadingTime);
|
178
|
-
}
|
179
|
-
if (type === 'url') {
|
180
|
-
getUrlContentType();
|
181
|
-
}
|
182
|
-
return () => clearTimeout(timer);
|
183
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
184
|
-
}, []);
|
185
|
-
|
186
|
-
// onCompleted
|
187
|
-
useEffect(() => {
|
188
|
-
if (!state.loading && minimumLoadingReady || state.error) {
|
189
|
-
onCompleted();
|
190
|
-
}
|
191
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
192
|
-
}, [state, minimumLoadingReady]);
|
193
|
-
if (state.error) {
|
194
|
-
throw new Error('Failed to render NFT Display.');
|
195
|
-
}
|
196
|
-
const onLoad = () => {
|
197
|
-
if (state.loading) {
|
198
|
-
setState({
|
199
|
-
...state,
|
200
|
-
loading: false
|
201
|
-
});
|
75
|
+
c({ ...t, loadingUrlType: !1, urlType: null });
|
202
76
|
}
|
203
77
|
};
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
});
|
217
|
-
return
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg', '.tiff', '.tif', '.ico', '.jfif', '.pjpeg', '.pjp', '.avif'];
|
237
|
-
if (imageExtensions.some(ext => pathname.endsWith(ext))) {
|
238
|
-
return renderImg();
|
239
|
-
}
|
240
|
-
|
241
|
-
// related: https://github.com/ArcBlock/did-spaces/issues/1367
|
242
|
-
if (objectType.includes('text/html;')) {
|
243
|
-
return /*#__PURE__*/_jsx(DefaultBrokenImage, {});
|
244
|
-
}
|
245
|
-
return (
|
246
|
-
/*#__PURE__*/
|
78
|
+
if (A(() => {
|
79
|
+
let o;
|
80
|
+
return h > 0 && (o = setTimeout(() => V(!0), h)), y === "url" && _(), () => clearTimeout(o);
|
81
|
+
}, []), A(() => {
|
82
|
+
(!t.loading && w || t.error) && W();
|
83
|
+
}, [t, w]), t.error)
|
84
|
+
throw new Error("Failed to render NFT Display.");
|
85
|
+
const v = () => {
|
86
|
+
t.loading && c({ ...t, loading: !1 });
|
87
|
+
}, N = () => {
|
88
|
+
c({ ...t, error: !0, loading: !1 });
|
89
|
+
}, D = () => {
|
90
|
+
const o = d({ useImageFilter: !0 });
|
91
|
+
return /* @__PURE__ */ n("img", { src: o, onError: N, onLoad: v, alt: "NFT Display", style: { width: "auto", height: "auto" } });
|
92
|
+
}, $ = () => {
|
93
|
+
const o = t.urlType || "image/svg+xml", i = d(), r = new URL(i).pathname.toLowerCase();
|
94
|
+
return [
|
95
|
+
".jpg",
|
96
|
+
".jpeg",
|
97
|
+
".png",
|
98
|
+
".gif",
|
99
|
+
".bmp",
|
100
|
+
".webp",
|
101
|
+
".svg",
|
102
|
+
".tiff",
|
103
|
+
".tif",
|
104
|
+
".ico",
|
105
|
+
".jfif",
|
106
|
+
".pjpeg",
|
107
|
+
".pjp",
|
108
|
+
".avif"
|
109
|
+
].some((u) => r.endsWith(u)) ? D() : o.includes("text/html;") ? /* @__PURE__ */ n(C, {}) : (
|
247
110
|
// eslint-disable-next-line jsx-a11y/alt-text
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
height:
|
256
|
-
|
257
|
-
|
258
|
-
|
111
|
+
/* @__PURE__ */ n(
|
112
|
+
"object",
|
113
|
+
{
|
114
|
+
type: o,
|
115
|
+
data: i,
|
116
|
+
onErrorCapture: N,
|
117
|
+
onLoad: v,
|
118
|
+
style: { width: "100%", height: "100%", pointerEvents: "none" }
|
119
|
+
},
|
120
|
+
i
|
121
|
+
)
|
259
122
|
);
|
260
|
-
}
|
261
|
-
|
262
|
-
if (
|
263
|
-
switch (
|
264
|
-
case
|
265
|
-
{
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
});
|
274
|
-
}
|
275
|
-
|
276
|
-
// render image
|
277
|
-
if (state.urlType?.startsWith('image')) {
|
278
|
-
return renderImg();
|
279
|
-
}
|
280
|
-
return renderObject();
|
281
|
-
}
|
282
|
-
case 'uri':
|
283
|
-
{
|
284
|
-
return /*#__PURE__*/_jsx("img", {
|
285
|
-
src: content,
|
286
|
-
onError: () => setState({
|
287
|
-
...state,
|
288
|
-
error: true
|
289
|
-
}),
|
290
|
-
onLoad: () => setState({
|
291
|
-
...state,
|
292
|
-
loading: false
|
293
|
-
}),
|
123
|
+
}, q = () => {
|
124
|
+
var o, i;
|
125
|
+
if (f)
|
126
|
+
switch (y) {
|
127
|
+
case "url":
|
128
|
+
return t.loadingUrlType ? null : (o = t.urlType) != null && o.startsWith("image/svg+xml") ? /* @__PURE__ */ n(sr, { src: d(), onLoad: v }) : (i = t.urlType) != null && i.startsWith("image") ? D() : $();
|
129
|
+
case "uri":
|
130
|
+
return /* @__PURE__ */ n(
|
131
|
+
"img",
|
132
|
+
{
|
133
|
+
src: f,
|
134
|
+
onError: () => c({ ...t, error: !0 }),
|
135
|
+
onLoad: () => c({ ...t, loading: !1 }),
|
294
136
|
alt: "NFT Display"
|
295
|
-
});
|
296
|
-
}
|
297
|
-
case 'svg_gzipped':
|
298
|
-
{
|
299
|
-
const buffer = pako.ungzip(fromBase64(content), {});
|
300
|
-
const svg = Buffer.from(buffer).toString('utf8');
|
301
|
-
if (checkSvg && !isSvg(svg)) {
|
302
|
-
throw new Error('Invalid SVG of type svg_gzipped');
|
303
137
|
}
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
{
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
}
|
138
|
+
);
|
139
|
+
case "svg_gzipped": {
|
140
|
+
const r = Q.ungzip(ar(f), {}), p = O.from(r).toString("utf8");
|
141
|
+
if (x && !B(p))
|
142
|
+
throw new Error("Invalid SVG of type svg_gzipped");
|
143
|
+
const u = L(E);
|
144
|
+
return /* @__PURE__ */ n(u, { svg: p });
|
145
|
+
}
|
146
|
+
case "svg": {
|
147
|
+
if (x && !B(f))
|
148
|
+
throw new Error("Invalid SVG of type svg");
|
149
|
+
const r = L(E);
|
150
|
+
return /* @__PURE__ */ n(r, { svg: f });
|
151
|
+
}
|
319
152
|
// TODO: 准备测试数据
|
320
|
-
case
|
321
|
-
|
322
|
-
break;
|
323
|
-
}
|
153
|
+
case "html":
|
154
|
+
break;
|
324
155
|
default:
|
325
156
|
}
|
326
|
-
}
|
327
|
-
throw new Error(`unsupported display protocol: ${display.type}`);
|
157
|
+
throw new Error(`unsupported display protocol: ${U.type}`);
|
328
158
|
};
|
329
|
-
return
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
159
|
+
return F(
|
160
|
+
/* @__PURE__ */ H(J, { children: [
|
161
|
+
(t.loading || !w) && (j ? j() : /* @__PURE__ */ n(or, {})),
|
162
|
+
q()
|
163
|
+
] })
|
164
|
+
);
|
165
|
+
} catch (l) {
|
166
|
+
return console.error(l == null ? void 0 : l.message, {
|
167
|
+
nftId: s,
|
168
|
+
vcId: (R = a == null ? void 0 : a.current) == null ? void 0 : R.vcId
|
169
|
+
}), F(b ? b() : /* @__PURE__ */ n(C, {}));
|
338
170
|
}
|
339
171
|
}
|
340
|
-
const
|
172
|
+
const cr = nr(Z)`
|
341
173
|
display: flex;
|
342
174
|
justify-content: center;
|
343
175
|
align-items: center;
|
@@ -365,28 +197,13 @@ const Root = styled(Box)`
|
|
365
197
|
height: 100%;
|
366
198
|
}
|
367
199
|
`;
|
368
|
-
function
|
369
|
-
|
370
|
-
|
371
|
-
aspect,
|
372
|
-
inset,
|
373
|
-
...rest
|
374
|
-
}) {
|
375
|
-
// inset 比 aspect ratio 优先级高, 如果同时设置了 inset 和 aspect, 则后者不生效
|
376
|
-
const applyAspectRatio = aspect && aspect > 0 && !inset;
|
377
|
-
if (applyAspectRatio) {
|
378
|
-
return /*#__PURE__*/_jsx(AspectRatioContainer, {
|
379
|
-
aspect: aspect,
|
380
|
-
children: /*#__PURE__*/_jsx(Component, {
|
381
|
-
inset: true,
|
382
|
-
...rest
|
383
|
-
})
|
384
|
-
});
|
385
|
-
}
|
386
|
-
return /*#__PURE__*/_jsx(Component, {
|
387
|
-
inset: inset,
|
388
|
-
...rest
|
389
|
-
});
|
200
|
+
function pr(e) {
|
201
|
+
return function({ aspect: s, inset: m, ...g }) {
|
202
|
+
return s && s > 0 && !m ? /* @__PURE__ */ n(rr, { aspect: s, children: /* @__PURE__ */ n(e, { inset: !0, ...g }) }) : /* @__PURE__ */ n(e, { inset: m, ...g });
|
390
203
|
};
|
391
204
|
}
|
392
|
-
|
205
|
+
const Dr = pr(lr);
|
206
|
+
export {
|
207
|
+
Dr as default,
|
208
|
+
Nr as getNFTData
|
209
|
+
};
|
@@ -1,12 +1,9 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { styled } from
|
3
|
-
|
4
|
-
return
|
5
|
-
className: "nft-display__loading",
|
6
|
-
children: "Loading..."
|
7
|
-
});
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import { styled as t } from "../Theme/index.js";
|
3
|
+
function a() {
|
4
|
+
return /* @__PURE__ */ o(e, { className: "nft-display__loading", children: "Loading..." });
|
8
5
|
}
|
9
|
-
const
|
6
|
+
const e = t("span")`
|
10
7
|
display: flex;
|
11
8
|
justify-content: center;
|
12
9
|
align-items: center;
|
@@ -15,4 +12,7 @@ const Root = styled('span')`
|
|
15
12
|
height: 100%;
|
16
13
|
color: #ccc;
|
17
14
|
background-color: #eee;
|
18
|
-
`;
|
15
|
+
`;
|
16
|
+
export {
|
17
|
+
a as default
|
18
|
+
};
|
@@ -1,23 +1,16 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import
|
3
|
-
import { useAsyncEffect } from
|
4
|
-
import
|
5
|
-
import { useState } from
|
6
|
-
import
|
7
|
-
function
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
// @note: 注意源站点需要允许跨域
|
14
|
-
const response = await axios.get(src);
|
15
|
-
const cleanSVG = DOMPurify.sanitize(response.data);
|
16
|
-
setSvgContent(cleanSVG);
|
17
|
-
onLoad?.();
|
18
|
-
}, []);
|
19
|
-
return /*#__PURE__*/_jsx(InlineSvg, {
|
20
|
-
svg: svgContent
|
21
|
-
});
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import m from "dompurify";
|
3
|
+
import { useAsyncEffect as f } from "ahooks";
|
4
|
+
import c from "axios";
|
5
|
+
import { useState as p } from "react";
|
6
|
+
import a from "./svg-embedder/inline-svg.js";
|
7
|
+
function y({ src: e, onLoad: t }) {
|
8
|
+
const [r, s] = p("");
|
9
|
+
return f(async () => {
|
10
|
+
const n = await c.get(e), i = m.sanitize(n.data);
|
11
|
+
s(i), t == null || t();
|
12
|
+
}, []), /* @__PURE__ */ o(a, { svg: r });
|
22
13
|
}
|
23
|
-
export
|
14
|
+
export {
|
15
|
+
y as default
|
16
|
+
};
|
@@ -1,31 +1,15 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
type: 'image/svg+xml'
|
7
|
-
});
|
8
|
-
return URL.createObjectURL(blob);
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import c from "./inline-svg.js";
|
3
|
+
const i = (e) => {
|
4
|
+
const r = new Blob([e], { type: "image/svg+xml" });
|
5
|
+
return URL.createObjectURL(r);
|
9
6
|
};
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
...rest
|
16
|
-
}) {
|
17
|
-
// 包含 foreignObject 的 svg, fallback 到 shadow dom
|
18
|
-
if (fallback && svg.indexOf('</foreignObject>') > -1) {
|
19
|
-
return /*#__PURE__*/_jsx(InlineSvgEmbedder, {
|
20
|
-
svg: svg
|
21
|
-
});
|
22
|
-
}
|
23
|
-
const url = svgToImgUrl(svg);
|
24
|
-
return /*#__PURE__*/_jsx("img", {
|
25
|
-
src: url,
|
26
|
-
onLoad: () => URL.revokeObjectURL(url),
|
27
|
-
alt: alt,
|
28
|
-
...rest
|
29
|
-
});
|
7
|
+
function l({ svg: e, alt: r = "", fallback: n = !0, ...m }) {
|
8
|
+
if (n && e.indexOf("</foreignObject>") > -1)
|
9
|
+
return /* @__PURE__ */ o(c, { svg: e });
|
10
|
+
const t = i(e);
|
11
|
+
return /* @__PURE__ */ o("img", { src: t, onLoad: () => URL.revokeObjectURL(t), alt: r, ...m });
|
30
12
|
}
|
31
|
-
export
|
13
|
+
export {
|
14
|
+
l as default
|
15
|
+
};
|