@iota/dapp-kit 0.5.3 → 0.8.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/cjs/components/AccountDropdownMenu.d.ts +4 -2
  3. package/dist/cjs/components/AccountDropdownMenu.js +81 -15
  4. package/dist/cjs/components/AccountDropdownMenu.js.map +4 -4
  5. package/dist/cjs/components/ConnectButton.d.ts +6 -1
  6. package/dist/cjs/components/ConnectButton.js +177 -91
  7. package/dist/cjs/components/ConnectButton.js.map +4 -4
  8. package/dist/cjs/components/WalletProvider.d.ts +3 -1
  9. package/dist/cjs/components/WalletProvider.js +9 -3
  10. package/dist/cjs/components/WalletProvider.js.map +2 -2
  11. package/dist/cjs/components/connect-modal/ConnectModal.d.ts +5 -1
  12. package/dist/cjs/components/connect-modal/ConnectModal.js +12 -2
  13. package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
  14. package/dist/cjs/hooks/useGetDefaultIotaName.d.ts +1 -0
  15. package/dist/cjs/hooks/useGetDefaultIotaName.js +80 -0
  16. package/dist/cjs/hooks/useGetDefaultIotaName.js.map +7 -0
  17. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +2 -0
  18. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  19. package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +6 -2
  20. package/dist/cjs/hooks/wallet/useConnectWallet.js +2 -0
  21. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
  22. package/dist/cjs/hooks/wallet/useCurrentChain.d.ts +5 -0
  23. package/dist/cjs/hooks/wallet/useCurrentChain.js +50 -0
  24. package/dist/cjs/hooks/wallet/useCurrentChain.js.map +7 -0
  25. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js +8 -2
  26. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js.map +3 -3
  27. package/dist/cjs/index.js +193 -120
  28. package/dist/cjs/index.js.map +4 -4
  29. package/dist/cjs/walletStore.d.ts +4 -1
  30. package/dist/cjs/walletStore.js +3 -1
  31. package/dist/cjs/walletStore.js.map +2 -2
  32. package/dist/esm/components/AccountDropdownMenu.d.ts +4 -2
  33. package/dist/esm/components/AccountDropdownMenu.js +79 -13
  34. package/dist/esm/components/AccountDropdownMenu.js.map +4 -4
  35. package/dist/esm/components/ConnectButton.d.ts +6 -1
  36. package/dist/esm/components/ConnectButton.js +159 -73
  37. package/dist/esm/components/ConnectButton.js.map +4 -4
  38. package/dist/esm/components/WalletProvider.d.ts +3 -1
  39. package/dist/esm/components/WalletProvider.js +9 -3
  40. package/dist/esm/components/WalletProvider.js.map +2 -2
  41. package/dist/esm/components/connect-modal/ConnectModal.d.ts +5 -1
  42. package/dist/esm/components/connect-modal/ConnectModal.js +12 -2
  43. package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
  44. package/dist/esm/hooks/useGetDefaultIotaName.d.ts +1 -0
  45. package/dist/esm/hooks/useGetDefaultIotaName.js +59 -0
  46. package/dist/esm/hooks/useGetDefaultIotaName.js.map +7 -0
  47. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +2 -0
  48. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  49. package/dist/esm/hooks/wallet/useConnectWallet.d.ts +6 -2
  50. package/dist/esm/hooks/wallet/useConnectWallet.js +2 -0
  51. package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
  52. package/dist/esm/hooks/wallet/useCurrentChain.d.ts +5 -0
  53. package/dist/esm/hooks/wallet/useCurrentChain.js +27 -0
  54. package/dist/esm/hooks/wallet/useCurrentChain.js.map +7 -0
  55. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js +8 -2
  56. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js.map +3 -3
  57. package/dist/esm/index.js +164 -91
  58. package/dist/esm/index.js.map +4 -4
  59. package/dist/esm/walletStore.d.ts +4 -1
  60. package/dist/esm/walletStore.js +3 -1
  61. package/dist/esm/walletStore.js.map +2 -2
  62. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +5 -3
  65. package/src/components/AccountDropdownMenu.tsx +17 -3
  66. package/src/components/ConnectButton.tsx +11 -1
  67. package/src/components/WalletProvider.tsx +5 -0
  68. package/src/components/connect-modal/ConnectModal.tsx +12 -2
  69. package/src/hooks/useGetDefaultIotaName.ts +43 -0
  70. package/src/hooks/wallet/useConnectWallet.ts +6 -1
  71. package/src/hooks/wallet/useCurrentChain.ts +12 -0
  72. package/src/hooks/wallet/useSignAndExecuteTransaction.ts +5 -2
  73. package/src/walletStore.ts +5 -0
@@ -1,5 +1,6 @@
1
1
  import type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@iota/wallet-standard';
2
2
  import type { StateStorage } from 'zustand/middleware';
3
+ import type { ChainType } from '@iota/iota-sdk/client';
3
4
  type WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';
