@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.
Files changed (37) hide show
  1. package/dist/ToastError-BLFMIzVb.d.ts +6299 -0
  2. package/dist/ToastError-CaoiEVOK.d.cts +6299 -0
  3. package/dist/chunk-6M6INQFQ.cjs +6 -0
  4. package/dist/chunk-6M6INQFQ.cjs.map +1 -0
  5. package/dist/chunk-7FTV55DQ.cjs +2 -0
  6. package/dist/chunk-7FTV55DQ.cjs.map +1 -0
  7. package/dist/chunk-PKQHJRWO.js +6 -0
  8. package/dist/chunk-PKQHJRWO.js.map +1 -0
  9. package/dist/chunk-S5WT3DLF.js +2 -0
  10. package/dist/chunk-S5WT3DLF.js.map +1 -0
  11. package/dist/components/index.cjs +1 -1
  12. package/dist/components/index.d.cts +13 -6232
  13. package/dist/components/index.d.ts +13 -6232
  14. package/dist/components/index.js +1 -1
  15. package/dist/hooks/index.cjs +1 -1
  16. package/dist/hooks/index.d.cts +3 -1
  17. package/dist/hooks/index.d.ts +3 -1
  18. package/dist/hooks/index.js +1 -1
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +42 -12
  22. package/dist/index.d.ts +42 -12
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/{useWalletNativeBalance-6RVzdGvM.d.ts → useWalletNativeBalance-CEASeZ6Z.d.ts} +14 -2
  26. package/dist/{useWalletNativeBalance-D8Ehciju.d.cts → useWalletNativeBalance-DSt1VUWC.d.cts} +14 -2
  27. package/package.json +3 -3
  28. package/dist/ToastError-CSlbvXKT.d.cts +0 -106
  29. package/dist/ToastError-CSlbvXKT.d.ts +0 -106
  30. package/dist/chunk-A2677K5M.cjs +0 -2
  31. package/dist/chunk-A2677K5M.cjs.map +0 -1
  32. package/dist/chunk-LF6FTUUQ.js +0 -2
  33. package/dist/chunk-LF6FTUUQ.js.map +0 -1
  34. package/dist/chunk-RUYOUU6Q.cjs +0 -6
  35. package/dist/chunk-RUYOUU6Q.cjs.map +0 -1
  36. package/dist/chunk-Z2NDRIEI.js +0 -6
  37. 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-D8Ehciju.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-D8Ehciju.cjs';
3
+ import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-DSt1VUWC.cjs';
4
+ export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-DSt1VUWC.cjs';
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 { T as ToastErrorCustomization } from './ToastError-CSlbvXKT.cjs';
9
- export { g as getNetworkIcon } from './ToastError-CSlbvXKT.cjs';
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
- * and modal states while offering extensive customization options for all sub-components
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 store={store}>
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-6RVzdGvM.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-6RVzdGvM.js';
3
+ import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-CEASeZ6Z.js';
4
+ export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-CEASeZ6Z.js';
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 { T as ToastErrorCustomization } from './ToastError-CSlbvXKT.js';
9
- export { g as getNetworkIcon } from './ToastError-CSlbvXKT.js';
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
- * and modal states while offering extensive customization options for all sub-components
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 store={store}>
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