@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.
- package/dist/{ToastError-BLFMIzVb.d.ts → ToastError-DYsDxJFa.d.ts} +24 -35
- package/dist/{ToastError-CaoiEVOK.d.cts → ToastError-Dsvd_ihU.d.cts} +24 -35
- package/dist/chunk-6DTDABLH.js +6 -0
- package/dist/chunk-6DTDABLH.js.map +1 -0
- package/dist/chunk-7OWIFKZE.cjs +3 -0
- package/dist/chunk-7OWIFKZE.cjs.map +1 -0
- package/dist/chunk-B2NRY4JV.js +2 -0
- package/dist/chunk-B2NRY4JV.js.map +1 -0
- package/dist/chunk-CZLELKCK.js +3 -0
- package/dist/chunk-CZLELKCK.js.map +1 -0
- package/dist/chunk-F2VSTHQ4.js +2 -0
- package/dist/chunk-F2VSTHQ4.js.map +1 -0
- package/dist/{chunk-OA6MB7CZ.cjs → chunk-FK4AEST5.cjs} +2 -2
- package/dist/{chunk-OA6MB7CZ.cjs.map → chunk-FK4AEST5.cjs.map} +1 -1
- package/dist/chunk-HWK6XNDD.cjs +2 -0
- package/dist/chunk-HWK6XNDD.cjs.map +1 -0
- package/dist/chunk-L5MEEHVK.cjs +2 -0
- package/dist/chunk-L5MEEHVK.cjs.map +1 -0
- package/dist/chunk-P5ZBSLGK.js +2 -0
- package/dist/{chunk-MPEJHQKC.js.map → chunk-P5ZBSLGK.js.map} +1 -1
- package/dist/chunk-Q646MQX2.cjs +6 -0
- package/dist/chunk-Q646MQX2.cjs.map +1 -0
- package/dist/chunk-YI7RYSN6.cjs +2 -0
- package/dist/chunk-YI7RYSN6.cjs.map +1 -0
- package/dist/chunk-ZKENDEEY.js +2 -0
- package/dist/chunk-ZKENDEEY.js.map +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +1 -1
- package/dist/evm-BVE2G4MP.js +2 -0
- package/dist/evm-BVE2G4MP.js.map +1 -0
- package/dist/evm-DU3VGIPD.cjs +2 -0
- package/dist/evm-DU3VGIPD.cjs.map +1 -0
- package/dist/getChainsListByConnectorType-7W3NDNRC.cjs +2 -0
- package/dist/{getChainsListByWalletType-VMQ4BO2B.js.map → getChainsListByConnectorType-7W3NDNRC.cjs.map} +1 -1
- package/dist/getChainsListByConnectorType-FGTS3CWJ.js +2 -0
- package/dist/{getChainsListByWalletType-CDPECVNS.cjs.map → getChainsListByConnectorType-FGTS3CWJ.js.map} +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +23 -4
- package/dist/hooks/index.d.ts +23 -4
- package/dist/hooks/index.js +1 -1
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.d.cts +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +31 -7
- package/dist/index.d.cts +23 -23
- package/dist/index.d.ts +23 -23
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/satellite/index.cjs +1 -1
- package/dist/satellite/index.d.cts +1 -1
- package/dist/satellite/index.d.ts +1 -1
- package/dist/satellite/index.js +1 -1
- package/dist/solana/index.cjs +1 -1
- package/dist/solana/index.js +1 -1
- package/dist/solana-CDGGMN74.cjs +2 -0
- package/dist/solana-CDGGMN74.cjs.map +1 -0
- package/dist/solana-DHXEV2TG.js +2 -0
- package/dist/solana-DHXEV2TG.js.map +1 -0
- package/dist/{types-D4Vti05g.d.cts → types-C81YJbpy.d.cts} +3 -0
- package/dist/{types-D4Vti05g.d.ts → types-C81YJbpy.d.ts} +3 -0
- package/dist/{useWalletNativeBalance-DSt1VUWC.d.cts → useWalletNativeBalance-9YgoXwBH.d.cts} +2 -2
- package/dist/{useWalletNativeBalance-CEASeZ6Z.d.ts → useWalletNativeBalance-DSYfGV0p.d.ts} +2 -2
- package/dist/utils-TF3RVHPT.cjs +2 -0
- package/dist/{utils-H5O25MTI.cjs.map → utils-TF3RVHPT.cjs.map} +1 -1
- package/dist/utils-YYMTL3XH.js +2 -0
- package/dist/{utils-SUIRQJIA.js.map → utils-YYMTL3XH.js.map} +1 -1
- package/package.json +19 -19
- package/dist/chunk-7F5QM2LC.js +0 -6
- package/dist/chunk-7F5QM2LC.js.map +0 -1
- package/dist/chunk-7FTV55DQ.cjs +0 -2
- package/dist/chunk-7FTV55DQ.cjs.map +0 -1
- package/dist/chunk-B26D6OI7.cjs +0 -6
- package/dist/chunk-B26D6OI7.cjs.map +0 -1
- package/dist/chunk-DYDY3FCT.cjs +0 -2
- package/dist/chunk-DYDY3FCT.cjs.map +0 -1
- package/dist/chunk-J4TY3CJF.js +0 -2
- package/dist/chunk-J4TY3CJF.js.map +0 -1
- package/dist/chunk-MPEJHQKC.js +0 -2
- package/dist/chunk-MQGDTFY7.js +0 -2
- package/dist/chunk-MQGDTFY7.js.map +0 -1
- package/dist/chunk-NMQZA377.cjs +0 -2
- package/dist/chunk-NMQZA377.cjs.map +0 -1
- package/dist/chunk-QERPNHKX.cjs +0 -2
- package/dist/chunk-QERPNHKX.cjs.map +0 -1
- package/dist/chunk-S5WT3DLF.js +0 -2
- package/dist/chunk-S5WT3DLF.js.map +0 -1
- package/dist/chunk-TAV7EL23.js +0 -2
- package/dist/chunk-TAV7EL23.js.map +0 -1
- package/dist/evm-7NHOTSAK.cjs +0 -2
- package/dist/evm-7NHOTSAK.cjs.map +0 -1
- package/dist/evm-RBGEX4L3.js +0 -2
- package/dist/evm-RBGEX4L3.js.map +0 -1
- package/dist/getChainsListByWalletType-CDPECVNS.cjs +0 -2
- package/dist/getChainsListByWalletType-VMQ4BO2B.js +0 -2
- package/dist/solana-GLHHYZDQ.js +0 -2
- package/dist/solana-GLHHYZDQ.js.map +0 -1
- package/dist/solana-JUU54KQ3.cjs +0 -2
- package/dist/solana-JUU54KQ3.cjs.map +0 -1
- package/dist/utils-H5O25MTI.cjs +0 -2
- 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,
|
|
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-
|
|
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-
|
|
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-
|
|
9
|
-
export { aK as getNetworkIcon } from './ToastError-
|
|
10
|
-
import { N as NovaConnectLabels } from './types-
|
|
11
|
-
import {
|
|
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
|
-
|
|
161
|
+
activeConnection: BaseConnector | undefined;
|
|
162
162
|
/** Current wallet connection error */
|
|
163
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
344
|
-
*
|
|
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
|
|
354
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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 {
|
|
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,
|
|
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,
|
|
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-
|
|
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-
|
|
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-
|
|
9
|
-
export { aK as getNetworkIcon } from './ToastError-
|
|
10
|
-
import { N as NovaConnectLabels } from './types-
|
|
11
|
-
import {
|
|
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
|
-
|
|
161
|
+
activeConnection: BaseConnector | undefined;
|
|
162
162
|
/** Current wallet connection error */
|
|
163
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
344
|
-
*
|
|
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
|
|
354
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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 {
|
|
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,
|
|
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
|