4
5
  export type WalletActions = {
5
6
  setAccountSwitched: (selectedAccount: WalletAccount) => void;
@@ -21,14 +22,16 @@ export type StoreState = {
21
22
  lastConnectedWalletName: string | null;
22
23
  connectionStatus: WalletConnectionStatus;
23
24
  supportedIntents: string[];
25
+ chain: ChainType | undefined;
24
26
  } & WalletActions;
25
27
  type WalletConfiguration = {
26
28
  autoConnectEnabled: boolean;
27
29
  wallets: WalletWithRequiredFeatures[];
28
30
  storage: StateStorage;
29
31
  storageKey: string;
32
+ chain?: ChainType;
30
33
  };
31
- export declare function createWalletStore({ wallets, storage, storageKey, autoConnectEnabled, }: WalletConfiguration): Omit<import("zustand").StoreApi<StoreState>, "persist"> & {
34
+ export declare function createWalletStore({ wallets, storage, storageKey, autoConnectEnabled, chain, }: WalletConfiguration): Omit<import("zustand").StoreApi<StoreState>, "persist"> & {
32
35
  persist: {
33
36
  setOptions: (options: Partial<import("zustand/middleware.js").PersistOptions<StoreState, unknown>>) => void;
34
37
  clearStorage: () => void;
@@ -37,7 +37,8 @@ function createWalletStore({
37
37
  wallets,
38
38
  storage,
39
39
  storageKey,
40
- autoConnectEnabled
40
+ autoConnectEnabled,
41
+ chain
41
42
  }) {
42
43
  return (0, import_zustand.createStore)()(
43
44
  (0, import_middleware.persist)(
@@ -51,6 +52,7 @@ function createWalletStore({
51
52
  lastConnectedWalletName: null,
52
53
  connectionStatus: "disconnected",
53
54
  supportedIntents: [],
55
+ chain,
54
56
  setConnectionStatus(connectionStatus) {
55
57
  set(() => ({
56
58
  connectionStatus
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/walletStore.ts", "../../src/utils/walletUtils.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { createStore } from 'zustand';\nimport type { StateStorage } from 'zustand/middleware';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { getWalletUniqueIdentifier } from './utils/walletUtils.js';\n\ntype WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';\n\nexport type WalletActions = {\n setAccountSwitched: (selectedAccount: WalletAccount) => void;\n setConnectionStatus: (connectionStatus: WalletConnectionStatus) => void;\n setWalletConnected: (\n wallet: WalletWithRequiredFeatures,\n connectedAccounts: readonly WalletAccount[],\n selectedAccount: WalletAccount | null,\n supportedIntents?: string[],\n ) => void;\n updateWalletAccounts: (accounts: readonly WalletAccount[]) => void;\n setWalletDisconnected: () => void;\n setWalletRegistered: (updatedWallets: WalletWithRequiredFeatures[]) => void;\n setWalletUnregistered: (\n updatedWallets: WalletWithRequiredFeatures[],\n unregisteredWallet: Wallet,\n ) => void;\n};\n\nexport type WalletStore = ReturnType<typeof createWalletStore>;\n\nexport type StoreState = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n accounts: readonly WalletAccount[];\n currentWallet: WalletWithRequiredFeatures | null;\n currentAccount: WalletAccount | null;\n lastConnectedAccountAddress: string | null;\n lastConnectedWalletName: string | null;\n connectionStatus: WalletConnectionStatus;\n supportedIntents: string[];\n} & WalletActions;\n\ntype WalletConfiguration = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n storage: StateStorage;\n storageKey: string;\n};\n\nexport function createWalletStore({\n wallets,\n storage,\n storageKey,\n autoConnectEnabled,\n}: WalletConfiguration) {\n return createStore<StoreState>()(\n persist(\n (set, get) => ({\n autoConnectEnabled,\n wallets,\n accounts: [] as WalletAccount[],\n currentWallet: null,\n currentAccount: null,\n lastConnectedAccountAddress: null,\n lastConnectedWalletName: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n setConnectionStatus(connectionStatus) {\n set(() => ({\n connectionStatus,\n }));\n },\n setWalletConnected(\n wallet,\n connectedAccounts,\n selectedAccount,\n supportedIntents = [],\n ) {\n set(() => ({\n accounts: connectedAccounts,\n currentWallet: wallet,\n currentAccount: selectedAccount,\n lastConnectedWalletName: getWalletUniqueIdentifier(wallet),\n lastConnectedAccountAddress: selectedAccount?.address,\n connectionStatus: 'connected',\n supportedIntents,\n }));\n },\n setWalletDisconnected() {\n set(() => ({\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n }));\n },\n setAccountSwitched(selectedAccount) {\n set(() => ({\n currentAccount: selectedAccount,\n lastConnectedAccountAddress: selectedAccount.address,\n }));\n },\n setWalletRegistered(updatedWallets) {\n set(() => ({ wallets: updatedWallets }));\n },\n setWalletUnregistered(updatedWallets, unregisteredWallet) {\n if (unregisteredWallet === get().currentWallet) {\n set(() => ({\n wallets: updatedWallets,\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n }));\n } else {\n set(() => ({ wallets: updatedWallets }));\n }\n },\n updateWalletAccounts(accounts) {\n const currentAccount = get().currentAccount;\n\n set(() => ({\n accounts,\n currentAccount:\n (currentAccount &&\n accounts.find(\n ({ address }) => address === currentAccount.address,\n )) ||\n accounts[0],\n }));\n },\n }),\n {\n name: storageKey,\n storage: createJSONStorage(() => storage),\n partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n }),\n },\n ),\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n MinimallyRequiredFeatures,\n Wallet,\n WalletWithFeatures,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet)),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAA4B;AAE5B,wBAA2C;;;ACG3C,6BAA2D;AA2BpD,SAAS,0BAA0B,QAAiB;AACvD,SAAO,QAAQ,MAAM,QAAQ;AACjC;;;ADaO,SAAS,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAAwB;AACpB,aAAO,4BAAwB;AAAA,QAC3B;AAAA,MACI,CAAC,KAAK,SAAS;AAAA,QACX;AAAA,QACA;AAAA,QACA,UAAU,CAAC;AAAA,QACX,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,6BAA6B;AAAA,QAC7B,yBAAyB;AAAA,QACzB,kBAAkB;AAAA,QAClB,kBAAkB,CAAC;AAAA,QACnB,oBAAoB,kBAAkB;AAClC,cAAI,OAAO;AAAA,YACP;AAAA,UACJ,EAAE;AAAA,QACN;AAAA,QACA,mBACI,QACA,mBACA,iBACA,mBAAmB,CAAC,GACtB;AACE,cAAI,OAAO;AAAA,YACP,UAAU;AAAA,YACV,eAAe;AAAA,YACf,gBAAgB;AAAA,YAChB,yBAAyB,0BAA0B,MAAM;AAAA,YACzD,6BAA6B,iBAAiB;AAAA,YAC9C,kBAAkB;AAAA,YAClB;AAAA,UACJ,EAAE;AAAA,QACN;AAAA,QACA,wBAAwB;AACpB,cAAI,OAAO;AAAA,YACP,UAAU,CAAC;AAAA,YACX,eAAe;AAAA,YACf,gBAAgB;AAAA,YAChB,yBAAyB;AAAA,YACzB,6BAA6B;AAAA,YAC7B,kBAAkB;AAAA,YAClB,kBAAkB,CAAC;AAAA,UACvB,EAAE;AAAA,QACN;AAAA,QACA,mBAAmB,iBAAiB;AAChC,cAAI,OAAO;AAAA,YACP,gBAAgB;AAAA,YAChB,6BAA6B,gBAAgB;AAAA,UACjD,EAAE;AAAA,QACN;AAAA,QACA,oBAAoB,gBAAgB;AAChC,cAAI,OAAO,EAAE,SAAS,eAAe,EAAE;AAAA,QAC3C;AAAA,QACA,sBAAsB,gBAAgB,oBAAoB;AACtD,cAAI,uBAAuB,IAAI,EAAE,eAAe;AAC5C,gBAAI,OAAO;AAAA,cACP,SAAS;AAAA,cACT,UAAU,CAAC;AAAA,cACX,eAAe;AAAA,cACf,gBAAgB;AAAA,cAChB,yBAAyB;AAAA,cACzB,6BAA6B;AAAA,cAC7B,kBAAkB;AAAA,cAClB,kBAAkB,CAAC;AAAA,YACvB,EAAE;AAAA,UACN,OAAO;AACH,gBAAI,OAAO,EAAE,SAAS,eAAe,EAAE;AAAA,UAC3C;AAAA,QACJ;AAAA,QACA,qBAAqB,UAAU;AAC3B,gBAAM,iBAAiB,IAAI,EAAE;AAE7B,cAAI,OAAO;AAAA,YACP;AAAA,YACA,gBACK,kBACG,SAAS;AAAA,cACL,CAAC,EAAE,QAAQ,MAAM,YAAY,eAAe;AAAA,YAChD,KACJ,SAAS,CAAC;AAAA,UAClB,EAAE;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAS,qCAAkB,MAAM,OAAO;AAAA,QACxC,YAAY,CAAC,EAAE,yBAAyB,4BAA4B,OAAO;AAAA,UACvE;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@iota/wallet-standard';\nimport { createStore } from 'zustand';\nimport type { StateStorage } from 'zustand/middleware';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { getWalletUniqueIdentifier } from './utils/walletUtils.js';\nimport type { ChainType } from '@iota/iota-sdk/client';\n\ntype WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';\n\nexport type WalletActions = {\n setAccountSwitched: (selectedAccount: WalletAccount) => void;\n setConnectionStatus: (connectionStatus: WalletConnectionStatus) => void;\n setWalletConnected: (\n wallet: WalletWithRequiredFeatures,\n connectedAccounts: readonly WalletAccount[],\n selectedAccount: WalletAccount | null,\n supportedIntents?: string[],\n ) => void;\n updateWalletAccounts: (accounts: readonly WalletAccount[]) => void;\n setWalletDisconnected: () => void;\n setWalletRegistered: (updatedWallets: WalletWithRequiredFeatures[]) => void;\n setWalletUnregistered: (\n updatedWallets: WalletWithRequiredFeatures[],\n unregisteredWallet: Wallet,\n ) => void;\n};\n\nexport type WalletStore = ReturnType<typeof createWalletStore>;\n\nexport type StoreState = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n accounts: readonly WalletAccount[];\n currentWallet: WalletWithRequiredFeatures | null;\n currentAccount: WalletAccount | null;\n lastConnectedAccountAddress: string | null;\n lastConnectedWalletName: string | null;\n connectionStatus: WalletConnectionStatus;\n supportedIntents: string[];\n chain: ChainType | undefined;\n} & WalletActions;\n\ntype WalletConfiguration = {\n autoConnectEnabled: boolean;\n wallets: WalletWithRequiredFeatures[];\n storage: StateStorage;\n storageKey: string;\n chain?: ChainType;\n};\n\nexport function createWalletStore({\n wallets,\n storage,\n storageKey,\n autoConnectEnabled,\n chain,\n}: WalletConfiguration) {\n return createStore<StoreState>()(\n persist(\n (set, get) => ({\n autoConnectEnabled,\n wallets,\n accounts: [] as WalletAccount[],\n currentWallet: null,\n currentAccount: null,\n lastConnectedAccountAddress: null,\n lastConnectedWalletName: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n chain,\n setConnectionStatus(connectionStatus) {\n set(() => ({\n connectionStatus,\n }));\n },\n setWalletConnected(\n wallet,\n connectedAccounts,\n selectedAccount,\n supportedIntents = [],\n ) {\n set(() => ({\n accounts: connectedAccounts,\n currentWallet: wallet,\n currentAccount: selectedAccount,\n lastConnectedWalletName: getWalletUniqueIdentifier(wallet),\n lastConnectedAccountAddress: selectedAccount?.address,\n connectionStatus: 'connected',\n supportedIntents,\n }));\n },\n setWalletDisconnected() {\n set(() => ({\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n }));\n },\n setAccountSwitched(selectedAccount) {\n set(() => ({\n currentAccount: selectedAccount,\n lastConnectedAccountAddress: selectedAccount.address,\n }));\n },\n setWalletRegistered(updatedWallets) {\n set(() => ({ wallets: updatedWallets }));\n },\n setWalletUnregistered(updatedWallets, unregisteredWallet) {\n if (unregisteredWallet === get().currentWallet) {\n set(() => ({\n wallets: updatedWallets,\n accounts: [],\n currentWallet: null,\n currentAccount: null,\n lastConnectedWalletName: null,\n lastConnectedAccountAddress: null,\n connectionStatus: 'disconnected',\n supportedIntents: [],\n }));\n } else {\n set(() => ({ wallets: updatedWallets }));\n }\n },\n updateWalletAccounts(accounts) {\n const currentAccount = get().currentAccount;\n\n set(() => ({\n accounts,\n currentAccount:\n (currentAccount &&\n accounts.find(\n ({ address }) => address === currentAccount.address,\n )) ||\n accounts[0],\n }));\n },\n }),\n {\n name: storageKey,\n storage: createJSONStorage(() => storage),\n partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n }),\n },\n ),\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n MinimallyRequiredFeatures,\n Wallet,\n WalletWithFeatures,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet)),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAA4B;AAE5B,wBAA2C;;;ACG3C,6BAA2D;AA2BpD,SAAS,0BAA0B,QAAiB;AACvD,SAAO,QAAQ,MAAM,QAAQ;AACjC;;;ADgBO,SAAS,kBAAkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAAwB;AACpB,aAAO,4BAAwB;AAAA,QAC3B;AAAA,MACI,CAAC,KAAK,SAAS;AAAA,QACX;AAAA,QACA;AAAA,QACA,UAAU,CAAC;AAAA,QACX,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,6BAA6B;AAAA,QAC7B,yBAAyB;AAAA,QACzB,kBAAkB;AAAA,QAClB,kBAAkB,CAAC;AAAA,QACnB;AAAA,QACA,oBAAoB,kBAAkB;AAClC,cAAI,OAAO;AAAA,YACP;AAAA,UACJ,EAAE;AAAA,QACN;AAAA,QACA,mBACI,QACA,mBACA,iBACA,mBAAmB,CAAC,GACtB;AACE,cAAI,OAAO;AAAA,YACP,UAAU;AAAA,YACV,eAAe;AAAA,YACf,gBAAgB;AAAA,YAChB,yBAAyB,0BAA0B,MAAM;AAAA,YACzD,6BAA6B,iBAAiB;AAAA,YAC9C,kBAAkB;AAAA,YAClB;AAAA,UACJ,EAAE;AAAA,QACN;AAAA,QACA,wBAAwB;AACpB,cAAI,OAAO;AAAA,YACP,UAAU,CAAC;AAAA,YACX,eAAe;AAAA,YACf,gBAAgB;AAAA,YAChB,yBAAyB;AAAA,YACzB,6BAA6B;AAAA,YAC7B,kBAAkB;AAAA,YAClB,kBAAkB,CAAC;AAAA,UACvB,EAAE;AAAA,QACN;AAAA,QACA,mBAAmB,iBAAiB;AAChC,cAAI,OAAO;AAAA,YACP,gBAAgB;AAAA,YAChB,6BAA6B,gBAAgB;AAAA,UACjD,EAAE;AAAA,QACN;AAAA,QACA,oBAAoB,gBAAgB;AAChC,cAAI,OAAO,EAAE,SAAS,eAAe,EAAE;AAAA,QAC3C;AAAA,QACA,sBAAsB,gBAAgB,oBAAoB;AACtD,cAAI,uBAAuB,IAAI,EAAE,eAAe;AAC5C,gBAAI,OAAO;AAAA,cACP,SAAS;AAAA,cACT,UAAU,CAAC;AAAA,cACX,eAAe;AAAA,cACf,gBAAgB;AAAA,cAChB,yBAAyB;AAAA,cACzB,6BAA6B;AAAA,cAC7B,kBAAkB;AAAA,cAClB,kBAAkB,CAAC;AAAA,YACvB,EAAE;AAAA,UACN,OAAO;AACH,gBAAI,OAAO,EAAE,SAAS,eAAe,EAAE;AAAA,UAC3C;AAAA,QACJ;AAAA,QACA,qBAAqB,UAAU;AAC3B,gBAAM,iBAAiB,IAAI,EAAE;AAE7B,cAAI,OAAO;AAAA,YACP;AAAA,YACA,gBACK,kBACG,SAAS;AAAA,cACL,CAAC,EAAE,QAAQ,MAAM,YAAY,eAAe;AAAA,YAChD,KACJ,SAAS,CAAC;AAAA,UAClB,EAAE;AAAA,QACN;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,aAAS,qCAAkB,MAAM,OAAO;AAAA,QACxC,YAAY,CAAC,EAAE,yBAAyB,4BAA4B,OAAO;AAAA,UACvE;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -3,10 +3,12 @@ import { Button } from './ui/Button.js';
3
3
  type AccountDropdownMenuProps = {
4
4
  currentAccount: WalletAccount;
5
5
  size?: React.ComponentProps<typeof Button>['size'];
6
+ iotaNamesEnabled: boolean;
6
7
  };
7
- export declare function AccountDropdownMenu({ currentAccount, size }: AccountDropdownMenuProps): import("react/jsx-runtime").JSX.Element;
8
- export declare function AccountDropdownMenuItem({ account, active, }: {
8
+ export declare function AccountDropdownMenu({ currentAccount, size, iotaNamesEnabled, }: AccountDropdownMenuProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function AccountDropdownMenuItem({ account, active, iotaNamesEnabled, }: {
9
10
  account: WalletAccount;
10
11
  active?: boolean;
12
+ iotaNamesEnabled: boolean;
11
13
  }): import("react/jsx-runtime").JSX.Element;
12
14
  export {};
@@ -302,27 +302,90 @@ var Text = forwardRef3(
302
302
  );
303
303
  Text.displayName = "Text";
304
304
 
305
+ // src/hooks/useGetDefaultIotaName.ts
306
+ import { getNetwork as getNetwork2 } from "@iota/iota-sdk/client";
307
+ import { useQuery } from "@tanstack/react-query";
308
+ import { IotaNamesClient, normalizeIotaName } from "@iota/iota-names-sdk";
309
+
310
+ // src/hooks/useIotaClient.ts
311
+ import { useContext as useContext2 } from "react";
312
+
313
+ // src/components/IotaClientProvider.tsx
314
+ import { getNetwork, isIotaClient, Network, IotaClient } from "@iota/iota-sdk/client";
315
+ import { createContext as createContext2, useMemo, useState } from "react";
316
+ import { jsx as jsx6 } from "react/jsx-runtime";
317
+ var IotaClientContext = createContext2(null);
318
+ var DEFAULT_NETWORKS = {
319
+ localnet: { url: getNetwork(Network.Localnet)?.url }
320
+ };
321
+
322
+ // src/hooks/useIotaClient.ts
323
+ function useIotaClientContext() {
324
+ const iotaClient = useContext2(IotaClientContext);
325
+ if (!iotaClient) {
326
+ throw new Error(
327
+ "Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider"
328
+ );
329
+ }
330
+ return iotaClient;
331
+ }
332
+
333
+ // src/hooks/useGetDefaultIotaName.ts
334
+ import { useMemo as useMemo2 } from "react";
335
+ import { IotaGraphQLClient } from "@iota/iota-sdk/graphql";
336
+ function useGetDefaultIotaName(address, iotaNamesEnabled) {
337
+ const iotaContext = useIotaClientContext();
338
+ const network = getNetwork2(iotaContext.network);
339
+ const iotaNamesClient = useMemo2(() => {
340
+ const iotaGraphQLClient = new IotaGraphQLClient({
341
+ url: network.graphql
342
+ });
343
+ return new IotaNamesClient({
344
+ graphQlClient: iotaGraphQLClient,
345
+ network: network.id
346
+ });
347
+ }, [network.id]);
348
+ const iotaNamesSupported = !!iotaNamesClient.config;
349
+ return useQuery({
350
+ queryKey: ["iota-name", "default-name", address],
351
+ queryFn: async () => {
352
+ if (!address) return null;
353
+ const name = await iotaNamesClient?.getDefaultName(address);
354
+ return name ? normalizeIotaName(name) : name;
355
+ },
356
+ enabled: !!iotaNamesClient && !!address && iotaNamesEnabled && iotaNamesSupported,
357
+ staleTime: 1e3 * 60 * 10
358
+ });
359
+ }
360
+
305
361
  // src/components/AccountDropdownMenu.tsx
306
- import { jsx as jsx6, jsxs } from "react/jsx-runtime";
307
- function AccountDropdownMenu({ currentAccount, size = "lg" }) {
362
+ import { jsx as jsx7, jsxs } from "react/jsx-runtime";
363
+ function AccountDropdownMenu({
364
+ currentAccount,
365
+ size = "lg",
366
+ iotaNamesEnabled
367
+ }) {
308
368
  const { mutate: disconnectWallet } = useDisconnectWallet();
309
369
  const accounts = useAccounts();
370
+ const { data: iotaName } = useGetDefaultIotaName(currentAccount.address, iotaNamesEnabled);
371
+ const displayAccount = iotaName ?? currentAccount.label ?? formatAddress(currentAccount.address);
310
372
  return /* @__PURE__ */ jsxs(DropdownMenu.Root, { modal: false, children: [
311
- /* @__PURE__ */ jsx6(StyleMarker, { children: /* @__PURE__ */ jsx6(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { size, className: connectedAccount, children: [
312
- /* @__PURE__ */ jsx6(Text, { mono: true, weight: "bold", children: currentAccount.label ?? formatAddress(currentAccount.address) }),
313
- /* @__PURE__ */ jsx6(ChevronIcon, {})
373
+ /* @__PURE__ */ jsx7(StyleMarker, { children: /* @__PURE__ */ jsx7(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { size, className: connectedAccount, children: [
374
+ /* @__PURE__ */ jsx7(Text, { mono: true, weight: "bold", children: displayAccount }),
375
+ /* @__PURE__ */ jsx7(ChevronIcon, {})
314
376
  ] }) }) }),
315
- /* @__PURE__ */ jsx6(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx6(StyleMarker, { className: menuContainer, children: /* @__PURE__ */ jsxs(DropdownMenu.Content, { className: menuContent, children: [
316
- /* @__PURE__ */ jsx6("div", { className: scrollableContent, children: accounts.map((account) => /* @__PURE__ */ jsx6(
377
+ /* @__PURE__ */ jsx7(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx7(StyleMarker, { className: menuContainer, children: /* @__PURE__ */ jsxs(DropdownMenu.Content, { className: menuContent, children: [
378
+ /* @__PURE__ */ jsx7("div", { className: scrollableContent, children: accounts.map((account) => /* @__PURE__ */ jsx7(
317
379
  AccountDropdownMenuItem,
318
380
  {
319
381
  account,
320
- active: currentAccount.address === account.address
382
+ active: currentAccount.address === account.address,
383
+ iotaNamesEnabled
321
384
  },
322
385
  account.address
323
386
  )) }),
324
- /* @__PURE__ */ jsx6(DropdownMenu.Separator, { className: separator }),
325
- /* @__PURE__ */ jsx6(
387
+ /* @__PURE__ */ jsx7(DropdownMenu.Separator, { className: separator }),
388
+ /* @__PURE__ */ jsx7(
326
389
  DropdownMenu.Item,
327
390
  {
328
391
  className: clsx3(menuItem),
@@ -335,17 +398,20 @@ function AccountDropdownMenu({ currentAccount, size = "lg" }) {
335
398
  }
336
399
  function AccountDropdownMenuItem({
337
400
  account,
338
- active
401
+ active,
402
+ iotaNamesEnabled
339
403
  }) {
340
404
  const { mutate: switchAccount } = useSwitchAccount();
405
+ const { data: iotaName } = useGetDefaultIotaName(account.address, iotaNamesEnabled);
406
+ const displayAccount = iotaName ?? account.label ?? formatAddress(account.address);
341
407
  return /* @__PURE__ */ jsxs(
342
408
  DropdownMenu.Item,
343
409
  {
344
410
  className: clsx3(menuItem, switchAccountMenuItem),
345
411
  onSelect: () => switchAccount({ account }),
346
412
  children: [
347
- /* @__PURE__ */ jsx6(Text, { mono: true, children: account.label ?? formatAddress(account.address) }),
348
- active ? /* @__PURE__ */ jsx6(CheckIcon, {}) : null
413
+ /* @__PURE__ */ jsx7(Text, { mono: true, children: displayAccount }),
414
+ active ? /* @__PURE__ */ jsx7(CheckIcon, {}) : null
349
415
  ]
350
416
  }
351
417
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["vanilla-extract-css-ns:src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9", "../../../src/components/styling/StyleMarker.css.ts", "../../../src/components/AccountDropdownMenu.tsx", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.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"],
4
- "sourcesContent": ["[data-dapp-kit]:where(*), [data-dapp-kit] :where(*) {\n box-sizing: border-box;\n color: var(--dapp-kit-colors-body);\n font-family: var(--dapp-kit-typography-fontFamily);\n font-size: var(--dapp-kit-fontWeights-normal);\n font-style: var(--dapp-kit-typography-fontStyle);\n font-weight: var(--dapp-kit-fontWeights-normal);\n line-height: var(--dapp-kit-typography-lineHeight);\n letter-spacing: var(--dapp-kit-typography-letterSpacing);\n}\n[data-dapp-kit]:where(button), [data-dapp-kit] :where(button) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n border: 0;\n padding: 0;\n margin: 0;\n}\n[data-dapp-kit]:where(a), [data-dapp-kit] :where(a) {\n text-decoration: none;\n color: inherit;\n outline: none;\n}\n[data-dapp-kit]:where(ol, ul), [data-dapp-kit] :where(ol, ul) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n[data-dapp-kit]:where(h1, h2, h3, h4, h5, h6), [data-dapp-kit] :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n}", "import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@iota/iota-sdk/utils';\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\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 currentAccount: WalletAccount;\n size?: React.ComponentProps<typeof Button>['size'];\n};\n\nexport function AccountDropdownMenu({ currentAccount, size = 'lg' }: AccountDropdownMenuProps) {\n const { mutate: disconnectWallet } = useDisconnectWallet();\n const accounts = useAccounts();\n\n return (\n <DropdownMenu.Root modal={false}>\n <StyleMarker>\n <DropdownMenu.Trigger asChild>\n <Button size={size} className={styles.connectedAccount}>\n <Text mono weight=\"bold\">\n {currentAccount.label ?? formatAddress(currentAccount.address)}\n </Text>\n <ChevronIcon />\n </Button>\n </DropdownMenu.Trigger>\n </StyleMarker>\n <DropdownMenu.Portal>\n <StyleMarker className={styles.menuContainer}>\n <DropdownMenu.Content className={styles.menuContent}>\n <div className={styles.scrollableContent}>\n {accounts.map((account) => (\n <AccountDropdownMenuItem\n key={account.address}\n account={account}\n active={currentAccount.address === account.address}\n />\n ))}\n </div>\n <DropdownMenu.Separator className={styles.separator} />\n <DropdownMenu.Item\n className={clsx(styles.menuItem)}\n onSelect={() => disconnectWallet()}\n >\n Disconnect\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </StyleMarker>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nexport function AccountDropdownMenuItem({\n account,\n active,\n}: {\n account: WalletAccount;\n active?: boolean;\n}) {\n const { mutate: switchAccount } = useSwitchAccount();\n\n return (\n <DropdownMenu.Item\n className={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n onSelect={() => switchAccount({ account })}\n >\n <Text mono>{account.label ?? formatAddress(account.address)}</Text>\n {active ? <CheckIcon /> : null}\n </DropdownMenu.Item>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/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 return useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\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 const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/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 account: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n UseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n mutationKey,\n ...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n SwitchAccountResult,\n UseSwitchAccountError,\n SwitchAccountArgs\n> {\n const { currentWallet } = useCurrentWallet();\n const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n return useMutation({\n mutationKey: walletMutationKeys.switchAccount(mutationKey),\n mutationFn: async ({ account }) => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n const accountToSelect = currentWallet.accounts.find(\n (walletAccount) => walletAccount.address === account.address,\n );\n if (!accountToSelect) {\n throw new WalletAccountNotFoundError(\n `No account with address ${account.address} is connected to ${currentWallet.name}.`,\n );\n }\n\n setAccountSwitched(accountToSelect);\n },\n ...mutationOptions,\n });\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VTPW/bMBDd/Ss4NgMDqXGLlJmSdOmQqWNRGDR5plhTdwR5jOQW/e+FGH/BidMG1ULg3ed773R5awwV5M+JoqUBHwDLwhAiGAa7DS4W7di4Pq4a8WsmhNNRies43sx+zy5fqu8Byz0ha4+Q9sVtLf4pPVoYlfi0+/7aBo42eF+bWJ9j0BslVgHGm5mor7Q+gWFPqIShUHqcIoO33CnRXjexZvZ6lB1417ESV80eTM6jZIpKzJ+gqK316LZEj0kLsaRkIcmkrS9ZiUed3klpdYxy7bnCXgadHFzUbG3WLlFBKw0FSs8KDgn3UzxLe6TCxVl5skkUgl4GOBXpqopEj5BWgQa5UUIXprPsq3gu0aBE+6oZXxj6/ZB5HXIq0675fNu7ZEgyQwDDSiAhTCAVDh7hADzzUwfvUHqGPithABnSW4X/Zx7frGYtO++6MO0O9ntl9nbbYvK9Tpu7wkz4im+DZ9NtIw+n63x4+cB/lMx+tZHmyWolctQG5BJ4AMCzkp1bAaJOmunwc36sY3futUeHkbvkca1E8/+3/HU3dhLnD4QDgFt6BAAA';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__1x0gmpf0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__1x0gmpf1';\nexport var menuContent = 'AccountDropdownMenu_menuContent__1x0gmpf2';\nexport var menuItem = 'AccountDropdownMenu_menuItem__1x0gmpf4';\nexport var scrollableContent = 'AccountDropdownMenu_scrollableContent__1x0gmpf3';\nexport var separator = 'AccountDropdownMenu_separator__1x0gmpf6';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__1x0gmpf5';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"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 />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function ChevronIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n stroke=\"#A0B6C3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"m4 6 4 4 4-4\"\n />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 children: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n ElementRef<typeof Slot>,\n ComponentPropsWithoutRef<typeof Slot>\n>(({ children, ...props }, forwardedRef) => (\n <Slot ref={forwardedRef} {...props} {...styleDataAttribute}>\n {children}\n </Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\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 asChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n {...props}\n className={clsx(buttonVariants({ variant, size }), className)}\n ref={forwardedRef}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WSwVLCMBCG732KPcohDCA6TrjpxSfQYydt0rKQJplkC60O7+6ktCMKog56Smb/ZP9v/2R8XxNZk2bd8iQ8CkMhTXPKmpmZwGsCIDE4LVoOaDQaxQqtmkUCIDSWhiGpKnDIlSHlY3lVB8KiZbk1pAwdSoU1xLYKyyVx2Ah/xZgUzrE1EovacycFVimJdTVaJLtkfB6QSwwi00p2pNaJHKnlMBnfnLm82W9S57ESvh2aTbsemcjXpbe1kSy32voj0PcDD1EPrG+z9xrFOU9fzE8f/zUmX9qN8n8B+xgb/QTB1hSffkCY7c2tl8qzLUpacpi67lP0xUCtVhyC1SgPyl9AdmIP2Fv9W5qfR7kozQ+w36YZ8EWllRysrw9T9EJiHY4cYxlZUWvdReGElGhKDneugeltjPy8my4Ht/kFbtEJZnPXwCLZvQFzXfF3MwQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__ctbx2n0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__ctbx2n1',outline:'Button_buttonVariants_variant_outline__ctbx2n2'},size:{md:'Button_buttonVariants_size_md__ctbx2n3',lg:'Button_buttonVariants_size_lg__ctbx2n4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 asChild?: boolean;\n as?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n React.HTMLAttributes<HTMLDivElement> &\n TextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n (\n {\n children,\n className,\n asChild = false,\n as: Tag = 'div',\n size,\n weight,\n color,\n mono,\n ...textProps\n },\n forwardedRef,\n ) => {\n return (\n <Slot\n {...textProps}\n ref={forwardedRef}\n className={clsx(textVariants({ size, weight, color, mono }), className)}\n >\n {asChild ? children : <Tag>{children}</Tag>}\n </Slot>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fX2FwcmhiZDEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fYXByaGJkMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fX2FwcmhiZDMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fYXByaGJkNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fYXByaGJkNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfX2FwcmhiZDYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fYXByaGJkNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__aprhbd0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__aprhbd1'},weight:{normal:'Text_textVariants_weight_normal__aprhbd2',medium:'Text_textVariants_weight_medium__aprhbd3',bold:'Text_textVariants_weight_bold__aprhbd4'},color:{muted:'Text_textVariants_color_muted__aprhbd5',danger:'Text_textVariants_color_danger__aprhbd6'},mono:{true:'Text_textVariants_mono_true__aprhbd7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});"],
5
- "mappings": "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",
6
- "names": ["clsx", "useMutation", "useMutation", "jsx", "jsx", "Slot", "forwardRef", "jsx", "forwardRef", "Slot", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "jsx", "clsx"]
3
+ "sources": ["vanilla-extract-css-ns:src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9", "../../../src/components/styling/StyleMarker.css.ts", "../../../src/components/AccountDropdownMenu.tsx", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/contexts/walletContext.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/hooks/useGetDefaultIotaName.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx"],
4
+ "sourcesContent": ["[data-dapp-kit]:where(*), [data-dapp-kit] :where(*) {\n box-sizing: border-box;\n color: var(--dapp-kit-colors-body);\n font-family: var(--dapp-kit-typography-fontFamily);\n font-size: var(--dapp-kit-fontWeights-normal);\n font-style: var(--dapp-kit-typography-fontStyle);\n font-weight: var(--dapp-kit-fontWeights-normal);\n line-height: var(--dapp-kit-typography-lineHeight);\n letter-spacing: var(--dapp-kit-typography-letterSpacing);\n}\n[data-dapp-kit]:where(button), [data-dapp-kit] :where(button) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n border: 0;\n padding: 0;\n margin: 0;\n}\n[data-dapp-kit]:where(a), [data-dapp-kit] :where(a) {\n text-decoration: none;\n color: inherit;\n outline: none;\n}\n[data-dapp-kit]:where(ol, ul), [data-dapp-kit] :where(ol, ul) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n[data-dapp-kit]:where(h1, h2, h3, h4, h5, h6), [data-dapp-kit] :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n}", "import 'src/components/styling/StyleMarker.css.ts.vanilla.css?source=OndoZXJlKCopIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udEZhbWlseSk7CiAgZm9udC1zaXplOiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1ub3JtYWwpOwogIGZvbnQtc3R5bGU6IHZhcigtLWRhcHAta2l0LXR5cG9ncmFwaHktZm9udFN0eWxlKTsKICBmb250LXdlaWdodDogdmFyKC0tZGFwcC1raXQtZm9udFdlaWdodHMtbm9ybWFsKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1saW5lSGVpZ2h0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tZGFwcC1raXQtdHlwb2dyYXBoeS1sZXR0ZXJTcGFjaW5nKTsKfQo6d2hlcmUoYnV0dG9uKSB7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9Cjp3aGVyZShhKSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiBpbmhlcml0OwogIG91dGxpbmU6IG5vbmU7Cn0KOndoZXJlKG9sLCB1bCkgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KOndoZXJlKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgbWFyZ2luOiAwOwp9';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatAddress } from '@iota/iota-sdk/utils';\nimport type { WalletAccount } from '@iota/wallet-standard';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport clsx from 'clsx';\n\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';\nimport { useGetDefaultIotaName } from '../hooks/useGetDefaultIotaName.js';\n\ntype AccountDropdownMenuProps = {\n currentAccount: WalletAccount;\n size?: React.ComponentProps<typeof Button>['size'];\n iotaNamesEnabled: boolean;\n};\n\nexport function AccountDropdownMenu({\n currentAccount,\n size = 'lg',\n iotaNamesEnabled,\n}: AccountDropdownMenuProps) {\n const { mutate: disconnectWallet } = useDisconnectWallet();\n const accounts = useAccounts();\n const { data: iotaName } = useGetDefaultIotaName(currentAccount.address, iotaNamesEnabled);\n const displayAccount =\n iotaName ?? currentAccount.label ?? formatAddress(currentAccount.address);\n\n return (\n <DropdownMenu.Root modal={false}>\n <StyleMarker>\n <DropdownMenu.Trigger asChild>\n <Button size={size} className={styles.connectedAccount}>\n <Text mono weight=\"bold\">\n {displayAccount}\n </Text>\n <ChevronIcon />\n </Button>\n </DropdownMenu.Trigger>\n </StyleMarker>\n <DropdownMenu.Portal>\n <StyleMarker className={styles.menuContainer}>\n <DropdownMenu.Content className={styles.menuContent}>\n <div className={styles.scrollableContent}>\n {accounts.map((account) => (\n <AccountDropdownMenuItem\n key={account.address}\n account={account}\n active={currentAccount.address === account.address}\n iotaNamesEnabled={iotaNamesEnabled}\n />\n ))}\n </div>\n <DropdownMenu.Separator className={styles.separator} />\n <DropdownMenu.Item\n className={clsx(styles.menuItem)}\n onSelect={() => disconnectWallet()}\n >\n Disconnect\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </StyleMarker>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\n\nexport function AccountDropdownMenuItem({\n account,\n active,\n iotaNamesEnabled,\n}: {\n account: WalletAccount;\n active?: boolean;\n iotaNamesEnabled: boolean;\n}) {\n const { mutate: switchAccount } = useSwitchAccount();\n const { data: iotaName } = useGetDefaultIotaName(account.address, iotaNamesEnabled);\n const displayAccount = iotaName ?? account.label ?? formatAddress(account.address);\n\n return (\n <DropdownMenu.Item\n className={clsx(styles.menuItem, styles.switchAccountMenuItem)}\n onSelect={() => switchAccount({ account })}\n >\n <Text mono>{displayAccount}</Text>\n {active ? <CheckIcon /> : null}\n </DropdownMenu.Item>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/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 return useWalletStore((state) => state.accounts);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\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 const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@iota/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 account: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n UseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n mutationKey,\n ...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n SwitchAccountResult,\n UseSwitchAccountError,\n SwitchAccountArgs\n> {\n const { currentWallet } = useCurrentWallet();\n const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n return useMutation({\n mutationKey: walletMutationKeys.switchAccount(mutationKey),\n mutationFn: async ({ account }) => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n const accountToSelect = currentWallet.accounts.find(\n (walletAccount) => walletAccount.address === account.address,\n );\n if (!accountToSelect) {\n throw new WalletAccountNotFoundError(\n `No account with address ${account.address} is connected to ${currentWallet.name}.`,\n );\n }\n\n setAccountSwitched(accountToSelect);\n },\n ...mutationOptions,\n });\n}\n", "import 'src/components/AccountDropdownMenu.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VTPW/bMBDd/Ss4NgMDqXGLlJmSdOmQqWNRGDR5plhTdwR5jOQW/e+FGH/BidMG1ULg3ed773R5awwV5M+JoqUBHwDLwhAiGAa7DS4W7di4Pq4a8WsmhNNRies43sx+zy5fqu8Byz0ha4+Q9sVtLf4pPVoYlfi0+/7aBo42eF+bWJ9j0BslVgHGm5mor7Q+gWFPqIShUHqcIoO33CnRXjexZvZ6lB1417ESV80eTM6jZIpKzJ+gqK316LZEj0kLsaRkIcmkrS9ZiUed3klpdYxy7bnCXgadHFzUbG3WLlFBKw0FSs8KDgn3UzxLe6TCxVl5skkUgl4GOBXpqopEj5BWgQa5UUIXprPsq3gu0aBE+6oZXxj6/ZB5HXIq0675fNu7ZEgyQwDDSiAhTCAVDh7hADzzUwfvUHqGPithABnSW4X/Zx7frGYtO++6MO0O9ntl9nbbYvK9Tpu7wkz4im+DZ9NtIw+n63x4+cB/lMx+tZHmyWolctQG5BJ4AMCzkp1bAaJOmunwc36sY3futUeHkbvkca1E8/+3/HU3dhLnD4QDgFt6BAAA';\nexport var connectedAccount = 'AccountDropdownMenu_connectedAccount__1x0gmpf0';\nexport var menuContainer = 'AccountDropdownMenu_menuContainer__1x0gmpf1';\nexport var menuContent = 'AccountDropdownMenu_menuContent__1x0gmpf2';\nexport var menuItem = 'AccountDropdownMenu_menuItem__1x0gmpf4';\nexport var scrollableContent = 'AccountDropdownMenu_scrollableContent__1x0gmpf3';\nexport var separator = 'AccountDropdownMenu_separator__1x0gmpf6';\nexport var switchAccountMenuItem = 'AccountDropdownMenu_switchAccountMenuItem__1x0gmpf5';", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function CheckIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"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 />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentProps } from 'react';\n\nexport function ChevronIcon(props: ComponentProps<'svg'>) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n stroke=\"#A0B6C3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"m4 6 4 4 4-4\"\n />\n </svg>\n );\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 children: ReactNode;\n};\n\nexport const StyleMarker = forwardRef<\n ElementRef<typeof Slot>,\n ComponentPropsWithoutRef<typeof Slot>\n>(({ children, ...props }, forwardedRef) => (\n <Slot ref={forwardedRef} {...props} {...styleDataAttribute}>\n {children}\n </Slot>\n));\nStyleMarker.displayName = 'StyleMarker';\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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// Modifications Copyright (c) 2024 IOTA Stiftung\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 asChild?: boolean;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants;\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n {...props}\n className={clsx(buttonVariants({ variant, size }), className)}\n ref={forwardedRef}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button };\n", "import 'src/components/ui/Button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7WSwVLCMBCG732KPcohDCA6TrjpxSfQYydt0rKQJplkC60O7+6ktCMKog56Smb/ZP9v/2R8XxNZk2bd8iQ8CkMhTXPKmpmZwGsCIDE4LVoOaDQaxQqtmkUCIDSWhiGpKnDIlSHlY3lVB8KiZbk1pAwdSoU1xLYKyyVx2Ah/xZgUzrE1EovacycFVimJdTVaJLtkfB6QSwwi00p2pNaJHKnlMBnfnLm82W9S57ESvh2aTbsemcjXpbe1kSy32voj0PcDD1EPrG+z9xrFOU9fzE8f/zUmX9qN8n8B+xgb/QTB1hSffkCY7c2tl8qzLUpacpi67lP0xUCtVhyC1SgPyl9AdmIP2Fv9W5qfR7kozQ+w36YZ8EWllRysrw9T9EJiHY4cYxlZUWvdReGElGhKDneugeltjPy8my4Ht/kFbtEJZnPXwCLZvQFzXfF3MwQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var buttonVariants = _7a468({defaultClassName:'Button_buttonVariants__ctbx2n0',variantClassNames:{variant:{primary:'Button_buttonVariants_variant_primary__ctbx2n1',outline:'Button_buttonVariants_variant_outline__ctbx2n2'},size:{md:'Button_buttonVariants_size_md__ctbx2n3',lg:'Button_buttonVariants_size_lg__ctbx2n4'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\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 asChild?: boolean;\n as?: never;\n};\n\ntype TextDivProps = { as: 'div'; asChild?: never };\n\ntype TextProps = (TextAsChildProps | TextDivProps) &\n React.HTMLAttributes<HTMLDivElement> &\n TextVariants;\n\nconst Text = forwardRef<HTMLDivElement, TextProps>(\n (\n {\n children,\n className,\n asChild = false,\n as: Tag = 'div',\n size,\n weight,\n color,\n mono,\n ...textProps\n },\n forwardedRef,\n ) => {\n return (\n <Slot\n {...textProps}\n ref={forwardedRef}\n className={clsx(textVariants({ size, weight, color, mono }), className)}\n >\n {asChild ? children : <Tag>{children}</Tag>}\n </Slot>\n );\n },\n);\nText.displayName = 'Text';\n\nexport { Text };\n", "import 'src/components/ui/Text.css.ts.vanilla.css?source=LlRleHRfdGV4dFZhcmlhbnRzX3NpemVfc21fX2FwcmhiZDEgewogIGZvbnQtc2l6ZTogdmFyKC0tZGFwcC1raXQtZm9udFNpemVzLXNtYWxsKTsKfQouVGV4dF90ZXh0VmFyaWFudHNfd2VpZ2h0X25vcm1hbF9fYXByaGJkMiB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLW5vcm1hbCk7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX3dlaWdodF9tZWRpdW1fX2FwcmhiZDMgewogIGZvbnQtd2VpZ2h0OiB2YXIoLS1kYXBwLWtpdC1mb250V2VpZ2h0cy1tZWRpdW0pOwp9Ci5UZXh0X3RleHRWYXJpYW50c193ZWlnaHRfYm9sZF9fYXByaGJkNCB7CiAgZm9udC13ZWlnaHQ6IHZhcigtLWRhcHAta2l0LWZvbnRXZWlnaHRzLWJvbGQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9tdXRlZF9fYXByaGJkNSB7CiAgY29sb3I6IHZhcigtLWRhcHAta2l0LWNvbG9ycy1ib2R5TXV0ZWQpOwp9Ci5UZXh0X3RleHRWYXJpYW50c19jb2xvcl9kYW5nZXJfX2FwcmhiZDYgewogIGNvbG9yOiB2YXIoLS1kYXBwLWtpdC1jb2xvcnMtYm9keURhbmdlcik7Cn0KLlRleHRfdGV4dFZhcmlhbnRzX21vbm9fdHJ1ZV9fYXByaGJkNyB7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAiTGliZXJhdGlvbiBNb25vIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOwp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textVariants = _7a468({defaultClassName:'Text__aprhbd0',variantClassNames:{size:{sm:'Text_textVariants_size_sm__aprhbd1'},weight:{normal:'Text_textVariants_weight_normal__aprhbd2',medium:'Text_textVariants_weight_medium__aprhbd3',bold:'Text_textVariants_weight_bold__aprhbd4'},color:{muted:'Text_textVariants_color_muted__aprhbd5',danger:'Text_textVariants_color_danger__aprhbd6'},mono:{true:'Text_textVariants_mono_true__aprhbd7'}},defaultVariants:{size:'sm',weight:'normal'},compoundVariants:[]});", "// Copyright (c) 2025 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork } from '@iota/iota-sdk/client';\nimport { useQuery } from '@tanstack/react-query';\nimport { IotaNamesClient, normalizeIotaName } from '@iota/iota-names-sdk';\nimport { useIotaClientContext } from './useIotaClient.js';\nimport { useMemo } from 'react';\nimport { IotaGraphQLClient } from '@iota/iota-sdk/graphql';\n\nexport function useGetDefaultIotaName(\n address: string | null | undefined,\n iotaNamesEnabled: boolean,\n) {\n const iotaContext = useIotaClientContext();\n const network = getNetwork(iotaContext.network);\n\n const iotaNamesClient = useMemo(() => {\n const iotaGraphQLClient = new IotaGraphQLClient({\n url: network.graphql!,\n });\n\n return new IotaNamesClient({\n graphQlClient: iotaGraphQLClient,\n network: network.id,\n });\n }, [network.id]);\n\n const iotaNamesSupported = !!iotaNamesClient.config;\n\n return useQuery({\n queryKey: ['iota-name', 'default-name', address],\n queryFn: async () => {\n if (!address) return null;\n\n const name = await iotaNamesClient?.getDefaultName(address);\n\n return name ? normalizeIotaName(name) : name;\n },\n enabled: !!iotaNamesClient && !!address && iotaNamesEnabled && iotaNamesSupported,\n staleTime: 1000 * 60 * 10,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Localnet)?.url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["clsx", "useMutation", "useMutation", "jsx", "jsx", "Slot", "forwardRef", "jsx", "forwardRef", "Slot", "Slot", "clsx", "forwardRef", "_7a468", "jsx", "forwardRef", "Slot", "clsx", "getNetwork", "useContext", "createContext", "jsx", "useContext", "useMemo", "getNetwork", "jsx", "clsx"]
7
7
  }
@@ -1,8 +1,13 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { WalletWithRequiredFeatures } from '@iota/wallet-standard';
2
3
  import { Button } from './ui/Button.js';
3
4
  type ConnectButtonProps = {
4
5
  connectText?: ReactNode;
5
6
  size?: React.ComponentProps<typeof Button>['size'];
7
+ iotaNamesEnabled?: boolean;
8
+ onConnected?: (params: {
9
+ wallet: WalletWithRequiredFeatures;
10
+ }) => void;
6
11
  } & React.ComponentProps<typeof Button>;
7
- export declare function ConnectButton({ connectText, size, ...buttonProps }: ConnectButtonProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ConnectButton({ connectText, size, iotaNamesEnabled, onConnected, ...buttonProps }: ConnectButtonProps): import("react/jsx-runtime").JSX.Element;
8
13
  export {};