@mysten/dapp-kit 0.12.14 → 0.13.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 +20 -0
- package/dist/cjs/components/AccountDropdownMenu.css +2 -2
- package/dist/cjs/components/AccountDropdownMenu.css.css +1 -1
- package/dist/cjs/components/AccountDropdownMenu.css.css.map +1 -1
- package/dist/cjs/components/AccountDropdownMenu.css.js.map +1 -1
- package/dist/cjs/components/AccountDropdownMenu.css.map +1 -1
- package/dist/cjs/components/AccountDropdownMenu.js.map +1 -1
- package/dist/cjs/components/ConnectButton.css +3 -3
- package/dist/cjs/components/ConnectButton.css.map +1 -1
- package/dist/cjs/components/ConnectButton.js.map +1 -1
- package/dist/cjs/components/WalletProvider.d.ts +4 -4
- package/dist/cjs/components/WalletProvider.js +44 -44
- package/dist/cjs/components/WalletProvider.js.map +4 -4
- package/dist/cjs/components/connect-modal/ConnectModal.css +2 -2
- package/dist/cjs/components/connect-modal/ConnectModal.css.css +1 -1
- package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +1 -1
- package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +1 -1
- package/dist/cjs/components/connect-modal/ConnectModal.css.map +1 -1
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +1 -1
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +1 -1
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +1 -1
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +1 -1
- package/dist/cjs/components/connect-modal/views/GettingStarted.css +1 -1
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +1 -1
- package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +1 -1
- package/dist/cjs/components/ui/Button.css +1 -1
- package/dist/cjs/components/ui/Button.css.css +1 -1
- package/dist/cjs/components/ui/Button.css.css.map +1 -1
- package/dist/cjs/components/ui/Button.css.js.map +1 -1
- package/dist/cjs/components/ui/Button.css.map +1 -1
- package/dist/cjs/components/ui/Button.js.map +1 -1
- package/dist/cjs/constants/walletDefaults.js +1 -1
- package/dist/cjs/constants/walletDefaults.js.map +2 -2
- package/dist/cjs/hooks/wallet/useStashedWallet.d.ts +5 -0
- package/dist/cjs/hooks/wallet/{useZkSendWallet.js → useStashedWallet.js} +9 -9
- package/dist/cjs/hooks/wallet/useStashedWallet.js.map +7 -0
- package/dist/cjs/index.css +3 -3
- package/dist/cjs/index.css.map +1 -1
- package/dist/cjs/index.js +40 -40
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/components/AccountDropdownMenu.css +2 -2
- package/dist/esm/components/AccountDropdownMenu.css.css +1 -1
- package/dist/esm/components/AccountDropdownMenu.css.css.map +1 -1
- package/dist/esm/components/AccountDropdownMenu.css.js.map +1 -1
- package/dist/esm/components/AccountDropdownMenu.css.map +1 -1
- package/dist/esm/components/AccountDropdownMenu.js.map +1 -1
- package/dist/esm/components/ConnectButton.css +3 -3
- package/dist/esm/components/ConnectButton.css.map +1 -1
- package/dist/esm/components/ConnectButton.js.map +1 -1
- package/dist/esm/components/WalletProvider.d.ts +4 -4
- package/dist/esm/components/WalletProvider.js +42 -42
- package/dist/esm/components/WalletProvider.js.map +4 -4
- package/dist/esm/components/connect-modal/ConnectModal.css +2 -2
- package/dist/esm/components/connect-modal/ConnectModal.css.css +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.css.css.map +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.css.js.map +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.css.map +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.js.map +1 -1
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css +1 -1
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +1 -1
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +1 -1
- package/dist/esm/components/connect-modal/views/GettingStarted.css +1 -1
- package/dist/esm/components/connect-modal/views/GettingStarted.css.map +1 -1
- package/dist/esm/components/connect-modal/views/GettingStarted.js.map +1 -1
- package/dist/esm/components/ui/Button.css +1 -1
- package/dist/esm/components/ui/Button.css.css +1 -1
- package/dist/esm/components/ui/Button.css.css.map +1 -1
- package/dist/esm/components/ui/Button.css.js.map +1 -1
- package/dist/esm/components/ui/Button.css.map +1 -1
- package/dist/esm/components/ui/Button.js.map +1 -1
- package/dist/esm/constants/walletDefaults.js +2 -2
- package/dist/esm/constants/walletDefaults.js.map +2 -2
- package/dist/esm/hooks/wallet/useStashedWallet.d.ts +5 -0
- package/dist/esm/hooks/wallet/{useZkSendWallet.js → useStashedWallet.js} +7 -7
- package/dist/esm/hooks/wallet/useStashedWallet.js.map +7 -0
- package/dist/esm/index.css +3 -3
- package/dist/esm/index.css.map +1 -1
- package/dist/esm/index.js +41 -41
- package/dist/esm/index.js.map +4 -4
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/components/WalletProvider.tsx +9 -9
- package/src/constants/walletDefaults.ts +2 -2
- package/src/hooks/wallet/{useZkSendWallet.ts → useStashedWallet.ts} +6 -6
- package/dist/cjs/hooks/wallet/useZkSendWallet.d.ts +0 -5
- package/dist/cjs/hooks/wallet/useZkSendWallet.js.map +0 -7
- package/dist/esm/hooks/wallet/useZkSendWallet.d.ts +0 -5
- package/dist/esm/hooks/wallet/useZkSendWallet.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/styling/StyleMarker.css.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useCurrentAccount.ts", "../../../src/components/AccountDropdownMenu.tsx", "../../../src/hooks/useSuiClientQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx", "../../../src/hooks/useResolveSuiNSNames.ts", "../../../src/hooks/wallet/useAccounts.ts", "../../../src/hooks/wallet/useDisconnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/errors/walletErrors.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useSwitchAccount.ts", "../../../src/components/AccountDropdownMenu.css.ts", "../../../src/components/icons/CheckIcon.tsx", "../../../src/components/icons/ChevronIcon.tsx", "../../../src/components/styling/StyleMarker.tsx", "../../../src/constants/styleDataAttribute.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/ConnectModal.tsx", "../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/utils/walletUtils.ts", "../../../src/components/icons/BackIcon.tsx", "../../../src/components/icons/CloseIcon.tsx", "../../../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/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", "../../../src/components/ConnectButton.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 { 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 { WalletAccount } from '@mysten/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet account that is currently selected, if one exists.\n */\nexport function useCurrentAccount(): WalletAccount | null {\n\treturn useWalletStore((state) => state.currentAccount);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@mysten/sui.js/utils';\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\nimport { useResolveSuiNSName } from '../hooks/useResolveSuiNSNames.js';\nimport { useAccounts } from '../hooks/wallet/useAccounts.js';\nimport { useDisconnectWallet } from '../hooks/wallet/useDisconnectWallet.js';\nimport { useSwitchAccount } from '../hooks/wallet/useSwitchAccount.js';\nimport * as styles from './AccountDropdownMenu.css.js';\nimport { CheckIcon } from './icons/CheckIcon.js';\nimport { ChevronIcon } from './icons/ChevronIcon.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\nimport { Text } from './ui/Text.js';\n\ntype AccountDropdownMenuProps = {\n\tcurrentAccount: WalletAccount;\n};\n\nexport function AccountDropdownMenu({ currentAccount }: AccountDropdownMenuProps) {\n\tconst { mutate: disconnectWallet } = useDisconnectWallet();\n\n\tconst { data: domain } = useResolveSuiNSName(\n\t\tcurrentAccount.label ? null : currentAccount.address,\n\t);\n\tconst accounts = useAccounts();\n\n\treturn (\n\t\t<DropdownMenu.Root modal={false}>\n\t\t\t<StyleMarker>\n\t\t\t\t<DropdownMenu.Trigger asChild>\n\t\t\t\t\t<Button size=\"lg\" className={styles.connectedAccount}>\n\t\t\t\t\t\t<Text mono weight=\"bold\">\n\t\t\t\t\t\t\t{currentAccount.label ?? domain ?? formatAddress(currentAccount.address)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<ChevronIcon />\n\t\t\t\t\t</Button>\n\t\t\t\t</DropdownMenu.Trigger>\n\t\t\t</StyleMarker>\n\t\t\t<DropdownMenu.Portal>\n\t\t\t\t<StyleMarker className={styles.menuContainer}>\n\t\t\t\t\t<DropdownMenu.Content className={styles.menuContent}>\n\t\t\t\t\t\t{accounts.map((account) => (\n\t\t\t\t\t\t\t<AccountDropdownMenuItem\n\t\t\t\t\t\t\t\tkey={account.address}\n\t\t\t\t\t\t\t\taccount={account}\n\t\t\t\t\t\t\t\tactive={currentAccount.address === account.address}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<DropdownMenu.Separator className={styles.separator} />\n\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\tclassName={clsx(styles.menuItem)}\n\t\t\t\t\t\t\tonSelect={() => disconnectWallet()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDisconnect\n\t\t\t\t\t\t</DropdownMenu.Item>\n\t\t\t\t\t</DropdownMenu.Content>\n\t\t\t\t</StyleMarker>\n\t\t\t</DropdownMenu.Portal>\n\t\t</DropdownMenu.Root>\n\t);\n}\n\nexport function AccountDropdownMenuItem({\n\taccount,\n\tactive,\n}: {\n\taccount: WalletAccount;\n\tactive?: boolean;\n}) {\n\tconst { mutate: switchAccount } = useSwitchAccount();\n\tconst { data: domain } = useResolveSuiNSName(account.label ? null : account.address);\n\n\treturn (\n\t\t<DropdownMenu.Item\n\t\t\tclassName={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n\t\t\tonSelect={() => switchAccount({ account })}\n\t\t>\n\t\t\t<Text mono>{account.label ?? domain ?? formatAddress(account.address)}</Text>\n\t\t\t{active ? <CheckIcon /> : null}\n\t\t</DropdownMenu.Item>\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, UseQueryResult } 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): UseQueryResult<TData, Error> {\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", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@mysten/sui.js/client';\nimport type { UseQueryOptions, UseQueryResult } 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' | 'select'\n\t>,\n): UseQueryResult<string | null, Error> {\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 { WalletAccount } from '@mysten/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts(): readonly WalletAccount[] {\n\treturn useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n\tUseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n\tvoid,\n\tUseDisconnectWalletError,\n\tvoid\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n\t\tmutationFn: async () => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Wallets aren't required to implement the disconnect feature, so we'll\n\t\t\t\t// optionally call the disconnect feature if it exists and reset the UI\n\t\t\t\t// state on the frontend at a minimum.\n\t\t\t\tawait currentWallet.features['standard:disconnect']?.disconnect();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to disconnect the application from the current wallet.', error);\n\t\t\t}\n\n\t\t\tsetWalletDisconnected();\n\t\t},\n\t\t...mutationOptions,\n\t});\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\tautoconnectWallet: formMutationKeyFn('autoconnect-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\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n\taccount: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n\tUseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n\tmutationKey,\n\t...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n\tSwitchAccountResult,\n\tUseSwitchAccountError,\n\tSwitchAccountArgs\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.switchAccount(mutationKey),\n\t\tmutationFn: async ({ account }) => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst accountToSelect = currentWallet.accounts.find(\n\t\t\t\t(walletAccount) => walletAccount.address === account.address,\n\t\t\t);\n\t\t\tif (!accountToSelect) {\n\t\t\t\tthrow new WalletAccountNotFoundError(\n\t\t\t\t\t`No account with address ${account.address} is connected to ${currentWallet.name}.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetAccountSwitched(accountToSelect);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VTy04CMRTd8xVdyqIEEBOtK8WNC1YujSGlvcxcKbe17fDQ+O92KiOEh484i5nkPs8590znRilbUbzz1mm7pBFQNVaWCFQEvUmOxxoX/RfTZW8txgrpBLt0q+vWe6tzrH2eXkNLUSKBb3p7ufeVI2lYCXbVPD9Oge3+fp6hMTgj14JNDSQQLH+5Rp8goyXBlDXVnOrMEnUsBetddl2unMsVLwGLMgrW734FfYHEo020Bp8hJ7VGKjY0dykzNrFeg+deaqyCYAvpzzjX0jk+w5jDyE0aCe1cLdWs8Imc5gmW9QcN24JhnQ9c74jQ/lad+wjzRprzLM0+7iokpAFMUkYwsgR10FbRpMtsAweCSoMFcUzjE0GVDgD+r8x/C/tRyyh5mU5i6rOAfspE/i6b85gOub6tYrR0GkBYYlTlJjPaQzM47q/nKkScrhOS7EbBgpMK+ATiEoBOCnYKATjpZbRff8ZF3trYsue2ng6lR5oJ1v2/kx6arbU0HwagDgr1AwAA';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__div2ql0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__div2ql1';\nexport var menuContent = 'AccountDropdownMenu_menuContent__div2ql2';\nexport var menuItem = 'AccountDropdownMenu_menuItem__div2ql3';\nexport var separator = 'AccountDropdownMenu_separator__div2ql5';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__div2ql4';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\td=\"m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z\"\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 ChevronIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n\t\t\t<path\n\t\t\t\tstroke=\"#A0B6C3\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth={1.5}\n\t\t\t\td=\"m4 6 4 4 4-4\"\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, ...props }, forwardedRef) => (\n\t<Slot ref={forwardedRef} {...props} {...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 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:[]});", "// 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 { getWalletUniqueIdentifier } from '../../utils/walletUtils.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<Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\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={getWalletUniqueIdentifier(selectedWallet)}\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 (\n\t\t\t\t\t\t\t\t\t\t\t\tgetWalletUniqueIdentifier(selectedWallet) !==\n\t\t\t\t\t\t\t\t\t\t\t\tgetWalletUniqueIdentifier(wallet)\n\t\t\t\t\t\t\t\t\t\t\t) {\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, UseMutationResult } 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 = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\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 {\n\tMinimallyRequiredFeatures,\n\tWallet,\n\tWalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@mysten/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\trequiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n\tconst walletsApi = getWallets();\n\tconst wallets = walletsApi.get();\n\n\tconst suiWallets = wallets.filter(\n\t\t(wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n\t\t\tisWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n\t);\n\n\treturn [\n\t\t// Preferred wallets, in order:\n\t\t...(preferredWallets\n\t\t\t.map((name) => suiWallets.find((wallet) => wallet.name === name))\n\t\t\t.filter(Boolean) as WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures>[]),\n\n\t\t// Wallets in default order:\n\t\t...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n\t];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\n}\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 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';", "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 { getWalletUniqueIdentifier } from '../../../utils/walletUtils.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={getWalletUniqueIdentifier(wallet)}\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={getWalletUniqueIdentifier(wallet) === 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", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { useCurrentAccount } from '../hooks/wallet/useCurrentAccount.js';\nimport { AccountDropdownMenu } from './AccountDropdownMenu.js';\nimport { ConnectModal } from './connect-modal/ConnectModal.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\n\ntype ConnectButtonProps = {\n\tconnectText?: ReactNode;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function ConnectButton({\n\tconnectText = 'Connect Wallet',\n\t...buttonProps\n}: ConnectButtonProps) {\n\tconst currentAccount = useCurrentAccount();\n\treturn currentAccount ? (\n\t\t<AccountDropdownMenu currentAccount={currentAccount} />\n\t) : (\n\t\t<ConnectModal\n\t\t\ttrigger={\n\t\t\t\t<StyleMarker>\n\t\t\t\t\t<Button {...buttonProps}>{connectText}</Button>\n\t\t\t\t</StyleMarker>\n\t\t\t}\n\t\t/>\n\t);\n}\n"],
|
|
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 { 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 { WalletAccount } from '@mysten/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet account that is currently selected, if one exists.\n */\nexport function useCurrentAccount(): WalletAccount | null {\n\treturn useWalletStore((state) => state.currentAccount);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@mysten/sui.js/utils';\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\nimport { useResolveSuiNSName } from '../hooks/useResolveSuiNSNames.js';\nimport { useAccounts } from '../hooks/wallet/useAccounts.js';\nimport { useDisconnectWallet } from '../hooks/wallet/useDisconnectWallet.js';\nimport { useSwitchAccount } from '../hooks/wallet/useSwitchAccount.js';\nimport * as styles from './AccountDropdownMenu.css.js';\nimport { CheckIcon } from './icons/CheckIcon.js';\nimport { ChevronIcon } from './icons/ChevronIcon.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\nimport { Text } from './ui/Text.js';\n\ntype AccountDropdownMenuProps = {\n\tcurrentAccount: WalletAccount;\n};\n\nexport function AccountDropdownMenu({ currentAccount }: AccountDropdownMenuProps) {\n\tconst { mutate: disconnectWallet } = useDisconnectWallet();\n\n\tconst { data: domain } = useResolveSuiNSName(\n\t\tcurrentAccount.label ? null : currentAccount.address,\n\t);\n\tconst accounts = useAccounts();\n\n\treturn (\n\t\t<DropdownMenu.Root modal={false}>\n\t\t\t<StyleMarker>\n\t\t\t\t<DropdownMenu.Trigger asChild>\n\t\t\t\t\t<Button size=\"lg\" className={styles.connectedAccount}>\n\t\t\t\t\t\t<Text mono weight=\"bold\">\n\t\t\t\t\t\t\t{currentAccount.label ?? domain ?? formatAddress(currentAccount.address)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<ChevronIcon />\n\t\t\t\t\t</Button>\n\t\t\t\t</DropdownMenu.Trigger>\n\t\t\t</StyleMarker>\n\t\t\t<DropdownMenu.Portal>\n\t\t\t\t<StyleMarker className={styles.menuContainer}>\n\t\t\t\t\t<DropdownMenu.Content className={styles.menuContent}>\n\t\t\t\t\t\t{accounts.map((account) => (\n\t\t\t\t\t\t\t<AccountDropdownMenuItem\n\t\t\t\t\t\t\t\tkey={account.address}\n\t\t\t\t\t\t\t\taccount={account}\n\t\t\t\t\t\t\t\tactive={currentAccount.address === account.address}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<DropdownMenu.Separator className={styles.separator} />\n\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\tclassName={clsx(styles.menuItem)}\n\t\t\t\t\t\t\tonSelect={() => disconnectWallet()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDisconnect\n\t\t\t\t\t\t</DropdownMenu.Item>\n\t\t\t\t\t</DropdownMenu.Content>\n\t\t\t\t</StyleMarker>\n\t\t\t</DropdownMenu.Portal>\n\t\t</DropdownMenu.Root>\n\t);\n}\n\nexport function AccountDropdownMenuItem({\n\taccount,\n\tactive,\n}: {\n\taccount: WalletAccount;\n\tactive?: boolean;\n}) {\n\tconst { mutate: switchAccount } = useSwitchAccount();\n\tconst { data: domain } = useResolveSuiNSName(account.label ? null : account.address);\n\n\treturn (\n\t\t<DropdownMenu.Item\n\t\t\tclassName={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n\t\t\tonSelect={() => switchAccount({ account })}\n\t\t>\n\t\t\t<Text mono>{account.label ?? domain ?? formatAddress(account.address)}</Text>\n\t\t\t{active ? <CheckIcon /> : null}\n\t\t</DropdownMenu.Item>\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, UseQueryResult } 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): UseQueryResult<TData, Error> {\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", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ResolvedNameServiceNames } from '@mysten/sui.js/client';\nimport type { UseQueryOptions, UseQueryResult } 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' | 'select'\n\t>,\n): UseQueryResult<string | null, Error> {\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 { WalletAccount } from '@mysten/wallet-standard';\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts(): readonly WalletAccount[] {\n\treturn useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n\tUseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n\tvoid,\n\tUseDisconnectWalletError,\n\tvoid\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n\t\tmutationFn: async () => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Wallets aren't required to implement the disconnect feature, so we'll\n\t\t\t\t// optionally call the disconnect feature if it exists and reset the UI\n\t\t\t\t// state on the frontend at a minimum.\n\t\t\t\tawait currentWallet.features['standard:disconnect']?.disconnect();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to disconnect the application from the current wallet.', error);\n\t\t\t}\n\n\t\t\tsetWalletDisconnected();\n\t\t},\n\t\t...mutationOptions,\n\t});\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\tautoconnectWallet: formMutationKeyFn('autoconnect-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\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n\taccount: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n\tUseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n\tmutationKey,\n\t...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n\tSwitchAccountResult,\n\tUseSwitchAccountError,\n\tSwitchAccountArgs\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.switchAccount(mutationKey),\n\t\tmutationFn: async ({ account }) => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst accountToSelect = currentWallet.accounts.find(\n\t\t\t\t(walletAccount) => walletAccount.address === account.address,\n\t\t\t);\n\t\t\tif (!accountToSelect) {\n\t\t\t\tthrow new WalletAccountNotFoundError(\n\t\t\t\t\t`No account with address ${account.address} is connected to ${currentWallet.name}.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetAccountSwitched(accountToSelect);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VTTW8TMRC951fMkR5cJaFIxT1BuXDoiSNC0dSe7g7xjo09bhIQ/x2tm22qtqFU+GLpzdeb5+fTD87FKvopx+TjRq5I6spFEXJKfh9crTzfLn+EOfyaAXSYLJyn7cXs9+z0ufKBpF5GUWShPNUuWu1Pw+Jpa+H9dF7sQof5y9bDc0kBdxZuAm0vZtBu4zmTU45iwcVQBxkjG/baW1icz1PLHHBreuKuVwvL+T2YOxajMVk4u4MSes/S7dd8uDLAdcyessnouRYLt5jfGOMxJbNmbTCbgLmjk5aNbt3lWMUbF0PMTwoOCZdjvBj/QISTv6rzWWmYpHnbpHnMuxbKplAgpxYkCo1grBpY6AA8ERQDd2JYaSgWHIlSfu3m/0r7q0dF03PXh/FZyH9ri7xetpR5wLz7WFWjHCdQNqyu30euHrE5e95f32tRvtkZd+dGCyWhI3NNuiGSo4IdY0AJM2q8/xnv2tTJlot08HTpM8vawvz/nfRlmjpK8wcGoA4K9QMAAA==';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__div2ql0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__div2ql1';\nexport var menuContent = 'AccountDropdownMenu_menuContent__div2ql2';\nexport var menuItem = 'AccountDropdownMenu_menuItem__div2ql3';\nexport var separator = 'AccountDropdownMenu_separator__div2ql5';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__div2ql4';", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\td=\"m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z\"\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 ChevronIcon(props: ComponentProps<'svg'>) {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n\t\t\t<path\n\t\t\t\tstroke=\"#A0B6C3\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth={1.5}\n\t\t\t\td=\"m4 6 4 4 4-4\"\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, ...props }, forwardedRef) => (\n\t<Slot ref={forwardedRef} {...props} {...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 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=#H4sIAAAAAAAAA62TwVLCMBCG732KPcohDEV0mPSmF59Aj520Ce1KmsQkhVaHd3fS0gGsIoyemtl/d79/N+n0ofZeqzTrPs/MIlPepWkTu2X8NoOPCICjM5K1FFBJVIKspGiSCIBJLBRBLypHIRfKCxvCr7XzuGpJrpUXyh9LK6082QosSk9hw+wNIZwZQ9boSdBeOsmRSnCsq0kS7aLpeYOUo2OZFLxzqg3L0bcUZtO7M8Wb/pAaixWz7dAs7npkLF8XVteKk1xLbUdGDwmPQXdk36ZnTcKc3xfmP6VnuiGuZFxvRzV9eFx09Wy01Bth/2PCp9DoEgu69uG9DBbmPVxbLizZIvclhdg0ySHofCsFBacl8qPwDyY7cW9wj7r0Cr6mXz3Kn7Z5Qv91mw7fRVrxAX17vEXLONZuRAxhPPxEAIZxjqqgsDQNxPdh6ed5shh4i4t5ktlCnOICCuYL00AS7T4BZ4uE22sEAAA=';\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:[]});", "// 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 { getWalletUniqueIdentifier } from '../../utils/walletUtils.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<Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\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={getWalletUniqueIdentifier(selectedWallet)}\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 (\n\t\t\t\t\t\t\t\t\t\t\t\tgetWalletUniqueIdentifier(selectedWallet) !==\n\t\t\t\t\t\t\t\t\t\t\t\tgetWalletUniqueIdentifier(wallet)\n\t\t\t\t\t\t\t\t\t\t\t) {\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, UseMutationResult } 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 = {}): UseMutationResult<\n\tConnectWalletResult,\n\tError,\n\tConnectWalletArgs,\n\tunknown\n> {\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 {\n\tMinimallyRequiredFeatures,\n\tWallet,\n\tWalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@mysten/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\trequiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n\tconst walletsApi = getWallets();\n\tconst wallets = walletsApi.get();\n\n\tconst suiWallets = wallets.filter(\n\t\t(wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n\t\t\tisWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n\t);\n\n\treturn [\n\t\t// Preferred wallets, in order:\n\t\t...(preferredWallets\n\t\t\t.map((name) => suiWallets.find((wallet) => wallet.name === name))\n\t\t\t.filter(Boolean) as WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures>[]),\n\n\t\t// Wallets in default order:\n\t\t...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n\t];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\n}\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 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=#H4sIAAAAAAAAA61UTW8aMRC98yt8iUSkOlrSkJDNpS2nSq1aKVJzjMx6dteN117Zs0BS8d8rfwAh6wAS4QB4vPNm5s17ezHVSkGBPzVn8lHPwUj2/PhYvUxebjPyb0DIjBVPldGd4rTQUpuczJkZUspZ29IngXT7wNTdW9o4rF8B6vwuQnCjW1oKiZBAkF0qrdVWoNAqJ6VYAnchoSxgTjL3/4UKxWGZk9v1526wGlzsDIQCJcRxRn6clnEuVEUllJiTSbvsJxVaISiMaZensPDbiIaZyII2HAw1jIvO9vJdWNClZKYC/3i6TBHAZ5q/y9FMI+omJ6NrNxwhYdL1yYiqfnXkwraSPeeklOAD7pdyYaAIsIWWXaPczd/OoiifaaQnJ7ZlBdAZ4ALAP+HkU0q9yEktOA+xRihaQyg6zua1j7HlJjYZb2MLwbHOyU2WpdayqBl+t18fmJSA3zpEreKKPp+yonsotOLrJUV5rAl628NcwGKqFTKhwMTqV776hkilFewgXWbtltnKOHpGfWQLEgoE/idRYbxbIazqLYCbLrDyNv06CH+jFDazWnbou0TdbjsMSrlMsl9IbSGNf3MIP6m93nr9Xn8Ii9Md/01Sw+/T6S7PhFTMjXgVWuht5WRj75/jNU+36UkO++rYWY9o5UFg7SR2H+UWW2MpDa8GXxrgghFbGABFmOJk6Py89un1pF2e+8zDL9D+FEYv7vxFhBtl2VkIeNGM16egys0RDVO21KbJw1/JEIZ0nJ19Iu7bu3jVa+nQyyNh4D7I++5PrLWffsihR/Ww3yYf9BY8VLav6j3r9RczZoV1Noy225Fu9ipiayPUU4wd1cdeSScXs/oP5e4DaPYIAAA=';\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';", "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 { getWalletUniqueIdentifier } from '../../../utils/walletUtils.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={getWalletUniqueIdentifier(wallet)}\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={getWalletUniqueIdentifier(wallet) === 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", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { useCurrentAccount } from '../hooks/wallet/useCurrentAccount.js';\nimport { AccountDropdownMenu } from './AccountDropdownMenu.js';\nimport { ConnectModal } from './connect-modal/ConnectModal.js';\nimport { StyleMarker } from './styling/StyleMarker.js';\nimport { Button } from './ui/Button.js';\n\ntype ConnectButtonProps = {\n\tconnectText?: ReactNode;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function ConnectButton({\n\tconnectText = 'Connect Wallet',\n\t...buttonProps\n}: ConnectButtonProps) {\n\tconst currentAccount = useCurrentAccount();\n\treturn currentAccount ? (\n\t\t<AccountDropdownMenu currentAccount={currentAccount} />\n\t) : (\n\t\t<ConnectModal\n\t\t\ttrigger={\n\t\t\t\t<StyleMarker>\n\t\t\t\t\t<Button {...buttonProps}>{connectText}</Button>\n\t\t\t\t</StyleMarker>\n\t\t\t}\n\t\t/>\n\t);\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["clsx", "useContext", "createContext", "useContext", "connectionStatus", "useMutation", "useMutation", "jsx", "jsx", "jsx", "Slot", "forwardRef", "jsx", "forwardRef", "Slot", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "jsx", "clsx", "clsx", "useState", "useMutation", "useMutation", "jsx", "jsx", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "Slot", "clsx", "forwardRef", "jsx", "forwardRef", "Slot", "clsx", "container", "title", "jsx", "jsxs", "container", "title", "container", "jsx", "jsxs", "title", "container", "container", "content", "jsx", "jsxs", "container", "content", "container", "content", "jsx", "jsxs", "container", "content", "jsx", "jsxs", "container", "clsx", "container", "walletIcon", "jsx", "jsxs", "container", "clsx", "walletIcon", "jsx", "container", "jsx", "jsxs", "useState", "open", "clsx", "jsx"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WalletWithFeatures, WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
import type { StateStorage } from 'zustand/middleware';
|
|
4
|
-
import type {
|
|
4
|
+
import type { StashedWalletConfig } from '../hooks/wallet/useStashedWallet.js';
|
|
5
5
|
import type { Theme } from '../themes/themeContract.js';
|
|
6
6
|
export type WalletProviderProps = {
|
|
7
7
|
/** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */
|
|
@@ -12,8 +12,8 @@ export type WalletProviderProps = {
|
|
|
12
12
|
enableUnsafeBurner?: boolean;
|
|
13
13
|
/** Enables automatically reconnecting to the most recently used wallet account upon mounting. */
|
|
14
14
|
autoConnect?: boolean;
|
|
15
|
-
/** Enables the
|
|
16
|
-
|
|
15
|
+
/** Enables the Stashed wallet */
|
|
16
|
+
stashedWallet?: StashedWalletConfig;
|
|
17
17
|
/** Configures how the most recently connected to wallet account is stored. Set to `null` to disable persisting state entirely. Defaults to using localStorage if it is available. */
|
|
18
18
|
storage?: StateStorage | null;
|
|
19
19
|
/** The key to use to store the most recently connected wallet account. */
|
|
@@ -23,4 +23,4 @@ export type WalletProviderProps = {
|
|
|
23
23
|
children: ReactNode;
|
|
24
24
|
};
|
|
25
25
|
export type { WalletWithFeatures };
|
|
26
|
-
export declare function WalletProvider({ preferredWallets, requiredFeatures, storage, storageKey, enableUnsafeBurner, autoConnect,
|
|
26
|
+
export declare function WalletProvider({ preferredWallets, requiredFeatures, storage, storageKey, enableUnsafeBurner, autoConnect, stashedWallet, theme, children, }: WalletProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -16,7 +16,7 @@ var __privateAdd = (obj, member, value) => {
|
|
|
16
16
|
import { useRef } from "react";
|
|
17
17
|
|
|
18
18
|
// src/constants/walletDefaults.ts
|
|
19
|
-
import {
|
|
19
|
+
import { STASHED_WALLET_NAME } from "@mysten/zksend";
|
|
20
20
|
|
|
21
21
|
// src/utils/stateStorage.ts
|
|
22
22
|
function createInMemoryStore() {
|
|
@@ -41,7 +41,7 @@ var DEFAULT_STORAGE_KEY = "sui-dapp-kit:wallet-connection-info";
|
|
|
41
41
|
var DEFAULT_REQUIRED_FEATURES = [
|
|
42
42
|
"sui:signTransactionBlock"
|
|
43
43
|
];
|
|
44
|
-
var DEFAULT_PREFERRED_WALLETS = [SUI_WALLET_NAME,
|
|
44
|
+
var DEFAULT_PREFERRED_WALLETS = [SUI_WALLET_NAME, STASHED_WALLET_NAME];
|
|
45
45
|
|
|
46
46
|
// src/contexts/walletContext.ts
|
|
47
47
|
import { createContext } from "react";
|
|
@@ -250,17 +250,46 @@ function useAutoConnectWallet() {
|
|
|
250
250
|
return isError ? "attempted" : data ?? "idle";
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
// src/hooks/wallet/useStashedWallet.ts
|
|
254
|
+
import { registerStashedWallet } from "@mysten/zksend";
|
|
255
|
+
import { useEffect, useLayoutEffect as useLayoutEffect2, useState as useState2 } from "react";
|
|
256
|
+
function useStashedWallet(config) {
|
|
257
|
+
const status = useAutoConnectWallet();
|
|
258
|
+
const [address, setAddress] = useState2(null);
|
|
259
|
+
const [wallet, setWallet] = useState2(null);
|
|
260
|
+
const { mutate: connect } = useConnectWallet();
|
|
261
|
+
useEffect(() => {
|
|
262
|
+
if (!address || !wallet || status !== "attempted")
|
|
263
|
+
return;
|
|
264
|
+
connect({ wallet, silent: true });
|
|
265
|
+
setAddress(null);
|
|
266
|
+
}, [address, status, connect, wallet]);
|
|
267
|
+
useLayoutEffect2(() => {
|
|
268
|
+
if (!config?.name) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
const { wallet: wallet2, unregister, addressFromRedirect } = registerStashedWallet(config.name, {
|
|
272
|
+
origin: config.origin
|
|
273
|
+
});
|
|
274
|
+
if (addressFromRedirect) {
|
|
275
|
+
setWallet(wallet2);
|
|
276
|
+
setAddress(addressFromRedirect);
|
|
277
|
+
}
|
|
278
|
+
return unregister;
|
|
279
|
+
}, [config?.name, config?.origin]);
|
|
280
|
+
}
|
|
281
|
+
|
|
253
282
|
// src/hooks/wallet/useUnsafeBurnerWallet.ts
|
|
254
283
|
import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
|
|
255
284
|
import { getWallets as getWallets2, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
|
|
256
|
-
import { useEffect } from "react";
|
|
285
|
+
import { useEffect as useEffect2 } from "react";
|
|
257
286
|
|
|
258
287
|
// src/hooks/useSuiClient.ts
|
|
259
288
|
import { useContext as useContext2 } from "react";
|
|
260
289
|
|
|
261
290
|
// src/components/SuiClientProvider.tsx
|
|
262
291
|
import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui.js/client";
|
|
263
|
-
import { createContext as createContext2, useMemo, useState as
|
|
292
|
+
import { createContext as createContext2, useMemo, useState as useState3 } from "react";
|
|
264
293
|
import { jsx } from "react/jsx-runtime";
|
|
265
294
|
var SuiClientContext = createContext2(null);
|
|
266
295
|
var DEFAULT_NETWORKS = {
|
|
@@ -285,7 +314,7 @@ function useSuiClient() {
|
|
|
285
314
|
var WALLET_NAME = "Unsafe Burner Wallet";
|
|
286
315
|
function useUnsafeBurnerWallet(enabled) {
|
|
287
316
|
const suiClient = useSuiClient();
|
|
288
|
-
|
|
317
|
+
useEffect2(() => {
|
|
289
318
|
if (!enabled) {
|
|
290
319
|
return;
|
|
291
320
|
}
|
|
@@ -395,11 +424,11 @@ function registerUnsafeBurnerWallet(suiClient) {
|
|
|
395
424
|
}
|
|
396
425
|
|
|
397
426
|
// src/hooks/wallet/useWalletPropertiesChanged.ts
|
|
398
|
-
import { useEffect as
|
|
427
|
+
import { useEffect as useEffect3 } from "react";
|
|
399
428
|
function useWalletPropertiesChanged() {
|
|
400
429
|
const { currentWallet } = useCurrentWallet();
|
|
401
430
|
const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
|
|
402
|
-
|
|
431
|
+
useEffect3(() => {
|
|
403
432
|
const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
|
|
404
433
|
"change",
|
|
405
434
|
({ accounts }) => {
|
|
@@ -414,11 +443,11 @@ function useWalletPropertiesChanged() {
|
|
|
414
443
|
|
|
415
444
|
// src/hooks/wallet/useWalletsChanged.ts
|
|
416
445
|
import { getWallets as getWallets3 } from "@mysten/wallet-standard";
|
|
417
|
-
import { useEffect as
|
|
446
|
+
import { useEffect as useEffect4 } from "react";
|
|
418
447
|
function useWalletsChanged(preferredWallets, requiredFeatures) {
|
|
419
448
|
const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
|
|
420
449
|
const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
|
|
421
|
-
|
|
450
|
+
useEffect4(() => {
|
|
422
451
|
const walletsApi = getWallets3();
|
|
423
452
|
const unsubscribeFromRegister = walletsApi.on("register", () => {
|
|
424
453
|
setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
|
|
@@ -436,35 +465,6 @@ function useWalletsChanged(preferredWallets, requiredFeatures) {
|
|
|
436
465
|
}, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);
|
|
437
466
|
}
|
|
438
467
|
|
|
439
|
-
// src/hooks/wallet/useZkSendWallet.ts
|
|
440
|
-
import { registerZkSendWallet } from "@mysten/zksend";
|
|
441
|
-
import { useEffect as useEffect4, useLayoutEffect as useLayoutEffect2, useState as useState3 } from "react";
|
|
442
|
-
function useZkSendWallet(config) {
|
|
443
|
-
const status = useAutoConnectWallet();
|
|
444
|
-
const [address, setAddress] = useState3(null);
|
|
445
|
-
const [wallet, setWallet] = useState3(null);
|
|
446
|
-
const { mutate: connect } = useConnectWallet();
|
|
447
|
-
useEffect4(() => {
|
|
448
|
-
if (!address || !wallet || status !== "attempted")
|
|
449
|
-
return;
|
|
450
|
-
connect({ wallet, silent: true });
|
|
451
|
-
setAddress(null);
|
|
452
|
-
}, [address, status, connect, wallet]);
|
|
453
|
-
useLayoutEffect2(() => {
|
|
454
|
-
if (!config?.name) {
|
|
455
|
-
return;
|
|
456
|
-
}
|
|
457
|
-
const { wallet: wallet2, unregister, addressFromRedirect } = registerZkSendWallet(config.name, {
|
|
458
|
-
origin: config.origin
|
|
459
|
-
});
|
|
460
|
-
if (addressFromRedirect) {
|
|
461
|
-
setWallet(wallet2);
|
|
462
|
-
setAddress(addressFromRedirect);
|
|
463
|
-
}
|
|
464
|
-
return unregister;
|
|
465
|
-
}, [config?.name, config?.origin]);
|
|
466
|
-
}
|
|
467
|
-
|
|
468
468
|
// src/themes/lightTheme.ts
|
|
469
469
|
var lightTheme = {
|
|
470
470
|
blurs: {
|
|
@@ -721,7 +721,7 @@ function WalletProvider({
|
|
|
721
721
|
storageKey = DEFAULT_STORAGE_KEY,
|
|
722
722
|
enableUnsafeBurner = false,
|
|
723
723
|
autoConnect = false,
|
|
724
|
-
|
|
724
|
+
stashedWallet,
|
|
725
725
|
theme = lightTheme,
|
|
726
726
|
children
|
|
727
727
|
}) {
|
|
@@ -739,7 +739,7 @@ function WalletProvider({
|
|
|
739
739
|
preferredWallets,
|
|
740
740
|
requiredFeatures,
|
|
741
741
|
enableUnsafeBurner,
|
|
742
|
-
|
|
742
|
+
stashedWallet,
|
|
743
743
|
children: [
|
|
744
744
|
theme ? /* @__PURE__ */ jsx3(InjectedThemeStyles, { theme }) : null,
|
|
745
745
|
children
|
|
@@ -751,12 +751,12 @@ function WalletConnectionManager({
|
|
|
751
751
|
preferredWallets = DEFAULT_PREFERRED_WALLETS,
|
|
752
752
|
requiredFeatures = DEFAULT_REQUIRED_FEATURES,
|
|
753
753
|
enableUnsafeBurner = false,
|
|
754
|
-
|
|
754
|
+
stashedWallet,
|
|
755
755
|
children
|
|
756
756
|
}) {
|
|
757
757
|
useWalletsChanged(preferredWallets, requiredFeatures);
|
|
758
758
|
useWalletPropertiesChanged();
|
|
759
|
-
|
|
759
|
+
useStashedWallet(stashedWallet);
|
|
760
760
|
useUnsafeBurnerWallet(enableUnsafeBurner);
|
|
761
761
|
useAutoConnectWallet();
|
|
762
762
|
return children;
|