@tuwaio/nova-connect 0.1.2 → 0.1.4
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 +6299 -0
- package/dist/ToastError-CaoiEVOK.d.cts +6299 -0
- package/dist/chunk-6M6INQFQ.cjs +6 -0
- package/dist/chunk-6M6INQFQ.cjs.map +1 -0
- package/dist/chunk-7FTV55DQ.cjs +2 -0
- package/dist/chunk-7FTV55DQ.cjs.map +1 -0
- package/dist/chunk-PKQHJRWO.js +6 -0
- package/dist/chunk-PKQHJRWO.js.map +1 -0
- package/dist/chunk-S5WT3DLF.js +2 -0
- package/dist/chunk-S5WT3DLF.js.map +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +13 -6232
- package/dist/components/index.d.ts +13 -6232
- package/dist/components/index.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +3 -1
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -12
- package/dist/index.d.ts +42 -12
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{useWalletNativeBalance-6RVzdGvM.d.ts → useWalletNativeBalance-CEASeZ6Z.d.ts} +14 -2
- package/dist/{useWalletNativeBalance-D8Ehciju.d.cts → useWalletNativeBalance-DSt1VUWC.d.cts} +14 -2
- package/package.json +3 -3
- package/dist/ToastError-CSlbvXKT.d.cts +0 -106
- package/dist/ToastError-CSlbvXKT.d.ts +0 -106
- package/dist/chunk-A2677K5M.cjs +0 -2
- package/dist/chunk-A2677K5M.cjs.map +0 -1
- package/dist/chunk-LF6FTUUQ.js +0 -2
- package/dist/chunk-LF6FTUUQ.js.map +0 -1
- package/dist/chunk-RUYOUU6Q.cjs +0 -6
- package/dist/chunk-RUYOUU6Q.cjs.map +0 -1
- package/dist/chunk-Z2NDRIEI.js +0 -6
- package/dist/chunk-Z2NDRIEI.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { OrbitAdapter, WalletType } from '@tuwaio/orbit-core';
|
|
2
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-
|
|
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';
|
|
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 {
|
|
9
|
-
export {
|
|
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
10
|
import { N as NovaConnectLabels } from './types-D4Vti05g.cjs';
|
|
11
11
|
import { BaseWallet } 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';
|
|
15
|
+
import '@tuwaio/pulsar-core';
|
|
16
|
+
import '@tuwaio/nova-core';
|
|
17
|
+
import 'framer-motion';
|
|
18
|
+
import '@radix-ui/react-select';
|
|
15
19
|
|
|
16
20
|
type CustomToastErrorProps = {
|
|
17
21
|
title: string;
|
|
@@ -206,8 +210,17 @@ type NovaConnectProviderCustomization = {
|
|
|
206
210
|
ErrorsProvider: ReactNode;
|
|
207
211
|
LabelsProvider: ReactNode;
|
|
208
212
|
MainContent: ReactNode;
|
|
213
|
+
ConnectModal: ReactNode;
|
|
214
|
+
ConnectedModal: ReactNode;
|
|
209
215
|
}, context: ProviderContext) => ReactNode;
|
|
210
216
|
};
|
|
217
|
+
/** Modal customizations */
|
|
218
|
+
modals?: {
|
|
219
|
+
/** ConnectModal customization */
|
|
220
|
+
connectModal?: ConnectModalCustomization;
|
|
221
|
+
/** ConnectedModal customization */
|
|
222
|
+
connectedModal?: ConnectedModalCustomization;
|
|
223
|
+
};
|
|
211
224
|
};
|
|
212
225
|
/**
|
|
213
226
|
* Extended props for NovaConnectProvider with full customization capabilities
|
|
@@ -220,11 +233,12 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
220
233
|
* Main NovaConnect provider component with comprehensive customization capabilities.
|
|
221
234
|
*
|
|
222
235
|
* This provider manages wallet connection state, error handling, internationalization,
|
|
223
|
-
*
|
|
224
|
-
* and behaviors.
|
|
236
|
+
* modal states, and renders the modal components centrally while offering extensive
|
|
237
|
+
* customization options for all sub-components and behaviors.
|
|
225
238
|
*
|
|
226
239
|
* Features:
|
|
227
240
|
* - Complete wallet connection state management
|
|
241
|
+
* - Centralized modal rendering and state management
|
|
228
242
|
* - Customizable error handling through ErrorsProvider
|
|
229
243
|
* - Flexible internationalization system
|
|
230
244
|
* - Modal and UI state coordination
|
|
@@ -233,7 +247,13 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
233
247
|
*
|
|
234
248
|
* @example Basic usage
|
|
235
249
|
* ```tsx
|
|
236
|
-
* <NovaConnectProvider
|
|
250
|
+
* <NovaConnectProvider
|
|
251
|
+
* store={store}
|
|
252
|
+
* appChains={[mainnet, sepolia, polygon]} // Viem chains
|
|
253
|
+
* solanaRPCUrls={{
|
|
254
|
+
* 'mainnet': 'https://api.mainnet-beta.solana.com'
|
|
255
|
+
* }}
|
|
256
|
+
* >
|
|
237
257
|
* <App />
|
|
238
258
|
* </NovaConnectProvider>
|
|
239
259
|
* ```
|
|
@@ -241,16 +261,26 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
241
261
|
* @example With customization
|
|
242
262
|
* ```tsx
|
|
243
263
|
* <NovaConnectProvider
|
|
244
|
-
* store={store}
|
|
245
264
|
* labels={customLabels}
|
|
265
|
+
* appChains={appChains}
|
|
266
|
+
* solanaRPCUrls={solanaRPCUrls}
|
|
267
|
+
* transactionPool={txPool}
|
|
268
|
+
* pulsarAdapter={adapters}
|
|
269
|
+
* withImpersonated
|
|
270
|
+
* withBalance
|
|
271
|
+
* withChain
|
|
246
272
|
* customization={{
|
|
247
273
|
* errors: {
|
|
248
274
|
* position: 'bottom-right',
|
|
249
275
|
* autoClose: 5000,
|
|
250
|
-
* components: {
|
|
251
|
-
* ToastError: CustomToastError
|
|
252
|
-
* }
|
|
253
276
|
* },
|
|
277
|
+
* modals: {
|
|
278
|
+
* connectModal: {
|
|
279
|
+
* classNames: {
|
|
280
|
+
* container: () => 'custom-modal-style'
|
|
281
|
+
* }
|
|
282
|
+
* }
|
|
283
|
+
* }
|
|
254
284
|
* }}
|
|
255
285
|
* >
|
|
256
286
|
* <App />
|
|
@@ -259,7 +289,7 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
259
289
|
*
|
|
260
290
|
* @param props - Provider configuration and customization options
|
|
261
291
|
*/
|
|
262
|
-
declare function NovaConnectProvider({ labels, children, customization }: NovaConnectProviderPropsWithCustomization): react_jsx_runtime.JSX.Element;
|
|
292
|
+
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, customization, }: NovaConnectProviderPropsWithCustomization): react_jsx_runtime.JSX.Element;
|
|
263
293
|
declare namespace NovaConnectProvider {
|
|
264
294
|
var displayName: string;
|
|
265
295
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { OrbitAdapter, WalletType } from '@tuwaio/orbit-core';
|
|
2
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-
|
|
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';
|
|
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 {
|
|
9
|
-
export {
|
|
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
10
|
import { N as NovaConnectLabels } from './types-D4Vti05g.js';
|
|
11
11
|
import { BaseWallet } 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';
|
|
15
|
+
import '@tuwaio/pulsar-core';
|
|
16
|
+
import '@tuwaio/nova-core';
|
|
17
|
+
import 'framer-motion';
|
|
18
|
+
import '@radix-ui/react-select';
|
|
15
19
|
|
|
16
20
|
type CustomToastErrorProps = {
|
|
17
21
|
title: string;
|
|
@@ -206,8 +210,17 @@ type NovaConnectProviderCustomization = {
|
|
|
206
210
|
ErrorsProvider: ReactNode;
|
|
207
211
|
LabelsProvider: ReactNode;
|
|
208
212
|
MainContent: ReactNode;
|
|
213
|
+
ConnectModal: ReactNode;
|
|
214
|
+
ConnectedModal: ReactNode;
|
|
209
215
|
}, context: ProviderContext) => ReactNode;
|
|
210
216
|
};
|
|
217
|
+
/** Modal customizations */
|
|
218
|
+
modals?: {
|
|
219
|
+
/** ConnectModal customization */
|
|
220
|
+
connectModal?: ConnectModalCustomization;
|
|
221
|
+
/** ConnectedModal customization */
|
|
222
|
+
connectedModal?: ConnectedModalCustomization;
|
|
223
|
+
};
|
|
211
224
|
};
|
|
212
225
|
/**
|
|
213
226
|
* Extended props for NovaConnectProvider with full customization capabilities
|
|
@@ -220,11 +233,12 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
220
233
|
* Main NovaConnect provider component with comprehensive customization capabilities.
|
|
221
234
|
*
|
|
222
235
|
* This provider manages wallet connection state, error handling, internationalization,
|
|
223
|
-
*
|
|
224
|
-
* and behaviors.
|
|
236
|
+
* modal states, and renders the modal components centrally while offering extensive
|
|
237
|
+
* customization options for all sub-components and behaviors.
|
|
225
238
|
*
|
|
226
239
|
* Features:
|
|
227
240
|
* - Complete wallet connection state management
|
|
241
|
+
* - Centralized modal rendering and state management
|
|
228
242
|
* - Customizable error handling through ErrorsProvider
|
|
229
243
|
* - Flexible internationalization system
|
|
230
244
|
* - Modal and UI state coordination
|
|
@@ -233,7 +247,13 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
233
247
|
*
|
|
234
248
|
* @example Basic usage
|
|
235
249
|
* ```tsx
|
|
236
|
-
* <NovaConnectProvider
|
|
250
|
+
* <NovaConnectProvider
|
|
251
|
+
* store={store}
|
|
252
|
+
* appChains={[mainnet, sepolia, polygon]} // Viem chains
|
|
253
|
+
* solanaRPCUrls={{
|
|
254
|
+
* 'mainnet': 'https://api.mainnet-beta.solana.com'
|
|
255
|
+
* }}
|
|
256
|
+
* >
|
|
237
257
|
* <App />
|
|
238
258
|
* </NovaConnectProvider>
|
|
239
259
|
* ```
|
|
@@ -241,16 +261,26 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
241
261
|
* @example With customization
|
|
242
262
|
* ```tsx
|
|
243
263
|
* <NovaConnectProvider
|
|
244
|
-
* store={store}
|
|
245
264
|
* labels={customLabels}
|
|
265
|
+
* appChains={appChains}
|
|
266
|
+
* solanaRPCUrls={solanaRPCUrls}
|
|
267
|
+
* transactionPool={txPool}
|
|
268
|
+
* pulsarAdapter={adapters}
|
|
269
|
+
* withImpersonated
|
|
270
|
+
* withBalance
|
|
271
|
+
* withChain
|
|
246
272
|
* customization={{
|
|
247
273
|
* errors: {
|
|
248
274
|
* position: 'bottom-right',
|
|
249
275
|
* autoClose: 5000,
|
|
250
|
-
* components: {
|
|
251
|
-
* ToastError: CustomToastError
|
|
252
|
-
* }
|
|
253
276
|
* },
|
|
277
|
+
* modals: {
|
|
278
|
+
* connectModal: {
|
|
279
|
+
* classNames: {
|
|
280
|
+
* container: () => 'custom-modal-style'
|
|
281
|
+
* }
|
|
282
|
+
* }
|
|
283
|
+
* }
|
|
254
284
|
* }}
|
|
255
285
|
* >
|
|
256
286
|
* <App />
|
|
@@ -259,7 +289,7 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
259
289
|
*
|
|
260
290
|
* @param props - Provider configuration and customization options
|
|
261
291
|
*/
|
|
262
|
-
declare function NovaConnectProvider({ labels, children, customization }: NovaConnectProviderPropsWithCustomization): react_jsx_runtime.JSX.Element;
|
|
292
|
+
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, customization, }: NovaConnectProviderPropsWithCustomization): react_jsx_runtime.JSX.Element;
|
|
263
293
|
declare namespace NovaConnectProvider {
|
|
264
294
|
var displayName: string;
|
|
265
295
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {N}from'./chunk-Z2NDRIEI.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-Z2NDRIEI.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 {h,g,c}from'./chunk-LF6FTUUQ.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-LF6FTUUQ.js';import {a}from'./chunk-TAV7EL23.js';import {h as h$1}from'./chunk-MPEJHQKC.js';import {OrbitAdapter}from'@tuwaio/orbit-core';import {ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {useRef,useMemo,useCallback,useEffect,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var Cr=({title:r,rawError:o,onCopyComplete:i,errorType:v,isConnected:n,...c})=>jsx(N,{title:r,rawError:o,onCopyComplete:i,customization:c.customization}),mr=r=>{let o=h();return jsx(ToastContainer,{...r,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},vr=(r,o)=>{r(o.title,o.rawError,o.errorKey);},fr=r=>{r();},yr=(r,o)=>{r&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",o.substring(0,100));},Pr=r=>r,Tr=r=>r;function X({containerId:r="nova-connect-errors",position:o="top-center",autoClose:i=7e3,draggable:v=false,customization:n}){let c=h(),g=h$1(t=>t.switchNetworkError),N=h$1(t=>t.activeWallet),b=h$1(t=>t.walletConnectionError),{ToastError:w=Cr,Container:q=mr}=n?.components??{},{showError:L=vr,dismissError:f=fr,onCopyComplete:x=yr}=n?.handlers??{},{errorTitle:y=Pr,errorHash:M=Tr}=n??{},d=useRef(new Set),u=useRef(null),e=useMemo(()=>{let t=!!b,s=!!g,a=!!N?.isConnected;return {hasWalletError:t,hasSwitchError:s,isConnected:a,hasAnyError:t||s,primaryError:b||g||null,errorType:t?"wallet":s?"switch":null}},[b,g,N?.isConnected]),S=useMemo(()=>{switch(e.errorType){case "wallet":return c.walletConnectionError;case "switch":return c.errorWhenChainSwitching;default:return c.somethingWentWrong}},[e.errorType,c]),P=useMemo(()=>y(S,{errorType:e.errorType}),[y,S,e.errorType]),O=useMemo(()=>e.primaryError?`${e.errorType}-${e.primaryError.substring(0,50)}`:null,[e.primaryError,e.errorType]),C=useMemo(()=>M(O,{primaryError:e.primaryError,errorType:e.errorType}),[M,O,e.primaryError,e.errorType]),p=useCallback(()=>{f(()=>{u.current&&(toast.dismiss(u.current),u.current=null),toast.dismiss({containerId:r});});},[r,f]),R=useCallback((t,s)=>{x(t,s,e.errorType);},[x,e.errorType]),A=useCallback((t,s,a)=>{if(p(),!d.current.has(a))try{let h={containerId:r,toastId:a,onClose:()=>{d.current.delete(a),u.current=null;}},T=n?.toastOptions?.error?.({title:t,rawError:s,errorType:e.errorType,isConnected:e.isConnected}),$={...h,...T};toast.error(jsx(w,{title:t,rawError:s,errorType:e.errorType,isConnected:e.isConnected,onCopyComplete:k=>R(k,s),customization:n?.toastErrorCustomization}),$),d.current.add(a),u.current=a;}catch(h){console.error("Failed to show error toast:",h);}},[p,r,n?.toastOptions?.error,n?.toastErrorCustomization,w,e.errorType,e.isConnected,R]),B=useCallback((t,s,a)=>{L(A,{title:t,rawError:s,errorKey:a,errorType:e.errorType});},[A,L,e.errorType]);useEffect(()=>{let{hasAnyError:t,isConnected:s,primaryError:a}=e;if(s&&!t){p(),d.current.clear();return}if(t&&a&&C){if(s&&e.errorType!=="switch")return;B(P,a,C);}},[e,P,C,B,p]),useEffect(()=>()=>{p(),d.current.clear();},[p]);let H=useMemo(()=>n?.classNames?.container?n.classNames.container({hasErrors:e.hasAnyError,errorType:e.errorType}):"novacon:p-0 novacon:bg-transparent",[n,e.hasAnyError,e.errorType]),W=useMemo(()=>({containerId:r,position:o,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:i,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:v,pauseOnHover:true,theme:"light",transition:Bounce}),[r,o,i,v]),V=useMemo(()=>({...W,...n?.containerProps,className:H}),[W,n?.containerProps,H]);return jsx(q,{...V})}X.displayName="ErrorsProvider";function Y({labels:r,children:o}){let i=useMemo(()=>r,[r]);if(process.env.NODE_ENV==="development"){(!r||typeof r!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(c=>!(c in r));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:i,children:o})}Y.displayName="NovaConnectLabelsProvider";var gr=({labels:r,children:o})=>jsx(Y,{labels:r,children:o}),Nr=({customization:r})=>jsx(X,{customization:r}),wr=(r,o)=>deepMerge(r,o||{}),Lr=r=>r,xr=r=>r,Mr=(r,o,i)=>r;function Sr({labels:r,children:o,customization:i}){let v=h$1(I=>I.activeWallet),n=h$1(I=>I.walletConnectionError),{LabelsProvider:c$1=gr,ErrorsProvider:g=Nr}=i?.components??{},{merge:N=wr,transform:b=Lr}=i?.labels??{},{transform:w=xr}=i?.contextValue??{},{providerTree:q=Mr}=i?.rendering??{},L=useMemo(()=>N(a,r||{}),[r,N]),[f,x]=useState(false),[y,M]=useState(false),[d,u]=useState(false),[e,S]=useState(false),[P,O]=useState("idle"),[C,p]=useState("connectors"),[R,A]=useState(void 0),[B,H]=useState(void 0),[W,V]=useState(""),[t,s]=useState(false),[a$1,h]=useState("main"),T=useMemo(()=>({isConnected:t,activeWallet:v,walletConnectionError:n,modalStates:{isConnectModalOpen:f,isConnectedModalOpen:y,isChainsListOpen:d,isChainsListOpenMobile:e},contentTypes:{connectModal:C,connectedModal:a$1},statuses:{connectedButton:P}}),[t,v,n,f,y,d,e,C,a$1,P]),$=useMemo(()=>b(L,T),[L,b,T]),k=useMemo(()=>w({isConnectModalOpen:f,setIsConnectModalOpen:x,isConnectedModalOpen:y,setIsConnectedModalOpen:M,isChainsListOpen:d,setIsChainsListOpen:u,isChainsListOpenMobile:e,setIsChainsListOpenMobile:S,connectedButtonStatus:P,setConnectedButtonStatus:O,connectedModalContentType:a$1,setConnectedModalContentType:h,connectModalContentType:C,setConnectModalContentType:p,selectedAdapter:R,setSelectedAdapter:A,activeConnector:B,setActiveConnector:H,impersonatedAddress:W,setImpersonatedAddress:V,isConnected:t,setIsConnected:s},T),[f,x,y,M,d,u,e,S,P,O,a$1,h,C,p,R,A,B,H,W,V,t,s,w,T]),F=jsx(g,{customization:i?.errors}),_=jsx(c$1,{labels:$,children:o}),ir=jsxs(c.Provider,{value:k,children:[F,_]}),lr=jsxs(c.Provider,{value:k,children:[F,_]}),cr=q(lr,{ErrorsProvider:F,LabelsProvider:_,MainContent:ir},T);return jsx(Fragment,{children:cr})}Sr.displayName="NovaConnectProvider";async function Ye(){let{getAllAdaptersStatus:r}=await import('./getChainsListByWalletType-VMQ4BO2B.js');return {hasEvmUtils:await Z(),hasSolanaUtils:await rr(),adaptersStatus:r()}}async function Z(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function rr(){try{return await import('./utils-SUIRQJIA.js'),!0}catch{return false}}async function Ze(){try{return {available:!0,...await import('./evm/index.js')}}catch(r){return {available:false,error:r instanceof Error?r.message:"EVM utilities not available"}}}async function ro(){try{return {available:!0,...await import('./solana/index.js')}}catch(r){return {available:false,error:r instanceof Error?r.message:"Solana utilities not available"}}}async function eo(){let r={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:o}=await import('./getChainsListByWalletType-VMQ4BO2B.js');await o([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),r.evm=await Z(),r.solana=await rr();}catch(o){let i=o instanceof Error?o.message:"Unknown initialization error";r.errors.push(i);}return r}async function oo(r){switch(r){case OrbitAdapter.EVM:return Z();case OrbitAdapter.SOLANA:return rr();case OrbitAdapter.Starknet:return false;default:return false}}export{X as ErrorsProvider,Y as NovaConnectLabelsProvider,Sr as NovaConnectProvider,Ye as getBlockchainUtilities,Ze as getEvmUtils,ro as getSolanaUtils,eo as initializeBlockchainSupport,oo as isAdapterSupported};//# sourceMappingURL=index.js.map
|
|
1
|
+
import {f as f$1,b,K,F,J,C,M,I,L,i,B,N}from'./chunk-PKQHJRWO.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-PKQHJRWO.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
|
|
2
2
|
//# sourceMappingURL=index.js.map
|