@tuwaio/nova-connect 1.0.0-fix-packages-alpha.1.901cdf5 → 1.0.0-fix-packages-alpha.2.4da4f4c

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 (105) hide show
  1. package/dist/{ToastError-BLFMIzVb.d.ts → ToastError-DYsDxJFa.d.ts} +24 -35
  2. package/dist/{ToastError-CaoiEVOK.d.cts → ToastError-Dsvd_ihU.d.cts} +24 -35
  3. package/dist/chunk-6DTDABLH.js +6 -0
  4. package/dist/chunk-6DTDABLH.js.map +1 -0
  5. package/dist/chunk-7OWIFKZE.cjs +3 -0
  6. package/dist/chunk-7OWIFKZE.cjs.map +1 -0
  7. package/dist/chunk-B2NRY4JV.js +2 -0
  8. package/dist/chunk-B2NRY4JV.js.map +1 -0
  9. package/dist/chunk-CZLELKCK.js +3 -0
  10. package/dist/chunk-CZLELKCK.js.map +1 -0
  11. package/dist/chunk-F2VSTHQ4.js +2 -0
  12. package/dist/chunk-F2VSTHQ4.js.map +1 -0
  13. package/dist/{chunk-OA6MB7CZ.cjs → chunk-FK4AEST5.cjs} +2 -2
  14. package/dist/{chunk-OA6MB7CZ.cjs.map → chunk-FK4AEST5.cjs.map} +1 -1
  15. package/dist/chunk-HWK6XNDD.cjs +2 -0
  16. package/dist/chunk-HWK6XNDD.cjs.map +1 -0
  17. package/dist/chunk-L5MEEHVK.cjs +2 -0
  18. package/dist/chunk-L5MEEHVK.cjs.map +1 -0
  19. package/dist/chunk-P5ZBSLGK.js +2 -0
  20. package/dist/{chunk-MPEJHQKC.js.map → chunk-P5ZBSLGK.js.map} +1 -1
  21. package/dist/chunk-Q646MQX2.cjs +6 -0
  22. package/dist/chunk-Q646MQX2.cjs.map +1 -0
  23. package/dist/chunk-YI7RYSN6.cjs +2 -0
  24. package/dist/chunk-YI7RYSN6.cjs.map +1 -0
  25. package/dist/chunk-ZKENDEEY.js +2 -0
  26. package/dist/chunk-ZKENDEEY.js.map +1 -0
  27. package/dist/components/index.cjs +1 -1
  28. package/dist/components/index.d.cts +3 -3
  29. package/dist/components/index.d.ts +3 -3
  30. package/dist/components/index.js +1 -1
  31. package/dist/evm-BVE2G4MP.js +2 -0
  32. package/dist/evm-BVE2G4MP.js.map +1 -0
  33. package/dist/evm-DU3VGIPD.cjs +2 -0
  34. package/dist/evm-DU3VGIPD.cjs.map +1 -0
  35. package/dist/getChainsListByConnectorType-7W3NDNRC.cjs +2 -0
  36. package/dist/{getChainsListByWalletType-VMQ4BO2B.js.map → getChainsListByConnectorType-7W3NDNRC.cjs.map} +1 -1
  37. package/dist/getChainsListByConnectorType-FGTS3CWJ.js +2 -0
  38. package/dist/{getChainsListByWalletType-CDPECVNS.cjs.map → getChainsListByConnectorType-FGTS3CWJ.js.map} +1 -1
  39. package/dist/hooks/index.cjs +1 -1
  40. package/dist/hooks/index.d.cts +23 -4
  41. package/dist/hooks/index.d.ts +23 -4
  42. package/dist/hooks/index.js +1 -1
  43. package/dist/i18n/index.cjs +1 -1
  44. package/dist/i18n/index.d.cts +1 -1
  45. package/dist/i18n/index.d.ts +1 -1
  46. package/dist/i18n/index.js +1 -1
  47. package/dist/index.cjs +1 -1
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.css +31 -7
  50. package/dist/index.d.cts +23 -23
  51. package/dist/index.d.ts +23 -23
  52. package/dist/index.js +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/satellite/index.cjs +1 -1
  55. package/dist/satellite/index.d.cts +1 -1
  56. package/dist/satellite/index.d.ts +1 -1
  57. package/dist/satellite/index.js +1 -1
  58. package/dist/solana/index.cjs +1 -1
  59. package/dist/solana/index.js +1 -1
  60. package/dist/solana-CDGGMN74.cjs +2 -0
  61. package/dist/solana-CDGGMN74.cjs.map +1 -0
  62. package/dist/solana-DHXEV2TG.js +2 -0
  63. package/dist/solana-DHXEV2TG.js.map +1 -0
  64. package/dist/{types-D4Vti05g.d.cts → types-C81YJbpy.d.cts} +3 -0
  65. package/dist/{types-D4Vti05g.d.ts → types-C81YJbpy.d.ts} +3 -0
  66. package/dist/{useWalletNativeBalance-DSt1VUWC.d.cts → useWalletNativeBalance-9YgoXwBH.d.cts} +2 -2
  67. package/dist/{useWalletNativeBalance-CEASeZ6Z.d.ts → useWalletNativeBalance-DSYfGV0p.d.ts} +2 -2
  68. package/dist/utils-TF3RVHPT.cjs +2 -0
  69. package/dist/{utils-H5O25MTI.cjs.map → utils-TF3RVHPT.cjs.map} +1 -1
  70. package/dist/utils-YYMTL3XH.js +2 -0
  71. package/dist/{utils-SUIRQJIA.js.map → utils-YYMTL3XH.js.map} +1 -1
  72. package/package.json +19 -19
  73. package/dist/chunk-7F5QM2LC.js +0 -6
  74. package/dist/chunk-7F5QM2LC.js.map +0 -1
  75. package/dist/chunk-7FTV55DQ.cjs +0 -2
  76. package/dist/chunk-7FTV55DQ.cjs.map +0 -1
  77. package/dist/chunk-B26D6OI7.cjs +0 -6
  78. package/dist/chunk-B26D6OI7.cjs.map +0 -1
  79. package/dist/chunk-DYDY3FCT.cjs +0 -2
  80. package/dist/chunk-DYDY3FCT.cjs.map +0 -1
  81. package/dist/chunk-J4TY3CJF.js +0 -2
  82. package/dist/chunk-J4TY3CJF.js.map +0 -1
  83. package/dist/chunk-MPEJHQKC.js +0 -2
  84. package/dist/chunk-MQGDTFY7.js +0 -2
  85. package/dist/chunk-MQGDTFY7.js.map +0 -1
  86. package/dist/chunk-NMQZA377.cjs +0 -2
  87. package/dist/chunk-NMQZA377.cjs.map +0 -1
  88. package/dist/chunk-QERPNHKX.cjs +0 -2
  89. package/dist/chunk-QERPNHKX.cjs.map +0 -1
  90. package/dist/chunk-S5WT3DLF.js +0 -2
  91. package/dist/chunk-S5WT3DLF.js.map +0 -1
  92. package/dist/chunk-TAV7EL23.js +0 -2
  93. package/dist/chunk-TAV7EL23.js.map +0 -1
  94. package/dist/evm-7NHOTSAK.cjs +0 -2
  95. package/dist/evm-7NHOTSAK.cjs.map +0 -1
  96. package/dist/evm-RBGEX4L3.js +0 -2
  97. package/dist/evm-RBGEX4L3.js.map +0 -1
  98. package/dist/getChainsListByWalletType-CDPECVNS.cjs +0 -2
  99. package/dist/getChainsListByWalletType-VMQ4BO2B.js +0 -2
  100. package/dist/solana-GLHHYZDQ.js +0 -2
  101. package/dist/solana-GLHHYZDQ.js.map +0 -1
  102. package/dist/solana-JUU54KQ3.cjs +0 -2
  103. package/dist/solana-JUU54KQ3.cjs.map +0 -1
  104. package/dist/utils-H5O25MTI.cjs +0 -2
  105. package/dist/utils-SUIRQJIA.js +0 -2
