@iota/dapp-kit 0.2.0 → 0.3.0
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/CHANGELOG.md +13 -0
- package/README.md +14 -12
- package/dist/cjs/components/AccountDropdownMenu.css +26 -54
- package/dist/cjs/components/AccountDropdownMenu.css.css +18 -27
- package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
- package/dist/cjs/components/AccountDropdownMenu.css.d.ts +0 -1
- package/dist/cjs/components/AccountDropdownMenu.css.js +4 -6
- package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
- package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
- package/dist/cjs/components/AccountDropdownMenu.d.ts +3 -1
- package/dist/cjs/components/AccountDropdownMenu.js +25 -21
- package/dist/cjs/components/AccountDropdownMenu.js.map +3 -3
- package/dist/cjs/components/ConnectButton.css +181 -190
- package/dist/cjs/components/ConnectButton.css.map +3 -3
- package/dist/cjs/components/ConnectButton.d.ts +5 -3
- package/dist/cjs/components/ConnectButton.js +344 -669
- package/dist/cjs/components/ConnectButton.js.map +4 -4
- package/dist/cjs/components/IotaClientProvider.d.ts +0 -1
- package/dist/cjs/components/WalletProvider.d.ts +3 -3
- package/dist/cjs/components/WalletProvider.js +107 -152
- package/dist/cjs/components/WalletProvider.js.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.css +214 -172
- package/dist/cjs/components/connect-modal/ConnectModal.css.css +69 -32
- package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +5 -1
- package/dist/cjs/components/connect-modal/ConnectModal.css.js +15 -7
- package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/ConnectModal.css.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.js +411 -707
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +4 -4
- package/dist/cjs/components/connect-modal/InfoSection.css +7 -11
- package/dist/cjs/components/connect-modal/InfoSection.css.css.map +1 -1
- package/dist/cjs/components/connect-modal/InfoSection.css.map +3 -3
- package/dist/cjs/components/connect-modal/InfoSection.js +1 -1
- package/dist/cjs/components/connect-modal/InfoSection.js.map +2 -2
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +145 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +32 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +35 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +173 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/GetTheWallet.css.css.map +1 -1
- package/dist/cjs/components/connect-modal/views/GetTheWallet.css.map +1 -1
- package/dist/cjs/components/connect-modal/views/GetTheWallet.js +12 -391
- package/dist/cjs/components/connect-modal/views/GetTheWallet.js.map +2 -2
- package/dist/cjs/components/connect-modal/views/GettingStarted.css +144 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +23 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +3 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js +31 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.d.ts +1 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.js +172 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +95 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +17 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +2 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +29 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +135 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/index.css +115 -124
- package/dist/cjs/components/connect-modal/views/index.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/index.d.ts +2 -1
- package/dist/cjs/components/connect-modal/views/index.js +136 -640
- package/dist/cjs/components/connect-modal/views/index.js.map +4 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +10 -22
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css +2 -5
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +61 -38
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +4 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +8 -17
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +8 -17
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +0 -1
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +2 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +5 -32
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
- package/dist/cjs/components/icons/BackIcon.d.ts +2 -0
- package/dist/cjs/components/icons/BackIcon.js +36 -0
- package/dist/cjs/components/icons/BackIcon.js.map +7 -0
- package/dist/cjs/components/icons/IotaIcon.js +12 -391
- package/dist/cjs/components/icons/IotaIcon.js.map +2 -2
- package/dist/cjs/components/styling/InjectedThemeStyles.js +2 -0
- package/dist/cjs/components/styling/InjectedThemeStyles.js.map +2 -2
- package/dist/cjs/components/styling/StyleMarker.css +1 -16
- package/dist/cjs/components/styling/StyleMarker.css.css +1 -16
- package/dist/cjs/components/styling/StyleMarker.css.css.map +3 -3
- package/dist/cjs/components/styling/StyleMarker.css.map +3 -3
- package/dist/cjs/components/styling/StyleMarker.d.ts +0 -1
- package/dist/cjs/components/styling/StyleMarker.js +4 -4
- package/dist/cjs/components/styling/StyleMarker.js.map +3 -3
- package/dist/cjs/components/ui/Button.css.css.map +1 -1
- package/dist/cjs/components/ui/Button.css.map +1 -1
- package/dist/cjs/components/ui/Button.d.ts +1 -1
- package/dist/cjs/components/ui/Heading.css.css.map +1 -1
- package/dist/cjs/components/ui/Heading.css.map +1 -1
- package/dist/cjs/components/ui/Heading.d.ts +0 -1
- package/dist/cjs/components/ui/IconButton.css.css.map +1 -1
- package/dist/cjs/components/ui/IconButton.css.map +1 -1
- package/dist/cjs/components/ui/IconButton.d.ts +1 -1
- package/dist/cjs/components/ui/Text.css +7 -11
- package/dist/cjs/components/ui/Text.css.css +7 -11
- package/dist/cjs/components/ui/Text.css.css.map +3 -3
- package/dist/cjs/components/ui/Text.css.d.ts +0 -3
- package/dist/cjs/components/ui/Text.css.js +1 -1
- package/dist/cjs/components/ui/Text.css.js.map +2 -2
- package/dist/cjs/components/ui/Text.css.map +3 -3
- package/dist/cjs/components/ui/Text.d.ts +0 -1
- package/dist/cjs/components/ui/Text.js +1 -1
- package/dist/cjs/components/ui/Text.js.map +2 -2
- package/dist/cjs/constants/styleDataAttribute.js.map +1 -1
- package/dist/cjs/constants/walletDefaults.d.ts +2 -2
- package/dist/cjs/constants/walletDefaults.js +4 -5
- package/dist/cjs/constants/walletDefaults.js.map +2 -2
- package/dist/cjs/constants/walletMutationKeys.d.ts +3 -2
- package/dist/cjs/constants/walletMutationKeys.js +4 -3
- package/dist/cjs/constants/walletMutationKeys.js.map +2 -2
- package/dist/cjs/contexts/walletContext.d.ts +1 -2
- package/dist/cjs/hooks/useIotaClientInfiniteQuery.js.map +2 -2
- package/dist/cjs/hooks/useIotaClientQuery.js +3 -1
- package/dist/cjs/hooks/useIotaClientQuery.js.map +2 -2
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +17 -7
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useConnectWallet.js +10 -4
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +3 -0
- package/dist/cjs/hooks/wallet/useCurrentWallet.js +7 -3
- package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js +11 -6
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
- package/dist/cjs/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +41 -37
- package/dist/cjs/hooks/wallet/useReportTransactionEffects.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js +252 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +21 -27
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignTransaction.d.ts +18 -0
- package/dist/cjs/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +86 -46
- package/dist/cjs/hooks/wallet/useSignTransaction.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSwitchAccount.js +11 -6
- package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +45 -33
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +7 -3
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/cjs/hooks/wallet/useWalletsChanged.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useWalletsChanged.js +7 -6
- package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +2 -2
- package/dist/cjs/index.css +232 -241
- package/dist/cjs/index.css.map +3 -3
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +816 -1042
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/themes/lightTheme.js +19 -19
- package/dist/cjs/themes/lightTheme.js.map +1 -1
- package/dist/cjs/themes/themeContract.js.map +1 -1
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/assertUnreachable.js.map +1 -1
- package/dist/cjs/utils/walletUtils.d.ts +2 -2
- package/dist/cjs/utils/walletUtils.js +2 -2
- package/dist/cjs/utils/walletUtils.js.map +2 -2
- package/dist/cjs/walletStore.d.ts +3 -2
- package/dist/cjs/walletStore.js +8 -4
- package/dist/cjs/walletStore.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.css +26 -54
- package/dist/esm/components/AccountDropdownMenu.css.css +18 -27
- package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
- package/dist/esm/components/AccountDropdownMenu.css.d.ts +0 -1
- package/dist/esm/components/AccountDropdownMenu.css.js +4 -6
- package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
- package/dist/esm/components/AccountDropdownMenu.d.ts +3 -1
- package/dist/esm/components/AccountDropdownMenu.js +25 -21
- package/dist/esm/components/AccountDropdownMenu.js.map +3 -3
- package/dist/esm/components/ConnectButton.css +181 -190
- package/dist/esm/components/ConnectButton.css.map +3 -3
- package/dist/esm/components/ConnectButton.d.ts +5 -3
- package/dist/esm/components/ConnectButton.js +344 -669
- package/dist/esm/components/ConnectButton.js.map +4 -4
- package/dist/esm/components/IotaClientProvider.d.ts +0 -1
- package/dist/esm/components/WalletProvider.d.ts +3 -3
- package/dist/esm/components/WalletProvider.js +106 -151
- package/dist/esm/components/WalletProvider.js.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.css +214 -172
- package/dist/esm/components/connect-modal/ConnectModal.css.css +69 -32
- package/dist/esm/components/connect-modal/ConnectModal.css.css.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +5 -1
- package/dist/esm/components/connect-modal/ConnectModal.css.js +15 -7
- package/dist/esm/components/connect-modal/ConnectModal.css.js.map +2 -2
- package/dist/esm/components/connect-modal/ConnectModal.css.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.js +407 -703
- package/dist/esm/components/connect-modal/ConnectModal.js.map +4 -4
- package/dist/esm/components/connect-modal/InfoSection.css +7 -11
- package/dist/esm/components/connect-modal/InfoSection.css.css.map +1 -1
- package/dist/esm/components/connect-modal/InfoSection.css.map +3 -3
- package/dist/esm/components/connect-modal/InfoSection.js +1 -1
- package/dist/esm/components/connect-modal/InfoSection.js.map +2 -2
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css +145 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +32 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +14 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js +140 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +7 -0
- package/dist/esm/components/connect-modal/views/GetTheWallet.css.css.map +1 -1
- package/dist/esm/components/connect-modal/views/GetTheWallet.css.map +1 -1
- package/dist/esm/components/connect-modal/views/GetTheWallet.js +12 -391
- package/dist/esm/components/connect-modal/views/GetTheWallet.js.map +2 -2
- package/dist/esm/components/connect-modal/views/GettingStarted.css +144 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css +23 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +3 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js +10 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +1 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.js +139 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.js.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +95 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +17 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +2 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +8 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +102 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
- package/dist/esm/components/connect-modal/views/index.css +115 -124
- package/dist/esm/components/connect-modal/views/index.css.map +3 -3
- package/dist/esm/components/connect-modal/views/index.d.ts +2 -1
- package/dist/esm/components/connect-modal/views/index.js +141 -645
- package/dist/esm/components/connect-modal/views/index.js.map +4 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css +10 -22
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css +2 -5
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js +61 -38
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +4 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +8 -17
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +8 -17
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +0 -1
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +2 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +5 -32
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
- package/dist/esm/components/icons/BackIcon.d.ts +2 -0
- package/dist/esm/components/icons/BackIcon.js +15 -0
- package/dist/esm/components/icons/BackIcon.js.map +7 -0
- package/dist/esm/components/icons/IotaIcon.js +12 -391
- package/dist/esm/components/icons/IotaIcon.js.map +2 -2
- package/dist/esm/components/styling/InjectedThemeStyles.js +2 -0
- package/dist/esm/components/styling/InjectedThemeStyles.js.map +2 -2
- package/dist/esm/components/styling/StyleMarker.css +1 -16
- package/dist/esm/components/styling/StyleMarker.css.css +1 -16
- package/dist/esm/components/styling/StyleMarker.css.css.map +3 -3
- package/dist/esm/components/styling/StyleMarker.css.js +4 -4
- package/dist/esm/components/styling/StyleMarker.css.js.map +3 -3
- package/dist/esm/components/styling/StyleMarker.css.map +3 -3
- package/dist/esm/components/styling/StyleMarker.d.ts +0 -1
- package/dist/esm/components/styling/StyleMarker.js +4 -4
- package/dist/esm/components/styling/StyleMarker.js.map +3 -3
- package/dist/esm/components/ui/Button.css.css.map +1 -1
- package/dist/esm/components/ui/Button.css.map +1 -1
- package/dist/esm/components/ui/Button.d.ts +1 -1
- package/dist/esm/components/ui/Heading.css.css.map +1 -1
- package/dist/esm/components/ui/Heading.css.map +1 -1
- package/dist/esm/components/ui/Heading.d.ts +0 -1
- package/dist/esm/components/ui/IconButton.css.css.map +1 -1
- package/dist/esm/components/ui/IconButton.css.map +1 -1
- package/dist/esm/components/ui/IconButton.d.ts +1 -1
- package/dist/esm/components/ui/Text.css +7 -11
- package/dist/esm/components/ui/Text.css.css +7 -11
- package/dist/esm/components/ui/Text.css.css.map +3 -3
- package/dist/esm/components/ui/Text.css.d.ts +0 -3
- package/dist/esm/components/ui/Text.css.js +1 -1
- package/dist/esm/components/ui/Text.css.js.map +2 -2
- package/dist/esm/components/ui/Text.css.map +3 -3
- package/dist/esm/components/ui/Text.d.ts +0 -1
- package/dist/esm/components/ui/Text.js +1 -1
- package/dist/esm/components/ui/Text.js.map +2 -2
- package/dist/esm/constants/styleDataAttribute.js.map +1 -1
- package/dist/esm/constants/walletDefaults.d.ts +2 -2
- package/dist/esm/constants/walletDefaults.js +4 -5
- package/dist/esm/constants/walletDefaults.js.map +2 -2
- package/dist/esm/constants/walletMutationKeys.d.ts +3 -2
- package/dist/esm/constants/walletMutationKeys.js +4 -3
- package/dist/esm/constants/walletMutationKeys.js.map +2 -2
- package/dist/esm/contexts/walletContext.d.ts +1 -2
- package/dist/esm/hooks/useIotaClientInfiniteQuery.js.map +2 -2
- package/dist/esm/hooks/useIotaClientQuery.js +3 -1
- package/dist/esm/hooks/useIotaClientQuery.js.map +2 -2
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +17 -7
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useConnectWallet.js +10 -4
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +3 -0
- package/dist/esm/hooks/wallet/useCurrentWallet.js +7 -3
- package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.js +11 -6
- package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
- package/dist/esm/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +38 -34
- package/dist/esm/hooks/wallet/useReportTransactionEffects.js.map +7 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js +231 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +21 -27
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignTransaction.d.ts +18 -0
- package/dist/esm/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +83 -43
- package/dist/esm/hooks/wallet/useSignTransaction.js.map +7 -0
- package/dist/esm/hooks/wallet/useSwitchAccount.js +11 -6
- package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +44 -32
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +7 -3
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/esm/hooks/wallet/useWalletsChanged.d.ts +1 -1
- package/dist/esm/hooks/wallet/useWalletsChanged.js +7 -6
- package/dist/esm/hooks/wallet/useWalletsChanged.js.map +2 -2
- package/dist/esm/index.css +232 -241
- package/dist/esm/index.css.map +3 -3
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +818 -1044
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/themes/lightTheme.js +19 -19
- package/dist/esm/themes/lightTheme.js.map +1 -1
- package/dist/esm/themes/themeContract.js.map +1 -1
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/utils/assertUnreachable.js.map +1 -1
- package/dist/esm/utils/walletUtils.d.ts +2 -2
- package/dist/esm/utils/walletUtils.js +2 -2
- package/dist/esm/utils/walletUtils.js.map +2 -2
- package/dist/esm/walletStore.d.ts +3 -2
- package/dist/esm/walletStore.js +8 -4
- package/dist/esm/walletStore.js.map +2 -2
- package/dist/index.css/package.json +5 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +27 -28
- package/src/components/AccountDropdownMenu.css.ts +11 -17
- package/src/components/AccountDropdownMenu.tsx +10 -5
- package/src/components/ConnectButton.tsx +12 -5
- package/src/components/WalletProvider.tsx +11 -22
- package/src/components/connect-modal/ConnectModal.css.ts +58 -17
- package/src/components/connect-modal/ConnectModal.tsx +101 -16
- package/src/components/connect-modal/views/ConnectionStatus.css.ts +36 -0
- package/src/components/connect-modal/views/ConnectionStatus.tsx +55 -0
- package/src/components/connect-modal/views/GettingStarted.css.ts +26 -0
- package/src/components/connect-modal/views/GettingStarted.tsx +40 -0
- package/src/components/connect-modal/views/WhatIsAWallet.css.ts +20 -0
- package/src/components/connect-modal/views/WhatIsAWallet.tsx +24 -0
- package/src/components/connect-modal/views/index.ts +2 -1
- package/src/components/connect-modal/wallet-list/WalletList.css.ts +1 -5
- package/src/components/connect-modal/wallet-list/WalletList.tsx +25 -11
- package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +6 -14
- package/src/components/connect-modal/wallet-list/WalletListItem.tsx +9 -12
- package/src/components/icons/BackIcon.tsx +18 -0
- package/src/components/icons/IotaIcon.tsx +6 -222
- package/src/components/styling/InjectedThemeStyles.tsx +4 -0
- package/src/components/styling/StyleMarker.css.ts +0 -15
- package/src/components/ui/Text.css.ts +1 -1
- package/src/constants/walletDefaults.ts +6 -5
- package/src/constants/walletMutationKeys.ts +3 -2
- package/src/hooks/useIotaClientInfiniteQuery.ts +2 -1
- package/src/hooks/useIotaClientQuery.ts +3 -1
- package/src/hooks/wallet/useAutoConnectWallet.ts +1 -1
- package/src/hooks/wallet/useConnectWallet.ts +6 -1
- package/src/hooks/wallet/useCurrentWallet.ts +4 -0
- package/src/hooks/wallet/useReportTransactionEffects.ts +87 -0
- package/src/hooks/wallet/useSignAndExecuteTransaction.ts +165 -0
- package/src/hooks/wallet/useSignPersonalMessage.ts +11 -25
- package/src/hooks/wallet/useSignTransaction.ts +117 -0
- package/src/hooks/wallet/useUnsafeBurnerWallet.ts +41 -18
- package/src/hooks/wallet/useWalletsChanged.ts +5 -4
- package/src/index.ts +4 -3
- package/src/themes/lightTheme.ts +19 -19
- package/src/types.ts +1 -1
- package/src/utils/walletUtils.ts +8 -3
- package/src/walletStore.ts +12 -1
- package/dist/cjs/components/connect-modal/views/WalletConnect.css +0 -179
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.css +0 -51
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.css.map +0 -7
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.d.ts +0 -8
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.js +0 -41
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.js.map +0 -7
- package/dist/cjs/components/connect-modal/views/WalletConnect.css.map +0 -7
- package/dist/cjs/components/connect-modal/views/WalletConnect.d.ts +0 -7
- package/dist/cjs/components/connect-modal/views/WalletConnect.js +0 -325
- package/dist/cjs/components/connect-modal/views/WalletConnect.js.map +0 -7
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +0 -7
- package/dist/esm/components/connect-modal/views/WalletConnect.css +0 -179
- package/dist/esm/components/connect-modal/views/WalletConnect.css.css +0 -51
- package/dist/esm/components/connect-modal/views/WalletConnect.css.css.map +0 -7
- package/dist/esm/components/connect-modal/views/WalletConnect.css.d.ts +0 -8
- package/dist/esm/components/connect-modal/views/WalletConnect.css.js +0 -20
- package/dist/esm/components/connect-modal/views/WalletConnect.css.js.map +0 -7
- package/dist/esm/components/connect-modal/views/WalletConnect.css.map +0 -7
- package/dist/esm/components/connect-modal/views/WalletConnect.d.ts +0 -7
- package/dist/esm/components/connect-modal/views/WalletConnect.js +0 -294
- package/dist/esm/components/connect-modal/views/WalletConnect.js.map +0 -7
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
- package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +0 -7
- package/src/components/connect-modal/views/WalletConnect.css.ts +0 -55
- package/src/components/connect-modal/views/WalletConnect.tsx +0 -79
- package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +0 -117
- package/src/hooks/wallet/useSignTransactionBlock.ts +0 -85
|
@@ -9,9 +9,9 @@ import type { StateStorage } from 'zustand/middleware';
|
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_PREFERRED_WALLETS,
|
|
12
|
-
DEFAULT_REQUIRED_FEATURES,
|
|
13
12
|
DEFAULT_STORAGE,
|
|
14
13
|
DEFAULT_STORAGE_KEY,
|
|
14
|
+
DEFAULT_WALLET_FILTER,
|
|
15
15
|
} from '../constants/walletDefaults.js';
|
|
16
16
|
import { WalletContext } from '../contexts/walletContext.js';
|
|
17
17
|
import { useAutoConnectWallet } from '../hooks/wallet/useAutoConnectWallet.js';
|
|
@@ -19,29 +19,18 @@ import { useUnsafeBurnerWallet } from '../hooks/wallet/useUnsafeBurnerWallet.js'
|
|
|
19
19
|
import { useWalletPropertiesChanged } from '../hooks/wallet/useWalletPropertiesChanged.js';
|
|
20
20
|
import { useWalletsChanged } from '../hooks/wallet/useWalletsChanged.js';
|
|
21
21
|
import { lightTheme } from '../themes/lightTheme.js';
|
|
22
|
-
import type {
|
|
22
|
+
import type { Theme } from '../themes/themeContract.js';
|
|
23
23
|
import { createInMemoryStore } from '../utils/stateStorage.js';
|
|
24
24
|
import { getRegisteredWallets } from '../utils/walletUtils.js';
|
|
25
25
|
import { createWalletStore } from '../walletStore.js';
|
|
26
26
|
import { InjectedThemeStyles } from './styling/InjectedThemeStyles.js';
|
|
27
|
-
import { darkTheme } from '../themes/darkTheme.js';
|
|
28
|
-
|
|
29
|
-
const themeWithSelectorAndMediaQuery: DynamicTheme[] = [
|
|
30
|
-
{
|
|
31
|
-
selector: '.dark',
|
|
32
|
-
variables: darkTheme,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
variables: lightTheme,
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
27
|
|
|
39
28
|
export type WalletProviderProps = {
|
|
40
29
|
/** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */
|
|
41
30
|
preferredWallets?: string[];
|
|
42
31
|
|
|
43
|
-
/** A
|
|
44
|
-
|
|
32
|
+
/** A filter function to select wallets that support features required for the dApp to function. This filters the list of wallets presented to users when selecting a wallet to connect from, ensuring that only wallets that meet the dApps requirements can connect. */
|
|
33
|
+
walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean;
|
|
45
34
|
|
|
46
35
|
/** Enables the development-only unsafe burner wallet, which can be useful for testing. */
|
|
47
36
|
enableUnsafeBurner?: boolean;
|
|
@@ -65,18 +54,18 @@ export type { WalletWithFeatures };
|
|
|
65
54
|
|
|
66
55
|
export function WalletProvider({
|
|
67
56
|
preferredWallets = DEFAULT_PREFERRED_WALLETS,
|
|
68
|
-
|
|
57
|
+
walletFilter = DEFAULT_WALLET_FILTER,
|
|
69
58
|
storage = DEFAULT_STORAGE,
|
|
70
59
|
storageKey = DEFAULT_STORAGE_KEY,
|
|
71
60
|
enableUnsafeBurner = false,
|
|
72
61
|
autoConnect = false,
|
|
73
|
-
theme =
|
|
62
|
+
theme = lightTheme,
|
|
74
63
|
children,
|
|
75
64
|
}: WalletProviderProps) {
|
|
76
65
|
const storeRef = useRef(
|
|
77
66
|
createWalletStore({
|
|
78
67
|
autoConnectEnabled: autoConnect,
|
|
79
|
-
wallets: getRegisteredWallets(preferredWallets,
|
|
68
|
+
wallets: getRegisteredWallets(preferredWallets, walletFilter),
|
|
80
69
|
storage: storage || createInMemoryStore(),
|
|
81
70
|
storageKey,
|
|
82
71
|
}),
|
|
@@ -86,7 +75,7 @@ export function WalletProvider({
|
|
|
86
75
|
<WalletContext.Provider value={storeRef.current}>
|
|
87
76
|
<WalletConnectionManager
|
|
88
77
|
preferredWallets={preferredWallets}
|
|
89
|
-
|
|
78
|
+
walletFilter={walletFilter}
|
|
90
79
|
enableUnsafeBurner={enableUnsafeBurner}
|
|
91
80
|
>
|
|
92
81
|
{/* TODO: We ideally don't want to inject styles if people aren't using the UI components */}
|
|
@@ -99,16 +88,16 @@ export function WalletProvider({
|
|
|
99
88
|
|
|
100
89
|
type WalletConnectionManagerProps = Pick<
|
|
101
90
|
WalletProviderProps,
|
|
102
|
-
'preferredWallets' | '
|
|
91
|
+
'preferredWallets' | 'walletFilter' | 'enableUnsafeBurner' | 'children'
|
|
103
92
|
>;
|
|
104
93
|
|
|
105
94
|
function WalletConnectionManager({
|
|
106
95
|
preferredWallets = DEFAULT_PREFERRED_WALLETS,
|
|
107
|
-
|
|
96
|
+
walletFilter = DEFAULT_WALLET_FILTER,
|
|
108
97
|
enableUnsafeBurner = false,
|
|
109
98
|
children,
|
|
110
99
|
}: WalletConnectionManagerProps) {
|
|
111
|
-
useWalletsChanged(preferredWallets,
|
|
100
|
+
useWalletsChanged(preferredWallets, walletFilter);
|
|
112
101
|
useWalletPropertiesChanged();
|
|
113
102
|
useUnsafeBurnerWallet(enableUnsafeBurner);
|
|
114
103
|
useAutoConnectWallet();
|
|
@@ -15,16 +15,7 @@ export const overlay = style({
|
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
export const title = style({
|
|
18
|
-
|
|
19
|
-
fontSize: themeVars.fontSizes.xlarge,
|
|
20
|
-
fontWeight: themeVars.fontWeights.medium,
|
|
21
|
-
margin: 0,
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export const separator = style({
|
|
25
|
-
height: 1,
|
|
26
|
-
backgroundColor: themeVars.backgroundColors.dropdownMenuSeparator,
|
|
27
|
-
width: '100%',
|
|
18
|
+
paddingLeft: 8,
|
|
28
19
|
});
|
|
29
20
|
|
|
30
21
|
export const content = style({
|
|
@@ -32,18 +23,20 @@ export const content = style({
|
|
|
32
23
|
borderRadius: themeVars.radii.xlarge,
|
|
33
24
|
color: themeVars.colors.body,
|
|
34
25
|
position: 'fixed',
|
|
35
|
-
|
|
36
|
-
left:
|
|
26
|
+
bottom: 16,
|
|
27
|
+
left: 16,
|
|
28
|
+
right: 16,
|
|
37
29
|
display: 'flex',
|
|
38
30
|
flexDirection: 'column',
|
|
31
|
+
justifyContent: 'space-between',
|
|
39
32
|
overflow: 'hidden',
|
|
40
33
|
minHeight: '50vh',
|
|
41
34
|
maxHeight: '85vh',
|
|
42
|
-
|
|
43
|
-
transform: 'translate(-50%, 100%)',
|
|
35
|
+
maxWidth: 700,
|
|
44
36
|
'@media': {
|
|
45
37
|
'screen and (min-width: 768px)': {
|
|
46
38
|
flexDirection: 'row',
|
|
39
|
+
width: '100%',
|
|
47
40
|
top: '50%',
|
|
48
41
|
left: '50%',
|
|
49
42
|
transform: 'translate(-50%, -50%)',
|
|
@@ -51,6 +44,31 @@ export const content = style({
|
|
|
51
44
|
},
|
|
52
45
|
});
|
|
53
46
|
|
|
47
|
+
export const whatIsAWalletButton = style({
|
|
48
|
+
backgroundColor: themeVars.backgroundColors.modalSecondary,
|
|
49
|
+
padding: 16,
|
|
50
|
+
'@media': {
|
|
51
|
+
'screen and (min-width: 768px)': {
|
|
52
|
+
display: 'none',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
export const viewContainer = style({
|
|
58
|
+
display: 'none',
|
|
59
|
+
padding: 20,
|
|
60
|
+
flexGrow: 1,
|
|
61
|
+
'@media': {
|
|
62
|
+
'screen and (min-width: 768px)': {
|
|
63
|
+
display: 'flex',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
export const selectedViewContainer = style({
|
|
69
|
+
display: 'flex',
|
|
70
|
+
});
|
|
71
|
+
|
|
54
72
|
export const backButtonContainer = style({
|
|
55
73
|
position: 'absolute',
|
|
56
74
|
top: 20,
|
|
@@ -71,10 +89,9 @@ export const closeButtonContainer = style({
|
|
|
71
89
|
export const walletListContent = style({
|
|
72
90
|
display: 'flex',
|
|
73
91
|
flexDirection: 'column',
|
|
74
|
-
width: '100%',
|
|
75
92
|
flexGrow: 1,
|
|
76
|
-
gap:
|
|
77
|
-
padding:
|
|
93
|
+
gap: 24,
|
|
94
|
+
padding: 20,
|
|
78
95
|
backgroundColor: themeVars.backgroundColors.modalPrimary,
|
|
79
96
|
'@media': {
|
|
80
97
|
'screen and (min-width: 768px)': {
|
|
@@ -82,3 +99,27 @@ export const walletListContent = style({
|
|
|
82
99
|
},
|
|
83
100
|
},
|
|
84
101
|
});
|
|
102
|
+
|
|
103
|
+
export const walletListContainer = style({
|
|
104
|
+
display: 'flex',
|
|
105
|
+
justifyContent: 'space-between',
|
|
106
|
+
flexDirection: 'column',
|
|
107
|
+
flexGrow: 1,
|
|
108
|
+
'@media': {
|
|
109
|
+
'screen and (min-width: 768px)': {
|
|
110
|
+
flexDirection: 'row',
|
|
111
|
+
flexBasis: 240,
|
|
112
|
+
flexGrow: 0,
|
|
113
|
+
flexShrink: 0,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
export const walletListContainerWithViewSelected = style({
|
|
119
|
+
display: 'none',
|
|
120
|
+
'@media': {
|
|
121
|
+
'screen and (min-width: 768px)': {
|
|
122
|
+
display: 'flex',
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
});
|
|
@@ -2,17 +2,26 @@
|
|
|
2
2
|
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
|
+
import type { WalletWithRequiredFeatures } from '@iota/wallet-standard';
|
|
5
6
|
import * as Dialog from '@radix-ui/react-dialog';
|
|
7
|
+
import clsx from 'clsx';
|
|
6
8
|
import { useState } from 'react';
|
|
7
9
|
import type { ReactNode } from 'react';
|
|
10
|
+
|
|
11
|
+
import { useConnectWallet } from '../../hooks/wallet/useConnectWallet.js';
|
|
12
|
+
import { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';
|
|
13
|
+
import { BackIcon } from '../icons/BackIcon.js';
|
|
8
14
|
import { CloseIcon } from '../icons/CloseIcon.js';
|
|
9
15
|
import { StyleMarker } from '../styling/StyleMarker.js';
|
|
10
16
|
import { Heading } from '../ui/Heading.js';
|
|
11
17
|
import { IconButton } from '../ui/IconButton.js';
|
|
12
18
|
import * as styles from './ConnectModal.css.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
19
|
+
import { ConnectionStatus } from './views/ConnectionStatus.js';
|
|
20
|
+
import { GettingStarted } from './views/GettingStarted.js';
|
|
21
|
+
import { WhatIsAWallet } from './views/WhatIsAWallet.js';
|
|
22
|
+
import { WalletList } from './wallet-list/WalletList.js';
|
|
23
|
+
|
|
24
|
+
type ConnectModalView = 'getting-started' | 'what-is-a-wallet' | 'connection-status';
|
|
16
25
|
|
|
17
26
|
type ControlledModalProps = {
|
|
18
27
|
/** The controlled open state of the dialog. */
|
|
@@ -39,14 +48,55 @@ type ConnectModalProps = {
|
|
|
39
48
|
} & (ControlledModalProps | UncontrolledModalProps);
|
|
40
49
|
|
|
41
50
|
export function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: ConnectModalProps) {
|
|
42
|
-
const wallets = useWallets();
|
|
43
51
|
const [isModalOpen, setModalOpen] = useState(open ?? defaultOpen);
|
|
52
|
+
const [currentView, setCurrentView] = useState<ConnectModalView>();
|
|
53
|
+
const [selectedWallet, setSelectedWallet] = useState<WalletWithRequiredFeatures>();
|
|
54
|
+
const { mutate, isError } = useConnectWallet();
|
|
55
|
+
|
|
56
|
+
const resetSelection = () => {
|
|
57
|
+
setSelectedWallet(undefined);
|
|
58
|
+
setCurrentView(undefined);
|
|
59
|
+
};
|
|
44
60
|
|
|
45
61
|
const handleOpenChange = (open: boolean) => {
|
|
62
|
+
if (!open) {
|
|
63
|
+
resetSelection();
|
|
64
|
+
}
|
|
46
65
|
setModalOpen(open);
|
|
47
66
|
onOpenChange?.(open);
|
|
48
67
|
};
|
|
49
68
|
|
|
69
|
+
const connectWallet = (wallet: WalletWithRequiredFeatures) => {
|
|
70
|
+
setCurrentView('connection-status');
|
|
71
|
+
mutate(
|
|
72
|
+
{ wallet },
|
|
73
|
+
{
|
|
74
|
+
onSuccess: () => handleOpenChange(false),
|
|
75
|
+
},
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
let modalContent: ReactNode | undefined;
|
|
80
|
+
switch (currentView) {
|
|
81
|
+
case 'what-is-a-wallet':
|
|
82
|
+
modalContent = <WhatIsAWallet />;
|
|
83
|
+
break;
|
|
84
|
+
case 'getting-started':
|
|
85
|
+
modalContent = <GettingStarted />;
|
|
86
|
+
break;
|
|
87
|
+
case 'connection-status':
|
|
88
|
+
modalContent = (
|
|
89
|
+
<ConnectionStatus
|
|
90
|
+
selectedWallet={selectedWallet!}
|
|
91
|
+
hadConnectionError={isError}
|
|
92
|
+
onRetryConnection={connectWallet}
|
|
93
|
+
/>
|
|
94
|
+
);
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
modalContent = <WhatIsAWallet />;
|
|
98
|
+
}
|
|
99
|
+
|
|
50
100
|
return (
|
|
51
101
|
<Dialog.Root open={open ?? isModalOpen} onOpenChange={handleOpenChange}>
|
|
52
102
|
<Dialog.Trigger asChild>{trigger}</Dialog.Trigger>
|
|
@@ -54,19 +104,54 @@ export function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: Conne
|
|
|
54
104
|
<StyleMarker>
|
|
55
105
|
<Dialog.Overlay className={styles.overlay}>
|
|
56
106
|
<Dialog.Content className={styles.content} aria-describedby={undefined}>
|
|
57
|
-
<div
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
107
|
+
<div
|
|
108
|
+
className={clsx(styles.walletListContainer, {
|
|
109
|
+
[styles.walletListContainerWithViewSelected]: !!currentView,
|
|
110
|
+
})}
|
|
111
|
+
>
|
|
112
|
+
<div className={styles.walletListContent}>
|
|
113
|
+
<Dialog.Title className={styles.title} asChild>
|
|
114
|
+
<Heading as="h2">Connect a Wallet</Heading>
|
|
115
|
+
</Dialog.Title>
|
|
116
|
+
<WalletList
|
|
117
|
+
selectedWalletName={getWalletUniqueIdentifier(
|
|
118
|
+
selectedWallet,
|
|
119
|
+
)}
|
|
120
|
+
onPlaceholderClick={() => setCurrentView('getting-started')}
|
|
121
|
+
onSelect={(wallet) => {
|
|
122
|
+
if (
|
|
123
|
+
getWalletUniqueIdentifier(selectedWallet) !==
|
|
124
|
+
getWalletUniqueIdentifier(wallet)
|
|
125
|
+
) {
|
|
126
|
+
setSelectedWallet(wallet);
|
|
127
|
+
connectWallet(wallet);
|
|
128
|
+
}
|
|
129
|
+
}}
|
|
66
130
|
/>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
131
|
+
</div>
|
|
132
|
+
<button
|
|
133
|
+
className={styles.whatIsAWalletButton}
|
|
134
|
+
onClick={() => setCurrentView('what-is-a-wallet')}
|
|
135
|
+
type="button"
|
|
136
|
+
>
|
|
137
|
+
What is a Wallet?
|
|
138
|
+
</button>
|
|
139
|
+
</div>
|
|
140
|
+
<div
|
|
141
|
+
className={clsx(styles.viewContainer, {
|
|
142
|
+
[styles.selectedViewContainer]: !!currentView,
|
|
143
|
+
})}
|
|
144
|
+
>
|
|
145
|
+
<div className={styles.backButtonContainer}>
|
|
146
|
+
<IconButton
|
|
147
|
+
type="button"
|
|
148
|
+
aria-label="Back"
|
|
149
|
+
onClick={() => resetSelection()}
|
|
150
|
+
>
|
|
151
|
+
<BackIcon />
|
|
152
|
+
</IconButton>
|
|
153
|
+
</div>
|
|
154
|
+
{modalContent}
|
|
70
155
|
</div>
|
|
71
156
|
<Dialog.Close className={styles.closeButtonContainer} asChild>
|
|
72
157
|
<IconButton type="button" aria-label="Close">
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import { style } from '@vanilla-extract/css';
|
|
6
|
+
|
|
7
|
+
import { themeVars } from '../../../themes/themeContract.js';
|
|
8
|
+
|
|
9
|
+
export const container = style({
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexDirection: 'column',
|
|
12
|
+
justifyContent: 'center',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
width: '100%',
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const walletIcon = style({
|
|
18
|
+
objectFit: 'cover',
|
|
19
|
+
width: 72,
|
|
20
|
+
height: 72,
|
|
21
|
+
borderRadius: themeVars.radii.large,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export const title = style({
|
|
25
|
+
marginTop: 12,
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export const connectionStatus = style({
|
|
29
|
+
marginTop: 4,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const retryButtonContainer = style({
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
bottom: 20,
|
|
35
|
+
right: 20,
|
|
36
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import type { WalletWithRequiredFeatures } from '@iota/wallet-standard';
|
|
6
|
+
|
|
7
|
+
import { Button } from '../../ui/Button.js';
|
|
8
|
+
import { Heading } from '../../ui/Heading.js';
|
|
9
|
+
import { Text } from '../../ui/Text.js';
|
|
10
|
+
import * as styles from './ConnectionStatus.css.js';
|
|
11
|
+
|
|
12
|
+
type ConnectionStatusProps = {
|
|
13
|
+
selectedWallet: WalletWithRequiredFeatures;
|
|
14
|
+
hadConnectionError: boolean;
|
|
15
|
+
onRetryConnection: (selectedWallet: WalletWithRequiredFeatures) => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export function ConnectionStatus({
|
|
19
|
+
selectedWallet,
|
|
20
|
+
hadConnectionError,
|
|
21
|
+
onRetryConnection,
|
|
22
|
+
}: ConnectionStatusProps) {
|
|
23
|
+
return (
|
|
24
|
+
<div className={styles.container}>
|
|
25
|
+
<img
|
|
26
|
+
className={styles.walletIcon}
|
|
27
|
+
src={selectedWallet.icon}
|
|
28
|
+
alt={`${selectedWallet.name} logo`}
|
|
29
|
+
/>
|
|
30
|
+
<div className={styles.title}>
|
|
31
|
+
<Heading as="h2" size="xl">
|
|
32
|
+
Opening {selectedWallet.name}
|
|
33
|
+
</Heading>
|
|
34
|
+
</div>
|
|
35
|
+
<div className={styles.connectionStatus}>
|
|
36
|
+
{hadConnectionError ? (
|
|
37
|
+
<Text color="danger">Connection failed</Text>
|
|
38
|
+
) : (
|
|
39
|
+
<Text color="muted">Confirm connection in the wallet...</Text>
|
|
40
|
+
)}
|
|
41
|
+
</div>
|
|
42
|
+
{hadConnectionError ? (
|
|
43
|
+
<div className={styles.retryButtonContainer}>
|
|
44
|
+
<Button
|
|
45
|
+
type="button"
|
|
46
|
+
variant="outline"
|
|
47
|
+
onClick={() => onRetryConnection(selectedWallet)}
|
|
48
|
+
>
|
|
49
|
+
Retry Connection
|
|
50
|
+
</Button>
|
|
51
|
+
</div>
|
|
52
|
+
) : null}
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import { style } from '@vanilla-extract/css';
|
|
6
|
+
|
|
7
|
+
export const container = style({
|
|
8
|
+
display: 'flex',
|
|
9
|
+
flexDirection: 'column',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export const content = style({
|
|
14
|
+
display: 'flex',
|
|
15
|
+
flexDirection: 'column',
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
flexGrow: 1,
|
|
18
|
+
gap: 20,
|
|
19
|
+
padding: 40,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const installButtonContainer = style({
|
|
23
|
+
position: 'absolute',
|
|
24
|
+
bottom: 20,
|
|
25
|
+
right: 20,
|
|
26
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import { Button } from '../../ui/Button.js';
|
|
6
|
+
import { Heading } from '../../ui/Heading.js';
|
|
7
|
+
import { InfoSection } from '../InfoSection.js';
|
|
8
|
+
import * as styles from './GettingStarted.css.js';
|
|
9
|
+
|
|
10
|
+
export function GettingStarted() {
|
|
11
|
+
return (
|
|
12
|
+
<div className={styles.container}>
|
|
13
|
+
<Heading as="h2">Get Started with IOTA</Heading>
|
|
14
|
+
<div className={styles.content}>
|
|
15
|
+
<InfoSection title="Install the IOTA Wallet Extension">
|
|
16
|
+
We recommend pinning IOTA Wallet to your taskbar for quicker access.
|
|
17
|
+
</InfoSection>
|
|
18
|
+
<InfoSection title="Create or Import a Wallet">
|
|
19
|
+
Be sure to back up your wallet using a secure method. Never share your secret
|
|
20
|
+
phrase with anyone.
|
|
21
|
+
</InfoSection>
|
|
22
|
+
<InfoSection title="Refresh Your Browser">
|
|
23
|
+
Once you set up your wallet, refresh this window browser to load up the
|
|
24
|
+
extension.
|
|
25
|
+
</InfoSection>
|
|
26
|
+
<div className={styles.installButtonContainer}>
|
|
27
|
+
<Button variant="outline" asChild>
|
|
28
|
+
<a
|
|
29
|
+
href="https://chrome.google.com/webstore/detail/iota-wallet/opcgpfmipidbgpenhmajoajpbobppdil"
|
|
30
|
+
target="_blank"
|
|
31
|
+
rel="noreferrer"
|
|
32
|
+
>
|
|
33
|
+
Install Wallet Extension
|
|
34
|
+
</a>
|
|
35
|
+
</Button>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import { style } from '@vanilla-extract/css';
|
|
6
|
+
|
|
7
|
+
export const container = style({
|
|
8
|
+
display: 'flex',
|
|
9
|
+
flexDirection: 'column',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export const content = style({
|
|
14
|
+
display: 'flex',
|
|
15
|
+
flexDirection: 'column',
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
flexGrow: 1,
|
|
18
|
+
gap: 20,
|
|
19
|
+
padding: 40,
|
|
20
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// Modifications Copyright (c) 2024 IOTA Stiftung
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
import { Heading } from '../../ui/Heading.js';
|
|
6
|
+
import { InfoSection } from '../InfoSection.js';
|
|
7
|
+
import * as styles from './WhatIsAWallet.css.js';
|
|
8
|
+
|
|
9
|
+
export function WhatIsAWallet() {
|
|
10
|
+
return (
|
|
11
|
+
<div className={styles.container}>
|
|
12
|
+
<Heading as="h2">What is a Wallet</Heading>
|
|
13
|
+
<div className={styles.content}>
|
|
14
|
+
<InfoSection title="Easy Login">
|
|
15
|
+
No need to create new accounts and passwords for every website. Just connect
|
|
16
|
+
your wallet and get going.
|
|
17
|
+
</InfoSection>
|
|
18
|
+
<InfoSection title="Store your Digital Assets">
|
|
19
|
+
Send, receive, store, and display your digital assets like NFTs & coins.
|
|
20
|
+
</InfoSection>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -3,13 +3,9 @@
|
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
5
|
import { style } from '@vanilla-extract/css';
|
|
6
|
-
import { themeVars } from '../../../themes/themeContract.js';
|
|
7
6
|
|
|
8
7
|
export const container = style({
|
|
9
8
|
display: 'flex',
|
|
10
9
|
flexDirection: 'column',
|
|
11
|
-
gap:
|
|
12
|
-
height: '100%',
|
|
13
|
-
width: '100%',
|
|
14
|
-
maxHeight: '330px',
|
|
10
|
+
gap: 4,
|
|
15
11
|
});
|
|
@@ -3,27 +3,41 @@
|
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
5
|
import type { WalletWithRequiredFeatures } from '@iota/wallet-standard';
|
|
6
|
+
|
|
7
|
+
import { useWallets } from '../../../hooks/wallet/useWallets.js';
|
|
6
8
|
import { getWalletUniqueIdentifier } from '../../../utils/walletUtils.js';
|
|
9
|
+
import { IotaIcon } from '../../icons/IotaIcon.js';
|
|
7
10
|
import * as styles from './WalletList.css.js';
|
|
8
11
|
import { WalletListItem } from './WalletListItem.js';
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
type WalletListProps = {
|
|
11
14
|
selectedWalletName?: string;
|
|
15
|
+
onPlaceholderClick: () => void;
|
|
12
16
|
onSelect: (wallet: WalletWithRequiredFeatures) => void;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export function WalletList({ selectedWalletName,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }: WalletListProps) {
|
|
20
|
+
const wallets = useWallets();
|
|
16
21
|
return (
|
|
17
22
|
<ul className={styles.container}>
|
|
18
|
-
{wallets.
|
|
23
|
+
{wallets.length > 0 ? (
|
|
24
|
+
wallets.map((wallet) => (
|
|
25
|
+
<WalletListItem
|
|
26
|
+
key={getWalletUniqueIdentifier(wallet)}
|
|
27
|
+
name={wallet.name}
|
|
28
|
+
icon={wallet.icon}
|
|
29
|
+
isSelected={getWalletUniqueIdentifier(wallet) === selectedWalletName}
|
|
30
|
+
onClick={() => onSelect(wallet)}
|
|
31
|
+
/>
|
|
32
|
+
))
|
|
33
|
+
) : (
|
|
19
34
|
<WalletListItem
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
isSelected
|
|
24
|
-
onClick={() => onSelect(wallet)}
|
|
35
|
+
name="IOTA Wallet"
|
|
36
|
+
icon={<IotaIcon />}
|
|
37
|
+
onClick={onPlaceholderClick}
|
|
38
|
+
isSelected
|
|
25
39
|
/>
|
|
26
|
-
)
|
|
40
|
+
)}
|
|
27
41
|
</ul>
|
|
28
42
|
);
|
|
29
43
|
}
|