@mysten/dapp-kit 0.4.0 → 0.6.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 +28 -0
- package/README.md +6 -6
- package/dist/cjs/components/AccountDropdownMenu.d.ts +4 -0
- package/dist/cjs/components/AccountDropdownMenu.js +61 -18
- package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
- package/dist/cjs/components/ConnectButton.js +74 -25
- package/dist/cjs/components/ConnectButton.js.map +3 -3
- package/dist/cjs/components/SuiClientProvider.d.ts +4 -4
- package/dist/cjs/components/SuiClientProvider.js +1 -0
- package/dist/cjs/components/SuiClientProvider.js.map +2 -2
- package/dist/cjs/components/WalletProvider.js +91 -28
- package/dist/cjs/components/WalletProvider.js.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.js +15 -8
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/cjs/hooks/networkConfig.d.ts +10 -0
- package/dist/cjs/hooks/networkConfig.js +74 -0
- package/dist/cjs/hooks/networkConfig.js.map +7 -0
- package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +3 -105
- package/dist/cjs/hooks/useResolveSuiNSNames.js +6 -5
- package/dist/cjs/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/cjs/hooks/useSuiClient.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientMutation.d.ts +1 -1
- package/dist/cjs/hooks/useSuiClientMutation.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientQuery.d.ts +3 -2
- package/dist/cjs/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js +50 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/cjs/index.css +127 -127
- package/dist/cjs/index.css.map +3 -3
- package/dist/cjs/index.d.ts +14 -10
- package/dist/cjs/index.js +698 -577
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/walletStore.d.ts +10 -2
- package/dist/cjs/walletStore.js +23 -4
- package/dist/cjs/walletStore.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.d.ts +4 -0
- package/dist/esm/components/AccountDropdownMenu.js +61 -18
- package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
- package/dist/esm/components/ConnectButton.js +74 -25
- package/dist/esm/components/ConnectButton.js.map +3 -3
- package/dist/esm/components/SuiClientProvider.d.ts +4 -4
- package/dist/esm/components/SuiClientProvider.js +1 -0
- package/dist/esm/components/SuiClientProvider.js.map +2 -2
- package/dist/esm/components/WalletProvider.js +91 -28
- package/dist/esm/components/WalletProvider.js.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.js +15 -8
- package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/esm/hooks/networkConfig.d.ts +10 -0
- package/dist/esm/hooks/networkConfig.js +51 -0
- package/dist/esm/hooks/networkConfig.js.map +7 -0
- package/dist/esm/hooks/useResolveSuiNSNames.d.ts +3 -105
- package/dist/esm/hooks/useResolveSuiNSNames.js +6 -5
- package/dist/esm/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/esm/hooks/useSuiClient.js.map +2 -2
- package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/esm/hooks/useSuiClientMutation.d.ts +1 -1
- package/dist/esm/hooks/useSuiClientMutation.js.map +2 -2
- package/dist/esm/hooks/useSuiClientQuery.d.ts +3 -2
- package/dist/esm/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js +27 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/esm/hooks/wallet/useConnectWallet.d.ts +1 -1
- package/dist/esm/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +1 -1
- package/dist/esm/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/esm/index.css +127 -127
- package/dist/esm/index.css.map +3 -3
- package/dist/esm/index.d.ts +14 -10
- package/dist/esm/index.js +692 -571
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/walletStore.d.ts +10 -2
- package/dist/esm/walletStore.js +23 -4
- package/dist/esm/walletStore.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/components/AccountDropdownMenu.tsx +26 -8
- package/src/components/SuiClientProvider.tsx +11 -2
- package/src/components/WalletProvider.tsx +1 -0
- package/src/hooks/networkConfig.ts +45 -0
- package/src/hooks/useResolveSuiNSNames.ts +14 -5
- package/src/hooks/useSuiClientInfiniteQuery.ts +38 -24
- package/src/hooks/useSuiClientQuery.ts +11 -7
- package/src/hooks/wallet/useAutoConnectWallet.ts +24 -7
- package/src/hooks/wallet/useAutoConnectionStatus.ts +12 -0
- package/src/hooks/wallet/useConnectWallet.ts +17 -8
- package/src/hooks/wallet/useCurrentWallet.ts +30 -1
- package/src/hooks/wallet/useDisconnectWallet.ts +1 -1
- package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +1 -1
- package/src/hooks/wallet/useSignPersonalMessage.ts +1 -1
- package/src/hooks/wallet/useSignTransactionBlock.ts +1 -1
- package/src/hooks/wallet/useSwitchAccount.ts +1 -1
- package/src/hooks/wallet/useWalletPropertiesChanged.ts +1 -1
- package/src/index.ts +14 -10
- package/src/walletStore.ts +30 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/styling/StyleMarker.css.ts", "../../../../src/components/connect-modal/ConnectModal.tsx", "../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/components/icons/BackIcon.tsx", "../../../../src/components/icons/CloseIcon.tsx", "../../../../src/components/styling/StyleMarker.tsx", "../../../../src/constants/styleDataAttribute.ts", "../../../../src/components/ui/Heading.tsx", "../../../../src/components/ui/Heading.css.ts", "../../../../src/components/ui/IconButton.tsx", "../../../../src/components/ui/IconButton.css.ts", "../../../../src/components/connect-modal/ConnectModal.css.ts", "../../../../src/components/ui/Button.tsx", "../../../../src/components/ui/Button.css.ts", "../../../../src/components/ui/Text.tsx", "../../../../src/components/ui/Text.css.ts", "../../../../src/components/connect-modal/views/ConnectionStatus.css.ts", "../../../../src/components/connect-modal/views/ConnectionStatus.tsx", "../../../../src/components/connect-modal/InfoSection.css.ts", "../../../../src/components/connect-modal/InfoSection.tsx", "../../../../src/components/connect-modal/views/GettingStarted.css.ts", "../../../../src/components/connect-modal/views/GettingStarted.tsx", "../../../../src/components/connect-modal/views/WhatIsAWallet.css.ts", "../../../../src/components/connect-modal/views/WhatIsAWallet.tsx", "../../../../src/hooks/wallet/useWallets.ts", "../../../../src/components/icons/SuiIcon.tsx", "../../../../src/components/connect-modal/wallet-list/WalletList.css.ts", "../../../../src/components/connect-modal/wallet-list/WalletListItem.tsx", "../../../../src/components/connect-modal/wallet-list/WalletListItem.css.ts", "../../../../src/components/connect-modal/wallet-list/WalletList.tsx"],
|
|
4
|
-
"sourcesContent": ["import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { useConnectWallet } from '../../hooks/wallet/useConnectWallet.js';\nimport { BackIcon } from '../icons/BackIcon.js';\nimport { CloseIcon } from '../icons/CloseIcon.js';\nimport { StyleMarker } from '../styling/StyleMarker.js';\nimport { Heading } from '../ui/Heading.js';\nimport { IconButton } from '../ui/IconButton.js';\nimport * as styles from './ConnectModal.css.js';\nimport { ConnectionStatus } from './views/ConnectionStatus.js';\nimport { GettingStarted } from './views/GettingStarted.js';\nimport { WhatIsAWallet } from './views/WhatIsAWallet.js';\nimport { WalletList } from './wallet-list/WalletList.js';\n\ntype ConnectModalView = 'getting-started' | 'what-is-a-wallet' | 'connection-status';\n\ntype ControlledModalProps = {\n\t/** The controlled open state of the dialog. */\n\topen: boolean;\n\n\t/** Event handler called when the open state of the dialog changes. */\n\tonOpenChange: (open: boolean) => void;\n\n\tdefaultOpen?: never;\n};\n\ntype UncontrolledModalProps = {\n\topen?: never;\n\n\tonOpenChange?: never;\n\n\t/** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n\tdefaultOpen?: boolean;\n};\n\ntype ConnectModalProps = {\n\t/** The trigger button that opens the dialog. */\n\ttrigger: NonNullable<ReactNode>;\n} & (ControlledModalProps | UncontrolledModalProps);\n\nexport function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: ConnectModalProps) {\n\tconst [isModalOpen, setModalOpen] = useState(open ?? defaultOpen);\n\tconst [currentView, setCurrentView] = useState<ConnectModalView>();\n\tconst [selectedWallet, setSelectedWallet] = useState<WalletWithRequiredFeatures>();\n\tconst { mutate, isError } = useConnectWallet();\n\n\tconst resetSelection = () => {\n\t\tsetSelectedWallet(undefined);\n\t\tsetCurrentView(undefined);\n\t};\n\n\tconst handleOpenChange = (open: boolean) => {\n\t\tif (!open) {\n\t\t\tresetSelection();\n\t\t}\n\t\tsetModalOpen(open);\n\t\tonOpenChange?.(open);\n\t};\n\n\tconst connectWallet = (wallet: WalletWithRequiredFeatures) => {\n\t\tsetCurrentView('connection-status');\n\t\tmutate(\n\t\t\t{ wallet },\n\t\t\t{\n\t\t\t\tonSuccess: () => handleOpenChange(false),\n\t\t\t},\n\t\t);\n\t};\n\n\tlet modalContent: ReactNode | undefined;\n\tswitch (currentView) {\n\t\tcase 'what-is-a-wallet':\n\t\t\tmodalContent = <WhatIsAWallet />;\n\t\t\tbreak;\n\t\tcase 'getting-started':\n\t\t\tmodalContent = <GettingStarted />;\n\t\t\tbreak;\n\t\tcase 'connection-status':\n\t\t\tmodalContent = (\n\t\t\t\t<ConnectionStatus\n\t\t\t\t\tselectedWallet={selectedWallet!}\n\t\t\t\t\thadConnectionError={isError}\n\t\t\t\t\tonRetryConnection={connectWallet}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmodalContent = <WhatIsAWallet />;\n\t}\n\n\treturn (\n\t\t<Dialog.Root open={open ?? isModalOpen} onOpenChange={handleOpenChange}>\n\t\t\t<StyleMarker>\n\t\t\t\t<Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\n\t\t\t</StyleMarker>\n\t\t\t<Dialog.Portal>\n\t\t\t\t<StyleMarker>\n\t\t\t\t\t<Dialog.Overlay className={styles.overlay}>\n\t\t\t\t\t\t<Dialog.Content className={styles.content} aria-describedby={undefined}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={clsx(styles.walletListContainer, {\n\t\t\t\t\t\t\t\t\t[styles.walletListContainerWithViewSelected]: !!currentView,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={styles.walletListContent}>\n\t\t\t\t\t\t\t\t\t<Dialog.Title className={styles.title} asChild>\n\t\t\t\t\t\t\t\t\t\t<Heading as=\"h2\">Connect a Wallet</Heading>\n\t\t\t\t\t\t\t\t\t</Dialog.Title>\n\t\t\t\t\t\t\t\t\t<WalletList\n\t\t\t\t\t\t\t\t\t\tselectedWalletName={selectedWallet?.name}\n\t\t\t\t\t\t\t\t\t\tonPlaceholderClick={() => setCurrentView('getting-started')}\n\t\t\t\t\t\t\t\t\t\tonSelect={(wallet) => {\n\t\t\t\t\t\t\t\t\t\t\tif (selectedWallet?.name !== wallet.name) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWallet(wallet);\n\t\t\t\t\t\t\t\t\t\t\t\tconnectWallet(wallet);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName={styles.whatIsAWalletButton}\n\t\t\t\t\t\t\t\t\tonClick={() => setCurrentView('what-is-a-wallet')}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tWhat is a Wallet?\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={clsx(styles.viewContainer, {\n\t\t\t\t\t\t\t\t\t[styles.selectedViewContainer]: !!currentView,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={styles.backButtonContainer}>\n\t\t\t\t\t\t\t\t\t<IconButton type=\"button\" aria-label=\"Back\" onClick={() => resetSelection()}>\n\t\t\t\t\t\t\t\t\t\t<BackIcon />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{modalContent}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Dialog.Close className={styles.closeButtonContainer} asChild>\n\t\t\t\t\t\t\t\t<IconButton type=\"button\" aria-label=\"Close\">\n\t\t\t\t\t\t\t\t\t<CloseIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Dialog.Close>\n\t\t\t\t\t\t</Dialog.Content>\n\t\t\t\t\t</Dialog.Overlay>\n\t\t\t\t</StyleMarker>\n\t\t\t</Dialog.Portal>\n\t\t</Dialog.Root>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@mysten/wallet-standard';\nimport type { UseMutationOptions } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}) {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {\n\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(standardConnectInput);\n\t\t\tconst connectedSuiAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'sui'),\n\t\t\t);\n\t\t\tconst selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);\n\n\t\t\tsetWalletConnected(wallet, connectedSuiAccounts, selectedAccount);\n\t\t\treturn { accounts: connectedSuiAccounts };\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\n// FIXME: Replace this with a 10x10 icon to match the CheckIcon, or alternatively make the CheckIcon bigger\n// Right now, the icons don't align on mobile :(\nexport function BackIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={24} height={24} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<path\n\t\t\t\td=\"M7.57 12.262c0 .341.13.629.403.895l5.175 5.059c.204.205.45.307.751.307.609 0 1.101-.485 1.101-1.087 0-.293-.123-.574-.349-.8L10.14 12.27l4.511-4.375A1.13 1.13 0 0 0 15 7.087C15 6.485 14.508 6 13.9 6c-.295 0-.54.103-.752.308l-5.175 5.058c-.28.28-.404.56-.404.896Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CloseIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={10} height={10} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<path\n\t\t\t\td=\"M9.708.292a.999.999 0 0 0-1.413 0l-3.289 3.29L1.717.291A.999.999 0 0 0 .305 1.705l3.289 3.289-3.29 3.289a.999.999 0 1 0 1.413 1.412l3.29-3.289 3.288 3.29a.999.999 0 0 0 1.413-1.413l-3.29-3.29 3.29-3.288a.999.999 0 0 0 0-1.413Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentPropsWithoutRef, ElementRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { styleDataAttribute } from '../../constants/styleDataAttribute.js';\n\nimport './StyleMarker.css.js';\n\ntype StyleMarker = {\n\tchildren: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n\tElementRef<typeof Slot>,\n\tComponentPropsWithoutRef<typeof Slot>\n>(({ children }, forwardedRef) => (\n\t<Slot ref={forwardedRef} {...styleDataAttribute}>\n\t\t{children}\n\t</Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { headingVariants } from './Heading.css.js';\nimport type { HeadingVariants } from './Heading.css.js';\n\ntype HeadingAsChildProps = {\n\tasChild?: boolean;\n\tas?: never;\n};\n\ntype HeadingAsProps = {\n\tas?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\tasChild?: never;\n};\n\ntype HeadingProps = (HeadingAsChildProps | HeadingAsProps) &\n\tReact.HTMLAttributes<HTMLHeadingElement> &\n\tHeadingVariants;\n\nconst Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tasChild = false,\n\t\t\tas: Tag = 'h1',\n\t\t\tsize,\n\t\t\tweight,\n\t\t\ttruncate,\n\t\t\t...headingProps\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{...headingProps}\n\t\t\t\tref={forwardedRef}\n\t\t\t\tclassName={clsx(headingVariants({ size, weight, truncate }), className)}\n\t\t\t>\n\t\t\t\t{asChild ? children : <Tag>{children}</Tag>}\n\t\t\t</Slot>\n\t\t);\n\t},\n);\nHeading.displayName = 'Heading';\n\nexport { Heading };\n", "import 'src/components/ui/Heading.css.ts.vanilla.css?source=LkhlYWRpbmdfaGVhZGluZ1ZhcmlhbnRzX3NpemVfc21fXzFhYTgzNWsxIHsKICBmb250LXNpemU6IHZhcigtLWRhcHAta2l0LWZvbnRTaXplcy1zbWFsbCk7Cn0KLkhlYWRpbmdfaGVhZGluZ1ZhcmlhbnRzX3NpemVfbWRfXzFhYTgzNWsyIHsKICBmb250LXNpemU6IHZhcigtLWRhcHAta2l0LWZvbnRTaXplcy1tZWRpdW0pOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c19zaXplX2xnX18xYWE4MzVrMyB7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250U2l6ZXMtbGFyZ2UpOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c19zaXplX3hsX18xYWE4MzVrNCB7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250U2l6ZXMteGxhcmdlKTsKfQouSGVhZGluZ19oZWFkaW5nVmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fMWFhODM1azUgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c193ZWlnaHRfYm9sZF9fMWFhODM1azYgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ib2xkKTsKfQouSGVhZGluZ19oZWFkaW5nVmFyaWFudHNfdHJ1bmNhdGVfdHJ1ZV9fMWFhODM1azcgewogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var headingVariants = _7a468({defaultClassName:'Heading__1aa835k0',variantClassNames:{size:{sm:'Heading_headingVariants_size_sm__1aa835k1',md:'Heading_headingVariants_size_md__1aa835k2',lg:'Heading_headingVariants_size_lg__1aa835k3',xl:'Heading_headingVariants_size_xl__1aa835k4'},weight:{normal:'Heading_headingVariants_weight_normal__1aa835k5',bold:'Heading_headingVariants_weight_bold__1aa835k6'},truncate:{true:'Heading_headingVariants_truncate_true__1aa835k7'}},defaultVariants:{size:'lg',weight:'bold'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport * as styles from './IconButton.css.js';\n\ntype IconButtonProps = {\n\tasChild?: boolean;\n\t'aria-label': string;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nconst IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n\t({ className, asChild = false, ...props }, forwardedRef) => {\n\t\tconst Comp = asChild ? Slot : 'button';\n\t\treturn <Comp {...props} className={clsx(styles.container, className)} ref={forwardedRef} />;\n\t},\n);\nIconButton.displayName = 'Button';\n\nexport { IconButton };\n", "import 'src/components/ui/IconButton.css.ts.vanilla.css?source=Lkljb25CdXR0b25fY29udGFpbmVyX19zNm43YnEwIHsKICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgcGFkZGluZzogOHB4OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtaWNvbkJ1dHRvbik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFwcC1raXQtYmFja2dyb3VuZENvbG9ycy1pY29uQnV0dG9uKTsKfQouSWNvbkJ1dHRvbl9jb250YWluZXJfX3M2bjdicTA6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcHAta2l0LWJhY2tncm91bmRDb2xvcnMtaWNvbkJ1dHRvbkhvdmVyKTsKfQ==';\nexport var container = 'IconButton_container__s6n7bq0';", "import 'src/components/connect-modal/ConnectModal.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61UTW/bMAy951foMiAFpsLpmjZ1Ltt6GrBhAwqsx0KxmJiLLBmS8tEO+e+TZDlpajUJkPWQ2pT5yPf4qMt7JSUU9ofiTDypJWjBnp+eZi+jl7uM/O0RMmHFfKbVQnJaKKF0TpZM9ynlrK7pHC3dfXDvzw2tPNbPBupiHCG4VjWdorCQQBCLVFqtDFpUMidTXAP3IZQGbE4y//xCUXJY5+Su/Rv3Nr3LPUIWrYBIZxDo1IxzlDMqYOqARvW6m1QoaUHamHZ1jgq/NFZMRxWU5qCpZhwXppPvw0jXgukZhM/TZYoGfKL4uxpNlLWqysngxpMjpGHavmmcla9eOZra6e3SBYSA/085aqdGgHUFF5X0J38WxuL0mUZ5cmJqVgCdgF0BhC+8faZCrXJSIudNrEJJS2iKDrNlGWJsvY2NhrvYCrktc3KbZamxrEpmv5kvj0wIsF8XjqSMI/p0zogewBHi7ZCiPVqB3vawRFi5gGUoQcfq16H6VkipJOwhXWX1TllX38kz6CIbEO4Z+O9EheF+hWZUbwE8u0aVt+k3jfG3TmET44ZqQ5dW1bsOG6dcJdUvhDKQxr89hp/0Xme8Ya7f0dj7vf0bpcgf8um+zoTMmKd43bTQmcrZi32Yx2ud7tJMju/VqVxPaOURbekt9hDtFltjKQ9vep8r4MiIKbTrhDDJSd/vc7unN+76vAiZxy/QLgvX9TgcRLhBln1oAsE0w/atceX21WomzVRpd8OFR8Es9Kk7/kj8b9jiTaelY5dHYoG7IO9vf2Ks3fRjG3pSD4fX5D/dgsfKdl19YLzhYMIMGr+Gce32rJu9iphSo5zH2El9HLR0cjCbf+XuA2j2CAAA';\nexport var backButtonContainer = 'ConnectModal_backButtonContainer__gz8z96';\nexport var closeButtonContainer = 'ConnectModal_closeButtonContainer__gz8z97';\nexport var content = 'ConnectModal_content__gz8z92';\nexport var overlay = 'ConnectModal_overlay__gz8z90';\nexport var selectedViewContainer = 'ConnectModal_selectedViewContainer__gz8z95';\nexport var title = 'ConnectModal_title__gz8z91';\nexport var viewContainer = 'ConnectModal_viewContainer__gz8z94';\nexport var walletListContainer = 'ConnectModal_walletListContainer__gz8z99';\nexport var walletListContainerWithViewSelected = 'ConnectModal_walletListContainerWithViewSelected__gz8z9a';\nexport var walletListContent = 'ConnectModal_walletListContent__gz8z98';\nexport var whatIsAWalletButton = 'ConnectModal_whatIsAWalletButton__gz8z93';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { buttonVariants } from './Button.css.js';\nimport type { ButtonVariants } from './Button.css.js';\n\ntype ButtonProps = {\n\tasChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n\tButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n\t\tconst Comp = asChild ? Slot : 'button';\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(buttonVariants({ variant, size }), className)}\n\t\t\t\tref={forwardedRef}\n\t\t\t/>\n\t\t);\n\t},\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA62Tz1LCMBDG7zxFjnIIQxEdptz04hPosbNtQruSJjFJodXx3U1aOoAVhNFL0/n2z+/bbTN5qJxTMknb4xkMgnQ2SerILqK3KfkYEcLQagFNTFAKlJyuBK+XXgeBuaToeGljknHpuAnya2UdrhqaKa9IdxhaeYluOeaFlzdgbihloDVdo6Mh9tKGLC05w6ocL0efo8l5g7E3B6ngrHWqNGTovNPp5O5M8aZ7SbTBEkzTN4vaHilk69yoSjI/gVBmYHSf8Bjilu7adKxxmPPnwuxUeqpqagtgajuo6eRh0dWzxYXacPMfEz6FRpdYUJUL/0tvYdbBlWHc0C0yV8Qk0vVyL1rXCB4TqwSyA/mEyTa4M7hDXfoJvqdfPcqftnlE/3WbFt95UrIefXu4RQP+ntgBMci4v0SEaGAMZR6Tha5JdB+Wfp4n8p43v5gnwOT8GBdQZDb3Dw/8AmeLhNtrBAAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__x1s81q0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__x1s81q1',outline:'Button_buttonVariants_variant_outline__x1s81q2'},size:{md:'Button_buttonVariants_size_md__x1s81q3',lg:'Button_buttonVariants_size_lg__x1s81q4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { textVariants } from './Text.css.js';\nimport type { TextVariants } from './Text.css.js';\n\ntype TextAsChildProps = {\n\tasChild?: boolean;\n\tas?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n\tReact.HTMLAttributes<HTMLDivElement> &\n\tTextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tasChild = false,\n\t\t\tas: Tag = 'div',\n\t\t\tsize,\n\t\t\tweight,\n\t\t\tcolor,\n\t\t\tmono,\n\t\t\t...textProps\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{...textProps}\n\t\t\t\tref={forwardedRef}\n\t\t\t\tclassName={clsx(textVariants({ size, weight, color, mono }), className)}\n\t\t\t>\n\t\t\t\t{asChild ? children : <Tag>{children}</Tag>}\n\t\t\t</Slot>\n\t\t);\n\t},\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fXzJidjF1cjEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fMmJ2MXVyMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fXzJidjF1cjMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fMmJ2MXVyNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fMmJ2MXVyNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfXzJidjF1cjYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fMmJ2MXVyNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__2bv1ur0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__2bv1ur1'},weight:{normal:'Text_textVariants_weight_normal__2bv1ur2',medium:'Text_textVariants_weight_medium__2bv1ur3',bold:'Text_textVariants_weight_bold__2bv1ur4'},color:{muted:'Text_textVariants_color_muted__2bv1ur5',danger:'Text_textVariants_color_danger__2bv1ur6'},mono:{true:'Text_textVariants_mono_true__2bv1ur7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});", "import 'src/components/connect-modal/views/ConnectionStatus.css.ts.vanilla.css?source=LkNvbm5lY3Rpb25TdGF0dXNfY29udGFpbmVyX19uY2ttMmQwIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB3aWR0aDogMTAwJTsKfQouQ29ubmVjdGlvblN0YXR1c193YWxsZXRJY29uX19uY2ttMmQxIHsKICBvYmplY3QtZml0OiBjb3ZlcjsKICB3aWR0aDogNzJweDsKICBoZWlnaHQ6IDcycHg7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGFwcC1raXQtcmFkaWktbGFyZ2UpOwp9Ci5Db25uZWN0aW9uU3RhdHVzX3RpdGxlX19uY2ttMmQyIHsKICBtYXJnaW4tdG9wOiAxMnB4Owp9Ci5Db25uZWN0aW9uU3RhdHVzX2Nvbm5lY3Rpb25TdGF0dXNfX25ja20yZDMgewogIG1hcmdpbi10b3A6IDRweDsKfQouQ29ubmVjdGlvblN0YXR1c19yZXRyeUJ1dHRvbkNvbnRhaW5lcl9fbmNrbTJkNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvdHRvbTogMjBweDsKICByaWdodDogMjBweDsKfQ==';\nexport var connectionStatus = 'ConnectionStatus_connectionStatus__nckm2d3';\nexport var container = 'ConnectionStatus_container__nckm2d0';\nexport var retryButtonContainer = 'ConnectionStatus_retryButtonContainer__nckm2d4';\nexport var title = 'ConnectionStatus_title__nckm2d2';\nexport var walletIcon = 'ConnectionStatus_walletIcon__nckm2d1';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\n\nimport { Button } from '../../ui/Button.js';\nimport { Heading } from '../../ui/Heading.js';\nimport { Text } from '../../ui/Text.js';\nimport * as styles from './ConnectionStatus.css.js';\n\ntype ConnectionStatusProps = {\n\tselectedWallet: WalletWithRequiredFeatures;\n\thadConnectionError: boolean;\n\tonRetryConnection: (selectedWallet: WalletWithRequiredFeatures) => void;\n};\n\nexport function ConnectionStatus({\n\tselectedWallet,\n\thadConnectionError,\n\tonRetryConnection,\n}: ConnectionStatusProps) {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<img\n\t\t\t\tclassName={styles.walletIcon}\n\t\t\t\tsrc={selectedWallet.icon}\n\t\t\t\talt={`${selectedWallet.name} logo`}\n\t\t\t/>\n\t\t\t<div className={styles.title}>\n\t\t\t\t<Heading as=\"h2\" size=\"xl\">\n\t\t\t\t\tOpening {selectedWallet.name}\n\t\t\t\t</Heading>\n\t\t\t</div>\n\t\t\t<div className={styles.connectionStatus}>\n\t\t\t\t{hadConnectionError ? (\n\t\t\t\t\t<Text color=\"danger\">Connection failed</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Text color=\"muted\">Confirm connection in the wallet...</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{hadConnectionError ? (\n\t\t\t\t<div className={styles.retryButtonContainer}>\n\t\t\t\t\t<Button type=\"button\" variant=\"outline\" onClick={() => onRetryConnection(selectedWallet)}>\n\t\t\t\t\t\tRetry Connection\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n}\n", "import 'src/components/connect-modal/InfoSection.css.ts.vanilla.css?source=LkluZm9TZWN0aW9uX2NvbnRhaW5lcl9fMXd0aW9pNzAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IDRweDsKfQ==';\nexport var container = 'InfoSection_container__1wtioi70';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Heading } from '../ui/Heading.js';\nimport { Text } from '../ui/Text.js';\nimport * as styles from './InfoSection.css.js';\n\ntype InfoSectionProps = {\n\ttitle: string;\n\tchildren: string;\n};\n\nexport function InfoSection({ title, children }: InfoSectionProps) {\n\treturn (\n\t\t<section className={styles.container}>\n\t\t\t<Heading as=\"h3\" size=\"sm\" weight=\"normal\">\n\t\t\t\t{title}\n\t\t\t</Heading>\n\t\t\t<Text weight=\"medium\" color=\"muted\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</section>\n\t);\n}\n", "import 'src/components/connect-modal/views/GettingStarted.css.ts.vanilla.css?source=LkdldHRpbmdTdGFydGVkX2NvbnRhaW5lcl9fMWZwMDdlMTAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Ci5HZXR0aW5nU3RhcnRlZF9jb250ZW50X18xZnAwN2UxMSB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGZsZXgtZ3JvdzogMTsKICBnYXA6IDIwcHg7CiAgcGFkZGluZzogNDBweDsKfQouR2V0dGluZ1N0YXJ0ZWRfaW5zdGFsbEJ1dHRvbkNvbnRhaW5lcl9fMWZwMDdlMTIgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBib3R0b206IDIwcHg7CiAgcmlnaHQ6IDIwcHg7Cn0=';\nexport var container = 'GettingStarted_container__1fp07e10';\nexport var content = 'GettingStarted_content__1fp07e11';\nexport var installButtonContainer = 'GettingStarted_installButtonContainer__1fp07e12';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Button } from '../../ui/Button.js';\nimport { Heading } from '../../ui/Heading.js';\nimport { InfoSection } from '../InfoSection.js';\nimport * as styles from './GettingStarted.css.js';\n\nexport function GettingStarted() {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<Heading as=\"h2\">Get Started with Sui</Heading>\n\t\t\t<div className={styles.content}>\n\t\t\t\t<InfoSection title=\"Install the Sui Wallet Extension\">\n\t\t\t\t\tWe recommend pinning Sui Wallet to your taskbar for quicker access.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Create or Import a Wallet\">\n\t\t\t\t\tBe sure to back up your wallet using a secure method. Never share your secret phrase with\n\t\t\t\t\tanyone.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Refresh Your Browser\">\n\t\t\t\t\tOnce you set up your wallet, refresh this window browser to load up the extension.\n\t\t\t\t</InfoSection>\n\t\t\t\t<div className={styles.installButtonContainer}>\n\t\t\t\t\t<Button variant=\"outline\" asChild>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tInstall Wallet Extension\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "import 'src/components/connect-modal/views/WhatIsAWallet.css.ts.vanilla.css?source=LldoYXRJc0FXYWxsZXRfY29udGFpbmVyX18xa3Rwa3E5MCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLldoYXRJc0FXYWxsZXRfY29udGVudF9fMWt0cGtxOTEgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBmbGV4LWdyb3c6IDE7CiAgZ2FwOiAyMHB4OwogIHBhZGRpbmc6IDQwcHg7Cn0=';\nexport var container = 'WhatIsAWallet_container__1ktpkq90';\nexport var content = 'WhatIsAWallet_content__1ktpkq91';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Heading } from '../../ui/Heading.js';\nimport { InfoSection } from '../InfoSection.js';\nimport * as styles from './WhatIsAWallet.css.js';\n\nexport function WhatIsAWallet() {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<Heading as=\"h2\">What is a Wallet</Heading>\n\t\t\t<div className={styles.content}>\n\t\t\t\t<InfoSection title=\"Easy Login\">\n\t\t\t\t\tNo need to create new accounts and passwords for every website. Just connect your wallet\n\t\t\t\t\tand get going.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Store your Digital Assets\">\n\t\t\t\t\tSend, receive, store, and display your digital assets like NFTs & coins.\n\t\t\t\t</InfoSection>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function SuiIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={28} height={28} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<rect width={28} height={28} rx={6} fill=\"#6FBCF0\" />\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M7.942 20.527A6.875 6.875 0 0 0 13.957 24c2.51 0 4.759-1.298 6.015-3.473a6.875 6.875 0 0 0 0-6.945l-5.29-9.164a.837.837 0 0 0-1.45 0l-5.29 9.164a6.875 6.875 0 0 0 0 6.945Zm4.524-11.75 1.128-1.953a.418.418 0 0 1 .725 0l4.34 7.516a5.365 5.365 0 0 1 .449 4.442 4.675 4.675 0 0 0-.223-.73c-.599-1.512-1.954-2.68-4.029-3.47-1.426-.54-2.336-1.336-2.706-2.364-.476-1.326.021-2.77.316-3.44Zm-1.923 3.332L9.255 14.34a5.373 5.373 0 0 0 0 5.43 5.373 5.373 0 0 0 4.702 2.714 5.38 5.38 0 0 0 3.472-1.247c.125-.314.51-1.462.034-2.646-.44-1.093-1.5-1.965-3.15-2.594-1.864-.707-3.076-1.811-3.6-3.28a4.601 4.601 0 0 1-.17-.608Z\"\n\t\t\t\tfill=\"#fff\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "import 'src/components/connect-modal/wallet-list/WalletList.css.ts.vanilla.css?source=LldhbGxldExpc3RfY29udGFpbmVyX18xdjJzNmN6MCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogNHB4Owp9';\nexport var container = 'WalletList_container__1v2s6cz0';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clsx } from 'clsx';\nimport type { ReactNode } from 'react';\n\nimport { Heading } from '../../ui/Heading.js';\nimport * as styles from './WalletListItem.css.js';\n\ntype WalletListItemProps = {\n\tname: string;\n\ticon: ReactNode;\n\tisSelected?: boolean;\n\tonClick: () => void;\n};\n\nexport function WalletListItem({ name, icon, onClick, isSelected = false }: WalletListItemProps) {\n\treturn (\n\t\t<li className={styles.container}>\n\t\t\t<button\n\t\t\t\tclassName={clsx(styles.walletItem, { [styles.selectedWalletItem]: isSelected })}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onClick}\n\t\t\t>\n\t\t\t\t{typeof icon === 'string' ? (\n\t\t\t\t\t<img className={styles.walletIcon} src={icon} alt={`${name} logo`} />\n\t\t\t\t) : (\n\t\t\t\t\ticon\n\t\t\t\t)}\n\t\t\t\t<Heading size=\"md\" truncate asChild>\n\t\t\t\t\t<div>{name}</div>\n\t\t\t\t</Heading>\n\t\t\t</button>\n\t\t</li>\n\t);\n}\n", "import 'src/components/connect-modal/wallet-list/WalletListItem.css.ts.vanilla.css?source=LldhbGxldExpc3RJdGVtX2NvbnRhaW5lcl9fMWRxcXRxczAgewogIGRpc3BsYXk6IGZsZXg7Cn0KLldhbGxldExpc3RJdGVtX3dhbGxldEl0ZW1fXzFkcXF0cXMxIHsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZmxleC1ncm93OiAxOwogIHBhZGRpbmc6IDhweDsKICBnYXA6IDhweDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1kYXBwLWtpdC1yYWRpaS1sYXJnZSk7Cn0KLldhbGxldExpc3RJdGVtX3dhbGxldEl0ZW1fXzFkcXF0cXMxOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXBwLWtpdC1iYWNrZ3JvdW5kQ29sb3JzLXdhbGxldEl0ZW1Ib3Zlcik7Cn0KLldhbGxldExpc3RJdGVtX3NlbGVjdGVkV2FsbGV0SXRlbV9fMWRxcXRxczIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcHAta2l0LWJhY2tncm91bmRDb2xvcnMtd2FsbGV0SXRlbVNlbGVjdGVkKTsKICBib3gtc2hhZG93OiAwcHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDUpOwp9Ci5XYWxsZXRMaXN0SXRlbV93YWxsZXRJY29uX18xZHFxdHFzMyB7CiAgd2lkdGg6IDI4cHg7CiAgaGVpZ2h0OiAyOHB4OwogIGZsZXgtc2hyaW5rOiAwOwogIG9iamVjdC1maXQ6IGNvdmVyOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWRhcHAta2l0LXJhZGlpLXNtYWxsKTsKfQ==';\nexport var container = 'WalletListItem_container__1dqqtqs0';\nexport var selectedWalletItem = 'WalletListItem_selectedWalletItem__1dqqtqs2';\nexport var walletIcon = 'WalletListItem_walletIcon__1dqqtqs3';\nexport var walletItem = 'WalletListItem_walletItem__1dqqtqs1';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\n\nimport { useWallets } from '../../../hooks/wallet/useWallets.js';\nimport { SuiIcon } from '../../icons/SuiIcon.js';\nimport * as styles from './WalletList.css.js';\nimport { WalletListItem } from './WalletListItem.js';\n\ntype WalletListProps = {\n\tselectedWalletName?: string;\n\tonPlaceholderClick: () => void;\n\tonSelect: (wallet: WalletWithRequiredFeatures) => void;\n};\n\nexport function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }: WalletListProps) {\n\tconst wallets = useWallets();\n\treturn (\n\t\t<ul className={styles.container}>\n\t\t\t{wallets.length > 0 ? (\n\t\t\t\twallets.map((wallet) => (\n\t\t\t\t\t<WalletListItem\n\t\t\t\t\t\tkey={wallet.name}\n\t\t\t\t\t\tname={wallet.name}\n\t\t\t\t\t\ticon={wallet.icon}\n\t\t\t\t\t\tisSelected={wallet.name === selectedWalletName}\n\t\t\t\t\t\tonClick={() => onSelect(wallet)}\n\t\t\t\t\t/>\n\t\t\t\t))\n\t\t\t) : (\n\t\t\t\t<WalletListItem\n\t\t\t\t\tname=\"Sui Wallet\"\n\t\t\t\t\ticon={<SuiIcon />}\n\t\t\t\t\tonClick={onPlaceholderClick}\n\t\t\t\t\tisSelected\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ul>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAIA,aAAwB;AACxB,IAAAA,eAAiB;AACjB,IAAAC,gBAAyB;;;ACIzB,yBAA4B;;;ACLrB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;AChBA,IAAAC,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,aAAO,yBAAS,OAAO,QAAQ;AAChC;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAAG;AACxC,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;
|
|
4
|
+
"sourcesContent": ["import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { useConnectWallet } from '../../hooks/wallet/useConnectWallet.js';\nimport { BackIcon } from '../icons/BackIcon.js';\nimport { CloseIcon } from '../icons/CloseIcon.js';\nimport { StyleMarker } from '../styling/StyleMarker.js';\nimport { Heading } from '../ui/Heading.js';\nimport { IconButton } from '../ui/IconButton.js';\nimport * as styles from './ConnectModal.css.js';\nimport { ConnectionStatus } from './views/ConnectionStatus.js';\nimport { GettingStarted } from './views/GettingStarted.js';\nimport { WhatIsAWallet } from './views/WhatIsAWallet.js';\nimport { WalletList } from './wallet-list/WalletList.js';\n\ntype ConnectModalView = 'getting-started' | 'what-is-a-wallet' | 'connection-status';\n\ntype ControlledModalProps = {\n\t/** The controlled open state of the dialog. */\n\topen: boolean;\n\n\t/** Event handler called when the open state of the dialog changes. */\n\tonOpenChange: (open: boolean) => void;\n\n\tdefaultOpen?: never;\n};\n\ntype UncontrolledModalProps = {\n\topen?: never;\n\n\tonOpenChange?: never;\n\n\t/** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n\tdefaultOpen?: boolean;\n};\n\ntype ConnectModalProps = {\n\t/** The trigger button that opens the dialog. */\n\ttrigger: NonNullable<ReactNode>;\n} & (ControlledModalProps | UncontrolledModalProps);\n\nexport function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: ConnectModalProps) {\n\tconst [isModalOpen, setModalOpen] = useState(open ?? defaultOpen);\n\tconst [currentView, setCurrentView] = useState<ConnectModalView>();\n\tconst [selectedWallet, setSelectedWallet] = useState<WalletWithRequiredFeatures>();\n\tconst { mutate, isError } = useConnectWallet();\n\n\tconst resetSelection = () => {\n\t\tsetSelectedWallet(undefined);\n\t\tsetCurrentView(undefined);\n\t};\n\n\tconst handleOpenChange = (open: boolean) => {\n\t\tif (!open) {\n\t\t\tresetSelection();\n\t\t}\n\t\tsetModalOpen(open);\n\t\tonOpenChange?.(open);\n\t};\n\n\tconst connectWallet = (wallet: WalletWithRequiredFeatures) => {\n\t\tsetCurrentView('connection-status');\n\t\tmutate(\n\t\t\t{ wallet },\n\t\t\t{\n\t\t\t\tonSuccess: () => handleOpenChange(false),\n\t\t\t},\n\t\t);\n\t};\n\n\tlet modalContent: ReactNode | undefined;\n\tswitch (currentView) {\n\t\tcase 'what-is-a-wallet':\n\t\t\tmodalContent = <WhatIsAWallet />;\n\t\t\tbreak;\n\t\tcase 'getting-started':\n\t\t\tmodalContent = <GettingStarted />;\n\t\t\tbreak;\n\t\tcase 'connection-status':\n\t\t\tmodalContent = (\n\t\t\t\t<ConnectionStatus\n\t\t\t\t\tselectedWallet={selectedWallet!}\n\t\t\t\t\thadConnectionError={isError}\n\t\t\t\t\tonRetryConnection={connectWallet}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmodalContent = <WhatIsAWallet />;\n\t}\n\n\treturn (\n\t\t<Dialog.Root open={open ?? isModalOpen} onOpenChange={handleOpenChange}>\n\t\t\t<StyleMarker>\n\t\t\t\t<Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\n\t\t\t</StyleMarker>\n\t\t\t<Dialog.Portal>\n\t\t\t\t<StyleMarker>\n\t\t\t\t\t<Dialog.Overlay className={styles.overlay}>\n\t\t\t\t\t\t<Dialog.Content className={styles.content} aria-describedby={undefined}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={clsx(styles.walletListContainer, {\n\t\t\t\t\t\t\t\t\t[styles.walletListContainerWithViewSelected]: !!currentView,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={styles.walletListContent}>\n\t\t\t\t\t\t\t\t\t<Dialog.Title className={styles.title} asChild>\n\t\t\t\t\t\t\t\t\t\t<Heading as=\"h2\">Connect a Wallet</Heading>\n\t\t\t\t\t\t\t\t\t</Dialog.Title>\n\t\t\t\t\t\t\t\t\t<WalletList\n\t\t\t\t\t\t\t\t\t\tselectedWalletName={selectedWallet?.name}\n\t\t\t\t\t\t\t\t\t\tonPlaceholderClick={() => setCurrentView('getting-started')}\n\t\t\t\t\t\t\t\t\t\tonSelect={(wallet) => {\n\t\t\t\t\t\t\t\t\t\t\tif (selectedWallet?.name !== wallet.name) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWallet(wallet);\n\t\t\t\t\t\t\t\t\t\t\t\tconnectWallet(wallet);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName={styles.whatIsAWalletButton}\n\t\t\t\t\t\t\t\t\tonClick={() => setCurrentView('what-is-a-wallet')}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tWhat is a Wallet?\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={clsx(styles.viewContainer, {\n\t\t\t\t\t\t\t\t\t[styles.selectedViewContainer]: !!currentView,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className={styles.backButtonContainer}>\n\t\t\t\t\t\t\t\t\t<IconButton type=\"button\" aria-label=\"Back\" onClick={() => resetSelection()}>\n\t\t\t\t\t\t\t\t\t\t<BackIcon />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{modalContent}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Dialog.Close className={styles.closeButtonContainer} asChild>\n\t\t\t\t\t\t\t\t<IconButton type=\"button\" aria-label=\"Close\">\n\t\t\t\t\t\t\t\t\t<CloseIcon />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Dialog.Close>\n\t\t\t\t\t\t</Dialog.Content>\n\t\t\t\t\t</Dialog.Overlay>\n\t\t\t\t</StyleMarker>\n\t\t\t</Dialog.Portal>\n\t\t</Dialog.Root>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@mysten/wallet-standard';\nimport type { UseMutationOptions } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}) {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\tconst setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n\t\t\ttry {\n\t\t\t\tsetConnectionStatus('connecting');\n\n\t\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(connectArgs);\n\t\t\t\tconst connectedSuiAccounts = connectResult.accounts.filter((account) =>\n\t\t\t\t\taccount.chains.some((chain) => chain.split(':')[0] === 'sui'),\n\t\t\t\t);\n\t\t\t\tconst selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);\n\n\t\t\t\tsetWalletConnected(wallet, connectedSuiAccounts, selectedAccount);\n\n\t\t\t\treturn { accounts: connectedSuiAccounts };\n\t\t\t} catch (error) {\n\t\t\t\tsetConnectionStatus('disconnected');\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\n// FIXME: Replace this with a 10x10 icon to match the CheckIcon, or alternatively make the CheckIcon bigger\n// Right now, the icons don't align on mobile :(\nexport function BackIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={24} height={24} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<path\n\t\t\t\td=\"M7.57 12.262c0 .341.13.629.403.895l5.175 5.059c.204.205.45.307.751.307.609 0 1.101-.485 1.101-1.087 0-.293-.123-.574-.349-.8L10.14 12.27l4.511-4.375A1.13 1.13 0 0 0 15 7.087C15 6.485 14.508 6 13.9 6c-.295 0-.54.103-.752.308l-5.175 5.058c-.28.28-.404.56-.404.896Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CloseIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={10} height={10} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<path\n\t\t\t\td=\"M9.708.292a.999.999 0 0 0-1.413 0l-3.289 3.29L1.717.291A.999.999 0 0 0 .305 1.705l3.289 3.289-3.29 3.289a.999.999 0 1 0 1.413 1.412l3.29-3.289 3.288 3.29a.999.999 0 0 0 1.413-1.413l-3.29-3.29 3.29-3.288a.999.999 0 0 0 0-1.413Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentPropsWithoutRef, ElementRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { styleDataAttribute } from '../../constants/styleDataAttribute.js';\n\nimport './StyleMarker.css.js';\n\ntype StyleMarker = {\n\tchildren: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n\tElementRef<typeof Slot>,\n\tComponentPropsWithoutRef<typeof Slot>\n>(({ children }, forwardedRef) => (\n\t<Slot ref={forwardedRef} {...styleDataAttribute}>\n\t\t{children}\n\t</Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const styleDataAttributeName = 'data-dapp-kit';\n\nexport const styleDataAttributeSelector = `[${styleDataAttributeName}]`;\n\nexport const styleDataAttribute = { [styleDataAttributeName]: '' };\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { headingVariants } from './Heading.css.js';\nimport type { HeadingVariants } from './Heading.css.js';\n\ntype HeadingAsChildProps = {\n\tasChild?: boolean;\n\tas?: never;\n};\n\ntype HeadingAsProps = {\n\tas?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\tasChild?: never;\n};\n\ntype HeadingProps = (HeadingAsChildProps | HeadingAsProps) &\n\tReact.HTMLAttributes<HTMLHeadingElement> &\n\tHeadingVariants;\n\nconst Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tasChild = false,\n\t\t\tas: Tag = 'h1',\n\t\t\tsize,\n\t\t\tweight,\n\t\t\ttruncate,\n\t\t\t...headingProps\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{...headingProps}\n\t\t\t\tref={forwardedRef}\n\t\t\t\tclassName={clsx(headingVariants({ size, weight, truncate }), className)}\n\t\t\t>\n\t\t\t\t{asChild ? children : <Tag>{children}</Tag>}\n\t\t\t</Slot>\n\t\t);\n\t},\n);\nHeading.displayName = 'Heading';\n\nexport { Heading };\n", "import 'src/components/ui/Heading.css.ts.vanilla.css?source=LkhlYWRpbmdfaGVhZGluZ1ZhcmlhbnRzX3NpemVfc21fXzFhYTgzNWsxIHsKICBmb250LXNpemU6IHZhcigtLWRhcHAta2l0LWZvbnRTaXplcy1zbWFsbCk7Cn0KLkhlYWRpbmdfaGVhZGluZ1ZhcmlhbnRzX3NpemVfbWRfXzFhYTgzNWsyIHsKICBmb250LXNpemU6IHZhcigtLWRhcHAta2l0LWZvbnRTaXplcy1tZWRpdW0pOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c19zaXplX2xnX18xYWE4MzVrMyB7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250U2l6ZXMtbGFyZ2UpOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c19zaXplX3hsX18xYWE4MzVrNCB7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250U2l6ZXMteGxhcmdlKTsKfQouSGVhZGluZ19oZWFkaW5nVmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fMWFhODM1azUgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwp9Ci5IZWFkaW5nX2hlYWRpbmdWYXJpYW50c193ZWlnaHRfYm9sZF9fMWFhODM1azYgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ib2xkKTsKfQouSGVhZGluZ19oZWFkaW5nVmFyaWFudHNfdHJ1bmNhdGVfdHJ1ZV9fMWFhODM1azcgewogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var headingVariants = _7a468({defaultClassName:'Heading__1aa835k0',variantClassNames:{size:{sm:'Heading_headingVariants_size_sm__1aa835k1',md:'Heading_headingVariants_size_md__1aa835k2',lg:'Heading_headingVariants_size_lg__1aa835k3',xl:'Heading_headingVariants_size_xl__1aa835k4'},weight:{normal:'Heading_headingVariants_weight_normal__1aa835k5',bold:'Heading_headingVariants_weight_bold__1aa835k6'},truncate:{true:'Heading_headingVariants_truncate_true__1aa835k7'}},defaultVariants:{size:'lg',weight:'bold'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport * as styles from './IconButton.css.js';\n\ntype IconButtonProps = {\n\tasChild?: boolean;\n\t'aria-label': string;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nconst IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n\t({ className, asChild = false, ...props }, forwardedRef) => {\n\t\tconst Comp = asChild ? Slot : 'button';\n\t\treturn <Comp {...props} className={clsx(styles.container, className)} ref={forwardedRef} />;\n\t},\n);\nIconButton.displayName = 'Button';\n\nexport { IconButton };\n", "import 'src/components/ui/IconButton.css.ts.vanilla.css?source=Lkljb25CdXR0b25fY29udGFpbmVyX19zNm43YnEwIHsKICBib3JkZXItcmFkaXVzOiA5OTk5cHg7CiAgcGFkZGluZzogOHB4OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtaWNvbkJ1dHRvbik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFwcC1raXQtYmFja2dyb3VuZENvbG9ycy1pY29uQnV0dG9uKTsKfQouSWNvbkJ1dHRvbl9jb250YWluZXJfX3M2bjdicTA6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcHAta2l0LWJhY2tncm91bmRDb2xvcnMtaWNvbkJ1dHRvbkhvdmVyKTsKfQ==';\nexport var container = 'IconButton_container__s6n7bq0';", "import 'src/components/connect-modal/ConnectModal.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61UTW/bMAy951foMiAFpsLpmjZ1Ltt6GrBhAwqsx0KxmJiLLBmS8tEO+e+TZDlpajUJkPWQ2pT5yPf4qMt7JSUU9ofiTDypJWjBnp+eZi+jl7uM/O0RMmHFfKbVQnJaKKF0TpZM9ynlrK7pHC3dfXDvzw2tPNbPBupiHCG4VjWdorCQQBCLVFqtDFpUMidTXAP3IZQGbE4y//xCUXJY5+Su/Rv3Nr3LPUIWrYBIZxDo1IxzlDMqYOqARvW6m1QoaUHamHZ1jgq/NFZMRxWU5qCpZhwXppPvw0jXgukZhM/TZYoGfKL4uxpNlLWqysngxpMjpGHavmmcla9eOZra6e3SBYSA/085aqdGgHUFF5X0J38WxuL0mUZ5cmJqVgCdgF0BhC+8faZCrXJSIudNrEJJS2iKDrNlGWJsvY2NhrvYCrktc3KbZamxrEpmv5kvj0wIsF8XjqSMI/p0zogewBHi7ZCiPVqB3vawRFi5gGUoQcfq16H6VkipJOwhXWX1TllX38kz6CIbEO4Z+O9EheF+hWZUbwE8u0aVt+k3jfG3TmET44ZqQ5dW1bsOG6dcJdUvhDKQxr89hp/0Xme8Ya7f0dj7vf0bpcgf8um+zoTMmKd43bTQmcrZi32Yx2ud7tJMju/VqVxPaOURbekt9hDtFltjKQ9vep8r4MiIKbTrhDDJSd/vc7unN+76vAiZxy/QLgvX9TgcRLhBln1oAsE0w/atceX21WomzVRpd8OFR8Es9Kk7/kj8b9jiTaelY5dHYoG7IO9vf2Ks3fRjG3pSD4fX5D/dgsfKdl19YLzhYMIMGr+Gce32rJu9iphSo5zH2El9HLR0cjCbf+XuA2j2CAAA';\nexport var backButtonContainer = 'ConnectModal_backButtonContainer__gz8z96';\nexport var closeButtonContainer = 'ConnectModal_closeButtonContainer__gz8z97';\nexport var content = 'ConnectModal_content__gz8z92';\nexport var overlay = 'ConnectModal_overlay__gz8z90';\nexport var selectedViewContainer = 'ConnectModal_selectedViewContainer__gz8z95';\nexport var title = 'ConnectModal_title__gz8z91';\nexport var viewContainer = 'ConnectModal_viewContainer__gz8z94';\nexport var walletListContainer = 'ConnectModal_walletListContainer__gz8z99';\nexport var walletListContainerWithViewSelected = 'ConnectModal_walletListContainerWithViewSelected__gz8z9a';\nexport var walletListContent = 'ConnectModal_walletListContent__gz8z98';\nexport var whatIsAWalletButton = 'ConnectModal_whatIsAWalletButton__gz8z93';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { buttonVariants } from './Button.css.js';\nimport type { ButtonVariants } from './Button.css.js';\n\ntype ButtonProps = {\n\tasChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n\tButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n\t\tconst Comp = asChild ? Slot : 'button';\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(buttonVariants({ variant, size }), className)}\n\t\t\t\tref={forwardedRef}\n\t\t\t/>\n\t\t);\n\t},\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA62Tz1LCMBDG7zxFjnIIQxEdptz04hPosbNtQruSJjFJodXx3U1aOoAVhNFL0/n2z+/bbTN5qJxTMknb4xkMgnQ2SerILqK3KfkYEcLQagFNTFAKlJyuBK+XXgeBuaToeGljknHpuAnya2UdrhqaKa9IdxhaeYluOeaFlzdgbihloDVdo6Mh9tKGLC05w6ocL0efo8l5g7E3B6ngrHWqNGTovNPp5O5M8aZ7SbTBEkzTN4vaHilk69yoSjI/gVBmYHSf8Bjilu7adKxxmPPnwuxUeqpqagtgajuo6eRh0dWzxYXacPMfEz6FRpdYUJUL/0tvYdbBlWHc0C0yV8Qk0vVyL1rXCB4TqwSyA/mEyTa4M7hDXfoJvqdfPcqftnlE/3WbFt95UrIefXu4RQP+ntgBMci4v0SEaGAMZR6Tha5JdB+Wfp4n8p43v5gnwOT8GBdQZDb3Dw/8AmeLhNtrBAAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__x1s81q0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__x1s81q1',outline:'Button_buttonVariants_variant_outline__x1s81q2'},size:{md:'Button_buttonVariants_size_md__x1s81q3',lg:'Button_buttonVariants_size_lg__x1s81q4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { textVariants } from './Text.css.js';\nimport type { TextVariants } from './Text.css.js';\n\ntype TextAsChildProps = {\n\tasChild?: boolean;\n\tas?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n\tReact.HTMLAttributes<HTMLDivElement> &\n\tTextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tasChild = false,\n\t\t\tas: Tag = 'div',\n\t\t\tsize,\n\t\t\tweight,\n\t\t\tcolor,\n\t\t\tmono,\n\t\t\t...textProps\n\t\t},\n\t\tforwardedRef,\n\t) => {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{...textProps}\n\t\t\t\tref={forwardedRef}\n\t\t\t\tclassName={clsx(textVariants({ size, weight, color, mono }), className)}\n\t\t\t>\n\t\t\t\t{asChild ? children : <Tag>{children}</Tag>}\n\t\t\t</Slot>\n\t\t);\n\t},\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fXzJidjF1cjEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fMmJ2MXVyMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fXzJidjF1cjMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fMmJ2MXVyNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fMmJ2MXVyNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfXzJidjF1cjYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fMmJ2MXVyNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__2bv1ur0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__2bv1ur1'},weight:{normal:'Text_textVariants_weight_normal__2bv1ur2',medium:'Text_textVariants_weight_medium__2bv1ur3',bold:'Text_textVariants_weight_bold__2bv1ur4'},color:{muted:'Text_textVariants_color_muted__2bv1ur5',danger:'Text_textVariants_color_danger__2bv1ur6'},mono:{true:'Text_textVariants_mono_true__2bv1ur7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});", "import 'src/components/connect-modal/views/ConnectionStatus.css.ts.vanilla.css?source=LkNvbm5lY3Rpb25TdGF0dXNfY29udGFpbmVyX19uY2ttMmQwIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB3aWR0aDogMTAwJTsKfQouQ29ubmVjdGlvblN0YXR1c193YWxsZXRJY29uX19uY2ttMmQxIHsKICBvYmplY3QtZml0OiBjb3ZlcjsKICB3aWR0aDogNzJweDsKICBoZWlnaHQ6IDcycHg7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZGFwcC1raXQtcmFkaWktbGFyZ2UpOwp9Ci5Db25uZWN0aW9uU3RhdHVzX3RpdGxlX19uY2ttMmQyIHsKICBtYXJnaW4tdG9wOiAxMnB4Owp9Ci5Db25uZWN0aW9uU3RhdHVzX2Nvbm5lY3Rpb25TdGF0dXNfX25ja20yZDMgewogIG1hcmdpbi10b3A6IDRweDsKfQouQ29ubmVjdGlvblN0YXR1c19yZXRyeUJ1dHRvbkNvbnRhaW5lcl9fbmNrbTJkNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvdHRvbTogMjBweDsKICByaWdodDogMjBweDsKfQ==';\nexport var connectionStatus = 'ConnectionStatus_connectionStatus__nckm2d3';\nexport var container = 'ConnectionStatus_container__nckm2d0';\nexport var retryButtonContainer = 'ConnectionStatus_retryButtonContainer__nckm2d4';\nexport var title = 'ConnectionStatus_title__nckm2d2';\nexport var walletIcon = 'ConnectionStatus_walletIcon__nckm2d1';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\n\nimport { Button } from '../../ui/Button.js';\nimport { Heading } from '../../ui/Heading.js';\nimport { Text } from '../../ui/Text.js';\nimport * as styles from './ConnectionStatus.css.js';\n\ntype ConnectionStatusProps = {\n\tselectedWallet: WalletWithRequiredFeatures;\n\thadConnectionError: boolean;\n\tonRetryConnection: (selectedWallet: WalletWithRequiredFeatures) => void;\n};\n\nexport function ConnectionStatus({\n\tselectedWallet,\n\thadConnectionError,\n\tonRetryConnection,\n}: ConnectionStatusProps) {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<img\n\t\t\t\tclassName={styles.walletIcon}\n\t\t\t\tsrc={selectedWallet.icon}\n\t\t\t\talt={`${selectedWallet.name} logo`}\n\t\t\t/>\n\t\t\t<div className={styles.title}>\n\t\t\t\t<Heading as=\"h2\" size=\"xl\">\n\t\t\t\t\tOpening {selectedWallet.name}\n\t\t\t\t</Heading>\n\t\t\t</div>\n\t\t\t<div className={styles.connectionStatus}>\n\t\t\t\t{hadConnectionError ? (\n\t\t\t\t\t<Text color=\"danger\">Connection failed</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Text color=\"muted\">Confirm connection in the wallet...</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{hadConnectionError ? (\n\t\t\t\t<div className={styles.retryButtonContainer}>\n\t\t\t\t\t<Button type=\"button\" variant=\"outline\" onClick={() => onRetryConnection(selectedWallet)}>\n\t\t\t\t\t\tRetry Connection\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n}\n", "import 'src/components/connect-modal/InfoSection.css.ts.vanilla.css?source=LkluZm9TZWN0aW9uX2NvbnRhaW5lcl9fMXd0aW9pNzAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IDRweDsKfQ==';\nexport var container = 'InfoSection_container__1wtioi70';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Heading } from '../ui/Heading.js';\nimport { Text } from '../ui/Text.js';\nimport * as styles from './InfoSection.css.js';\n\ntype InfoSectionProps = {\n\ttitle: string;\n\tchildren: string;\n};\n\nexport function InfoSection({ title, children }: InfoSectionProps) {\n\treturn (\n\t\t<section className={styles.container}>\n\t\t\t<Heading as=\"h3\" size=\"sm\" weight=\"normal\">\n\t\t\t\t{title}\n\t\t\t</Heading>\n\t\t\t<Text weight=\"medium\" color=\"muted\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</section>\n\t);\n}\n", "import 'src/components/connect-modal/views/GettingStarted.css.ts.vanilla.css?source=LkdldHRpbmdTdGFydGVkX2NvbnRhaW5lcl9fMWZwMDdlMTAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Ci5HZXR0aW5nU3RhcnRlZF9jb250ZW50X18xZnAwN2UxMSB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGZsZXgtZ3JvdzogMTsKICBnYXA6IDIwcHg7CiAgcGFkZGluZzogNDBweDsKfQouR2V0dGluZ1N0YXJ0ZWRfaW5zdGFsbEJ1dHRvbkNvbnRhaW5lcl9fMWZwMDdlMTIgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBib3R0b206IDIwcHg7CiAgcmlnaHQ6IDIwcHg7Cn0=';\nexport var container = 'GettingStarted_container__1fp07e10';\nexport var content = 'GettingStarted_content__1fp07e11';\nexport var installButtonContainer = 'GettingStarted_installButtonContainer__1fp07e12';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Button } from '../../ui/Button.js';\nimport { Heading } from '../../ui/Heading.js';\nimport { InfoSection } from '../InfoSection.js';\nimport * as styles from './GettingStarted.css.js';\n\nexport function GettingStarted() {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<Heading as=\"h2\">Get Started with Sui</Heading>\n\t\t\t<div className={styles.content}>\n\t\t\t\t<InfoSection title=\"Install the Sui Wallet Extension\">\n\t\t\t\t\tWe recommend pinning Sui Wallet to your taskbar for quicker access.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Create or Import a Wallet\">\n\t\t\t\t\tBe sure to back up your wallet using a secure method. Never share your secret phrase with\n\t\t\t\t\tanyone.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Refresh Your Browser\">\n\t\t\t\t\tOnce you set up your wallet, refresh this window browser to load up the extension.\n\t\t\t\t</InfoSection>\n\t\t\t\t<div className={styles.installButtonContainer}>\n\t\t\t\t\t<Button variant=\"outline\" asChild>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tInstall Wallet Extension\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "import 'src/components/connect-modal/views/WhatIsAWallet.css.ts.vanilla.css?source=LldoYXRJc0FXYWxsZXRfY29udGFpbmVyX18xa3Rwa3E5MCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLldoYXRJc0FXYWxsZXRfY29udGVudF9fMWt0cGtxOTEgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBmbGV4LWdyb3c6IDE7CiAgZ2FwOiAyMHB4OwogIHBhZGRpbmc6IDQwcHg7Cn0=';\nexport var container = 'WhatIsAWallet_container__1ktpkq90';\nexport var content = 'WhatIsAWallet_content__1ktpkq91';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Heading } from '../../ui/Heading.js';\nimport { InfoSection } from '../InfoSection.js';\nimport * as styles from './WhatIsAWallet.css.js';\n\nexport function WhatIsAWallet() {\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t<Heading as=\"h2\">What is a Wallet</Heading>\n\t\t\t<div className={styles.content}>\n\t\t\t\t<InfoSection title=\"Easy Login\">\n\t\t\t\t\tNo need to create new accounts and passwords for every website. Just connect your wallet\n\t\t\t\t\tand get going.\n\t\t\t\t</InfoSection>\n\t\t\t\t<InfoSection title=\"Store your Digital Assets\">\n\t\t\t\t\tSend, receive, store, and display your digital assets like NFTs & coins.\n\t\t\t\t</InfoSection>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function SuiIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg width={28} height={28} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n\t\t\t<rect width={28} height={28} rx={6} fill=\"#6FBCF0\" />\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M7.942 20.527A6.875 6.875 0 0 0 13.957 24c2.51 0 4.759-1.298 6.015-3.473a6.875 6.875 0 0 0 0-6.945l-5.29-9.164a.837.837 0 0 0-1.45 0l-5.29 9.164a6.875 6.875 0 0 0 0 6.945Zm4.524-11.75 1.128-1.953a.418.418 0 0 1 .725 0l4.34 7.516a5.365 5.365 0 0 1 .449 4.442 4.675 4.675 0 0 0-.223-.73c-.599-1.512-1.954-2.68-4.029-3.47-1.426-.54-2.336-1.336-2.706-2.364-.476-1.326.021-2.77.316-3.44Zm-1.923 3.332L9.255 14.34a5.373 5.373 0 0 0 0 5.43 5.373 5.373 0 0 0 4.702 2.714 5.38 5.38 0 0 0 3.472-1.247c.125-.314.51-1.462.034-2.646-.44-1.093-1.5-1.965-3.15-2.594-1.864-.707-3.076-1.811-3.6-3.28a4.601 4.601 0 0 1-.17-.608Z\"\n\t\t\t\tfill=\"#fff\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n", "import 'src/components/connect-modal/wallet-list/WalletList.css.ts.vanilla.css?source=LldhbGxldExpc3RfY29udGFpbmVyX18xdjJzNmN6MCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogNHB4Owp9';\nexport var container = 'WalletList_container__1v2s6cz0';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clsx } from 'clsx';\nimport type { ReactNode } from 'react';\n\nimport { Heading } from '../../ui/Heading.js';\nimport * as styles from './WalletListItem.css.js';\n\ntype WalletListItemProps = {\n\tname: string;\n\ticon: ReactNode;\n\tisSelected?: boolean;\n\tonClick: () => void;\n};\n\nexport function WalletListItem({ name, icon, onClick, isSelected = false }: WalletListItemProps) {\n\treturn (\n\t\t<li className={styles.container}>\n\t\t\t<button\n\t\t\t\tclassName={clsx(styles.walletItem, { [styles.selectedWalletItem]: isSelected })}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onClick}\n\t\t\t>\n\t\t\t\t{typeof icon === 'string' ? (\n\t\t\t\t\t<img className={styles.walletIcon} src={icon} alt={`${name} logo`} />\n\t\t\t\t) : (\n\t\t\t\t\ticon\n\t\t\t\t)}\n\t\t\t\t<Heading size=\"md\" truncate asChild>\n\t\t\t\t\t<div>{name}</div>\n\t\t\t\t</Heading>\n\t\t\t</button>\n\t\t</li>\n\t);\n}\n", "import 'src/components/connect-modal/wallet-list/WalletListItem.css.ts.vanilla.css?source=LldhbGxldExpc3RJdGVtX2NvbnRhaW5lcl9fMWRxcXRxczAgewogIGRpc3BsYXk6IGZsZXg7Cn0KLldhbGxldExpc3RJdGVtX3dhbGxldEl0ZW1fXzFkcXF0cXMxIHsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZmxleC1ncm93OiAxOwogIHBhZGRpbmc6IDhweDsKICBnYXA6IDhweDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1kYXBwLWtpdC1yYWRpaS1sYXJnZSk7Cn0KLldhbGxldExpc3RJdGVtX3dhbGxldEl0ZW1fXzFkcXF0cXMxOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXBwLWtpdC1iYWNrZ3JvdW5kQ29sb3JzLXdhbGxldEl0ZW1Ib3Zlcik7Cn0KLldhbGxldExpc3RJdGVtX3NlbGVjdGVkV2FsbGV0SXRlbV9fMWRxcXRxczIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcHAta2l0LWJhY2tncm91bmRDb2xvcnMtd2FsbGV0SXRlbVNlbGVjdGVkKTsKICBib3gtc2hhZG93OiAwcHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDUpOwp9Ci5XYWxsZXRMaXN0SXRlbV93YWxsZXRJY29uX18xZHFxdHFzMyB7CiAgd2lkdGg6IDI4cHg7CiAgaGVpZ2h0OiAyOHB4OwogIGZsZXgtc2hyaW5rOiAwOwogIG9iamVjdC1maXQ6IGNvdmVyOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWRhcHAta2l0LXJhZGlpLXNtYWxsKTsKfQ==';\nexport var container = 'WalletListItem_container__1dqqtqs0';\nexport var selectedWalletItem = 'WalletListItem_selectedWalletItem__1dqqtqs2';\nexport var walletIcon = 'WalletListItem_walletIcon__1dqqtqs3';\nexport var walletItem = 'WalletListItem_walletItem__1dqqtqs1';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\n\nimport { useWallets } from '../../../hooks/wallet/useWallets.js';\nimport { SuiIcon } from '../../icons/SuiIcon.js';\nimport * as styles from './WalletList.css.js';\nimport { WalletListItem } from './WalletListItem.js';\n\ntype WalletListProps = {\n\tselectedWalletName?: string;\n\tonPlaceholderClick: () => void;\n\tonSelect: (wallet: WalletWithRequiredFeatures) => void;\n};\n\nexport function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }: WalletListProps) {\n\tconst wallets = useWallets();\n\treturn (\n\t\t<ul className={styles.container}>\n\t\t\t{wallets.length > 0 ? (\n\t\t\t\twallets.map((wallet) => (\n\t\t\t\t\t<WalletListItem\n\t\t\t\t\t\tkey={wallet.name}\n\t\t\t\t\t\tname={wallet.name}\n\t\t\t\t\t\ticon={wallet.icon}\n\t\t\t\t\t\tisSelected={wallet.name === selectedWalletName}\n\t\t\t\t\t\tonClick={() => onSelect(wallet)}\n\t\t\t\t\t/>\n\t\t\t\t))\n\t\t\t) : (\n\t\t\t\t<WalletListItem\n\t\t\t\t\tname=\"Sui Wallet\"\n\t\t\t\t\ticon={<SuiIcon />}\n\t\t\t\t\tonClick={onPlaceholderClick}\n\t\t\t\t\tisSelected\n\t\t\t\t/>\n\t\t\t)}\n\t\t</ul>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_clsx", "import_react", "import_react", "import_jsx_runtime", "import_react", "import_jsx_runtime", "import_react_slot", "import_react", "_7a468", "import_jsx_runtime", "clsx", "import_react_slot", "import_clsx", "import_react", "import_jsx_runtime", "clsx", "import_react_slot", "import_clsx", "import_react", "import_createRuntimeFn", "_7a468", "import_jsx_runtime", "clsx", "import_react_slot", "import_clsx", "import_react", "import_createRuntimeFn", "_7a468", "import_jsx_runtime", "clsx", "container", "title", "import_jsx_runtime", "container", "title", "container", "import_jsx_runtime", "title", "container", "container", "content", "import_jsx_runtime", "container", "content", "container", "content", "import_jsx_runtime", "container", "content", "import_jsx_runtime", "container", "import_clsx", "container", "walletIcon", "import_jsx_runtime", "container", "walletIcon", "import_jsx_runtime", "container", "import_jsx_runtime", "open", "clsx"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SuiClientOptions } from '@mysten/sui.js/client';
|
|
2
|
+
export type NetworkConfig<T extends object = object> = SuiClientOptions & {
|
|
3
|
+
variables?: T;
|
|
4
|
+
};
|
|
5
|
+
export declare function createNetworkConfig<const T extends Record<string, Config>, Config extends NetworkConfig<Variables> = T[keyof T], Variables extends object = NonNullable<Config['variables']>>(networkConfig: T): {
|
|
6
|
+
networkConfig: T;
|
|
7
|
+
useNetworkConfig: () => Config;
|
|
8
|
+
useNetworkVariables: () => Variables;
|
|
9
|
+
useNetworkVariable: <K extends keyof Variables>(name: K) => Variables[K];
|
|
10
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/hooks/networkConfig.ts
|
|
21
|
+
var networkConfig_exports = {};
|
|
22
|
+
__export(networkConfig_exports, {
|
|
23
|
+
createNetworkConfig: () => createNetworkConfig
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(networkConfig_exports);
|
|
26
|
+
|
|
27
|
+
// src/hooks/useSuiClient.ts
|
|
28
|
+
var import_react2 = require("react");
|
|
29
|
+
|
|
30
|
+
// src/components/SuiClientProvider.tsx
|
|
31
|
+
var import_client = require("@mysten/sui.js/client");
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
+
var SuiClientContext = (0, import_react.createContext)(null);
|
|
35
|
+
var DEFAULT_NETWORKS = {
|
|
36
|
+
localnet: { url: (0, import_client.getFullnodeUrl)("localnet") }
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/hooks/useSuiClient.ts
|
|
40
|
+
function useSuiClientContext() {
|
|
41
|
+
const suiClient = (0, import_react2.useContext)(SuiClientContext);
|
|
42
|
+
if (!suiClient) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
"Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider"
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
return suiClient;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// src/hooks/networkConfig.ts
|
|
51
|
+
function createNetworkConfig(networkConfig) {
|
|
52
|
+
function useNetworkConfig() {
|
|
53
|
+
const { config } = useSuiClientContext();
|
|
54
|
+
if (!config) {
|
|
55
|
+
throw new Error("No network config found");
|
|
56
|
+
}
|
|
57
|
+
return config;
|
|
58
|
+
}
|
|
59
|
+
function useNetworkVariables() {
|
|
60
|
+
const { variables } = useNetworkConfig();
|
|
61
|
+
return variables ?? {};
|
|
62
|
+
}
|
|
63
|
+
function useNetworkVariable(name) {
|
|
64
|
+
const variables = useNetworkVariables();
|
|
65
|
+
return variables[name];
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
networkConfig,
|
|
69
|
+
useNetworkConfig,
|
|
70
|
+
useNetworkVariables,
|
|
71
|
+
useNetworkVariable
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=networkConfig.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/networkConfig.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\n\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type NetworkConfig<T extends object = object> = SuiClientOptions & {\n\tvariables?: T;\n};\n\nexport function createNetworkConfig<\n\tconst T extends Record<string, Config>,\n\tConfig extends NetworkConfig<Variables> = T[keyof T],\n\tVariables extends object = NonNullable<Config['variables']>,\n>(networkConfig: T) {\n\tfunction useNetworkConfig(): Config {\n\t\tconst { config } = useSuiClientContext();\n\n\t\tif (!config) {\n\t\t\tthrow new Error('No network config found');\n\t\t}\n\n\t\treturn config as T[keyof T];\n\t}\n\n\tfunction useNetworkVariables(): Variables {\n\t\tconst { variables } = useNetworkConfig();\n\n\t\treturn (variables ?? {}) as Variables;\n\t}\n\n\tfunction useNetworkVariable<K extends keyof Variables>(name: K): Variables[K] {\n\t\tconst variables = useNetworkVariables();\n\n\t\treturn variables[name];\n\t}\n\n\treturn {\n\t\tnetworkConfig,\n\t\tuseNetworkConfig,\n\t\tuseNetworkVariables,\n\t\tuseNetworkVariable,\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIA,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADPO,SAAS,oBAId,eAAkB;AACnB,WAAS,mBAA2B;AACnC,UAAM,EAAE,OAAO,IAAI,oBAAoB;AAEvC,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC1C;AAEA,WAAO;AAAA,EACR;AAEA,WAAS,sBAAiC;AACzC,UAAM,EAAE,UAAU,IAAI,iBAAiB;AAEvC,WAAQ,aAAa,CAAC;AAAA,EACvB;AAEA,WAAS,mBAA8C,MAAuB;AAC7E,UAAM,YAAY,oBAAoB;AAEtC,WAAO,UAAU,IAAI;AAAA,EACtB;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;",
|
|
6
|
+
"names": ["import_react"]
|
|
7
|
+
}
|
|
@@ -1,105 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
isLoading: false;
|
|
5
|
-
isLoadingError: false;
|
|
6
|
-
isRefetchError: true;
|
|
7
|
-
isSuccess: false;
|
|
8
|
-
status: "error";
|
|
9
|
-
dataUpdatedAt: number;
|
|
10
|
-
errorUpdatedAt: number;
|
|
11
|
-
failureCount: number;
|
|
12
|
-
failureReason: Error | null;
|
|
13
|
-
errorUpdateCount: number;
|
|
14
|
-
isFetched: boolean;
|
|
15
|
-
isFetchedAfterMount: boolean;
|
|
16
|
-
isFetching: boolean;
|
|
17
|
-
isInitialLoading: boolean;
|
|
18
|
-
isPaused: boolean;
|
|
19
|
-
isPlaceholderData: boolean;
|
|
20
|
-
isPreviousData: boolean;
|
|
21
|
-
isRefetching: boolean;
|
|
22
|
-
isStale: boolean;
|
|
23
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@mysten/sui.js/dist/cjs/client/index.js").ResolvedNameServiceNames, Error>>;
|
|
24
|
-
remove: () => void;
|
|
25
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
26
|
-
data: string | null;
|
|
27
|
-
} | {
|
|
28
|
-
error: null;
|
|
29
|
-
isError: false;
|
|
30
|
-
isLoading: false;
|
|
31
|
-
isLoadingError: false;
|
|
32
|
-
isRefetchError: false;
|
|
33
|
-
isSuccess: true;
|
|
34
|
-
status: "success";
|
|
35
|
-
dataUpdatedAt: number;
|
|
36
|
-
errorUpdatedAt: number;
|
|
37
|
-
failureCount: number;
|
|
38
|
-
failureReason: Error | null;
|
|
39
|
-
errorUpdateCount: number;
|
|
40
|
-
isFetched: boolean;
|
|
41
|
-
isFetchedAfterMount: boolean;
|
|
42
|
-
isFetching: boolean;
|
|
43
|
-
isInitialLoading: boolean;
|
|
44
|
-
isPaused: boolean;
|
|
45
|
-
isPlaceholderData: boolean;
|
|
46
|
-
isPreviousData: boolean;
|
|
47
|
-
isRefetching: boolean;
|
|
48
|
-
isStale: boolean;
|
|
49
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@mysten/sui.js/dist/cjs/client/index.js").ResolvedNameServiceNames, Error>>;
|
|
50
|
-
remove: () => void;
|
|
51
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
52
|
-
data: string | null;
|
|
53
|
-
} | {
|
|
54
|
-
error: Error;
|
|
55
|
-
isError: true;
|
|
56
|
-
isLoading: false;
|
|
57
|
-
isLoadingError: true;
|
|
58
|
-
isRefetchError: false;
|
|
59
|
-
isSuccess: false;
|
|
60
|
-
status: "error";
|
|
61
|
-
dataUpdatedAt: number;
|
|
62
|
-
errorUpdatedAt: number;
|
|
63
|
-
failureCount: number;
|
|
64
|
-
failureReason: Error | null;
|
|
65
|
-
errorUpdateCount: number;
|
|
66
|
-
isFetched: boolean;
|
|
67
|
-
isFetchedAfterMount: boolean;
|
|
68
|
-
isFetching: boolean;
|
|
69
|
-
isInitialLoading: boolean;
|
|
70
|
-
isPaused: boolean;
|
|
71
|
-
isPlaceholderData: boolean;
|
|
72
|
-
isPreviousData: boolean;
|
|
73
|
-
isRefetching: boolean;
|
|
74
|
-
isStale: boolean;
|
|
75
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@mysten/sui.js/dist/cjs/client/index.js").ResolvedNameServiceNames, Error>>;
|
|
76
|
-
remove: () => void;
|
|
77
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
78
|
-
data: string | null;
|
|
79
|
-
} | {
|
|
80
|
-
error: null;
|
|
81
|
-
isError: false;
|
|
82
|
-
isLoading: true;
|
|
83
|
-
isLoadingError: false;
|
|
84
|
-
isRefetchError: false;
|
|
85
|
-
isSuccess: false;
|
|
86
|
-
status: "loading";
|
|
87
|
-
dataUpdatedAt: number;
|
|
88
|
-
errorUpdatedAt: number;
|
|
89
|
-
failureCount: number;
|
|
90
|
-
failureReason: Error | null;
|
|
91
|
-
errorUpdateCount: number;
|
|
92
|
-
isFetched: boolean;
|
|
93
|
-
isFetchedAfterMount: boolean;
|
|
94
|
-
isFetching: boolean;
|
|
95
|
-
isInitialLoading: boolean;
|
|
96
|
-
isPaused: boolean;
|
|
97
|
-
isPlaceholderData: boolean;
|
|
98
|
-
isPreviousData: boolean;
|
|
99
|
-
isRefetching: boolean;
|
|
100
|
-
isStale: boolean;
|
|
101
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@mysten/sui.js/dist/cjs/client/index.js").ResolvedNameServiceNames, Error>>;
|
|
102
|
-
remove: () => void;
|
|
103
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
104
|
-
data: string | null;
|
|
105
|
-
};
|
|
1
|
+
import type { ResolvedNameServiceNames } from '@mysten/sui.js/client';
|
|
2
|
+
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
3
|
+
export declare function useResolveSuiNSName(address?: string | null, options?: Omit<UseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>, 'queryFn' | 'queryKey'>): import("@tanstack/react-query/build/legacy/types.js").UseQueryResult<string | null, Error>;
|
|
@@ -64,19 +64,20 @@ function useSuiClientQuery(...args) {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// src/hooks/useResolveSuiNSNames.ts
|
|
67
|
-
function useResolveSuiNSName(address) {
|
|
68
|
-
|
|
67
|
+
function useResolveSuiNSName(address, options) {
|
|
68
|
+
return useSuiClientQuery(
|
|
69
69
|
"resolveNameServiceNames",
|
|
70
70
|
{
|
|
71
71
|
address,
|
|
72
72
|
limit: 1
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
|
|
75
|
+
...options,
|
|
76
76
|
refetchOnWindowFocus: false,
|
|
77
|
-
retry: false
|
|
77
|
+
retry: false,
|
|
78
|
+
select: (data) => data.data.length > 0 ? data.data[0] : null,
|
|
79
|
+
enabled: !!address && options?.enabled !== false
|
|
78
80
|
}
|
|
79
81
|
);
|
|
80
|
-
return { data: data?.data?.[0] ?? null, ...rest };
|
|
81
82
|
}
|
|
82
83
|
//# sourceMappingURL=useResolveSuiNSNames.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useResolveSuiNSNames.ts", "../../../src/hooks/useSuiClientQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useSuiClientQuery } from './useSuiClientQuery.js';\n\nexport function useResolveSuiNSName(
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@mysten/sui.js/client';\nimport type { UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSuiClientQuery } from './useSuiClientQuery.js';\n\nexport function useResolveSuiNSName(\n\taddress?: string | null,\n\toptions?: Omit<\n\t\tUseQueryOptions<ResolvedNameServiceNames, Error, string | null, unknown[]>,\n\t\t'queryFn' | 'queryKey'\n\t>,\n) {\n\treturn useSuiClientQuery(\n\t\t'resolveNameServiceNames',\n\t\t{\n\t\t\taddress: address!,\n\t\t\tlimit: 1,\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\trefetchOnWindowFocus: false,\n\t\t\tretry: false,\n\t\t\tselect: (data) => (data.data.length > 0 ? data.data[0] : null),\n\t\t\tenabled: !!address && options?.enabled !== false,\n\t\t},\n\t);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseQueryOptions } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type SuiRpcMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof SuiClient];\n\nexport type SuiRpcMethods = {\n\t[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t }\n\t\t: SuiClient[K] extends () => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: undefined | object;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods, TData> = PartialBy<\n\tOmit<UseQueryOptions<SuiRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n\t'queryKey'\n>;\n\nexport function useSuiClientQuery<\n\tT extends keyof SuiRpcMethods,\n\tTData = SuiRpcMethods[T]['result'],\n>(\n\t...args: undefined extends SuiRpcMethods[T]['params']\n\t\t? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n\t\t: [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T, TData>]\n) {\n\tconst [method, params, { queryKey = [], ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: SuiRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T, TData>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADmBO,SAAS,qBAIZ,MAGF;AACD,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,aAAa,oBAAoB;AAEvC,aAAO,6BAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;;;ADpDO,SAAS,oBACf,SACA,SAIC;AACD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,GAAG;AAAA,MACH,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP,QAAQ,CAAC,SAAU,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,IAAI;AAAA,MACzD,SAAS,CAAC,CAAC,WAAW,SAAS,YAAY;AAAA,IAC5C;AAAA,EACD;AACD;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient(): SuiClient {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAAA,gBAA2B;;;ACD3B,oBAAuD;AAEvD,mBAAiD;AAyFzC;AAxED,IAAM,uBAAmB,4BAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,SAAK,8BAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,gBAAY,0BAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,eAA0B;AACzC,SAAO,oBAAoB,EAAE;AAC9B;",
|
|
6
6
|
"names": ["import_react"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SuiClient } from '@mysten/sui.js/client';
|
|
2
|
-
import type { UseInfiniteQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { InfiniteData, UseInfiniteQueryOptions } from '@tanstack/react-query';
|
|
3
|
+
import type { PartialBy } from '../types/utilityTypes.js';
|
|
3
4
|
interface PaginatedResult {
|
|
4
5
|
data?: unknown;
|
|
5
6
|
nextCursor?: unknown;
|
|
@@ -9,17 +10,15 @@ export type SuiRpcPaginatedMethodName = {
|
|
|
9
10
|
[K in keyof SuiClient]: SuiClient[K] extends (input: any) => Promise<PaginatedResult> ? K : never;
|
|
10
11
|
}[keyof SuiClient];
|
|
11
12
|
export type SuiRpcPaginatedMethods = {
|
|
12
|
-
[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer
|
|
13
|
-
data?: infer R;
|
|
13
|
+
[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer Params) => Promise<infer Result extends {
|
|
14
14
|
nextCursor?: infer Cursor | null;
|
|
15
|
-
hasNextPage: boolean;
|
|
16
15
|
}> ? {
|
|
17
16
|
name: K;
|
|
18
|
-
result:
|
|
19
|
-
params:
|
|
17
|
+
result: Result;
|
|
18
|
+
params: Params;
|
|
20
19
|
cursor: Cursor;
|
|
21
20
|
} : never;
|
|
22
21
|
};
|
|
23
|
-
export type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods> = Omit<UseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error,
|
|
24
|
-
export declare function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods
|
|
22
|
+
export type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods, TData> = PartialBy<Omit<UseInfiniteQueryOptions<SuiRpcPaginatedMethods[T]['result'], Error, TData, SuiRpcPaginatedMethods[T]['result'], unknown[]>, 'queryFn' | 'initialPageParam' | 'getNextPageParam'>, 'queryKey'>;
|
|
23
|
+
export declare function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods, TData = InfiniteData<SuiRpcPaginatedMethods[T]['result']>>(method: T, params: SuiRpcPaginatedMethods[T]['params'], { queryKey, enabled, ...options }?: UseSuiClientInfiniteQueryOptions<T, TData>): import("@tanstack/react-query/build/legacy/types.js").UseInfiniteQueryResult<TData, Error>;
|
|
25
24
|
export {};
|