package/dist/index.css CHANGED
@@ -8,7 +8,6 @@
8
8
  --novacon-color-red-500: oklch(63.7% 0.237 25.331);
9
9
  --novacon-color-red-600: oklch(57.7% 0.245 27.325);
10
10
  --novacon-color-blue-500: oklch(62.3% 0.214 259.815);
11
- --novacon-color-gray-300: oklch(87.2% 0.01 258.338);
12
11
  --novacon-color-white: #fff;
13
12
  --novacon-spacing: 0.25rem;
14
13
  --novacon-container-md: 28rem;
@@ -250,6 +249,9 @@
250
249
  .novacon\:h-8 {
251
250
  height: calc(var(--novacon-spacing) * 8);
252
251
  }
252
+ .novacon\:h-10 {
253
+ height: calc(var(--novacon-spacing) * 10);
254
+ }
253
255
  .novacon\:h-12 {
254
256
  height: calc(var(--novacon-spacing) * 12);
255
257
  }
@@ -331,6 +333,9 @@
331
333
  .novacon\:w-8 {
332
334
  width: calc(var(--novacon-spacing) * 8);
333
335
  }
336
+ .novacon\:w-10 {
337
+ width: calc(var(--novacon-spacing) * 10);
338
+ }
334
339
  .novacon\:w-12 {
335
340
  width: calc(var(--novacon-spacing) * 12);
336
341
  }
@@ -531,9 +536,6 @@
531
536
  .novacon\:overflow-y-auto {
532
537
  overflow-y: auto;
533
538
  }
534
- .novacon\:rounded {
535
- border-radius: 0.25rem;
536
- }
537
539
  .novacon\:rounded-full {
538
540
  border-radius: calc(infinity * 1px);
539
541
  }
@@ -586,6 +588,9 @@
586
588
  .novacon\:border-t-transparent {
587
589
  border-top-color: transparent;
588
590
  }
591
+ .novacon\:bg-\[var\(--tuwa-bg-accent\)\] {
592
+ background-color: var(--tuwa-bg-accent);
593
+ }
589
594
  .novacon\:bg-\[var\(--tuwa-bg-muted\)\] {
590
595
  background-color: var(--tuwa-bg-muted);
591
596
  }
@@ -619,9 +624,6 @@
619
624
  .novacon\:bg-blue-500 {
620
625
  background-color: var(--novacon-color-blue-500);
621
626
  }
622
- .novacon\:bg-gray-300 {
623
- background-color: var(--novacon-color-gray-300);
624
- }
625
627
  .novacon\:bg-red-500 {
626
628
  background-color: var(--novacon-color-red-500);
627
629
  }
@@ -702,6 +704,9 @@
702
704
  .novacon\:py-1 {
703
705
  padding-block: calc(var(--novacon-spacing) * 1);
704
706
  }
707
+ .novacon\:py-1\.5 {
708
+ padding-block: calc(var(--novacon-spacing) * 1.5);
709
+ }
705
710
  .novacon\:py-2 {
706
711
  padding-block: calc(var(--novacon-spacing) * 2);
707
712
  }
@@ -1073,6 +1078,20 @@
1073
1078
  }
1074
1079
  }
1075
1080
  }
