@tuwaio/nova-connect 0.4.12 → 0.5.1
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/README.md +7 -3
- package/dist/chunk-BOOFGSLL.js +1 -0
- package/dist/chunk-G5BCVG44.js +2 -0
- package/dist/chunk-KYHX7HBC.cjs +2 -0
- package/dist/chunk-NIHARC32.cjs +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +3 -2
- package/dist/components/index.d.ts +3 -2
- package/dist/components/index.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +31 -3
- package/dist/hooks/index.d.ts +31 -3
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +1 -1
- package/dist/{useWalletNativeBalance-DX5MO1-z.d.cts → useWalletNativeBalance-B64PI3UW.d.cts} +29 -1
- package/dist/{useWalletNativeBalance-B6w7HC-n.d.ts → useWalletNativeBalance-Dq7RXM0z.d.ts} +29 -1
- package/package.json +21 -15
- package/dist/chunk-JX6W4V4K.js +0 -2
- package/dist/chunk-L72JK63U.cjs +0 -1
- package/dist/chunk-Q7VMS3GO.js +0 -1
- package/dist/chunk-TQ3THPZD.cjs +0 -2
|
@@ -2,14 +2,15 @@ import { Variants, TargetAndTransition, VariantLabels, LegacyAnimationControls,
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
4
4
|
import * as Select from '@radix-ui/react-select';
|
|
5
|
-
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps,
|
|
6
|
-
export {
|
|
5
|
+
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-B64PI3UW.cjs';
|
|
6
|
+
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-B64PI3UW.cjs';
|
|
7
7
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
8
8
|
import { Dialog, DialogContent, StarsBackground } from '@tuwaio/nova-core';
|
|
9
9
|
import { Transaction } from '@tuwaio/pulsar-core';
|
|
10
10
|
import { ConnectorType, OrbitAdapter, RecentlyConnectedConnectorData, TuwaErrorState } from '@tuwaio/orbit-core';
|
|
11
11
|
import { Connector } from '@tuwaio/satellite-react';
|
|
12
12
|
import '../types-DxUn8qmU.cjs';
|
|
13
|
+
import '@tuwaio/siwx-react';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* @file BalanceDisplay component with comprehensive customization options.
|
|
@@ -2,14 +2,15 @@ import { Variants, TargetAndTransition, VariantLabels, LegacyAnimationControls,
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
4
4
|
import * as Select from '@radix-ui/react-select';
|
|
5
|
-
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps,
|
|
6
|
-
export {
|
|
5
|
+
import { I as InitialChains, B as ButtonTxStatus, N as NovaConnectProviderProps, q as useNovaConnectLabels, d as NativeBalanceResult, a as ConnectedContentType, v as ConnectedModalTxHistoryProps, w as ConnectedModalTxHistoryCustomization, C as ConnectContentType } from '../useWalletNativeBalance-Dq7RXM0z.js';
|
|
6
|
+
export { x as ConnectedModalTxHistory, y as LocalTransactionsHistoryCustomization, z as LocalTxPagination } from '../useWalletNativeBalance-Dq7RXM0z.js';
|
|
7
7
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
8
8
|
import { Dialog, DialogContent, StarsBackground } from '@tuwaio/nova-core';
|
|
9
9
|
import { Transaction } from '@tuwaio/pulsar-core';
|
|
10
10
|
import { ConnectorType, OrbitAdapter, RecentlyConnectedConnectorData, TuwaErrorState } from '@tuwaio/orbit-core';
|
|
11
11
|
import { Connector } from '@tuwaio/satellite-react';
|
|
12
12
|
import '../types-DxUn8qmU.js';
|
|
13
|
+
import '@tuwaio/siwx-react';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* @file BalanceDisplay component with comprehensive customization options.
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{u as AboutWallets,a as BalanceDisplay,b as ChainListRenderer,g as ChainSelector,l as ConnectButton,w as ConnectCard,G as ConnectModal,j as ConnectedContent,t as ConnectedModal,m as ConnectedModalFooter,q as ConnectedModalMainContent,n as ConnectedModalNameAndBalance,r as ConnectedModalTxHistory,x as Connecting,s as ConnectionsContent,y as ConnectorsBlock,A as ConnectorsSelections,z as Disclaimer,B as GetWallet,p as IconButton,C as ImpersonateForm,D as LegalDisclaimer,E as NetworkSelections,F as NetworkTabs,v as RecentBadge,f as ScrollableChainList,e as SelectContentAnimated,i as StatusIcon,c as ToBottomButton,d as ToTopButton,H as ToastError,k as WaitForConnectionContent,h as WalletAvatar,o as WalletIcon}from'../chunk-
|
|
1
|
+
export{u as AboutWallets,a as BalanceDisplay,b as ChainListRenderer,g as ChainSelector,l as ConnectButton,w as ConnectCard,G as ConnectModal,j as ConnectedContent,t as ConnectedModal,m as ConnectedModalFooter,q as ConnectedModalMainContent,n as ConnectedModalNameAndBalance,r as ConnectedModalTxHistory,x as Connecting,s as ConnectionsContent,y as ConnectorsBlock,A as ConnectorsSelections,z as Disclaimer,B as GetWallet,p as IconButton,C as ImpersonateForm,D as LegalDisclaimer,E as NetworkSelections,F as NetworkTabs,v as RecentBadge,f as ScrollableChainList,e as SelectContentAnimated,i as StatusIcon,c as ToBottomButton,d as ToTopButton,H as ToastError,k as WaitForConnectionContent,h as WalletAvatar,o as WalletIcon}from'../chunk-G5BCVG44.js';import'../chunk-BOOFGSLL.js';import'../chunk-S3IRVZMG.js';import'../chunk-NQ5AECZQ.js';import'../chunk-EYP534IS.js';
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkNIHARC32_cjs=require('../chunk-NIHARC32.cjs');require('../chunk-K44IHM6B.cjs'),require('../chunk-MGBN4EIT.cjs'),require('../chunk-V6XDFRWV.cjs');Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkNIHARC32_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.o}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkNIHARC32_cjs.n}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.m}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkNIHARC32_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkNIHARC32_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkNIHARC32_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkNIHARC32_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkNIHARC32_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkNIHARC32_cjs.y}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkNIHARC32_cjs.z}});
|
package/dist/hooks/index.d.cts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { I as InitialChains } from '../useWalletNativeBalance-
|
|
2
|
-
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance,
|
|
1
|
+
import { I as InitialChains } from '../useWalletNativeBalance-B64PI3UW.cjs';
|
|
2
|
+
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-B64PI3UW.cjs';
|
|
3
|
+
import * as _tuwaio_satellite_core from '@tuwaio/satellite-core';
|
|
4
|
+
import * as _tuwaio_satellite_solana from '@tuwaio/satellite-solana';
|
|
5
|
+
import * as _tuwaio_satellite_evm from '@tuwaio/satellite-evm';
|
|
6
|
+
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
3
7
|
import 'react';
|
|
4
8
|
import '@tuwaio/orbit-core';
|
|
5
9
|
import '@tuwaio/pulsar-core';
|
|
@@ -70,6 +74,30 @@ interface UseGetWalletNameAndAvatarOptions {
|
|
|
70
74
|
*/
|
|
71
75
|
declare function useGetWalletNameAndAvatar(options: UseGetWalletNameAndAvatarOptions): WalletNameAndAvatarData;
|
|
72
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Options for the `useNovaSiwx` hook.
|
|
79
|
+
*/
|
|
80
|
+
interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
81
|
+
/** Optional backend verification callback */
|
|
82
|
+
verifier?: UseSiwxSignInOptions['verifier'];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* React hook that exposes SIWX authentication controls within NovaConnect applications.
|
|
86
|
+
*
|
|
87
|
+
* @param options - Default SIWX field options and verifier callback.
|
|
88
|
+
* @returns Object containing `signIn` and `signOut` handlers.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```tsx
|
|
92
|
+
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier });
|
|
93
|
+
* await signIn();
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
declare function useNovaSiwx(options?: UseNovaSiwxOptions): {
|
|
97
|
+
signIn: (overrideConnection?: _tuwaio_satellite_core.Connector<_tuwaio_satellite_evm.EVMConnection | _tuwaio_satellite_solana.SolanaConnection> | undefined, customVerifier?: UseSiwxSignInOptions["verifier"]) => Promise<void>;
|
|
98
|
+
signOut: () => void;
|
|
99
|
+
};
|
|
100
|
+
|
|
73
101
|
/**
|
|
74
102
|
* Props for the useWalletChainsList hook
|
|
75
103
|
*/
|
|
@@ -89,4 +117,4 @@ declare function useWalletChainsList({ activeConnection, appChains, solanaRPCUrl
|
|
|
89
117
|
isLoading: boolean;
|
|
90
118
|
};
|
|
91
119
|
|
|
92
|
-
export { type WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList };
|
|
120
|
+
export { type UseNovaSiwxOptions, type WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList };
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { I as InitialChains } from '../useWalletNativeBalance-
|
|
2
|
-
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance,
|
|
1
|
+
import { I as InitialChains } from '../useWalletNativeBalance-Dq7RXM0z.js';
|
|
2
|
+
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from '../useWalletNativeBalance-Dq7RXM0z.js';
|
|
3
|
+
import * as _tuwaio_satellite_core from '@tuwaio/satellite-core';
|
|
4
|
+
import * as _tuwaio_satellite_solana from '@tuwaio/satellite-solana';
|
|
5
|
+
import * as _tuwaio_satellite_evm from '@tuwaio/satellite-evm';
|
|
6
|
+
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
3
7
|
import 'react';
|
|
4
8
|
import '@tuwaio/orbit-core';
|
|
5
9
|
import '@tuwaio/pulsar-core';
|
|
@@ -70,6 +74,30 @@ interface UseGetWalletNameAndAvatarOptions {
|
|
|
70
74
|
*/
|
|
71
75
|
declare function useGetWalletNameAndAvatar(options: UseGetWalletNameAndAvatarOptions): WalletNameAndAvatarData;
|
|
72
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Options for the `useNovaSiwx` hook.
|
|
79
|
+
*/
|
|
80
|
+
interface UseNovaSiwxOptions extends SatelliteSiwxFieldOptions {
|
|
81
|
+
/** Optional backend verification callback */
|
|
82
|
+
verifier?: UseSiwxSignInOptions['verifier'];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* React hook that exposes SIWX authentication controls within NovaConnect applications.
|
|
86
|
+
*
|
|
87
|
+
* @param options - Default SIWX field options and verifier callback.
|
|
88
|
+
* @returns Object containing `signIn` and `signOut` handlers.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```tsx
|
|
92
|
+
* const { signIn, signOut } = useNovaSiwx({ verifier: myVerifier });
|
|
93
|
+
* await signIn();
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
declare function useNovaSiwx(options?: UseNovaSiwxOptions): {
|
|
97
|
+
signIn: (overrideConnection?: _tuwaio_satellite_core.Connector<_tuwaio_satellite_evm.EVMConnection | _tuwaio_satellite_solana.SolanaConnection> | undefined, customVerifier?: UseSiwxSignInOptions["verifier"]) => Promise<void>;
|
|
98
|
+
signOut: () => void;
|
|
99
|
+
};
|
|
100
|
+
|
|
73
101
|
/**
|
|
74
102
|
* Props for the useWalletChainsList hook
|
|
75
103
|
*/
|
|
@@ -89,4 +117,4 @@ declare function useWalletChainsList({ activeConnection, appChains, solanaRPCUrl
|
|
|
89
117
|
isLoading: boolean;
|
|
90
118
|
};
|
|
91
119
|
|
|
92
|
-
export { type WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList };
|
|
120
|
+
export { type UseNovaSiwxOptions, type WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList };
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
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,
|
|
1
|
+
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 useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'../chunk-BOOFGSLL.js';import'../chunk-S3IRVZMG.js';import'../chunk-NQ5AECZQ.js';import'../chunk-EYP534IS.js';
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkTQ3THPZD_cjs=require('./chunk-TQ3THPZD.cjs'),chunkL72JK63U_cjs=require('./chunk-L72JK63U.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime');var Ro=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:t,...u})=>jsxRuntime.jsx(chunkTQ3THPZD_cjs.H,{title:o,rawError:e,onCopyComplete:r,customization:u.customization}),Bo=o=>{let e=chunkL72JK63U_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Ao=(o,e)=>{o(e.title,e.rawError,e.errorKey);},zo=o=>{o();},ko=(o,e)=>{if(o&&process.env.NODE_ENV==="development"){let r=typeof e=="string"?e:e.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ho=o=>o,Vo=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:t}){let u=chunkL72JK63U_cjs.h(),A=chunkV6XDFRWV_cjs.d(n=>n.switchNetworkError),_=chunkV6XDFRWV_cjs.d(n=>n.activeConnection),z=chunkV6XDFRWV_cjs.d(n=>n.connectionError),{ToastError:k=Ro,Container:j=Bo}=t?.components??{},{showError:H=Ao,dismissError:d=zo,onCopyComplete:V=ko}=t?.handlers??{},{errorTitle:U=Ho,errorHash:W=Vo}=t??{},v=react.useRef(new Set),f=react.useRef(null),T=!!z,y=!!A,g=!!_?.isConnected,h=T||y,E=z||A||null,i=T?"wallet":y?"switch":null,a={hasWalletError:T,hasSwitchError:y,isConnected:g,hasAnyError:h,primaryError:E,errorType:i},P=u.somethingWentWrong;switch(a.errorType){case "wallet":P=u.connectionError;break;case "switch":P=u.errorWhenChainSwitching;break}let I=U(P,{errorType:a.errorType}),L=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,M=W(L,{primaryError:a.primaryError,errorType:a.errorType}),p=react.useCallback(()=>{d(()=>{f.current&&(reactToastify.toast.dismiss(f.current),f.current=null),reactToastify.toast.dismiss({containerId:o});});},[o,d]),D=react.useCallback((n,l)=>{V(n,l,i);},[V,i]),w=react.useCallback((n,l,C)=>{if(p(),!v.current.has(C))try{let x={containerId:o,toastId:C,onClose:()=>{v.current.delete(C),f.current=null;}},O=t?.toastOptions?.error?.({title:n,rawError:l,errorType:a.errorType,isConnected:a.isConnected}),X={...x,...O};reactToastify.toast.error(jsxRuntime.jsx(k,{title:n,rawError:l,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:R=>D(R,l),customization:t?.toastErrorCustomization}),X),v.current.add(C),f.current=C;}catch(x){console.error("Failed to show error toast:",x);}},[p,o,t?.toastOptions?.error,t?.toastErrorCustomization,k,a.errorType,a.isConnected,D]),K=react.useCallback((n,l,C)=>{H(w,{title:n,rawError:l,errorKey:C,errorType:i});},[w,H,i]);react.useEffect(()=>{if(g&&!h){p(),v.current.clear();return}if(h&&E&&M){if(g&&i!=="switch")return;K(I,E,M);}},[h,g,E,i,I,M,K,p]),react.useEffect(()=>()=>{p(),v.current.clear();},[p]);let S=t?.classNames?.container?t.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",J=react.useMemo(()=>{let n=t?.toastCloseButton;return n?({closeToast:l})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:l,...n}):novaCore.ToastCloseButton},[t?.toastCloseButton]),Q={...{containerId:o,position:e,closeOnClick:false,icon:false,closeButton:J,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:s,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...t?.containerProps,className:S};return jsxRuntime.jsx(j,{...Q})}so.displayName="ErrorsProvider";function io({labels:o,children:e}){let r=react.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(u=>!(u in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsxRuntime.jsx(chunkL72JK63U_cjs.g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Do=({labels:o,children:e})=>jsxRuntime.jsx(io,{labels:o,children:e}),Ko=({customization:o})=>jsxRuntime.jsx(so,{customization:o}),Fo=(o,e)=>novaCore.deepMerge(o,e||{}),Go=o=>o,qo=o=>o,$o=(o,e,r)=>o;function _o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:t,pulsarAdapter:u,withImpersonated:A,withBalance:_,withChain:z,popularConnectors:k,customConnectorGroups:j,legal:H,customization:d,pagination:V}){let U=chunkV6XDFRWV_cjs.d(ro=>ro.activeConnection),W=chunkV6XDFRWV_cjs.d(ro=>ro.connectionError),{LabelsProvider:v=Do,ErrorsProvider:f=Ko}=d?.components??{},{merge:T=Fo,transform:y=Go}=d?.labels??{},{transform:g=qo}=d?.contextValue??{},{providerTree:h=$o}=d?.rendering??{},E=react.useMemo(()=>T(chunkMGBN4EIT_cjs.a,o||{}),[o,T]),[i,a]=react.useState(false),[P,I]=react.useState(false),[L,M]=react.useState(false),[p,D]=react.useState(false),[w,K]=react.useState("idle"),[S,J]=react.useState("connectors"),[po,Q]=react.useState(void 0),[n,l]=react.useState(void 0),[C,x]=react.useState(""),[O,X]=react.useState(false),[R,go]=react.useState("main"),ho={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:j,withBalance:_,withChain:z,isConnectModalOpen:i,setIsConnectModalOpen:a,isConnectedModalOpen:P,setIsConnectedModalOpen:I,isChainsListOpen:L,setIsChainsListOpen:M,isChainsListOpenMobile:p,setIsChainsListOpenMobile:D,connectedButtonStatus:w,setConnectedButtonStatus:K,connectedModalContentType:R,setConnectedModalContentType:go,connectModalContentType:S,setConnectModalContentType:J,selectedAdapter:po,setSelectedAdapter:Q,activeConnector:n,setActiveConnector:l,impersonatedAddress:C,setImpersonatedAddress:x,isConnected:O,setIsConnected:X,legal:H},F=react.useMemo(()=>({isConnected:O,activeConnection:U,connectionError:W,modalStates:{isConnectModalOpen:i,isConnectedModalOpen:P,isChainsListOpen:L,isChainsListOpenMobile:p},contentTypes:{connectModal:S,connectedModal:R},statuses:{connectedButton:w}}),[O,U,W,i,P,L,p,S,R,w]),wo=react.useMemo(()=>y(E,F),[E,y,F]),uo=g(ho,F),Y=jsxRuntime.jsx(f,{customization:d?.errors}),Z=jsxRuntime.jsx(v,{labels:wo,children:e}),oo=r||s?jsxRuntime.jsx(chunkTQ3THPZD_cjs.G,{solanaRPCUrls:s,appChains:r,customization:d?.modals?.connectModal}):null,eo=r||s?jsxRuntime.jsx(chunkTQ3THPZD_cjs.t,{solanaRPCUrls:s,appChains:r,transactionPool:t,pulsarAdapter:u,customization:d?.modals?.connectedModal,pagination:V}):null,No=jsxRuntime.jsxs(chunkL72JK63U_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=jsxRuntime.jsxs(chunkL72JK63U_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Mo=h(Lo,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:No,ConnectModal:oo||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:eo||jsxRuntime.jsx(jsxRuntime.Fragment,{})},F);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Mo})}_o.displayName="NovaConnectProvider";async function br(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await q(),hasSolanaUtils:await $(),adaptersStatus:o()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function $(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let e=await import('./evm/index.cjs'),r=await e.getEvmExports();return r.available?{...e,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function yr(){try{if(!await $())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let e=await import('./solana/index.cjs'),r=await e.getSolanaExports();return r.available?{...e,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function gr(){let o={evm:false,solana:false,errors:[]};try{let e=await q(),r=await $();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),t=[];e&&t.push(orbitCore.OrbitAdapter.EVM),r&&t.push(orbitCore.OrbitAdapter.SOLANA),await s(t),o.evm=e,o.solana=r;}else o.errors.push("No blockchain packages available for initialization");}catch(e){let r=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(r);}return o}async function hr(o){return o===orbitCore.OrbitAdapter.Starknet||o!==orbitCore.OrbitAdapter.EVM&&o!==orbitCore.OrbitAdapter.SOLANA?false:o===orbitCore.OrbitAdapter.EVM?q():$()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkL72JK63U_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkL72JK63U_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkL72JK63U_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkL72JK63U_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkL72JK63U_cjs.q}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkL72JK63U_cjs.v}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkL72JK63U_cjs.p}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkL72JK63U_cjs.t}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkL72JK63U_cjs.r}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkL72JK63U_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkL72JK63U_cjs.s}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkL72JK63U_cjs.u}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkL72JK63U_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkL72JK63U_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkL72JK63U_cjs.w}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkL72JK63U_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkL72JK63U_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkL72JK63U_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkL72JK63U_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkL72JK63U_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkL72JK63U_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkL72JK63U_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkL72JK63U_cjs.f}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkL72JK63U_cjs.x}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkL72JK63U_cjs.y}});Object.defineProperty(exports,"getAdapterStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.k}});Object.defineProperty(exports,"getAllAdaptersStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.l}});Object.defineProperty(exports,"getAvailableSolanaClustersAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.g}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getChainsListByConnectorTypeAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.a}});Object.defineProperty(exports,"getChainsListByConnectorTypeSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.i}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isEvmChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.c}});Object.defineProperty(exports,"isEvmChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isSolanaChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.d}});Object.defineProperty(exports,"isSolanaChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isValidSolanaClusterAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.h}});Object.defineProperty(exports,"preloadChainAdapters",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.j}});exports.ErrorsProvider=so;exports.NovaConnectLabelsProvider=io;exports.NovaConnectProvider=_o;exports.getBlockchainUtilities=br;exports.getEvmUtils=Tr;exports.getSolanaUtils=yr;exports.initializeBlockchainSupport=gr;exports.isAdapterSupported=hr;
|
|
1
|
+
'use strict';var chunkKYHX7HBC_cjs=require('./chunk-KYHX7HBC.cjs'),chunkNIHARC32_cjs=require('./chunk-NIHARC32.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunkV6XDFRWV_cjs=require('./chunk-V6XDFRWV.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime'),siwxReact=require('@tuwaio/siwx-react');var ke=({title:e,rawError:o,onCopyComplete:r,errorType:l,isConnected:t,...u})=>jsxRuntime.jsx(chunkKYHX7HBC_cjs.H,{title:e,rawError:o,onCopyComplete:r,customization:u.customization}),ze=e=>{let o=chunkNIHARC32_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},We=(e,o)=>{e(o.title,o.rawError,o.errorKey);},Ie=e=>{e();},He=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ue=e=>e,Ve=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:l=false,customization:t}){let u=chunkNIHARC32_cjs.h(),M=chunkV6XDFRWV_cjs.d(i=>i.switchNetworkError),L=chunkV6XDFRWV_cjs.d(i=>i.activeConnection),n=chunkV6XDFRWV_cjs.d(i=>i.connectionError),{ToastError:h=ke,Container:O=ze}=t?.components??{},{showError:w=We,dismissError:p=Ie,onCopyComplete:c=He}=t?.handlers??{},{errorTitle:S=Ue,errorHash:a=Ve}=t??{},d=react.useRef(new Set),f=react.useRef(null),b=!!n,g=!!M,N=!!L?.isConnected,R=b||g,B=n||M||null,E=b?"wallet":g?"switch":null,s={hasWalletError:b,hasSwitchError:g,isConnected:N,hasAnyError:R,primaryError:B,errorType:E},I=u.somethingWentWrong;switch(s.errorType){case "wallet":I=u.connectionError;break;case "switch":I=u.errorWhenChainSwitching;break}let A=S(I,{errorType:s.errorType}),$=s.primaryError?`${s.errorType}-${s.primaryError.message.substring(0,50)}`:null,x=a($,{primaryError:s.primaryError,errorType:s.errorType}),y=react.useCallback(()=>{p(()=>{f.current&&(reactToastify.toast.dismiss(f.current),f.current=null),reactToastify.toast.dismiss({containerId:e});});},[e,p]),k=react.useCallback((i,m)=>{c(i,m,E);},[c,E]),D=react.useCallback((i,m,T)=>{if(y(),!d.current.has(T))try{let U={containerId:e,toastId:T,onClose:()=>{d.current.delete(T),f.current=null;}},J=t?.toastOptions?.error?.({title:i,rawError:m,errorType:s.errorType,isConnected:s.isConnected}),V={...U,...J};reactToastify.toast.error(jsxRuntime.jsx(h,{title:i,rawError:m,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:Q=>k(Q,m),customization:t?.toastErrorCustomization}),V),d.current.add(T),f.current=T;}catch(U){console.error("Failed to show error toast:",U);}},[y,e,t?.toastOptions?.error,t?.toastErrorCustomization,h,s.errorType,s.isConnected,k]),z=react.useCallback((i,m,T)=>{w(D,{title:i,rawError:m,errorKey:T,errorType:E});},[D,w,E]);react.useEffect(()=>{if(N&&!R){y(),d.current.clear();return}if(R&&B&&x){if(N&&E!=="switch")return;z(A,B,x);}},[R,N,B,E,A,x,z,y]),react.useEffect(()=>()=>{y(),d.current.clear();},[y]);let _=t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",H=react.useMemo(()=>{let i=t?.toastCloseButton;return i?({closeToast:m})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:m,...i}):novaCore.ToastCloseButton},[t?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:l,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...t?.containerProps,className:_};return jsxRuntime.jsx(O,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=react.useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(u=>!(u in e));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsxRuntime.jsx(chunkNIHARC32_cjs.g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,domain:l,uri:t,statement:u,onSuccess:M,onError:L}=e,n=chunkV6XDFRWV_cjs.d(a=>a.activeConnection),h=chunkV6XDFRWV_cjs.d(a=>a.disconnect),{signIn:O}=siwxReact.useSiwx(),w=siwxReact.useSiwxSessionStore(a=>a.session),p=siwxReact.useSiwxSessionStore(a=>a.status),c=siwxReact.useSiwxSessionStore(a=>a.reset),S=react.useRef(null);return react.useEffect(()=>{(!n?.isConnected||!n?.address)&&(S.current=null);},[n?.isConnected,n?.address]),react.useEffect(()=>{if(!(!o||!n?.isConnected||!n?.address||!n?.chainId)&&n.signMessage&&!(p==="building"||p==="signing"||p==="verifying"))try{let a={address:String(n.address),chainId:n.chainId,signMessage:n.signMessage,isConnected:n.isConnected},d=siwxReact.getSatelliteSiwxFields(a,{domain:l,uri:t,statement:u});if(p==="authenticated"&&w?.address===d.address||S.current===d.address)return;if(S.current=d.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let f=b=>{let g=b instanceof Error?b.message:String(b);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",g),n.connectorType&&h(n.connectorType),c(),L?.(g);};O({signer:n.signMessage,verifier:r,fields:d,onSuccess:M,onError:f}).catch(f);}catch(a){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",a);}},[n?.isConnected,n?.address,n?.chainId,n?.signMessage,n?.connectorType,h,o,p,w?.address,r,l,t,u,O,c,L]),null}var $e=({labels:e,children:o})=>jsxRuntime.jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsxRuntime.jsx(ie,{customization:e}),je=(e,o)=>novaCore.deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:l,transactionPool:t,pulsarAdapter:u,withImpersonated:M,withBalance:L,withChain:n,popularConnectors:h,customConnectorGroups:O,legal:w,siwx:p,customization:c,pagination:S}){let a=chunkV6XDFRWV_cjs.d(te=>te.activeConnection),d=chunkV6XDFRWV_cjs.d(te=>te.connectionError),{LabelsProvider:f=$e,ErrorsProvider:b=_e}=c?.components??{},{merge:g=je,transform:N=Je}=c?.labels??{},{transform:R=Qe}=c?.contextValue??{},{providerTree:B=Ye}=c?.rendering??{},E=react.useMemo(()=>g(chunkMGBN4EIT_cjs.a,e||{}),[e,g]),[s,I]=react.useState(false),[A,$]=react.useState(false),[x,y]=react.useState(false),[k,D]=react.useState(false),[z,_]=react.useState("idle"),[H,me]=react.useState("connectors"),[j,i]=react.useState(void 0),[m,T]=react.useState(void 0),[U,J]=react.useState(""),[V,Q]=react.useState(false),[Y,Se]=react.useState("main"),Ne={appChains:r,solanaRPCUrls:l,withImpersonated:M,popularConnectors:h,customConnectorGroups:O,withBalance:L,withChain:n,isConnectModalOpen:s,setIsConnectModalOpen:I,isConnectedModalOpen:A,setIsConnectedModalOpen:$,isChainsListOpen:x,setIsChainsListOpen:y,isChainsListOpenMobile:k,setIsChainsListOpenMobile:D,connectedButtonStatus:z,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Se,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:i,activeConnector:m,setActiveConnector:T,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:w},K=react.useMemo(()=>({isConnected:V,activeConnection:a,connectionError:d,modalStates:{isConnectModalOpen:s,isConnectedModalOpen:A,isChainsListOpen:x,isChainsListOpenMobile:k},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:z}}),[V,a,d,s,A,x,k,H,Y,z]),xe=react.useMemo(()=>N(E,K),[E,N,K]),Ce=R(Ne,K),Z=jsxRuntime.jsx(b,{customization:c?.errors}),ee=jsxRuntime.jsx(f,{labels:xe,children:o}),oe=r||l?jsxRuntime.jsx(chunkKYHX7HBC_cjs.G,{solanaRPCUrls:l,appChains:r,customization:c?.modals?.connectModal}):null,re=r||l?jsxRuntime.jsx(chunkKYHX7HBC_cjs.t,{solanaRPCUrls:l,appChains:r,transactionPool:t,pulsarAdapter:u,customization:c?.modals?.connectedModal,pagination:S}):null,Me=jsxRuntime.jsxs(chunkNIHARC32_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...p}),Z,ee,oe,re]}),Le=jsxRuntime.jsxs(chunkNIHARC32_cjs.c.Provider,{value:Ce,children:[jsxRuntime.jsx(de,{...p}),Z,ee,oe,re]}),Oe=B(Le,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Me,ConnectModal:oe||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:re||jsxRuntime.jsx(jsxRuntime.Fragment,{})},K);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Oe})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function zr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.cjs'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function Wr(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.cjs'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Ir(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:l}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),t=[];o&&t.push(orbitCore.OrbitAdapter.EVM),r&&t.push(orbitCore.OrbitAdapter.SOLANA),await l(t),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===orbitCore.OrbitAdapter.Starknet||e!==orbitCore.OrbitAdapter.EVM&&e!==orbitCore.OrbitAdapter.SOLANA?false:e===orbitCore.OrbitAdapter.EVM?q():X()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkNIHARC32_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkNIHARC32_cjs.r}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkNIHARC32_cjs.w}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkNIHARC32_cjs.q}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.u}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.s}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkNIHARC32_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkNIHARC32_cjs.t}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkNIHARC32_cjs.v}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkNIHARC32_cjs.x}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkNIHARC32_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkNIHARC32_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkNIHARC32_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkNIHARC32_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkNIHARC32_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkNIHARC32_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkNIHARC32_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkNIHARC32_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkNIHARC32_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkNIHARC32_cjs.y}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkNIHARC32_cjs.z}});Object.defineProperty(exports,"getAdapterStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.k}});Object.defineProperty(exports,"getAllAdaptersStatus",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.l}});Object.defineProperty(exports,"getAvailableSolanaClustersAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.g}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getChainsListByConnectorTypeAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.a}});Object.defineProperty(exports,"getChainsListByConnectorTypeSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.b}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.i}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isEvmChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.c}});Object.defineProperty(exports,"isEvmChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.e}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isSolanaChainListAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.d}});Object.defineProperty(exports,"isSolanaChainListSync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.f}});Object.defineProperty(exports,"isValidSolanaClusterAsync",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.h}});Object.defineProperty(exports,"preloadChainAdapters",{enumerable:true,get:function(){return chunkK44IHM6B_cjs.j}});exports.ErrorsProvider=ie;exports.NovaConnectLabelsProvider=le;exports.NovaConnectProvider=Ze;exports.NovaSiwxWatcher=de;exports.getBlockchainUtilities=kr;exports.getEvmUtils=zr;exports.getSolanaUtils=Wr;exports.initializeBlockchainSupport=Ir;exports.isAdapterSupported=Hr;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TuwaErrorState, OrbitAdapter, ConnectorType, ChainIdentifierArray } from '@tuwaio/orbit-core';
|
|
2
|
-
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.cjs';
|
|
3
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-
|
|
4
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, W as WalletBalance,
|
|
2
|
+
export { UseNovaSiwxOptions, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.cjs';
|
|
3
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-B64PI3UW.cjs';
|
|
4
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-B64PI3UW.cjs';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
|
@@ -10,6 +10,9 @@ import { ToastErrorCustomization, ConnectModalCustomization, ConnectedModalCusto
|
|
|
10
10
|
import { N as NovaConnectLabels } from './types-DxUn8qmU.cjs';
|
|
11
11
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { Connector } from '@tuwaio/satellite-react';
|
|
13
|
+
import '@tuwaio/satellite-solana';
|
|
14
|
+
import '@tuwaio/satellite-evm';
|
|
15
|
+
import '@tuwaio/siwx-react';
|
|
13
16
|
import '@tuwaio/pulsar-core';
|
|
14
17
|
import 'framer-motion';
|
|
15
18
|
import '@radix-ui/react-select';
|
|
@@ -288,7 +291,7 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
288
291
|
*
|
|
289
292
|
* @param props - Provider configuration and customization options
|
|
290
293
|
*/
|
|
291
|
-
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, popularConnectors, customConnectorGroups, legal, customization, pagination, }: NovaConnectProviderPropsWithCustomization): React.JSX.Element;
|
|
294
|
+
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, popularConnectors, customConnectorGroups, legal, siwx, customization, pagination, }: NovaConnectProviderPropsWithCustomization): React.JSX.Element;
|
|
292
295
|
declare namespace NovaConnectProvider {
|
|
293
296
|
var displayName: string;
|
|
294
297
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TuwaErrorState, OrbitAdapter, ConnectorType, ChainIdentifierArray } from '@tuwaio/orbit-core';
|
|
2
|
-
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.js';
|
|
3
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-
|
|
4
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, W as WalletBalance,
|
|
2
|
+
export { UseNovaSiwxOptions, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.js';
|
|
3
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './useWalletNativeBalance-Dq7RXM0z.js';
|
|
4
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectLabelsContext, f as NovaConnectProviderContext, g as NovaConnectProviderError, h as NovaSiwxWatcher, i as NovaSiwxWatcherProps, W as WalletBalance, j as createLabelsSubset, k as getLabelWithFallback, l as hasLabel, m as isDefaultLabels, u as useHasNovaConnectContext, n as useLabelsByCategory, o as useNovaConnect, p as useNovaConnectLabel, q as useNovaConnectLabels, r as useNovaConnectLabelsSubset, s as useNovaConnectOptional, t as useWalletNativeBalance } from './useWalletNativeBalance-Dq7RXM0z.js';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
|
@@ -10,6 +10,9 @@ import { ToastErrorCustomization, ConnectModalCustomization, ConnectedModalCusto
|
|
|
10
10
|
import { N as NovaConnectLabels } from './types-DxUn8qmU.js';
|
|
11
11
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { Connector } from '@tuwaio/satellite-react';
|
|
13
|
+
import '@tuwaio/satellite-solana';
|
|
14
|
+
import '@tuwaio/satellite-evm';
|
|
15
|
+
import '@tuwaio/siwx-react';
|
|
13
16
|
import '@tuwaio/pulsar-core';
|
|
14
17
|
import 'framer-motion';
|
|
15
18
|
import '@radix-ui/react-select';
|
|
@@ -288,7 +291,7 @@ interface NovaConnectProviderPropsWithCustomization extends NovaConnectProviderP
|
|
|
288
291
|
*
|
|
289
292
|
* @param props - Provider configuration and customization options
|
|
290
293
|
*/
|
|
291
|
-
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, popularConnectors, customConnectorGroups, legal, customization, pagination, }: NovaConnectProviderPropsWithCustomization): React.JSX.Element;
|
|
294
|
+
declare function NovaConnectProvider({ labels, children, appChains, solanaRPCUrls, transactionPool, pulsarAdapter, withImpersonated, withBalance, withChain, popularConnectors, customConnectorGroups, legal, siwx, customization, pagination, }: NovaConnectProviderPropsWithCustomization): React.JSX.Element;
|
|
292
295
|
declare namespace NovaConnectProvider {
|
|
293
296
|
var displayName: string;
|
|
294
297
|
}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {G,t,H}from'./chunk-JX6W4V4K.js';import {h,g,c}from'./chunk-Q7VMS3GO.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,q as getAvailableChainIds,v as getAvailableSolanaClusters,p as getConnectChainId,t as getFilteredConnectors,r as getGroupedConnectors,n as getLabelWithFallback,s as hasAvailableConnectors,u as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,w as isValidSolanaCluster,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,x as useWalletChainsList,y as useWalletNativeBalance}from'./chunk-Q7VMS3GO.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-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {OrbitAdapter}from'@tuwaio/orbit-core';import {ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {useRef,useCallback,useEffect,useMemo,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var Ro=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:t,...u})=>jsx(H,{title:o,rawError:e,onCopyComplete:r,customization:u.customization}),Bo=o=>{let e=h();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Ao=(o,e)=>{o(e.title,e.rawError,e.errorKey);},zo=o=>{o();},ko=(o,e)=>{if(o&&process.env.NODE_ENV==="development"){let r=typeof e=="string"?e:e.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ho=o=>o,Vo=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:t}){let u=h(),A=d(n=>n.switchNetworkError),_=d(n=>n.activeConnection),z=d(n=>n.connectionError),{ToastError:k=Ro,Container:j=Bo}=t?.components??{},{showError:H=Ao,dismissError:d$1=zo,onCopyComplete:V=ko}=t?.handlers??{},{errorTitle:U=Ho,errorHash:W=Vo}=t??{},v=useRef(new Set),f=useRef(null),T=!!z,y=!!A,g=!!_?.isConnected,h$1=T||y,E=z||A||null,i=T?"wallet":y?"switch":null,a={hasWalletError:T,hasSwitchError:y,isConnected:g,hasAnyError:h$1,primaryError:E,errorType:i},P=u.somethingWentWrong;switch(a.errorType){case "wallet":P=u.connectionError;break;case "switch":P=u.errorWhenChainSwitching;break}let I=U(P,{errorType:a.errorType}),L=a.primaryError?`${a.errorType}-${a.primaryError.message.substring(0,50)}`:null,M=W(L,{primaryError:a.primaryError,errorType:a.errorType}),p=useCallback(()=>{d$1(()=>{f.current&&(toast.dismiss(f.current),f.current=null),toast.dismiss({containerId:o});});},[o,d$1]),D=useCallback((n,l)=>{V(n,l,i);},[V,i]),w=useCallback((n,l,C)=>{if(p(),!v.current.has(C))try{let x={containerId:o,toastId:C,onClose:()=>{v.current.delete(C),f.current=null;}},O=t?.toastOptions?.error?.({title:n,rawError:l,errorType:a.errorType,isConnected:a.isConnected}),X={...x,...O};toast.error(jsx(k,{title:n,rawError:l,errorType:a.errorType,isConnected:a.isConnected,onCopyComplete:R=>D(R,l),customization:t?.toastErrorCustomization}),X),v.current.add(C),f.current=C;}catch(x){console.error("Failed to show error toast:",x);}},[p,o,t?.toastOptions?.error,t?.toastErrorCustomization,k,a.errorType,a.isConnected,D]),K=useCallback((n,l,C)=>{H(w,{title:n,rawError:l,errorKey:C,errorType:i});},[w,H,i]);useEffect(()=>{if(g&&!h$1){p(),v.current.clear();return}if(h$1&&E&&M){if(g&&i!=="switch")return;K(I,E,M);}},[h$1,g,E,i,I,M,K,p]),useEffect(()=>()=>{p(),v.current.clear();},[p]);let S=t?.classNames?.container?t.classNames.container({hasErrors:a.hasAnyError,errorType:a.errorType}):"novacon:p-0 novacon:bg-transparent",J=useMemo(()=>{let n=t?.toastCloseButton;return n?({closeToast:l})=>jsx(ToastCloseButton,{closeToast:l,...n}):ToastCloseButton},[t?.toastCloseButton]),Q={...{containerId:o,position:e,closeOnClick:false,icon:false,closeButton:J,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:s,pauseOnHover:true,theme:"light",transition:Bounce},...t?.containerProps,className:S};return jsx(j,{...Q})}so.displayName="ErrorsProvider";function io({labels:o,children:e}){let r=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(u=>!(u in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Do=({labels:o,children:e})=>jsx(io,{labels:o,children:e}),Ko=({customization:o})=>jsx(so,{customization:o}),Fo=(o,e)=>deepMerge(o,e||{}),Go=o=>o,qo=o=>o,$o=(o,e,r)=>o;function _o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:t$1,pulsarAdapter:u,withImpersonated:A,withBalance:_,withChain:z,popularConnectors:k,customConnectorGroups:j,legal:H,customization:d$1,pagination:V}){let U=d(ro=>ro.activeConnection),W=d(ro=>ro.connectionError),{LabelsProvider:v=Do,ErrorsProvider:f=Ko}=d$1?.components??{},{merge:T=Fo,transform:y=Go}=d$1?.labels??{},{transform:g=qo}=d$1?.contextValue??{},{providerTree:h=$o}=d$1?.rendering??{},E=useMemo(()=>T(a,o||{}),[o,T]),[i,a$1]=useState(false),[P,I]=useState(false),[L,M]=useState(false),[p,D]=useState(false),[w,K]=useState("idle"),[S,J]=useState("connectors"),[po,Q]=useState(void 0),[n,l]=useState(void 0),[C,x]=useState(""),[O,X]=useState(false),[R,go]=useState("main"),ho={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:j,withBalance:_,withChain:z,isConnectModalOpen:i,setIsConnectModalOpen:a$1,isConnectedModalOpen:P,setIsConnectedModalOpen:I,isChainsListOpen:L,setIsChainsListOpen:M,isChainsListOpenMobile:p,setIsChainsListOpenMobile:D,connectedButtonStatus:w,setConnectedButtonStatus:K,connectedModalContentType:R,setConnectedModalContentType:go,connectModalContentType:S,setConnectModalContentType:J,selectedAdapter:po,setSelectedAdapter:Q,activeConnector:n,setActiveConnector:l,impersonatedAddress:C,setImpersonatedAddress:x,isConnected:O,setIsConnected:X,legal:H},F=useMemo(()=>({isConnected:O,activeConnection:U,connectionError:W,modalStates:{isConnectModalOpen:i,isConnectedModalOpen:P,isChainsListOpen:L,isChainsListOpenMobile:p},contentTypes:{connectModal:S,connectedModal:R},statuses:{connectedButton:w}}),[O,U,W,i,P,L,p,S,R,w]),wo=useMemo(()=>y(E,F),[E,y,F]),uo=g(ho,F),Y=jsx(f,{customization:d$1?.errors}),Z=jsx(v,{labels:wo,children:e}),oo=r||s?jsx(G,{solanaRPCUrls:s,appChains:r,customization:d$1?.modals?.connectModal}):null,eo=r||s?jsx(t,{solanaRPCUrls:s,appChains:r,transactionPool:t$1,pulsarAdapter:u,customization:d$1?.modals?.connectedModal,pagination:V}):null,No=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Mo=h(Lo,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:No,ConnectModal:oo||jsx(Fragment,{}),ConnectedModal:eo||jsx(Fragment,{})},F);return jsx(Fragment,{children:Mo})}_o.displayName="NovaConnectProvider";async function br(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await q(),hasSolanaUtils:await $(),adaptersStatus:o()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function $(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let e=await import('./evm/index.js'),r=await e.getEvmExports();return r.available?{...e,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function yr(){try{if(!await $())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let e=await import('./solana/index.js'),r=await e.getSolanaExports();return r.available?{...e,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function gr(){let o={evm:false,solana:false,errors:[]};try{let e=await q(),r=await $();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),t=[];e&&t.push(OrbitAdapter.EVM),r&&t.push(OrbitAdapter.SOLANA),await s(t),o.evm=e,o.solana=r;}else o.errors.push("No blockchain packages available for initialization");}catch(e){let r=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(r);}return o}async function hr(o){return o===OrbitAdapter.Starknet||o!==OrbitAdapter.EVM&&o!==OrbitAdapter.SOLANA?false:o===OrbitAdapter.EVM?q():$()}export{so as ErrorsProvider,io as NovaConnectLabelsProvider,_o as NovaConnectProvider,br as getBlockchainUtilities,Tr as getEvmUtils,yr as getSolanaUtils,gr as initializeBlockchainSupport,hr as isAdapterSupported};
|
|
1
|
+
import {G,t,H}from'./chunk-G5BCVG44.js';import {h,g,c}from'./chunk-BOOFGSLL.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,r as getAvailableChainIds,w as getAvailableSolanaClusters,q as getConnectChainId,u as getFilteredConnectors,s as getGroupedConnectors,n as getLabelWithFallback,t as hasAvailableConnectors,v as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,x as isValidSolanaCluster,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 useNovaSiwx,y as useWalletChainsList,z as useWalletNativeBalance}from'./chunk-BOOFGSLL.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-S3IRVZMG.js';import {a}from'./chunk-NQ5AECZQ.js';import {d}from'./chunk-EYP534IS.js';import {OrbitAdapter}from'@tuwaio/orbit-core';import {ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {useRef,useCallback,useEffect,useMemo,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useSiwx,useSiwxSessionStore,getSatelliteSiwxFields}from'@tuwaio/siwx-react';var ke=({title:e,rawError:o,onCopyComplete:r,errorType:l,isConnected:t,...u})=>jsx(H,{title:e,rawError:o,onCopyComplete:r,customization:u.customization}),ze=e=>{let o=h();return jsx(ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":o.somethingWentWrong})},We=(e,o)=>{e(o.title,o.rawError,o.errorKey);},Ie=e=>{e();},He=(e,o)=>{if(e&&process.env.NODE_ENV==="development"){let r=typeof o=="string"?o:o.message;console.log("Error copied to clipboard:",r.substring(0,100));}},Ue=e=>e,Ve=e=>e;function ie({containerId:e="nova-connect-errors",position:o="top-center",autoClose:r=7e3,draggable:l=false,customization:t}){let u=h(),M=d(i=>i.switchNetworkError),L=d(i=>i.activeConnection),n=d(i=>i.connectionError),{ToastError:h$1=ke,Container:O=ze}=t?.components??{},{showError:w=We,dismissError:p=Ie,onCopyComplete:c=He}=t?.handlers??{},{errorTitle:S=Ue,errorHash:a=Ve}=t??{},d$1=useRef(new Set),f=useRef(null),b=!!n,g=!!M,N=!!L?.isConnected,R=b||g,B=n||M||null,E=b?"wallet":g?"switch":null,s={hasWalletError:b,hasSwitchError:g,isConnected:N,hasAnyError:R,primaryError:B,errorType:E},I=u.somethingWentWrong;switch(s.errorType){case "wallet":I=u.connectionError;break;case "switch":I=u.errorWhenChainSwitching;break}let A=S(I,{errorType:s.errorType}),$=s.primaryError?`${s.errorType}-${s.primaryError.message.substring(0,50)}`:null,x=a($,{primaryError:s.primaryError,errorType:s.errorType}),y=useCallback(()=>{p(()=>{f.current&&(toast.dismiss(f.current),f.current=null),toast.dismiss({containerId:e});});},[e,p]),k=useCallback((i,m)=>{c(i,m,E);},[c,E]),D=useCallback((i,m,T)=>{if(y(),!d$1.current.has(T))try{let U={containerId:e,toastId:T,onClose:()=>{d$1.current.delete(T),f.current=null;}},J=t?.toastOptions?.error?.({title:i,rawError:m,errorType:s.errorType,isConnected:s.isConnected}),V={...U,...J};toast.error(jsx(h$1,{title:i,rawError:m,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:Q=>k(Q,m),customization:t?.toastErrorCustomization}),V),d$1.current.add(T),f.current=T;}catch(U){console.error("Failed to show error toast:",U);}},[y,e,t?.toastOptions?.error,t?.toastErrorCustomization,h$1,s.errorType,s.isConnected,k]),z=useCallback((i,m,T)=>{w(D,{title:i,rawError:m,errorKey:T,errorType:E});},[D,w,E]);useEffect(()=>{if(N&&!R){y(),d$1.current.clear();return}if(R&&B&&x){if(N&&E!=="switch")return;z(A,B,x);}},[R,N,B,E,A,x,z,y]),useEffect(()=>()=>{y(),d$1.current.clear();},[y]);let _=t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",H=useMemo(()=>{let i=t?.toastCloseButton;return i?({closeToast:m})=>jsx(ToastCloseButton,{closeToast:m,...i}):ToastCloseButton},[t?.toastCloseButton]),j={...{containerId:e,position:o,closeOnClick:false,icon:false,closeButton:H,autoClose:r,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:l,pauseOnHover:true,theme:"light",transition:Bounce},...t?.containerProps,className:_};return jsx(O,{...j})}ie.displayName="ErrorsProvider";function le({labels:e,children:o}){let r=useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(u=>!(u in e));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:r,children:o})}le.displayName="NovaConnectLabelsProvider";function de(e){let{enabled:o=true,verifier:r,domain:l,uri:t,statement:u,onSuccess:M,onError:L}=e,n=d(a=>a.activeConnection),h=d(a=>a.disconnect),{signIn:O}=useSiwx(),w=useSiwxSessionStore(a=>a.session),p=useSiwxSessionStore(a=>a.status),c=useSiwxSessionStore(a=>a.reset),S=useRef(null);return useEffect(()=>{(!n?.isConnected||!n?.address)&&(S.current=null);},[n?.isConnected,n?.address]),useEffect(()=>{if(!(!o||!n?.isConnected||!n?.address||!n?.chainId)&&n.signMessage&&!(p==="building"||p==="signing"||p==="verifying"))try{let a={address:String(n.address),chainId:n.chainId,signMessage:n.signMessage,isConnected:n.isConnected},d=getSatelliteSiwxFields(a,{domain:l,uri:t,statement:u});if(p==="authenticated"&&w?.address===d.address||S.current===d.address)return;if(S.current=d.address,!r){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let f=b=>{let g=b instanceof Error?b.message:String(b);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",g),n.connectorType&&h(n.connectorType),c(),L?.(g);};O({signer:n.signMessage,verifier:r,fields:d,onSuccess:M,onError:f}).catch(f);}catch(a){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",a);}},[n?.isConnected,n?.address,n?.chainId,n?.signMessage,n?.connectorType,h,o,p,w?.address,r,l,t,u,O,c,L]),null}var $e=({labels:e,children:o})=>jsx(le,{labels:e,children:o}),_e=({customization:e})=>jsx(ie,{customization:e}),je=(e,o)=>deepMerge(e,o||{}),Je=e=>e,Qe=e=>e,Ye=(e,o,r)=>e;function Ze({labels:e,children:o,appChains:r,solanaRPCUrls:l,transactionPool:t$1,pulsarAdapter:u,withImpersonated:M,withBalance:L,withChain:n,popularConnectors:h,customConnectorGroups:O,legal:w,siwx:p,customization:c$1,pagination:S}){let a$1=d(te=>te.activeConnection),d$1=d(te=>te.connectionError),{LabelsProvider:f=$e,ErrorsProvider:b=_e}=c$1?.components??{},{merge:g=je,transform:N=Je}=c$1?.labels??{},{transform:R=Qe}=c$1?.contextValue??{},{providerTree:B=Ye}=c$1?.rendering??{},E=useMemo(()=>g(a,e||{}),[e,g]),[s,I]=useState(false),[A,$]=useState(false),[x,y]=useState(false),[k,D]=useState(false),[z,_]=useState("idle"),[H,me]=useState("connectors"),[j,i]=useState(void 0),[m,T]=useState(void 0),[U,J]=useState(""),[V,Q]=useState(false),[Y,Se]=useState("main"),Ne={appChains:r,solanaRPCUrls:l,withImpersonated:M,popularConnectors:h,customConnectorGroups:O,withBalance:L,withChain:n,isConnectModalOpen:s,setIsConnectModalOpen:I,isConnectedModalOpen:A,setIsConnectedModalOpen:$,isChainsListOpen:x,setIsChainsListOpen:y,isChainsListOpenMobile:k,setIsChainsListOpenMobile:D,connectedButtonStatus:z,setConnectedButtonStatus:_,connectedModalContentType:Y,setConnectedModalContentType:Se,connectModalContentType:H,setConnectModalContentType:me,selectedAdapter:j,setSelectedAdapter:i,activeConnector:m,setActiveConnector:T,impersonatedAddress:U,setImpersonatedAddress:J,isConnected:V,setIsConnected:Q,legal:w},K=useMemo(()=>({isConnected:V,activeConnection:a$1,connectionError:d$1,modalStates:{isConnectModalOpen:s,isConnectedModalOpen:A,isChainsListOpen:x,isChainsListOpenMobile:k},contentTypes:{connectModal:H,connectedModal:Y},statuses:{connectedButton:z}}),[V,a$1,d$1,s,A,x,k,H,Y,z]),xe=useMemo(()=>N(E,K),[E,N,K]),Ce=R(Ne,K),Z=jsx(b,{customization:c$1?.errors}),ee=jsx(f,{labels:xe,children:o}),oe=r||l?jsx(G,{solanaRPCUrls:l,appChains:r,customization:c$1?.modals?.connectModal}):null,re=r||l?jsx(t,{solanaRPCUrls:l,appChains:r,transactionPool:t$1,pulsarAdapter:u,customization:c$1?.modals?.connectedModal,pagination:S}):null,Me=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...p}),Z,ee,oe,re]}),Le=jsxs(c.Provider,{value:Ce,children:[jsx(de,{...p}),Z,ee,oe,re]}),Oe=B(Le,{ErrorsProvider:Z,LabelsProvider:ee,MainContent:Me,ConnectModal:oe||jsx(Fragment,{}),ConnectedModal:re||jsx(Fragment,{})},K);return jsx(Fragment,{children:Oe})}Ze.displayName="NovaConnectProvider";async function kr(){let{getAllAdaptersStatus:e}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await q(),hasSolanaUtils:await X(),adaptersStatus:e()}}async function q(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function X(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function zr(){try{if(!await q())return {available:!1,error:"EVM packages (viem, @tuwaio/orbit-evm) not available"};let o=await import('./evm/index.js'),r=await o.getEvmExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load EVM exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"EVM utilities not available"}}}async function Wr(){try{if(!await X())return {available:!1,error:"Solana packages (gill, @tuwaio/orbit-solana) not available"};let o=await import('./solana/index.js'),r=await o.getSolanaExports();return r.available?{...o,...r}:{available:!1,error:r.error||"Failed to load Solana exports"}}catch(e){return {available:false,error:e instanceof Error?e.message:"Solana utilities not available"}}}async function Ir(){let e={evm:false,solana:false,errors:[]};try{let o=await q(),r=await X();if(o||r){let{preloadChainAdapters:l}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),t=[];o&&t.push(OrbitAdapter.EVM),r&&t.push(OrbitAdapter.SOLANA),await l(t),e.evm=o,e.solana=r;}else e.errors.push("No blockchain packages available for initialization");}catch(o){let r=o instanceof Error?o.message:"Unknown initialization error";e.errors.push(r);}return e}async function Hr(e){return e===OrbitAdapter.Starknet||e!==OrbitAdapter.EVM&&e!==OrbitAdapter.SOLANA?false:e===OrbitAdapter.EVM?q():X()}export{ie as ErrorsProvider,le as NovaConnectLabelsProvider,Ze as NovaConnectProvider,de as NovaSiwxWatcher,kr as getBlockchainUtilities,zr as getEvmUtils,Wr as getSolanaUtils,Ir as initializeBlockchainSupport,Hr as isAdapterSupported};
|
package/dist/{useWalletNativeBalance-DX5MO1-z.d.cts → useWalletNativeBalance-B64PI3UW.d.cts}
RENAMED
|
@@ -3,6 +3,7 @@ import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } fr
|
|
|
3
3
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
4
4
|
import { TransactionPool, Transaction, TxAdapter } from '@tuwaio/pulsar-core';
|
|
5
5
|
import { N as NovaConnectLabels } from './types-DxUn8qmU.cjs';
|
|
6
|
+
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
6
7
|
import { Variants, Easing } from 'framer-motion';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -371,6 +372,31 @@ interface ConnectedModalTxHistoryProps extends Pick<NovaConnectProviderProps, 't
|
|
|
371
372
|
*/
|
|
372
373
|
declare const ConnectedModalTxHistory: React__default.ForwardRefExoticComponent<ConnectedModalTxHistoryProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
373
374
|
|
|
375
|
+
/**
|
|
376
|
+
* @fileoverview Headless SIWX auto-authentication watcher for NovaConnect.
|
|
377
|
+
* Monitors active wallet connections and automatically triggers SIWX signing prompts.
|
|
378
|
+
*/
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Props for NovaSiwxWatcher component.
|
|
382
|
+
*/
|
|
383
|
+
interface NovaSiwxWatcherProps extends SatelliteSiwxFieldOptions {
|
|
384
|
+
/** Enables or disables automatic SIWX authentication prompt (defaults to true) */
|
|
385
|
+
enabled?: boolean;
|
|
386
|
+
/** Optional backend verification callback function */
|
|
387
|
+
verifier?: UseSiwxSignInOptions['verifier'];
|
|
388
|
+
/** Optional callback triggered immediately after successful SIWX authentication */
|
|
389
|
+
onSuccess?: UseSiwxSignInOptions['onSuccess'];
|
|
390
|
+
/** Optional callback triggered if SIWX signing or verification fails */
|
|
391
|
+
onError?: UseSiwxSignInOptions['onError'];
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Headless React component rendered inside `NovaConnectProvider`.
|
|
395
|
+
* Automatically prompts the user for SIWX authentication whenever a new wallet connects.
|
|
396
|
+
* Uses a `lastPromptedAddress` ref lock to prevent infinite retry loops on prompt rejection.
|
|
397
|
+
*/
|
|
398
|
+
declare function NovaSiwxWatcher(props: NovaSiwxWatcherProps): null;
|
|
399
|
+
|
|
374
400
|
type ButtonTxStatus = 'idle' | 'loading' | 'succeed' | 'failed' | 'replaced';
|
|
375
401
|
type ConnectContentType = 'network' | 'connectors' | 'about' | 'getWallet' | 'connecting' | 'impersonate';
|
|
376
402
|
type ConnectedContentType = 'main' | 'transactions' | 'chains' | 'connections';
|
|
@@ -396,6 +422,8 @@ interface NovaConnectProviderProps extends InitialChains {
|
|
|
396
422
|
customConnectorGroups?: Record<string, string[]>;
|
|
397
423
|
/** Legal configuration for Terms of Service and Privacy Policy links */
|
|
398
424
|
legal?: LegalConfig;
|
|
425
|
+
/** SIWX auto-authentication watcher configuration */
|
|
426
|
+
siwx?: NovaSiwxWatcherProps;
|
|
399
427
|
/**
|
|
400
428
|
* Pagination state for infinite scroll, forwarded to ConnectedModalTxHistory and TransactionsHistory.
|
|
401
429
|
* Mirrors TxInMemoryPagination from @tuwaio/pulsar-core (optional peer dependency).
|
|
@@ -705,4 +733,4 @@ interface NativeBalanceData {
|
|
|
705
733
|
*/
|
|
706
734
|
declare function useWalletNativeBalance(): NativeBalanceData;
|
|
707
735
|
|
|
708
|
-
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderProps as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderType as b, type LegalConfig as c, type NativeBalanceResult as d, NovaConnectLabelsContext as e, NovaConnectProviderContext as f, NovaConnectProviderError as g,
|
|
736
|
+
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderProps as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderType as b, type LegalConfig as c, type NativeBalanceResult as d, NovaConnectLabelsContext as e, NovaConnectProviderContext as f, NovaConnectProviderError as g, NovaSiwxWatcher as h, type NovaSiwxWatcherProps as i, createLabelsSubset as j, getLabelWithFallback as k, hasLabel as l, isDefaultLabels as m, useLabelsByCategory as n, useNovaConnect as o, useNovaConnectLabel as p, useNovaConnectLabels as q, useNovaConnectLabelsSubset as r, useNovaConnectOptional as s, useWalletNativeBalance as t, useHasNovaConnectContext as u, type ConnectedModalTxHistoryProps as v, type ConnectedModalTxHistoryCustomization as w, ConnectedModalTxHistory as x, type LocalTransactionsHistoryCustomization as y, type LocalTxPagination as z };
|
|
@@ -3,6 +3,7 @@ import React__default, { ComponentPropsWithoutRef, ComponentType, ReactNode } fr
|
|
|
3
3
|
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
4
4
|
import { TransactionPool, Transaction, TxAdapter } from '@tuwaio/pulsar-core';
|
|
5
5
|
import { N as NovaConnectLabels } from './types-DxUn8qmU.js';
|
|
6
|
+
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
6
7
|
import { Variants, Easing } from 'framer-motion';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -371,6 +372,31 @@ interface ConnectedModalTxHistoryProps extends Pick<NovaConnectProviderProps, 't
|
|
|
371
372
|
*/
|
|
372
373
|
declare const ConnectedModalTxHistory: React__default.ForwardRefExoticComponent<ConnectedModalTxHistoryProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
373
374
|
|
|
375
|
+
/**
|
|
376
|
+
* @fileoverview Headless SIWX auto-authentication watcher for NovaConnect.
|
|
377
|
+
* Monitors active wallet connections and automatically triggers SIWX signing prompts.
|
|
378
|
+
*/
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Props for NovaSiwxWatcher component.
|
|
382
|
+
*/
|
|
383
|
+
interface NovaSiwxWatcherProps extends SatelliteSiwxFieldOptions {
|
|
384
|
+
/** Enables or disables automatic SIWX authentication prompt (defaults to true) */
|
|
385
|
+
enabled?: boolean;
|
|
386
|
+
/** Optional backend verification callback function */
|
|
387
|
+
verifier?: UseSiwxSignInOptions['verifier'];
|
|
388
|
+
/** Optional callback triggered immediately after successful SIWX authentication */
|
|
389
|
+
onSuccess?: UseSiwxSignInOptions['onSuccess'];
|
|
390
|
+
/** Optional callback triggered if SIWX signing or verification fails */
|
|
391
|
+
onError?: UseSiwxSignInOptions['onError'];
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Headless React component rendered inside `NovaConnectProvider`.
|
|
395
|
+
* Automatically prompts the user for SIWX authentication whenever a new wallet connects.
|
|
396
|
+
* Uses a `lastPromptedAddress` ref lock to prevent infinite retry loops on prompt rejection.
|
|
397
|
+
*/
|
|
398
|
+
declare function NovaSiwxWatcher(props: NovaSiwxWatcherProps): null;
|
|
399
|
+
|
|
374
400
|
type ButtonTxStatus = 'idle' | 'loading' | 'succeed' | 'failed' | 'replaced';
|
|
375
401
|
type ConnectContentType = 'network' | 'connectors' | 'about' | 'getWallet' | 'connecting' | 'impersonate';
|
|
376
402
|
type ConnectedContentType = 'main' | 'transactions' | 'chains' | 'connections';
|
|
@@ -396,6 +422,8 @@ interface NovaConnectProviderProps extends InitialChains {
|
|
|
396
422
|
customConnectorGroups?: Record<string, string[]>;
|
|
397
423
|
/** Legal configuration for Terms of Service and Privacy Policy links */
|
|
398
424
|
legal?: LegalConfig;
|
|
425
|
+
/** SIWX auto-authentication watcher configuration */
|
|
426
|
+
siwx?: NovaSiwxWatcherProps;
|
|
399
427
|
/**
|
|
400
428
|
* Pagination state for infinite scroll, forwarded to ConnectedModalTxHistory and TransactionsHistory.
|
|
401
429
|
* Mirrors TxInMemoryPagination from @tuwaio/pulsar-core (optional peer dependency).
|
|
@@ -705,4 +733,4 @@ interface NativeBalanceData {
|
|
|
705
733
|
*/
|
|
706
734
|
declare function useWalletNativeBalance(): NativeBalanceData;
|
|
707
735
|
|
|
708
|
-
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderProps as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderType as b, type LegalConfig as c, type NativeBalanceResult as d, NovaConnectLabelsContext as e, NovaConnectProviderContext as f, NovaConnectProviderError as g,
|
|
736
|
+
export { type AllChainConfigs as A, type ButtonTxStatus as B, type ConnectContentType as C, type InitialChains as I, type LabelCategory as L, type NovaConnectProviderProps as N, type WalletBalance as W, type ConnectedContentType as a, type NovaConnectProviderType as b, type LegalConfig as c, type NativeBalanceResult as d, NovaConnectLabelsContext as e, NovaConnectProviderContext as f, NovaConnectProviderError as g, NovaSiwxWatcher as h, type NovaSiwxWatcherProps as i, createLabelsSubset as j, getLabelWithFallback as k, hasLabel as l, isDefaultLabels as m, useLabelsByCategory as n, useNovaConnect as o, useNovaConnectLabel as p, useNovaConnectLabels as q, useNovaConnectLabelsSubset as r, useNovaConnectOptional as s, useWalletNativeBalance as t, useHasNovaConnectContext as u, type ConnectedModalTxHistoryProps as v, type ConnectedModalTxHistoryCustomization as w, ConnectedModalTxHistory as x, type LocalTransactionsHistoryCustomization as y, type LocalTxPagination as z };
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
|
-
"description": "Layer 7 (L7) of the TUWA Ecosystem. React components, hooks, and providers for wallet connection
|
|
7
|
+
"description": "Layer 7 (L7) of the TUWA Ecosystem. React components, hooks, and providers for wallet connection, blockchain interactions, and SIWX auto-authentication. Built on @tuwaio/satellite-react.",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./dist/index.cjs",
|
|
10
10
|
"module": "./dist/index.js",
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"@tuwaio/satellite-evm": ">=0.3.2",
|
|
97
97
|
"@tuwaio/satellite-solana": ">=0.3.2",
|
|
98
98
|
"@tuwaio/satellite-react": ">=0.3.2",
|
|
99
|
+
"@tuwaio/siwx-react": ">=0.1.0",
|
|
99
100
|
"@tuwaio/pulsar-core": ">=0.6",
|
|
100
101
|
"@tuwaio/nova-core": ">=0.3",
|
|
101
102
|
"@tuwaio/nova-transactions": ">=0.3",
|
|
@@ -166,6 +167,9 @@
|
|
|
166
167
|
"@tuwaio/satellite-react": {
|
|
167
168
|
"optional": false
|
|
168
169
|
},
|
|
170
|
+
"@tuwaio/siwx-react": {
|
|
171
|
+
"optional": true
|
|
172
|
+
},
|
|
169
173
|
"dayjs": {
|
|
170
174
|
"optional": true
|
|
171
175
|
},
|
|
@@ -202,13 +206,14 @@
|
|
|
202
206
|
"@radix-ui/react-dialog": "^1.1.23",
|
|
203
207
|
"@radix-ui/react-select": "^2.3.7",
|
|
204
208
|
"@tuwaio/orbit-core": "^0.2.15",
|
|
205
|
-
"@tuwaio/orbit-evm": "^0.2.
|
|
209
|
+
"@tuwaio/orbit-evm": "^0.2.22",
|
|
206
210
|
"@tuwaio/orbit-solana": "^0.2.13",
|
|
207
|
-
"@tuwaio/satellite-react": "^0.
|
|
208
|
-
"@tuwaio/satellite-core": "^0.
|
|
209
|
-
"@tuwaio/satellite-evm": "^0.
|
|
210
|
-
"@tuwaio/satellite-solana": "^0.
|
|
211
|
-
"@tuwaio/
|
|
211
|
+
"@tuwaio/satellite-react": "^0.4.1",
|
|
212
|
+
"@tuwaio/satellite-core": "^0.4.1",
|
|
213
|
+
"@tuwaio/satellite-evm": "^0.4.1",
|
|
214
|
+
"@tuwaio/satellite-solana": "^0.4.1",
|
|
215
|
+
"@tuwaio/siwx-react": "^0.1.0",
|
|
216
|
+
"@tuwaio/pulsar-core": "^0.6.11",
|
|
212
217
|
"@wallet-standard/react": "^1.0.3",
|
|
213
218
|
"@wagmi/core": "^3.6.4",
|
|
214
219
|
"@web3icons/react": "^4.1.20",
|
|
@@ -216,31 +221,32 @@
|
|
|
216
221
|
"gill": "^0.14.0",
|
|
217
222
|
"clsx": "^2.1.1",
|
|
218
223
|
"dayjs": "^1.11.21",
|
|
219
|
-
"immer": "^11.1.
|
|
224
|
+
"immer": "^11.1.16",
|
|
220
225
|
"ethereum-blockies-base64": "^1.0.2",
|
|
221
|
-
"framer-motion": "^
|
|
226
|
+
"framer-motion": "^13.0.0",
|
|
222
227
|
"react": "^19.2.8",
|
|
223
228
|
"react-toastify": "^11.1.0",
|
|
224
229
|
"tailwind-merge": "^3.6.0",
|
|
225
|
-
"viem": "^2.55.
|
|
230
|
+
"viem": "^2.55.11",
|
|
226
231
|
"zustand": "^5.0.14",
|
|
227
232
|
"@tailwindcss/postcss": "^4.3.3",
|
|
228
233
|
"@tailwindcss/vite": "^4.3.3",
|
|
234
|
+
"@types/node": "^26.2.0",
|
|
229
235
|
"@types/react": "^19.2.18",
|
|
230
236
|
"autoprefixer": "^10.5.4",
|
|
231
|
-
"postcss": "^8.5.
|
|
237
|
+
"postcss": "^8.5.26",
|
|
232
238
|
"postcss-cli": "^11.0.1",
|
|
233
239
|
"tailwindcss": "^4.3.3",
|
|
234
240
|
"@emotion/is-prop-valid": "^1.4.0",
|
|
235
241
|
"tw-animate-css": "^1.4.0",
|
|
236
242
|
"typescript": "^6.0.3",
|
|
237
243
|
"tsup": "^8.5.1",
|
|
238
|
-
"@tuwaio/nova-core": "^0.
|
|
239
|
-
"@tuwaio/nova-transactions": "^0.
|
|
244
|
+
"@tuwaio/nova-core": "^0.5.0",
|
|
245
|
+
"@tuwaio/nova-transactions": "^0.5.0"
|
|
240
246
|
},
|
|
241
247
|
"scripts": {
|
|
242
248
|
"start": "tsup src/index.ts --watch",
|
|
243
249
|
"build": "tsup && pnpm exec postcss ./src/styles/app.css -o ./dist/index.css",
|
|
244
|
-
"test": "vitest"
|
|
250
|
+
"test": "vitest run --passWithNoTests"
|
|
245
251
|
}
|
|
246
252
|
}
|