1081
+ .novacon\:hover\:border-\[var\(--tuwa-text-accent\)\] {
1082
+ &:hover {
1083
+ @media (hover: hover) {
1084
+ border-color: var(--tuwa-text-accent);
1085
+ }
1086
+ }
1087
+ }
1088
+ .novacon\:hover\:bg-\[var\(--tuwa-bg-error\)\] {
1089
+ &:hover {
1090
+ @media (hover: hover) {
1091
+ background-color: var(--tuwa-bg-error);
1092
+ }
1093
+ }
1094
+ }
1076
1095
  .novacon\:hover\:bg-\[var\(--tuwa-bg-muted\)\] {
1077
1096
  &:hover {
1078
1097
  @media (hover: hover) {
@@ -1171,6 +1190,11 @@
1171
1190
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1172
1191
  }
1173
1192
  }
1193
+ .novacon\:focus\:ring-\[var\(--tuwa-border-error\)\] {
1194
+ &:focus {
1195
+ --tw-ring-color: var(--tuwa-border-error);
1196
+ }
1197
+ }
1174
1198
  .novacon\:focus\:ring-\[var\(--tuwa-border-primary\)\] {
1175
1199
  &:focus {
1176
1200
  --tw-ring-color: var(--tuwa-border-primary);
package/dist/index.d.cts CHANGED
@@ -1,14 +1,14 @@
1
- import { OrbitAdapter, WalletType } from '@tuwaio/orbit-core';
2
- export { WalletNameAndAvatarData, useGetWalletNameAndAvatar } from './hooks/index.cjs';
3
- import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-DSt1VUWC.cjs';
4
- export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-DSt1VUWC.cjs';
1
+ import { OrbitAdapter, ConnectorType } from '@tuwaio/orbit-core';
2
+ export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.cjs';
3
+ import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-9YgoXwBH.cjs';
4
+ export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-9YgoXwBH.cjs';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
7
7
  import { ToastContainer, toast, ToastPosition } from 'react-toastify';
8
- import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-CaoiEVOK.cjs';
9
- export { aK as getNetworkIcon } from './ToastError-CaoiEVOK.cjs';
10
- import { N as NovaConnectLabels } from './types-D4Vti05g.cjs';
11
- import { BaseWallet } from '@tuwaio/satellite-core';
8
+ import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-Dsvd_ihU.cjs';
9
+ export { aK as getNetworkIcon } from './ToastError-Dsvd_ihU.cjs';
10
+ import { N as NovaConnectLabels } from './types-C81YJbpy.cjs';
11
+ import { BaseConnector } from '@tuwaio/satellite-core';
12
12
  import { I as InitialChains, C as ChainIdentifierArray } from './types-DGsiEwne.cjs';
13
13
  export { A as AllChainConfigs } from './types-DGsiEwne.cjs';
14
14
  import { Connector } from '@tuwaio/satellite-react';
@@ -158,9 +158,9 @@ type ProviderContext = {
158
158
  /** Current wallet connection state */
159
159
  isConnected: boolean;
160
160
  /** Active wallet instance */
161
- activeWallet: BaseWallet | undefined;
161
+ activeConnection: BaseConnector | undefined;
162
162
  /** Current wallet connection error */
163
- walletConnectionError: string | undefined;
163
+ connectionError: string | undefined;
164
164
  /** All modal and UI states */
165
165
  modalStates: {
166
166
  isConnectModalOpen: boolean;
@@ -307,7 +307,7 @@ declare namespace NovaConnectProvider {
307
307
  * @example
308
308
  * ```typescript
309
309
  * const params: GetChainsListParams = {
310
- * walletType: WalletType.EVM_METAMASK,
310
+ * connectorType: WalletType.EVM_METAMASK,
311
311
  * appChains: [
312
312
  * { id: 1, name: 'Ethereum' },
313
313
  * { id: 137, name: 'Polygon' }
@@ -318,12 +318,12 @@ declare namespace NovaConnectProvider {
318
318
  */
319
319
  interface GetChainsListParams extends InitialChains {
320
320
  /** The wallet type to determine chain compatibility */
321
- walletType: WalletType;
321
+ connectorType: ConnectorType;
322
322
  /** Optional array of specific chain identifiers to filter or validate */
323
323
  chains?: ChainIdentifierArray;
324
324
  }
325
325
  /**
326
- * Retrieves chain list for a specific wallet type with automatic adapter loading.
326
+ * Retrieves chain list for a specific connectorType type with automatic adapter loading.
327
327
  *
328
328
  * This is the primary function for getting blockchain-compatible chains based on
329
329
  * wallet type and configuration. It automatically determines the correct adapter,
@@ -334,14 +334,14 @@ interface GetChainsListParams extends InitialChains {
334
334
  * - Solana clusters: Returns string cluster names from RPC configuration
335
335
  * - Future blockchains: Extensible through the adapter pattern
336
336
  *
337
- * @param params - Configuration object with wallet type and chain data
337
+ * @param params - Configuration object with connectorType type and chain data
338
338
  * @returns Promise resolving to array of chain identifiers
339
339
  *
340
340
  * @example
341
341
  * ```typescript
342
342
  * // Get EVM chains for MetaMask
343
- * const evmChains = await getChainsListByWalletType({
344
- * walletType: WalletType.EVM_METAMASK,
343
+ * const evmChains = await getChainsListByConnectorType({
344
+ * connectorType: ConnectorType.EVM_METAMASK,
345
345
  * appChains: [
346
346
  * { id: 1, name: 'Ethereum' },
347
347
  * { id: 137, name: 'Polygon' }
@@ -350,8 +350,8 @@ interface GetChainsListParams extends InitialChains {
350
350
  * // Returns: [1, 137]
351
351
  *
352
352
  * // Get Solana clusters for Phantom
353
- * const solanaClusters = await getChainsListByWalletType({
354
- * walletType: WalletType.SOLANA_PHANTOM,
353
+ * const solanaClusters = await getChainsListByConnectorType({
354
+ * connectorType: ConnectorType.SOLANA_PHANTOM,
355
355
  * solanaRPCUrls: {
356
356
  * 'mainnet-beta': 'https://api.mainnet-beta.solana.com',
357
357
  * 'devnet': 'https://api.devnet.solana.com'
@@ -362,7 +362,7 @@ interface GetChainsListParams extends InitialChains {
362
362
  *
363
363
  * @since 1.0.0
364
364
  */
365
- declare function getChainsListByWalletType(params: GetChainsListParams): Promise<(string | number)[]>;
365
+ declare function getChainsListByConnectorType(params: GetChainsListParams): Promise<(string | number)[]>;
366
366
  /**
367
367
  * Synchronous version that only works with pre-loaded adapters.
368
368
  *
@@ -386,14 +386,14 @@ declare function getChainsListByWalletType(params: GetChainsListParams): Promise
386
386
  *
387
387
  * // Now safe to use sync version
388
388
  * const chains = getChainsListByWalletTypeSync({
389
- * walletType: WalletType.EVM_METAMASK,
389
+ * connectorType: ConnectorType.EVM_METAMASK,
390
390
  * appChains: evmConfiguration
391
391
  * });
392
392
  * ```
393
393
  *
394
394
  * @since 1.0.0
395
395
  */
396
- declare function getChainsListByWalletTypeSync(params: GetChainsListParams): (string | number)[];
396
+ declare function getChainsListByConnectorTypeSync(params: GetChainsListParams): (string | number)[];
397
397
  /**
398
398
  * Validates if a chain list conforms to EVM format (with adapter loading).
399
399
  *
@@ -918,7 +918,7 @@ declare const networksLinks: Partial<Record<OrbitAdapter, {
918
918
  * @example
919
919
  * ```typescript
920
920
  * // Import synchronous version (backward compatible)
921
- * import { getChainsListByWalletType, isEvmChainList } from './utils';
921
+ * import { getChainsListByConnectorType, isEvmChainList } from './utils';
922
922
  *
923
923
  * // Import asynchronous version (better performance)
924
924
  * import {
@@ -1154,4 +1154,4 @@ declare function initializeBlockchainSupport(): Promise<InitializationResult>;
1154
1154
  */
1155
1155
  declare function isAdapterSupported(adapter: OrbitAdapter): Promise<boolean>;
1156
1156
 
1157
- export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByWalletTypeSync as getChainsListByWalletType, getChainsListByWalletType as getChainsListByWalletTypeAsync, getChainsListByWalletTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
1157
+ export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { OrbitAdapter, WalletType } from '@tuwaio/orbit-core';
2
- export { WalletNameAndAvatarData, useGetWalletNameAndAvatar } from './hooks/index.js';
3
- import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-CEASeZ6Z.js';
4
- export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-CEASeZ6Z.js';
1
+ import { OrbitAdapter, ConnectorType } from '@tuwaio/orbit-core';
2
+ export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.js';
3
+ import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-DSYfGV0p.js';
4
+ export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-DSYfGV0p.js';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
7
7
  import { ToastContainer, toast, ToastPosition } from 'react-toastify';
8
- import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-BLFMIzVb.js';
9
- export { aK as getNetworkIcon } from './ToastError-BLFMIzVb.js';
10
- import { N as NovaConnectLabels } from './types-D4Vti05g.js';
11
- import { BaseWallet } from '@tuwaio/satellite-core';
8
+ import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-DYsDxJFa.js';
9
+ export { aK as getNetworkIcon } from './ToastError-DYsDxJFa.js';
10
+ import { N as NovaConnectLabels } from './types-C81YJbpy.js';
11
+ import { BaseConnector } from '@tuwaio/satellite-core';
12
12
  import { I as InitialChains, C as ChainIdentifierArray } from './types-DGsiEwne.js';
13
13
  export { A as AllChainConfigs } from './types-DGsiEwne.js';
14
14
  import { Connector } from '@tuwaio/satellite-react';
@@ -158,9 +158,9 @@ type ProviderContext = {
158
158
  /** Current wallet connection state */
159
159
  isConnected: boolean;
160
160
  /** Active wallet instance */
161
- activeWallet: BaseWallet | undefined;
161
+ activeConnection: BaseConnector | undefined;
162
162
  /** Current wallet connection error */
163
- walletConnectionError: string | undefined;
163
+ connectionError: string | undefined;
164
164
  /** All modal and UI states */
165
165
  modalStates: {
166
166
  isConnectModalOpen: boolean;
@@ -307,7 +307,7 @@ declare namespace NovaConnectProvider {
307
307
  * @example
308
308
  * ```typescript
309
309
  * const params: GetChainsListParams = {
310
- * walletType: WalletType.EVM_METAMASK,
310
+ * connectorType: WalletType.EVM_METAMASK,
311
311
  * appChains: [
312
312
  * { id: 1, name: 'Ethereum' },
313
313
  * { id: 137, name: 'Polygon' }
@@ -318,12 +318,12 @@ declare namespace NovaConnectProvider {
318
318
  */
319
319
  interface GetChainsListParams extends InitialChains {
320
320
  /** The wallet type to determine chain compatibility */
321
- walletType: WalletType;
321
+ connectorType: ConnectorType;
322
322
  /** Optional array of specific chain identifiers to filter or validate */
323
323
  chains?: ChainIdentifierArray;
324
324
  }
325
325
  /**
326
- * Retrieves chain list for a specific wallet type with automatic adapter loading.
326
+ * Retrieves chain list for a specific connectorType type with automatic adapter loading.
327
327
  *
328
328
  * This is the primary function for getting blockchain-compatible chains based on
329
329
  * wallet type and configuration. It automatically determines the correct adapter,
@@ -334,14 +334,14 @@ interface GetChainsListParams extends InitialChains {
334
334
  * - Solana clusters: Returns string cluster names from RPC configuration
335
335
  * - Future blockchains: Extensible through the adapter pattern
336
336
  *
337
- * @param params - Configuration object with wallet type and chain data
337
+ * @param params - Configuration object with connectorType type and chain data
338
338
  * @returns Promise resolving to array of chain identifiers
339
339
  *
340
340
  * @example
341
341
  * ```typescript
342
342
  * // Get EVM chains for MetaMask
343
- * const evmChains = await getChainsListByWalletType({
344
- * walletType: WalletType.EVM_METAMASK,
343
+ * const evmChains = await getChainsListByConnectorType({
344
+ * connectorType: ConnectorType.EVM_METAMASK,
345
345
  * appChains: [
346
346
  * { id: 1, name: 'Ethereum' },
347
347
  * { id: 137, name: 'Polygon' }
@@ -350,8 +350,8 @@ interface GetChainsListParams extends InitialChains {
350
350
  * // Returns: [1, 137]
351
351
  *
352
352
  * // Get Solana clusters for Phantom
353
- * const solanaClusters = await getChainsListByWalletType({
354
- * walletType: WalletType.SOLANA_PHANTOM,
353
+ * const solanaClusters = await getChainsListByConnectorType({
354
+ * connectorType: ConnectorType.SOLANA_PHANTOM,
355
355
  * solanaRPCUrls: {
356
356
  * 'mainnet-beta': 'https://api.mainnet-beta.solana.com',
357
357
  * 'devnet': 'https://api.devnet.solana.com'
@@ -362,7 +362,7 @@ interface GetChainsListParams extends InitialChains {
362
362
  *
363
363
  * @since 1.0.0
364
364
  */
365
- declare function getChainsListByWalletType(params: GetChainsListParams): Promise<(string | number)[]>;
365
+ declare function getChainsListByConnectorType(params: GetChainsListParams): Promise<(string | number)[]>;
366
366
  /**
367
367
  * Synchronous version that only works with pre-loaded adapters.
368
368
  *
@@ -386,14 +386,14 @@ declare function getChainsListByWalletType(params: GetChainsListParams): Promise
386
386
  *
387
387
  * // Now safe to use sync version
388
388
  * const chains = getChainsListByWalletTypeSync({
389
- * walletType: WalletType.EVM_METAMASK,
389
+ * connectorType: ConnectorType.EVM_METAMASK,
390
390
  * appChains: evmConfiguration
391
391
  * });
392
392
  * ```
393
393
  *
394
394
  * @since 1.0.0
395
395
  */
396
- declare function getChainsListByWalletTypeSync(params: GetChainsListParams): (string | number)[];
396
+ declare function getChainsListByConnectorTypeSync(params: GetChainsListParams): (string | number)[];
397
397
  /**
398
398
  * Validates if a chain list conforms to EVM format (with adapter loading).
399
399
  *
@@ -918,7 +918,7 @@ declare const networksLinks: Partial<Record<OrbitAdapter, {
918
918
  * @example
919
919
  * ```typescript
920
920
  * // Import synchronous version (backward compatible)
921
- * import { getChainsListByWalletType, isEvmChainList } from './utils';
921
+ * import { getChainsListByConnectorType, isEvmChainList } from './utils';
922
922
  *
923
923
  * // Import asynchronous version (better performance)
924
924
  * import {
@@ -1154,4 +1154,4 @@ declare function initializeBlockchainSupport(): Promise<InitializationResult>;
1154
1154
  */
1155
1155
  declare function isAdapterSupported(adapter: OrbitAdapter): Promise<boolean>;
1156
1156
 
1157
- export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByWalletTypeSync as getChainsListByWalletType, getChainsListByWalletType as getChainsListByWalletTypeAsync, getChainsListByWalletTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
1157
+ export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {f as f$1,b,K,F,J,C,M,I,L,i,B,N}from'./chunk-7F5QM2LC.js';export{c as getAvailableChainIds,j as getAvailableSolanaClusters,b as getConnectChainId,f as getFilteredConnectors,d as getGroupedConnectors,h as getNetworkIcon,e as hasAvailableConnectors,g as hasConnectorsForAdapter,k as isValidSolanaCluster,i as networksLinks}from'./chunk-7F5QM2LC.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByWalletType,a as getChainsListByWalletTypeAsync,b as getChainsListByWalletTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-MQGDTFY7.js';import {d,h as h$1,g,c}from'./chunk-S5WT3DLF.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,n as getLabelWithFallback,k as hasLabel,m as isDefaultLabels,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useWalletNativeBalance}from'./chunk-S5WT3DLF.js';import {a}from'./chunk-TAV7EL23.js';import {h,f}from'./chunk-MPEJHQKC.js';import {waitFor,delay,formatWalletName,getWalletTypeFromConnectorName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';import {isAddress}from'gill';var pe=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(N,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),ue=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Ce=(o,e)=>{o(e.title,e.rawError,e.errorKey);},fe=o=>{o();},ve=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},ye=o=>o,ge=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(l=>l.switchNetworkError),R=h(l=>l.activeWallet),B=h(l=>l.walletConnectionError),{ToastError:N=pe,Container:y=ue}=t?.components??{},{showError:d=Ce,dismissError:O=fe,onCopyComplete:S=ve}=t?.handlers??{},{errorTitle:D=ye,errorHash:E=ge}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let l=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:l,hasSwitchError:b,isConnected:P,hasAnyError:l||b,primaryError:B||u||null,errorType:l?"wallet":b?"switch":null}},[B,u,R?.isConnected]),H=useMemo(()=>{switch(s.errorType){case "wallet":return f.walletConnectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>D(H,{errorType:s.errorType}),[D,H,s.errorType]),z=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(z,{primaryError:s.primaryError,errorType:s.errorType}),[E,z,s.primaryError,s.errorType]),T=useCallback(()=>{O(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,O]),F=useCallback((l,b)=>{S(l,b,s.errorType);},[S,s.errorType]),n=useCallback((l,b,P)=>{if(T(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:l,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:l,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[T,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((l,b,P)=>{d(n,{title:l,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:l,isConnected:b,primaryError:P}=s;if(b&&!l){T(),M.current.clear();return}if(l&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,T]),useEffect(()=>()=>{T(),M.current.clear();},[T]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function He(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatWalletName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));qo.displayName="DefaultModalContainer";var Jo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Jo.displayName="DefaultModalHeader";var Qo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Qo.displayName="DefaultInfoButton";var Xo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Xo.displayName="DefaultTitle";var Yo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));Yo.displayName="DefaultCloseButton";var Zo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));Zo.displayName="DefaultMainContent";var oe=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));oe.displayName="DefaultFooter";var ee=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));ee.displayName="DefaultBackButton";var te=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));te.displayName="DefaultActionButton";var ne=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));ne.displayName="DefaultActionDescription";var re=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});re.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t,setIsConnectModalOpen:f$2,setConnectModalContentType:u,setActiveConnector:R,setImpersonatedAddress:B,setIsConnected:N,connectModalContentType:y,selectedAdapter:d$1,setSelectedAdapter:O,isConnected:S,activeConnector:D,impersonatedAddress:E}=d(),M$1=h(c=>c.walletConnectionError),x=h(c=>c.getConnectors),s=h(c=>c.connect),H=h(c=>c.activeWallet),m=h$1(),z=useContext(f),C$1=useMemo(()=>{if(t)return x()},[t,x]),T=useMemo(()=>f$1({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F$1=useMemo(()=>M$1?typeof M$1=="string"?new Error(M$1):M$1:null,[M$1]),n=useMemo(()=>({contentType:y,selectedAdapter:d$1,activeConnector:D,impersonatedAddress:E,isConnected:S,isOpen:t,error:F$1,connectors:C$1,filteredConnectors:T,labels:m}),[y,d$1,D,E,S,t,F$1,C$1,T,m]);useEffect(()=>{t&&(u("connectors"),O(void 0),R(void 0),B(""),N(false));},[t]);let{components:v={},classNames:g={},handlers:p={},config:h$2={},childComponents:l={}}=r,b$1=v.ModalContainer||qo,P=v.ModalHeader||Jo,V=v.InfoButton||Qo,_=v.Title||Xo,q=v.CloseButton||Yo,J$1=v.MainContent||Zo,Q=v.Footer||oe,so=v.BackButton||ee,X=v.ActionButton||te,io=v.ActionDescription||ne,G=v.EmptyState||re,Co=v.Dialog||Dialog,lo=v.DialogContent||DialogContent,eo=v.MotionDiv||motion.div,to=useCallback(()=>{switch(y){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&D&&C$1&&He(C$1[d$1],D)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y,d$1,D,C$1,m]),Y=useCallback(()=>"connectors",[y]),Z=useCallback(c=>{p?.onOpenChange?p.onOpenChange(c,n):f$2(c);},[p?.onOpenChange,n,f$2]),fo=useCallback(()=>{let c=()=>u(Y());p?.onBack?p.onBack(n,c):c();},[p?.onBack,n,u,Y]),vo=useCallback(()=>{p?.onInfoClick?p.onInfoClick(n):u("about");},[p?.onInfoClick,n,u]),$=useCallback(async(c,yo)=>{await s({walletType:c,chainId:b({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>z?.getState().activeWallet?.isConnected),N(!0);let go=setTimeout(()=>f$2(!1),400),le=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(le);}catch(go){console.error(go);}},[s,o,d$1,e]),j=useCallback(async(c,yo)=>{O(c),u("connecting"),await $(yo,c);},[$]),Bo=useCallback(c=>{R(formatWalletName(c.name)),c.adapters.length===1?(O(c.adapters[0]),u(formatWalletName(c.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u(formatWalletName(c.name)==="impersonatedwallet"?"impersonate":"connecting"):formatWalletName(c.name)==="impersonatedwallet"?u("impersonate"):u("network");},[d$1]),se=useCallback(()=>{switch(y){case "network":return jsx(L,{activeConnector:D,connectors:T,onClick:j,customization:l.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(M,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:c=>O(c),customization:l.networkTabs}),jsx(I,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:T,selectedAdapter:d$1,onClick:Bo,setContentType:u,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$2,withImpersonated:a,customization:l.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(C,{customization:l.aboutWallets});case "getWallet":return jsx(J,{customization:l.getWallet});case "connecting":return jsx(F,{selectedAdapter:d$1,connectors:T,activeConnector:D,isConnected:S,customization:l.connecting});case "impersonate":return jsx(K,{impersonatedAddress:E,setImpersonatedAddress:B,customization:l.impersonateForm})}},[y,D,T,j,l,C$1,d$1,Bo,S,E]),K$1=useCallback(()=>{switch(y){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p.onActionClick?.connectors?p.onActionClick.connectors(n):u("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p.onActionClick?.getWallet?p.onActionClick.getWallet(n):window.open(i[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p.onActionClick?.about?p.onActionClick.about(n):window.open(i[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p.onActionClick?.impersonate)await p.onActionClick.impersonate(n);else {let c=E.trim();if(M$1||!c||isAddress(c)||H?.isConnected)return;impersonatedHelpers.setImpersonated(c),await $(`${d$1??OrbitAdapter.EVM}:impersonatedwallet`,d$1??OrbitAdapter.EVM),u("connecting");}}};case "connecting":return M$1&&d$1&&D?{title:m.tryAgain,onClick:async()=>{p.onActionClick?.connecting?await p.onActionClick.connecting(n):await $(getWalletTypeFromConnectorName(d$1,D),d$1);}}:void 0}},[y,m,p,n,d$1,C$1,E,M$1,$,D])(),ie=useCallback(()=>{switch(y){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y]);return jsx(Co,{open:t,onOpenChange:Z,children:jsx(lo,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b$1,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J$1,{className:g.mainContent?.({modalData:n}),modalData:n,children:se()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K$1&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K$1}),onClick:K$1.onClick,disabled:K$1.disabled,loading:K$1.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K$1,children:K$1.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:ie()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,$e=o=>o,je=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B$1,customization:N}){let y=h(j=>j.activeWallet),d=h(j=>j.walletConnectionError),{LabelsProvider:O=Fe,ErrorsProvider:S=Ve}=N?.components??{},{merge:D=Ue,transform:E=Ge}=N?.labels??{},{transform:M=$e}=N?.contextValue??{},{providerTree:x=je}=N?.rendering??{},s=useMemo(()=>D(a,o||{}),[o,D]),[H,m]=useState(false),[z,C]=useState(false),[T,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,l]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeWallet:y,walletConnectionError:d,modalStates:{isConnectModalOpen:H,isConnectedModalOpen:z,isChainsListOpen:T,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,H,z,T,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),lo=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r,withImpersonated:u,withBalance:R,withChain:B$1,isConnectModalOpen:H,setIsConnectModalOpen:m,isConnectedModalOpen:z,setIsConnectedModalOpen:C,isChainsListOpen:T,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:l,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r,u,R,B$1,H,m,z,C,T,F,n,v,g,p,X,io,h$1,l,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(S,{customization:N?.errors}),to=jsx(O,{labels:Co,children:e}),Y=a$1||r?jsx(No,{withImpersonated:u,solanaRPCUrls:r,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r?jsx(B,{solanaRPCUrls:r,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:lo,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:lo,children:[eo,to,Y,Z]}),$=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:$})}Ke.displayName="NovaConnectProvider";async function qn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByWalletType-VMQ4BO2B.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-SUIRQJIA.js'),!0}catch{return false}}async function Jn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Qn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Xn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByWalletType-VMQ4BO2B.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Yn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,qn as getBlockchainUtilities,Jn as getEvmUtils,Qn as getSolanaUtils,Xn as initializeBlockchainSupport,Yn as isAdapterSupported};//# sourceMappingURL=index.js.map
1
+ import {A,v,z,s,C,y,B,r,D}from'./chunk-6DTDABLH.js';import {d,h as h$1,u,q,x,g,c}from'./chunk-CZLELKCK.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,r as getAvailableChainIds,y as getAvailableSolanaClusters,q as getConnectChainId,u as getFilteredConnectors,s as getGroupedConnectors,n as getLabelWithFallback,w as getNetworkIcon,t as hasAvailableConnectors,v as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,z as isValidSolanaCluster,x as networksLinks,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,A as useWalletChainsList,p as useWalletNativeBalance}from'./chunk-CZLELKCK.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByConnectorType,a as getChainsListByConnectorTypeAsync,b as getChainsListByConnectorTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-B2NRY4JV.js';import {a}from'./chunk-ZKENDEEY.js';import {h,f}from'./chunk-P5ZBSLGK.js';import {waitFor,delay,formatConnectorName,getConnectorTypeFromName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';import {isAddress}from'gill';var pe=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(D,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),ue=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Ce=(o,e)=>{o(e.title,e.rawError,e.errorKey);},fe=o=>{o();},ve=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},ye=o=>o,ge=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(c=>c.switchNetworkError),R=h(c=>c.activeConnection),B=h(c=>c.connectionError),{ToastError:N=pe,Container:y=ue}=t?.components??{},{showError:d=Ce,dismissError:S=fe,onCopyComplete:H=ve}=t?.handlers??{},{errorTitle:D=ye,errorHash:E=ge}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let c=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:c,hasSwitchError:b,isConnected:P,hasAnyError:c||b,primaryError:B||u||null,errorType:c?"wallet":b?"switch":null}},[B,u,R?.isConnected]),z=useMemo(()=>{switch(s.errorType){case "wallet":return f.connectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>D(z,{errorType:s.errorType}),[D,z,s.errorType]),W=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(W,{primaryError:s.primaryError,errorType:s.errorType}),[E,W,s.primaryError,s.errorType]),T=useCallback(()=>{S(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,S]),F=useCallback((c,b)=>{H(c,b,s.errorType);},[H,s.errorType]),n=useCallback((c,b,P)=>{if(T(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[T,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((c,b,P)=>{d(n,{title:c,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:c,isConnected:b,primaryError:P}=s;if(b&&!c){T(),M.current.clear();return}if(c&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,T]),useEffect(()=>()=>{T(),M.current.clear();},[T]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function ze(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatConnectorName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));qo.displayName="DefaultModalContainer";var Jo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Jo.displayName="DefaultModalHeader";var Qo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Qo.displayName="DefaultInfoButton";var Xo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Xo.displayName="DefaultTitle";var Yo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));Yo.displayName="DefaultCloseButton";var Zo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));Zo.displayName="DefaultMainContent";var oe=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));oe.displayName="DefaultFooter";var ee=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));ee.displayName="DefaultBackButton";var te=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));te.displayName="DefaultActionButton";var ne=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));ne.displayName="DefaultActionDescription";var re=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});re.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t,setIsConnectModalOpen:f$1,setConnectModalContentType:u$1,setActiveConnector:R,setImpersonatedAddress:B$1,setIsConnected:N,connectModalContentType:y$1,selectedAdapter:d$1,setSelectedAdapter:S,isConnected:H,activeConnector:D,impersonatedAddress:E}=d(),M=h(l=>l.connectionError),x$1=h(l=>l.getConnectors),s$1=h(l=>l.connect),z$1=h(l=>l.activeConnection),m=h$1(),W=useContext(f),C$1=useMemo(()=>{if(t)return x$1()},[t,x$1]),T=useMemo(()=>u({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F=useMemo(()=>M?typeof M=="string"?new Error(M):M:null,[M]),n=useMemo(()=>({contentType:y$1,selectedAdapter:d$1,activeConnector:D,impersonatedAddress:E,isConnected:H,isOpen:t,error:F,connectors:C$1,filteredConnectors:T,labels:m}),[y$1,d$1,D,E,H,t,F,C$1,T,m]);useEffect(()=>{t&&(u$1("connectors"),S(void 0),R(void 0),B$1(""),N(false));},[t]);let{components:v$1={},classNames:g={},handlers:p={},config:h$2={},childComponents:c={}}=r,b=v$1.ModalContainer||qo,P=v$1.ModalHeader||Jo,V=v$1.InfoButton||Qo,_=v$1.Title||Xo,q$1=v$1.CloseButton||Yo,J=v$1.MainContent||Zo,Q=v$1.Footer||oe,so=v$1.BackButton||ee,X=v$1.ActionButton||te,io=v$1.ActionDescription||ne,G=v$1.EmptyState||re,Co=v$1.Dialog||Dialog,co=v$1.DialogContent||DialogContent,eo=v$1.MotionDiv||motion.div,to=useCallback(()=>{switch(y$1){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&D&&C$1&&ze(C$1[d$1],D)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y$1,d$1,D,C$1,m]),Y=useCallback(()=>"connectors",[y$1]),Z=useCallback(l=>{p?.onOpenChange?p.onOpenChange(l,n):f$1(l);},[p?.onOpenChange,n,f$1]),fo=useCallback(()=>{let l=()=>u$1(Y());p?.onBack?p.onBack(n,l):l();},[p?.onBack,n,u$1,Y]),vo=useCallback(()=>{p?.onInfoClick?p.onInfoClick(n):u$1("about");},[p?.onInfoClick,n,u$1]),$=useCallback(async(l,yo)=>{await s$1({connectorType:l,chainId:q({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>W?.getState().activeConnection?.isConnected),N(!0);let go=setTimeout(()=>f$1(!1),400),ce=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(ce);}catch(go){console.error(go);}},[s$1,o,d$1,e]),j=useCallback(async(l,yo)=>{S(l),u$1("connecting"),await $(yo,l);},[$]),Bo=useCallback(l=>{R(formatConnectorName(l.name)),l.adapters.length===1?(S(l.adapters[0]),u$1(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u$1(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting"):formatConnectorName(l.name)==="impersonatedwallet"?u$1("impersonate"):u$1("network");},[d$1]),se=useCallback(()=>{switch(y$1){case "network":return jsx(B,{activeConnector:D,connectors:T,onClick:j,customization:c.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(C,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:l=>S(l),customization:c.networkTabs}),jsx(y,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:T,selectedAdapter:d$1,onClick:Bo,setContentType:u$1,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$1,withImpersonated:a,customization:c.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(s,{customization:c.aboutWallets});case "getWallet":return jsx(z,{customization:c.getWallet});case "connecting":return jsx(v,{selectedAdapter:d$1,connectors:T,activeConnector:D,isConnected:H,customization:c.connecting});case "impersonate":return jsx(A,{impersonatedAddress:E,setImpersonatedAddress:B$1,customization:c.impersonateForm})}},[y$1,D,T,j,c,C$1,d$1,Bo,H,E]),K=useCallback(()=>{switch(y$1){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p.onActionClick?.connectors?p.onActionClick.connectors(n):u$1("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p.onActionClick?.getWallet?p.onActionClick.getWallet(n):window.open(x[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p.onActionClick?.about?p.onActionClick.about(n):window.open(x[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p.onActionClick?.impersonate)await p.onActionClick.impersonate(n);else {let l=E.trim();if(M||!l||isAddress(l)||z$1?.isConnected)return;impersonatedHelpers.setImpersonated(l),await $(`${d$1??OrbitAdapter.EVM}:impersonatedwallet`,d$1??OrbitAdapter.EVM),u$1("connecting");}}};case "connecting":return M&&d$1&&D?{title:m.tryAgain,onClick:async()=>{p.onActionClick?.connecting?await p.onActionClick.connecting(n):await $(getConnectorTypeFromName(d$1,D),d$1);}}:void 0}},[y$1,m,p,n,d$1,C$1,E,M,$,D])(),ie=useCallback(()=>{switch(y$1){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y$1]);return jsx(Co,{open:t,onOpenChange:Z,children:jsx(co,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y$1==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q$1,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J,{className:g.mainContent?.({modalData:n}),modalData:n,children:se()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y$1!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K}),onClick:K.onClick,disabled:K.disabled,loading:K.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K,children:K.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:ie()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,$e=o=>o,je=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r$1,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B,customization:N}){let y=h(j=>j.activeConnection),d=h(j=>j.connectionError),{LabelsProvider:S=Fe,ErrorsProvider:H=Ve}=N?.components??{},{merge:D=Ue,transform:E=Ge}=N?.labels??{},{transform:M=$e}=N?.contextValue??{},{providerTree:x=je}=N?.rendering??{},s=useMemo(()=>D(a,o||{}),[o,D]),[z,m]=useState(false),[W,C]=useState(false),[T,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,c$1]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeConnection:y,connectionError:d,modalStates:{isConnectModalOpen:z,isConnectedModalOpen:W,isChainsListOpen:T,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,z,W,T,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),co=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r$1,withImpersonated:u,withBalance:R,withChain:B,isConnectModalOpen:z,setIsConnectModalOpen:m,isConnectedModalOpen:W,setIsConnectedModalOpen:C,isChainsListOpen:T,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:c$1,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r$1,u,R,B,z,m,W,C,T,F,n,v,g,p,X,io,h$1,c$1,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(H,{customization:N?.errors}),to=jsx(S,{labels:Co,children:e}),Y=a$1||r$1?jsx(No,{withImpersonated:u,solanaRPCUrls:r$1,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r$1?jsx(r,{solanaRPCUrls:r$1,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),$=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:$})}Ke.displayName="NovaConnectProvider";async function Jn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-YYMTL3XH.js'),!0}catch{return false}}async function Qn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Xn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Yn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Zn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,Jn as getBlockchainUtilities,Qn as getEvmUtils,Xn as getSolanaUtils,Yn as initializeBlockchainSupport,Zn as isAdapterSupported};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map