@tuwaio/nova-connect 0.9.2 → 0.10.0
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 +3 -3
- package/dist/{ConnectedModalTxHistory-BNJ-pXsP.d.ts → ConnectedModalTxHistory-BjQVfhCI.d.cts} +3 -2
- package/dist/{ConnectedModalTxHistory-CNOrs8nI.d.cts → ConnectedModalTxHistory-CowXW0Uv.d.ts} +3 -2
- package/dist/{chunk-JJPQMZYP.cjs → chunk-DEGWIGSQ.cjs} +2 -2
- package/dist/{chunk-IKMNJLDC.js → chunk-GK4S6VXY.js} +1 -1
- package/dist/{chunk-4JDZ2H7N.cjs → chunk-HWT22KWL.cjs} +1 -1
- package/dist/chunk-JDK6FI64.js +1 -0
- package/dist/chunk-NSIQIWLP.js +2 -0
- package/dist/chunk-YJDDF3LR.cjs +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +123 -10
- package/dist/components/index.d.ts +123 -10
- package/dist/components/index.js +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +5 -4
- package/dist/hooks/index.d.ts +5 -4
- package/dist/hooks/index.js +1 -1
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.d.cts +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +92 -0
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +1 -1
- package/dist/{types-CnOiSyvZ.d.cts → types-CgOZEEy1.d.cts} +6 -0
- package/dist/{types-CnOiSyvZ.d.ts → types-CgOZEEy1.d.ts} +6 -0
- package/package.json +21 -21
- package/dist/chunk-6EDQ7JRZ.js +0 -1
- package/dist/chunk-INTLGQEB.js +0 -2
- package/dist/chunk-R5V3K52O.cjs +0 -1
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from '../ConnectedModalTxHistory-
|
|
1
|
+
import { InitialChains } from '../index.js';
|
|
2
|
+
export { B as ButtonTxStatus, C as ConnectContentType, a as ConnectedContentType, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, N as NovaConnectProviderProps, b as NovaConnectProviderType, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from '../ConnectedModalTxHistory-CowXW0Uv.js';
|
|
3
3
|
import * as _tuwaio_satellite_core from '@tuwaio/satellite-core';
|
|
4
4
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
5
5
|
import { SatelliteSiwxFieldOptions, UseSiwxSignInOptions } from '@tuwaio/siwx-react';
|
|
6
6
|
import 'react';
|
|
7
|
-
import '../types-
|
|
7
|
+
import '../types-CgOZEEy1.js';
|
|
8
8
|
import 'framer-motion';
|
|
9
9
|
import '@tuwaio/orbit-core';
|
|
10
10
|
import '@tuwaio/pulsar-core';
|
|
@@ -146,4 +146,5 @@ declare function useWalletChainsList({ activeConnection, appChains, solanaRPCUrl
|
|
|
146
146
|
chainsList: (string | number)[];
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
-
export {
|
|
149
|
+
export { useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList };
|
|
150
|
+
export type { UseGetWalletNameAndAvatarOptions, UseNovaSiwxOptions, UseWalletChainsListProps, WalletNameAndAvatarData };
|
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,p as useNovaSiwx,A as useWalletChainsList,B as useWalletNativeBalance}from'../chunk-
|
|
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,A as useWalletChainsList,B as useWalletNativeBalance}from'../chunk-GK4S6VXY.js';import'../chunk-JDK6FI64.js';import'../chunk-ZVADGOGQ.js';import'../chunk-3LWAAUG4.js';
|
package/dist/i18n/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkYJDDF3LR_cjs=require('../chunk-YJDDF3LR.cjs');Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkYJDDF3LR_cjs.a}});Object.defineProperty(exports,"ukrainianLabels",{enumerable:true,get:function(){return chunkYJDDF3LR_cjs.b}});
|
package/dist/i18n/index.d.cts
CHANGED
package/dist/i18n/index.d.ts
CHANGED
package/dist/i18n/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as defaultLabels,b as ukrainianLabels}from'../chunk-
|
|
1
|
+
export{a as defaultLabels,b as ukrainianLabels}from'../chunk-JDK6FI64.js';
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkJJPQMZYP_cjs=require('./chunk-JJPQMZYP.cjs'),chunk4JDZ2H7N_cjs=require('./chunk-4JDZ2H7N.cjs'),chunkR5V3K52O_cjs=require('./chunk-R5V3K52O.cjs'),chunkEGATOYHY_cjs=require('./chunk-EGATOYHY.cjs');require('./chunk-YJRNNNR6.cjs');var novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime'),utils=require('@tuwaio/nova-core/utils'),siwxReact=require('@tuwaio/siwx-react');var Be=({title:e,rawError:r,onCopyComplete:i,errorType:u,isConnected:n,...m})=>jsxRuntime.jsx(chunkJJPQMZYP_cjs.H,{title:e,rawError:r,onCopyComplete:i,customization:m.customization}),We=e=>{let r=chunk4JDZ2H7N_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":r.somethingWentWrong})},ze=(e,r)=>{e(r.title,r.rawError,r.errorKey);},He=e=>{e();},Ie=(e,r)=>{if(e&&process.env.NODE_ENV==="development"){let i=typeof r=="string"?r:r.message;console.log("Error copied to clipboard:",i.substring(0,100));}},Ae=e=>e,Fe=e=>e;function Z({containerId:e="nova-connect-errors",position:r="top-center",autoClose:i=7e3,draggable:u=false,customization:n}){let m=chunk4JDZ2H7N_cjs.h(),B=chunkEGATOYHY_cjs.d(a=>a.switchNetworkError),A=chunkEGATOYHY_cjs.d(a=>a.activeConnection),W=chunkEGATOYHY_cjs.d(a=>a.connectionError),{ToastError:z=Be,Container:F=We}=n?.components??{},{showError:H=ze,dismissError:L=He,onCopyComplete:p=Ie}=n?.handlers??{},{errorTitle:V=Ae,errorHash:o=Fe}=n??{},y=react.useRef(new Set),v=react.useRef(null),M=!!W,f=!!B,c=!!A?.isConnected,w=M||f,b=W||B||null,l=M?"wallet":f?"switch":null,s={hasWalletError:M,hasSwitchError:f,isConnected:c,hasAnyError:w,primaryError:b,errorType:l},O=m.somethingWentWrong;switch(s.errorType){case "wallet":O=m.connectionError;break;case "switch":O=m.errorWhenChainSwitching;break}let S=V(O,{errorType:s.errorType}),t=s.primaryError?`${s.errorType}-${s.primaryError.message.substring(0,50)}`:null,d=o(t,{primaryError:s.primaryError,errorType:s.errorType}),C=react.useCallback(()=>{L(()=>{v.current&&(reactToastify.toast.dismiss(v.current),v.current=null),reactToastify.toast.dismiss({containerId:e});});},[e,L]),x=react.useCallback((a,P)=>{p(a,P,l);},[p,l]),R=react.useCallback((a,P,h)=>{if(C(),!y.current.has(h))try{let k={containerId:e,toastId:h,onClose:()=>{y.current.delete(h),v.current=null;}},U=n?.toastOptions?.error?.({title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected}),K={...k,...U};reactToastify.toast.error(jsxRuntime.jsx(z,{title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:_=>x(_,P),customization:n?.toastErrorCustomization}),K),y.current.add(h),v.current=h;}catch(k){console.error("Failed to show error toast:",k);}},[C,e,n?.toastOptions?.error,n?.toastErrorCustomization,z,s.errorType,s.isConnected,x]),N=react.useCallback((a,P,h)=>{H(R,{title:a,rawError:P,errorKey:h,errorType:l});},[R,H,l]);react.useEffect(()=>{if(c&&!w){C(),y.current.clear();return}if(w&&b&&d){if(c&&l!=="switch")return;N(S,b,d);}},[w,c,b,l,S,d,N,C]),react.useEffect(()=>()=>{C(),y.current.clear();},[C]);let I=n?.classNames?.container?n.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",D=react.useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:P})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:P,...a}):novaCore.ToastCloseButton},[n?.toastCloseButton]),$={...{containerId:e,position:r,closeOnClick:false,icon:false,closeButton:D,autoClose:i,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:u,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...n?.containerProps,className:I};return jsxRuntime.jsx(F,{...$})}Z.displayName="ErrorsProvider";function ee({labels:e,children:r}){let i=react.useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(m=>!(m in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunk4JDZ2H7N_cjs.g.Provider,{value:i,children:r})}ee.displayName="NovaConnectLabelsProvider";function be(e){let{enabled:r=true,getNonce:i,verifier:u,destroyer:n,domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L,onSuccess:p,onError:V}=e,o=chunkEGATOYHY_cjs.d(t=>t.activeConnection),y=chunkEGATOYHY_cjs.d(t=>t.disconnect),v=chunkEGATOYHY_cjs.d(t=>t.isAutoConnectFinished),{signIn:M}=siwxReact.useSiwx(),f=siwxReact.useSiwxSessionStore(t=>t.session),c=siwxReact.useSiwxSessionStore(t=>t.status),w=siwxReact.useSiwxSessionStore(t=>t.reset),b=react.useRef(null),l=react.useRef(false),s=react.useEffectEvent(()=>{w(),n&&n().catch(t=>{console.warn("[NovaSiwxWatcher] Failed to execute session destroyer:",t);});});react.useEffect(()=>{if(!o?.isConnected||!o?.address){if(b.current=null,v===false)return;(c==="authenticated"||f)&&s();}},[o?.isConnected,o?.address,v,c,f]);let O=react.useEffectEvent((t,d)=>o?.connectorType===t&&o.address===d),S=react.useEffectEvent(()=>{if(!(!o?.isConnected||!o.address||!o.signMessage))try{let t={address:String(o.address),chainId:o.chainId,signMessage:o.signMessage,isConnected:o.isConnected},d=siwxReact.getSatelliteSiwxFields(t,{domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L});if(c==="authenticated"&&siwxReact.isSessionMatchingConnection(f,t)||b.current===d.address)return;if(b.current=d.address,!u){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let{connectorType:C,address:x}=o,R=N=>{let I=N instanceof Error?N.message:String(N);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",I),C&&O(C,x)&&y(C),w(),V?.(I);};l.current=!0,M({signer:o.signMessage,verifier:u,getNonce:i,fields:d,onSuccess:p,onError:R}).catch(R).finally(()=>{l.current=!1;});}catch(t){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",t);}});return react.useEffect(()=>{!r||!o?.isConnected||!o?.address||!o?.chainId||o.signMessage&&(l.current||c==="building"||c==="signing"||c==="verifying"||S());},[o?.isConnected,o?.address,o?.chainId,o?.signMessage,o?.connectorType,r,c,f?.address]),null}var Xe=({labels:e,children:r})=>jsxRuntime.jsx(ee,{labels:e,children:r}),$e=({customization:e})=>jsxRuntime.jsx(Z,{customization:e}),Ue=(e,r)=>utils.deepMerge(e,r||{}),_e=e=>e,je=e=>e,Je=(e,r,i)=>e;function Qe({labels:e,children:r,appChains:i,solanaRPCUrls:u,transactionPool:n,pulsarAdapter:m,withImpersonated:B,withBalance:A,withChain:W,popularConnectors:z,customConnectorGroups:F,legal:H,siwx:L,customization:p,pagination:V}){let o=chunkEGATOYHY_cjs.d(J=>J.activeConnection),y=chunkEGATOYHY_cjs.d(J=>J.connectionError),{LabelsProvider:v=Xe,ErrorsProvider:M=$e}=p?.components??{},{merge:f=Ue,transform:c=_e}=p?.labels??{},{transform:w=je}=p?.contextValue??{},{providerTree:b=Je}=p?.rendering??{},l=react.useMemo(()=>f(chunkR5V3K52O_cjs.a,e||{}),[e,f]),[s,O]=react.useState(false),[S,t]=react.useState(false),[d,C]=react.useState(false),[x,R]=react.useState(false),[N,I]=react.useState("idle"),[D,se]=react.useState("connectors"),[$,a]=react.useState(void 0),[P,h]=react.useState(void 0),[k,U]=react.useState(""),[K,_]=react.useState(false),[j,Ne]=react.useState("main"),we={appChains:i,solanaRPCUrls:u,withImpersonated:B,popularConnectors:z,customConnectorGroups:F,withBalance:A,withChain:W,isConnectModalOpen:s,setIsConnectModalOpen:O,isConnectedModalOpen:S,setIsConnectedModalOpen:t,isChainsListOpen:d,setIsChainsListOpen:C,isChainsListOpenMobile:x,setIsChainsListOpenMobile:R,connectedButtonStatus:N,setConnectedButtonStatus:I,connectedModalContentType:j,setConnectedModalContentType:Ne,connectModalContentType:D,setConnectModalContentType:se,selectedAdapter:$,setSelectedAdapter:a,activeConnector:P,setActiveConnector:h,impersonatedAddress:k,setImpersonatedAddress:U,isConnected:K,setIsConnected:_,legal:H},G=react.useMemo(()=>({isConnected:K,activeConnection:o,connectionError:y,modalStates:{isConnectModalOpen:s,isConnectedModalOpen:S,isChainsListOpen:d,isChainsListOpenMobile:x},contentTypes:{connectModal:D,connectedModal:j},statuses:{connectedButton:N}}),[K,o,y,s,S,d,x,D,j,N]),ae=react.useMemo(()=>c(l,G),[l,c,G]),he=w(we,G),ie=jsxRuntime.jsx(M,{customization:p?.errors}),Se=jsxRuntime.jsx(v,{labels:ae,children:r}),ce=i||u?jsxRuntime.jsx(chunkJJPQMZYP_cjs.G,{solanaRPCUrls:u,appChains:i,customization:p?.modals?.connectModal}):null,le=i||u?jsxRuntime.jsx(chunkJJPQMZYP_cjs.t,{solanaRPCUrls:u,appChains:i,transactionPool:n,pulsarAdapter:m,customization:p?.modals?.connectedModal,pagination:V}):null,xe=L?jsxRuntime.jsx(be,{...L}):null,de=jsxRuntime.jsx(chunk4JDZ2H7N_cjs.c.Provider,{value:he,children:jsxRuntime.jsxs(v,{labels:ae,children:[xe,ie,r,ce,le]})}),Le=b(de,{ErrorsProvider:ie,LabelsProvider:Se,MainContent:de,ConnectModal:ce||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:le||jsxRuntime.jsx(jsxRuntime.Fragment,{})},G);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Le})}Qe.displayName="NovaConnectProvider";Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.v}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.q}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.u}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.y}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.w}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.n}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.t}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.x}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.z}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.m}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.r}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.s}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.A}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunk4JDZ2H7N_cjs.B}});exports.ErrorsProvider=Z;exports.NovaConnectLabelsProvider=ee;exports.NovaConnectProvider=Qe;exports.NovaSiwxWatcher=be;
|
|
1
|
+
'use strict';var chunkDEGWIGSQ_cjs=require('./chunk-DEGWIGSQ.cjs'),chunkHWT22KWL_cjs=require('./chunk-HWT22KWL.cjs'),chunkYJDDF3LR_cjs=require('./chunk-YJDDF3LR.cjs'),chunkEGATOYHY_cjs=require('./chunk-EGATOYHY.cjs');require('./chunk-YJRNNNR6.cjs');var novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime'),utils=require('@tuwaio/nova-core/utils'),siwxReact=require('@tuwaio/siwx-react');var Be=({title:e,rawError:r,onCopyComplete:i,errorType:u,isConnected:n,...m})=>jsxRuntime.jsx(chunkDEGWIGSQ_cjs.I,{title:e,rawError:r,onCopyComplete:i,customization:m.customization}),We=e=>{let r=chunkHWT22KWL_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":r.somethingWentWrong})},ze=(e,r)=>{e(r.title,r.rawError,r.errorKey);},He=e=>{e();},Ie=(e,r)=>{if(e&&process.env.NODE_ENV==="development"){let i=typeof r=="string"?r:r.message;console.log("Error copied to clipboard:",i.substring(0,100));}},Ae=e=>e,Fe=e=>e;function Z({containerId:e="nova-connect-errors",position:r="top-center",autoClose:i=7e3,draggable:u=false,customization:n}){let m=chunkHWT22KWL_cjs.h(),B=chunkEGATOYHY_cjs.d(a=>a.switchNetworkError),A=chunkEGATOYHY_cjs.d(a=>a.activeConnection),W=chunkEGATOYHY_cjs.d(a=>a.connectionError),{ToastError:z=Be,Container:F=We}=n?.components??{},{showError:H=ze,dismissError:L=He,onCopyComplete:p=Ie}=n?.handlers??{},{errorTitle:V=Ae,errorHash:o=Fe}=n??{},y=react.useRef(new Set),v=react.useRef(null),M=!!W,f=!!B,c=!!A?.isConnected,w=M||f,b=W||B||null,l=M?"wallet":f?"switch":null,s={hasWalletError:M,hasSwitchError:f,isConnected:c,hasAnyError:w,primaryError:b,errorType:l},O=m.somethingWentWrong;switch(s.errorType){case "wallet":O=m.connectionError;break;case "switch":O=m.errorWhenChainSwitching;break}let S=V(O,{errorType:s.errorType}),t=s.primaryError?`${s.errorType}-${s.primaryError.message.substring(0,50)}`:null,d=o(t,{primaryError:s.primaryError,errorType:s.errorType}),C=react.useCallback(()=>{L(()=>{v.current&&(reactToastify.toast.dismiss(v.current),v.current=null),reactToastify.toast.dismiss({containerId:e});});},[e,L]),x=react.useCallback((a,P)=>{p(a,P,l);},[p,l]),R=react.useCallback((a,P,h)=>{if(C(),!y.current.has(h))try{let k={containerId:e,toastId:h,onClose:()=>{y.current.delete(h),v.current=null;}},U=n?.toastOptions?.error?.({title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected}),K={...k,...U};reactToastify.toast.error(jsxRuntime.jsx(z,{title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:_=>x(_,P),customization:n?.toastErrorCustomization}),K),y.current.add(h),v.current=h;}catch(k){console.error("Failed to show error toast:",k);}},[C,e,n?.toastOptions?.error,n?.toastErrorCustomization,z,s.errorType,s.isConnected,x]),N=react.useCallback((a,P,h)=>{H(R,{title:a,rawError:P,errorKey:h,errorType:l});},[R,H,l]);react.useEffect(()=>{if(c&&!w){C(),y.current.clear();return}if(w&&b&&d){if(c&&l!=="switch")return;N(S,b,d);}},[w,c,b,l,S,d,N,C]),react.useEffect(()=>()=>{C(),y.current.clear();},[C]);let I=n?.classNames?.container?n.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",D=react.useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:P})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:P,...a}):novaCore.ToastCloseButton},[n?.toastCloseButton]),$={...{containerId:e,position:r,closeOnClick:false,icon:false,closeButton:D,autoClose:i,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:u,pauseOnHover:true,theme:"light",transition:reactToastify.Bounce},...n?.containerProps,className:I};return jsxRuntime.jsx(F,{...$})}Z.displayName="ErrorsProvider";function ee({labels:e,children:r}){let i=react.useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(m=>!(m in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunkHWT22KWL_cjs.g.Provider,{value:i,children:r})}ee.displayName="NovaConnectLabelsProvider";function be(e){let{enabled:r=true,getNonce:i,verifier:u,destroyer:n,domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L,onSuccess:p,onError:V}=e,o=chunkEGATOYHY_cjs.d(t=>t.activeConnection),y=chunkEGATOYHY_cjs.d(t=>t.disconnect),v=chunkEGATOYHY_cjs.d(t=>t.isAutoConnectFinished),{signIn:M}=siwxReact.useSiwx(),f=siwxReact.useSiwxSessionStore(t=>t.session),c=siwxReact.useSiwxSessionStore(t=>t.status),w=siwxReact.useSiwxSessionStore(t=>t.reset),b=react.useRef(null),l=react.useRef(false),s=react.useEffectEvent(()=>{w(),n&&n().catch(t=>{console.warn("[NovaSiwxWatcher] Failed to execute session destroyer:",t);});});react.useEffect(()=>{if(!o?.isConnected||!o?.address){if(b.current=null,v===false)return;(c==="authenticated"||f)&&s();}},[o?.isConnected,o?.address,v,c,f]);let O=react.useEffectEvent((t,d)=>o?.connectorType===t&&o.address===d),S=react.useEffectEvent(()=>{if(!(!o?.isConnected||!o.address||!o.signMessage))try{let t={address:String(o.address),chainId:o.chainId,signMessage:o.signMessage,isConnected:o.isConnected},d=siwxReact.getSatelliteSiwxFields(t,{domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L});if(c==="authenticated"&&siwxReact.isSessionMatchingConnection(f,t)||b.current===d.address)return;if(b.current=d.address,!u){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let{connectorType:C,address:x}=o,R=N=>{let I=N instanceof Error?N.message:String(N);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",I),C&&O(C,x)&&y(C),w(),V?.(I);};l.current=!0,M({signer:o.signMessage,verifier:u,getNonce:i,fields:d,onSuccess:p,onError:R}).catch(R).finally(()=>{l.current=!1;});}catch(t){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",t);}});return react.useEffect(()=>{!r||!o?.isConnected||!o?.address||!o?.chainId||o.signMessage&&(l.current||c==="building"||c==="signing"||c==="verifying"||S());},[o?.isConnected,o?.address,o?.chainId,o?.signMessage,o?.connectorType,r,c,f?.address]),null}var Xe=({labels:e,children:r})=>jsxRuntime.jsx(ee,{labels:e,children:r}),$e=({customization:e})=>jsxRuntime.jsx(Z,{customization:e}),Ue=(e,r)=>utils.deepMerge(e,r||{}),_e=e=>e,je=e=>e,Je=(e,r,i)=>e;function Qe({labels:e,children:r,appChains:i,solanaRPCUrls:u,transactionPool:n,pulsarAdapter:m,withImpersonated:B,withBalance:A,withChain:W,popularConnectors:z,customConnectorGroups:F,legal:H,siwx:L,customization:p,pagination:V}){let o=chunkEGATOYHY_cjs.d(J=>J.activeConnection),y=chunkEGATOYHY_cjs.d(J=>J.connectionError),{LabelsProvider:v=Xe,ErrorsProvider:M=$e}=p?.components??{},{merge:f=Ue,transform:c=_e}=p?.labels??{},{transform:w=je}=p?.contextValue??{},{providerTree:b=Je}=p?.rendering??{},l=react.useMemo(()=>f(chunkYJDDF3LR_cjs.a,e||{}),[e,f]),[s,O]=react.useState(false),[S,t]=react.useState(false),[d,C]=react.useState(false),[x,R]=react.useState(false),[N,I]=react.useState("idle"),[D,se]=react.useState("connectors"),[$,a]=react.useState(void 0),[P,h]=react.useState(void 0),[k,U]=react.useState(""),[K,_]=react.useState(false),[j,Ne]=react.useState("main"),we={appChains:i,solanaRPCUrls:u,withImpersonated:B,popularConnectors:z,customConnectorGroups:F,withBalance:A,withChain:W,isConnectModalOpen:s,setIsConnectModalOpen:O,isConnectedModalOpen:S,setIsConnectedModalOpen:t,isChainsListOpen:d,setIsChainsListOpen:C,isChainsListOpenMobile:x,setIsChainsListOpenMobile:R,connectedButtonStatus:N,setConnectedButtonStatus:I,connectedModalContentType:j,setConnectedModalContentType:Ne,connectModalContentType:D,setConnectModalContentType:se,selectedAdapter:$,setSelectedAdapter:a,activeConnector:P,setActiveConnector:h,impersonatedAddress:k,setImpersonatedAddress:U,isConnected:K,setIsConnected:_,legal:H},G=react.useMemo(()=>({isConnected:K,activeConnection:o,connectionError:y,modalStates:{isConnectModalOpen:s,isConnectedModalOpen:S,isChainsListOpen:d,isChainsListOpenMobile:x},contentTypes:{connectModal:D,connectedModal:j},statuses:{connectedButton:N}}),[K,o,y,s,S,d,x,D,j,N]),ae=react.useMemo(()=>c(l,G),[l,c,G]),he=w(we,G),ie=jsxRuntime.jsx(M,{customization:p?.errors}),Se=jsxRuntime.jsx(v,{labels:ae,children:r}),ce=i||u?jsxRuntime.jsx(chunkDEGWIGSQ_cjs.H,{solanaRPCUrls:u,appChains:i,customization:p?.modals?.connectModal}):null,le=i||u?jsxRuntime.jsx(chunkDEGWIGSQ_cjs.t,{solanaRPCUrls:u,appChains:i,transactionPool:n,pulsarAdapter:m,customization:p?.modals?.connectedModal,pagination:V}):null,xe=L?jsxRuntime.jsx(be,{...L}):null,de=jsxRuntime.jsx(chunkHWT22KWL_cjs.c.Provider,{value:he,children:jsxRuntime.jsxs(v,{labels:ae,children:[xe,ie,r,ce,le]})}),Le=b(de,{ErrorsProvider:ie,LabelsProvider:Se,MainContent:de,ConnectModal:ce||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:le||jsxRuntime.jsx(jsxRuntime.Fragment,{})},G);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Le})}Qe.displayName="NovaConnectProvider";Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.v}});Object.defineProperty(exports,"getChainsListByConnectorType",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.q}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.u}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.y}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.w}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.n}});Object.defineProperty(exports,"getWalletChains",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.t}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.x}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.z}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.m}});Object.defineProperty(exports,"isEvmChainList",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.r}});Object.defineProperty(exports,"isSolanaChainList",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.s}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.f}});Object.defineProperty(exports,"useNovaSiwx",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.p}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.A}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkHWT22KWL_cjs.B}});exports.ErrorsProvider=Z;exports.NovaConnectLabelsProvider=ee;exports.NovaConnectProvider=Qe;exports.NovaSiwxWatcher=be;
|
package/dist/index.css
CHANGED
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
--novacon-font-weight-semibold: 600;
|
|
26
26
|
--novacon-font-weight-bold: 700;
|
|
27
27
|
--novacon-tracking-wider: 0.05em;
|
|
28
|
+
--novacon-leading-tight: 1.25;
|
|
29
|
+
--novacon-leading-snug: 1.375;
|
|
28
30
|
--novacon-leading-relaxed: 1.625;
|
|
29
31
|
--novacon-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
30
32
|
--novacon-animate-spin: spin 1s linear infinite;
|
|
@@ -94,6 +96,9 @@
|
|
|
94
96
|
.novacon\:top-\[25\%\] {
|
|
95
97
|
top: 25%;
|
|
96
98
|
}
|
|
99
|
+
.novacon\:top-full {
|
|
100
|
+
top: 100%;
|
|
101
|
+
}
|
|
97
102
|
.novacon\:-right-1 {
|
|
98
103
|
right: calc(var(--novacon-spacing) * -1);
|
|
99
104
|
}
|
|
@@ -106,6 +111,9 @@
|
|
|
106
111
|
.novacon\:right-0\.5 {
|
|
107
112
|
right: calc(var(--novacon-spacing) * 0.5);
|
|
108
113
|
}
|
|
114
|
+
.novacon\:right-1\.5 {
|
|
115
|
+
right: calc(var(--novacon-spacing) * 1.5);
|
|
116
|
+
}
|
|
109
117
|
.novacon\:right-2 {
|
|
110
118
|
right: calc(var(--novacon-spacing) * 2);
|
|
111
119
|
}
|
|
@@ -142,6 +150,9 @@
|
|
|
142
150
|
.novacon\:bottom-\[15\%\] {
|
|
143
151
|
bottom: 15%;
|
|
144
152
|
}
|
|
153
|
+
.novacon\:bottom-full {
|
|
154
|
+
bottom: 100%;
|
|
155
|
+
}
|
|
145
156
|
.novacon\:left-1\/2 {
|
|
146
157
|
left: calc(1 / 2 * 100%);
|
|
147
158
|
}
|
|
@@ -190,6 +201,9 @@
|
|
|
190
201
|
.novacon\:mx-4 {
|
|
191
202
|
margin-inline: calc(var(--novacon-spacing) * 4);
|
|
192
203
|
}
|
|
204
|
+
.novacon\:-mt-1 {
|
|
205
|
+
margin-top: calc(var(--novacon-spacing) * -1);
|
|
206
|
+
}
|
|
193
207
|
.novacon\:mt-1 {
|
|
194
208
|
margin-top: var(--novacon-spacing);
|
|
195
209
|
}
|
|
@@ -295,6 +309,9 @@
|
|
|
295
309
|
.novacon\:h-\[2px\] {
|
|
296
310
|
height: 2px;
|
|
297
311
|
}
|
|
312
|
+
.novacon\:h-\[18px\] {
|
|
313
|
+
height: 18px;
|
|
314
|
+
}
|
|
298
315
|
.novacon\:h-\[42px\] {
|
|
299
316
|
height: 42px;
|
|
300
317
|
}
|
|
@@ -385,6 +402,9 @@
|
|
|
385
402
|
.novacon\:w-\[1px\] {
|
|
386
403
|
width: 1px;
|
|
387
404
|
}
|
|
405
|
+
.novacon\:w-\[18px\] {
|
|
406
|
+
width: 18px;
|
|
407
|
+
}
|
|
388
408
|
.novacon\:w-\[42px\] {
|
|
389
409
|
width: 42px;
|
|
390
410
|
}
|
|
@@ -400,6 +420,13 @@
|
|
|
400
420
|
.novacon\:w-full {
|
|
401
421
|
width: 100%;
|
|
402
422
|
}
|
|
423
|
+
.novacon\:w-max {
|
|
424
|
+
width: -moz-max-content;
|
|
425
|
+
width: max-content;
|
|
426
|
+
}
|
|
427
|
+
.novacon\:max-w-\[240px\] {
|
|
428
|
+
max-width: 240px;
|
|
429
|
+
}
|
|
403
430
|
.novacon\:max-w-full {
|
|
404
431
|
max-width: 100%;
|
|
405
432
|
}
|
|
@@ -418,6 +445,9 @@
|
|
|
418
445
|
.novacon\:flex-shrink-0 {
|
|
419
446
|
flex-shrink: 0;
|
|
420
447
|
}
|
|
448
|
+
.novacon\:shrink-0 {
|
|
449
|
+
flex-shrink: 0;
|
|
450
|
+
}
|
|
421
451
|
.novacon\:-translate-x-1\/2 {
|
|
422
452
|
--tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
|
|
423
453
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -430,6 +460,9 @@
|
|
|
430
460
|
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
|
431
461
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
432
462
|
}
|
|
463
|
+
.novacon\:rotate-45 {
|
|
464
|
+
rotate: 45deg;
|
|
465
|
+
}
|
|
433
466
|
.novacon\:transform {
|
|
434
467
|
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
435
468
|
}
|
|
@@ -494,9 +527,15 @@
|
|
|
494
527
|
.novacon\:gap-1 {
|
|
495
528
|
gap: var(--novacon-spacing);
|
|
496
529
|
}
|
|
530
|
+
.novacon\:gap-1\.5 {
|
|
531
|
+
gap: calc(var(--novacon-spacing) * 1.5);
|
|
532
|
+
}
|
|
497
533
|
.novacon\:gap-2 {
|
|
498
534
|
gap: calc(var(--novacon-spacing) * 2);
|
|
499
535
|
}
|
|
536
|
+
.novacon\:gap-2\.5 {
|
|
537
|
+
gap: calc(var(--novacon-spacing) * 2.5);
|
|
538
|
+
}
|
|
500
539
|
.novacon\:gap-3 {
|
|
501
540
|
gap: calc(var(--novacon-spacing) * 3);
|
|
502
541
|
}
|
|
@@ -551,6 +590,12 @@
|
|
|
551
590
|
.novacon\:overflow-y-auto {
|
|
552
591
|
overflow-y: auto;
|
|
553
592
|
}
|
|
593
|
+
.novacon\:rounded-\[inherit\] {
|
|
594
|
+
border-radius: inherit;
|
|
595
|
+
}
|
|
596
|
+
.novacon\:rounded-\[min\(var\(--tuwa-rounded-corners\)\,5px\)\] {
|
|
597
|
+
border-radius: min(var(--tuwa-rounded-corners), 5px);
|
|
598
|
+
}
|
|
554
599
|
.novacon\:rounded-\[var\(--tuwa-rounded-corners\)\] {
|
|
555
600
|
border-radius: var(--tuwa-rounded-corners);
|
|
556
601
|
}
|
|
@@ -565,6 +610,10 @@
|
|
|
565
610
|
border-style: var(--tw-border-style);
|
|
566
611
|
border-width: 2px;
|
|
567
612
|
}
|
|
613
|
+
.novacon\:border-\[1\.5px\] {
|
|
614
|
+
border-style: var(--tw-border-style);
|
|
615
|
+
border-width: 1.5px;
|
|
616
|
+
}
|
|
568
617
|
.novacon\:border-t {
|
|
569
618
|
border-top-style: var(--tw-border-style);
|
|
570
619
|
border-top-width: 1px;
|
|
@@ -646,6 +695,9 @@
|
|
|
646
695
|
.novacon\:bg-\[var\(--tuwa-text-accent\)\] {
|
|
647
696
|
background-color: var(--tuwa-text-accent);
|
|
648
697
|
}
|
|
698
|
+
.novacon\:bg-\[var\(--tuwa-text-primary\)\] {
|
|
699
|
+
background-color: var(--tuwa-text-primary);
|
|
700
|
+
}
|
|
649
701
|
.novacon\:bg-\[var\(--tuwa-warning-bg\)\] {
|
|
650
702
|
background-color: var(--tuwa-warning-bg);
|
|
651
703
|
}
|
|
@@ -795,6 +847,14 @@
|
|
|
795
847
|
--tw-leading: var(--novacon-leading-relaxed);
|
|
796
848
|
line-height: var(--novacon-leading-relaxed);
|
|
797
849
|
}
|
|
850
|
+
.novacon\:leading-snug {
|
|
851
|
+
--tw-leading: var(--novacon-leading-snug);
|
|
852
|
+
line-height: var(--novacon-leading-snug);
|
|
853
|
+
}
|
|
854
|
+
.novacon\:leading-tight {
|
|
855
|
+
--tw-leading: var(--novacon-leading-tight);
|
|
856
|
+
line-height: var(--novacon-leading-tight);
|
|
857
|
+
}
|
|
798
858
|
.novacon\:font-bold {
|
|
799
859
|
--tw-font-weight: var(--novacon-font-weight-bold);
|
|
800
860
|
font-weight: var(--novacon-font-weight-bold);
|
|
@@ -817,6 +877,9 @@
|
|
|
817
877
|
.novacon\:whitespace-nowrap {
|
|
818
878
|
white-space: nowrap;
|
|
819
879
|
}
|
|
880
|
+
.novacon\:text-\[var\(--tuwa-bg-primary\)\] {
|
|
881
|
+
color: var(--tuwa-bg-primary);
|
|
882
|
+
}
|
|
820
883
|
.novacon\:text-\[var\(--tuwa-error-text\)\] {
|
|
821
884
|
color: var(--tuwa-error-text);
|
|
822
885
|
}
|
|
@@ -880,6 +943,10 @@
|
|
|
880
943
|
.novacon\:opacity-100 {
|
|
881
944
|
opacity: 100%;
|
|
882
945
|
}
|
|
946
|
+
.novacon\:shadow-lg {
|
|
947
|
+
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
948
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
949
|
+
}
|
|
883
950
|
.novacon\:shadow-sm {
|
|
884
951
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
885
952
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -907,6 +974,11 @@
|
|
|
907
974
|
transition-timing-function: var(--tw-ease, var(--novacon-default-transition-timing-function));
|
|
908
975
|
transition-duration: var(--tw-duration, var(--novacon-default-transition-duration));
|
|
909
976
|
}
|
|
977
|
+
.novacon\:transition-\[background-color\,border-color\] {
|
|
978
|
+
transition-property: background-color,border-color;
|
|
979
|
+
transition-timing-function: var(--tw-ease, var(--novacon-default-transition-timing-function));
|
|
980
|
+
transition-duration: var(--tw-duration, var(--novacon-default-transition-duration));
|
|
981
|
+
}
|
|
910
982
|
.novacon\:transition-all {
|
|
911
983
|
transition-property: all;
|
|
912
984
|
transition-timing-function: var(--tw-ease, var(--novacon-default-transition-timing-function));
|
|
@@ -962,6 +1034,9 @@
|
|
|
962
1034
|
--tw-scale-z: 90%;
|
|
963
1035
|
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
964
1036
|
}
|
|
1037
|
+
.novacon\:group-hover\:border-\[var\(--tuwa-text-accent\)\]:is(:where(.novacon\:group):hover *) {
|
|
1038
|
+
border-color: var(--tuwa-text-accent);
|
|
1039
|
+
}
|
|
965
1040
|
.novacon\:group-hover\:text-\[var\(--tuwa-text-accent\)\]:is(:where(.novacon\:group):hover *) {
|
|
966
1041
|
color: var(--tuwa-text-accent);
|
|
967
1042
|
}
|
|
@@ -975,6 +1050,20 @@
|
|
|
975
1050
|
opacity: 100%;
|
|
976
1051
|
}
|
|
977
1052
|
}
|
|
1053
|
+
.novacon\:peer-focus-visible\:ring-\[length\:var\(--tuwa-ring-width\)\]:is(:where(.novacon\:peer):focus-visible ~ *) {
|
|
1054
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(var(--tuwa-ring-width) + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1055
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1056
|
+
}
|
|
1057
|
+
.novacon\:peer-focus-visible\:ring-\[var\(--tuwa-text-accent\)\]:is(:where(.novacon\:peer):focus-visible ~ *) {
|
|
1058
|
+
--tw-ring-color: var(--tuwa-text-accent);
|
|
1059
|
+
}
|
|
1060
|
+
.novacon\:peer-focus-visible\:ring-offset-\[length\:var\(--tuwa-ring-width\)\]:is(:where(.novacon\:peer):focus-visible ~ *) {
|
|
1061
|
+
--tw-ring-offset-width: var(--tuwa-ring-width);
|
|
1062
|
+
--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
|
1063
|
+
}
|
|
1064
|
+
.novacon\:peer-focus-visible\:ring-offset-\[var\(--tuwa-bg-primary\)\]:is(:where(.novacon\:peer):focus-visible ~ *) {
|
|
1065
|
+
--tw-ring-offset-color: var(--tuwa-bg-primary);
|
|
1066
|
+
}
|
|
978
1067
|
.novacon\:placeholder\:text-\[var\(--tuwa-text-secondary\)\]::-moz-placeholder {
|
|
979
1068
|
color: var(--tuwa-text-secondary);
|
|
980
1069
|
}
|
|
@@ -1144,6 +1233,9 @@
|
|
|
1144
1233
|
.novacon\:focus-visible\:ring-\[var\(--tuwa-border-accent\)\]:focus-visible {
|
|
1145
1234
|
--tw-ring-color: var(--tuwa-border-accent);
|
|
1146
1235
|
}
|
|
1236
|
+
.novacon\:focus-visible\:ring-\[var\(--tuwa-text-accent\)\]:focus-visible {
|
|
1237
|
+
--tw-ring-color: var(--tuwa-text-accent);
|
|
1238
|
+
}
|
|
1147
1239
|
.novacon\:focus-visible\:ring-offset-\[length\:var\(--tuwa-ring-width\)\]:focus-visible {
|
|
1148
1240
|
--tw-ring-offset-width: var(--tuwa-ring-width);
|
|
1149
1241
|
--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
package/dist/index.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { UseGetWalletNameAndAvatarOptions, UseNovaSiwxOptions, UseWalletChainsListProps, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.cjs';
|
|
2
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './ConnectedModalTxHistory-
|
|
3
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectAppChains, f as NovaConnectChainConfigTypes, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, j as NovaConnectSolanaRPCUrls, k as NovaSiwxWatcher, l as NovaSiwxWatcherProps, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from './ConnectedModalTxHistory-
|
|
2
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './ConnectedModalTxHistory-BjQVfhCI.cjs';
|
|
3
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectAppChains, f as NovaConnectChainConfigTypes, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, j as NovaConnectSolanaRPCUrls, k as NovaSiwxWatcher, l as NovaSiwxWatcherProps, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from './ConnectedModalTxHistory-BjQVfhCI.cjs';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
6
6
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
|
7
7
|
import { TuwaErrorState, ConnectorType, ChainIdentifierArray, OrbitAdapter } from '@tuwaio/orbit-core';
|
|
8
8
|
import { ToastPosition, ToastContainer, toast } from 'react-toastify';
|
|
9
9
|
import { ToastErrorCustomization, ConnectModalCustomization, ConnectedModalCustomization } from './components/index.cjs';
|
|
10
|
-
import {
|
|
10
|
+
import { NovaConnectLabels } from './i18n/index.cjs';
|
|
11
11
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { Connector } from '@tuwaio/satellite-react';
|
|
13
13
|
import '@tuwaio/siwx-react';
|
|
@@ -545,4 +545,5 @@ declare function getFilteredConnectors({ connectors, selectedAdapter, }: GetFilt
|
|
|
545
545
|
*/
|
|
546
546
|
declare function hasConnectorsForAdapter(connectors: Partial<Record<OrbitAdapter, Connector[]>>, adapter: OrbitAdapter): boolean;
|
|
547
547
|
|
|
548
|
-
export { ButtonTxStatus, ConnectContentType, ConnectedContentType, ErrorsProvider,
|
|
548
|
+
export { ButtonTxStatus, ConnectContentType, ConnectedContentType, ErrorsProvider, InitialChains, NovaConnectLabelsProvider, NovaConnectProvider, NovaConnectProviderProps, NovaConnectProviderType, getAvailableChainIds, getChainsListByConnectorType, getConnectChainId, getFilteredConnectors, getGroupedConnectors, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, isEvmChainList, isSolanaChainList };
|
|
549
|
+
export type { ErrorsProviderContainerProps, ErrorsProviderCustomization, ErrorsProviderProps, ErrorsProviderToastErrorProps, GetChainsListByConnectorTypeParams, GetFilteredConnectorsParams, GetGroupedConnectorsParams, GroupedConnector, NovaConnectLabelsProviderProps, NovaConnectProviderCustomization, NovaConnectProviderCustomizationContext, NovaConnectProviderErrorsProviderProps, NovaConnectProviderLabelsProviderProps, NovaConnectProviderPropsWithCustomization };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { UseGetWalletNameAndAvatarOptions, UseNovaSiwxOptions, UseWalletChainsListProps, WalletNameAndAvatarData, useGetWalletNameAndAvatar, useNovaSiwx, useWalletChainsList } from './hooks/index.js';
|
|
2
|
-
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './ConnectedModalTxHistory-
|
|
3
|
-
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectAppChains, f as NovaConnectChainConfigTypes, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, j as NovaConnectSolanaRPCUrls, k as NovaSiwxWatcher, l as NovaSiwxWatcherProps, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from './ConnectedModalTxHistory-
|
|
2
|
+
import { N as NovaConnectProviderProps, C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, b as NovaConnectProviderType, I as InitialChains } from './ConnectedModalTxHistory-CowXW0Uv.js';
|
|
3
|
+
export { A as AllChainConfigs, L as LabelCategory, c as LegalConfig, d as NativeBalanceResult, e as NovaConnectAppChains, f as NovaConnectChainConfigTypes, g as NovaConnectLabelsContext, h as NovaConnectProviderContext, i as NovaConnectProviderError, j as NovaConnectSolanaRPCUrls, k as NovaSiwxWatcher, l as NovaSiwxWatcherProps, U as UseWalletNativeBalanceData, m as UseWalletNativeBalanceState, W as WalletBalance, n as createLabelsSubset, o as getLabelWithFallback, p as hasLabel, q as isDefaultLabels, u as useHasNovaConnectContext, r as useLabelsByCategory, s as useNovaConnect, t as useNovaConnectLabel, v as useNovaConnectLabels, w as useNovaConnectLabelsSubset, x as useNovaConnectOptional, y as useWalletNativeBalance } from './ConnectedModalTxHistory-CowXW0Uv.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
6
6
|
import { ToastCloseButtonProps } from '@tuwaio/nova-core';
|
|
7
7
|
import { TuwaErrorState, ConnectorType, ChainIdentifierArray, OrbitAdapter } from '@tuwaio/orbit-core';
|
|
8
8
|
import { ToastPosition, ToastContainer, toast } from 'react-toastify';
|
|
9
9
|
import { ToastErrorCustomization, ConnectModalCustomization, ConnectedModalCustomization } from './components/index.js';
|
|
10
|
-
import {
|
|
10
|
+
import { NovaConnectLabels } from './i18n/index.js';
|
|
11
11
|
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { Connector } from '@tuwaio/satellite-react';
|
|
13
13
|
import '@tuwaio/siwx-react';
|
|
@@ -545,4 +545,5 @@ declare function getFilteredConnectors({ connectors, selectedAdapter, }: GetFilt
|
|
|
545
545
|
*/
|
|
546
546
|
declare function hasConnectorsForAdapter(connectors: Partial<Record<OrbitAdapter, Connector[]>>, adapter: OrbitAdapter): boolean;
|
|
547
547
|
|
|
548
|
-
export { ButtonTxStatus, ConnectContentType, ConnectedContentType, ErrorsProvider,
|
|
548
|
+
export { ButtonTxStatus, ConnectContentType, ConnectedContentType, ErrorsProvider, InitialChains, NovaConnectLabelsProvider, NovaConnectProvider, NovaConnectProviderProps, NovaConnectProviderType, getAvailableChainIds, getChainsListByConnectorType, getConnectChainId, getFilteredConnectors, getGroupedConnectors, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, isEvmChainList, isSolanaChainList };
|
|
549
|
+
export type { ErrorsProviderContainerProps, ErrorsProviderCustomization, ErrorsProviderProps, ErrorsProviderToastErrorProps, GetChainsListByConnectorTypeParams, GetFilteredConnectorsParams, GetGroupedConnectorsParams, GroupedConnector, NovaConnectLabelsProviderProps, NovaConnectProviderCustomization, NovaConnectProviderCustomizationContext, NovaConnectProviderErrorsProviderProps, NovaConnectProviderLabelsProviderProps, NovaConnectProviderPropsWithCustomization };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {H,t,I}from'./chunk-NSIQIWLP.js';import {h,g,c}from'./chunk-GK4S6VXY.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,v as getAvailableChainIds,q as getChainsListByConnectorType,u as getConnectChainId,y as getFilteredConnectors,w as getGroupedConnectors,n as getLabelWithFallback,t as getWalletChains,x as hasAvailableConnectors,z as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,r as isEvmChainList,s as isSolanaChainList,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,A as useWalletChainsList,B as useWalletNativeBalance}from'./chunk-GK4S6VXY.js';import {a}from'./chunk-JDK6FI64.js';import {d}from'./chunk-ZVADGOGQ.js';import'./chunk-3LWAAUG4.js';import {ToastCloseButton}from'@tuwaio/nova-core';import {useRef,useCallback,useEffect,useMemo,useEffectEvent,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {deepMerge}from'@tuwaio/nova-core/utils';import {useSiwx,useSiwxSessionStore,getSatelliteSiwxFields,isSessionMatchingConnection}from'@tuwaio/siwx-react';var Be=({title:e,rawError:r,onCopyComplete:i,errorType:u,isConnected:n,...m})=>jsx(I,{title:e,rawError:r,onCopyComplete:i,customization:m.customization}),We=e=>{let r=h();return jsx(ToastContainer,{...e,role:"alert","aria-live":"assertive","aria-label":r.somethingWentWrong})},ze=(e,r)=>{e(r.title,r.rawError,r.errorKey);},He=e=>{e();},Ie=(e,r)=>{if(e&&process.env.NODE_ENV==="development"){let i=typeof r=="string"?r:r.message;console.log("Error copied to clipboard:",i.substring(0,100));}},Ae=e=>e,Fe=e=>e;function Z({containerId:e="nova-connect-errors",position:r="top-center",autoClose:i=7e3,draggable:u=false,customization:n}){let m=h(),B=d(a=>a.switchNetworkError),A=d(a=>a.activeConnection),W=d(a=>a.connectionError),{ToastError:z=Be,Container:F=We}=n?.components??{},{showError:H=ze,dismissError:L=He,onCopyComplete:p=Ie}=n?.handlers??{},{errorTitle:V=Ae,errorHash:o=Fe}=n??{},y=useRef(new Set),v=useRef(null),M=!!W,f=!!B,c=!!A?.isConnected,w=M||f,b=W||B||null,l=M?"wallet":f?"switch":null,s={hasWalletError:M,hasSwitchError:f,isConnected:c,hasAnyError:w,primaryError:b,errorType:l},O=m.somethingWentWrong;switch(s.errorType){case "wallet":O=m.connectionError;break;case "switch":O=m.errorWhenChainSwitching;break}let S=V(O,{errorType:s.errorType}),t=s.primaryError?`${s.errorType}-${s.primaryError.message.substring(0,50)}`:null,d$1=o(t,{primaryError:s.primaryError,errorType:s.errorType}),C=useCallback(()=>{L(()=>{v.current&&(toast.dismiss(v.current),v.current=null),toast.dismiss({containerId:e});});},[e,L]),x=useCallback((a,P)=>{p(a,P,l);},[p,l]),R=useCallback((a,P,h)=>{if(C(),!y.current.has(h))try{let k={containerId:e,toastId:h,onClose:()=>{y.current.delete(h),v.current=null;}},U=n?.toastOptions?.error?.({title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected}),K={...k,...U};toast.error(jsx(z,{title:a,rawError:P,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:_=>x(_,P),customization:n?.toastErrorCustomization}),K),y.current.add(h),v.current=h;}catch(k){console.error("Failed to show error toast:",k);}},[C,e,n?.toastOptions?.error,n?.toastErrorCustomization,z,s.errorType,s.isConnected,x]),N=useCallback((a,P,h)=>{H(R,{title:a,rawError:P,errorKey:h,errorType:l});},[R,H,l]);useEffect(()=>{if(c&&!w){C(),y.current.clear();return}if(w&&b&&d$1){if(c&&l!=="switch")return;N(S,b,d$1);}},[w,c,b,l,S,d$1,N,C]),useEffect(()=>()=>{C(),y.current.clear();},[C]);let I=n?.classNames?.container?n.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",D=useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:P})=>jsx(ToastCloseButton,{closeToast:P,...a}):ToastCloseButton},[n?.toastCloseButton]),$={...{containerId:e,position:r,closeOnClick:false,icon:false,closeButton:D,autoClose:i,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:u,pauseOnHover:true,theme:"light",transition:Bounce},...n?.containerProps,className:I};return jsx(F,{...$})}Z.displayName="ErrorsProvider";function ee({labels:e,children:r}){let i=useMemo(()=>e,[e]);if(process.env.NODE_ENV==="development"){(!e||typeof e!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let n=["connectWallet","disconnect","connecting","connected","error","success"].filter(m=>!(m in e));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:i,children:r})}ee.displayName="NovaConnectLabelsProvider";function be(e){let{enabled:r=true,getNonce:i,verifier:u,destroyer:n,domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L,onSuccess:p,onError:V}=e,o=d(t=>t.activeConnection),y=d(t=>t.disconnect),v=d(t=>t.isAutoConnectFinished),{signIn:M}=useSiwx(),f=useSiwxSessionStore(t=>t.session),c=useSiwxSessionStore(t=>t.status),w=useSiwxSessionStore(t=>t.reset),b=useRef(null),l=useRef(false),s=useEffectEvent(()=>{w(),n&&n().catch(t=>{console.warn("[NovaSiwxWatcher] Failed to execute session destroyer:",t);});});useEffect(()=>{if(!o?.isConnected||!o?.address){if(b.current=null,v===false)return;(c==="authenticated"||f)&&s();}},[o?.isConnected,o?.address,v,c,f]);let O=useEffectEvent((t,d)=>o?.connectorType===t&&o.address===d),S=useEffectEvent(()=>{if(!(!o?.isConnected||!o.address||!o.signMessage))try{let t={address:String(o.address),chainId:o.chainId,signMessage:o.signMessage,isConnected:o.isConnected},d=getSatelliteSiwxFields(t,{domain:m,uri:B,statement:A,expirationTime:W,expirationSeconds:z,notBefore:F,requestId:H,resources:L});if(c==="authenticated"&&isSessionMatchingConnection(f,t)||b.current===d.address)return;if(b.current=d.address,!u){console.warn("[NovaSiwxWatcher] Verifier not provided, skipping SIWX auto-authentication.");return}let{connectorType:C,address:x}=o,R=N=>{let I=N instanceof Error?N.message:String(N);console.warn("[NovaSiwxWatcher] SIWX authentication rejected or failed:",I),C&&O(C,x)&&y(C),w(),V?.(I);};l.current=!0,M({signer:o.signMessage,verifier:u,getNonce:i,fields:d,onSuccess:p,onError:R}).catch(R).finally(()=>{l.current=!1;});}catch(t){console.warn("[NovaSiwxWatcher] Failed to build SIWX fields:",t);}});return useEffect(()=>{!r||!o?.isConnected||!o?.address||!o?.chainId||o.signMessage&&(l.current||c==="building"||c==="signing"||c==="verifying"||S());},[o?.isConnected,o?.address,o?.chainId,o?.signMessage,o?.connectorType,r,c,f?.address]),null}var Xe=({labels:e,children:r})=>jsx(ee,{labels:e,children:r}),$e=({customization:e})=>jsx(Z,{customization:e}),Ue=(e,r)=>deepMerge(e,r||{}),_e=e=>e,je=e=>e,Je=(e,r,i)=>e;function Qe({labels:e,children:r,appChains:i,solanaRPCUrls:u,transactionPool:n,pulsarAdapter:m,withImpersonated:B,withBalance:A,withChain:W,popularConnectors:z,customConnectorGroups:F,legal:H$1,siwx:L,customization:p,pagination:V}){let o=d(J=>J.activeConnection),y=d(J=>J.connectionError),{LabelsProvider:v=Xe,ErrorsProvider:M=$e}=p?.components??{},{merge:f=Ue,transform:c$1=_e}=p?.labels??{},{transform:w=je}=p?.contextValue??{},{providerTree:b=Je}=p?.rendering??{},l=useMemo(()=>f(a,e||{}),[e,f]),[s,O]=useState(false),[S,t$1]=useState(false),[d$1,C]=useState(false),[x,R]=useState(false),[N,I]=useState("idle"),[D,se]=useState("connectors"),[$,a$1]=useState(void 0),[P,h]=useState(void 0),[k,U]=useState(""),[K,_]=useState(false),[j,Ne]=useState("main"),we={appChains:i,solanaRPCUrls:u,withImpersonated:B,popularConnectors:z,customConnectorGroups:F,withBalance:A,withChain:W,isConnectModalOpen:s,setIsConnectModalOpen:O,isConnectedModalOpen:S,setIsConnectedModalOpen:t$1,isChainsListOpen:d$1,setIsChainsListOpen:C,isChainsListOpenMobile:x,setIsChainsListOpenMobile:R,connectedButtonStatus:N,setConnectedButtonStatus:I,connectedModalContentType:j,setConnectedModalContentType:Ne,connectModalContentType:D,setConnectModalContentType:se,selectedAdapter:$,setSelectedAdapter:a$1,activeConnector:P,setActiveConnector:h,impersonatedAddress:k,setImpersonatedAddress:U,isConnected:K,setIsConnected:_,legal:H$1},G=useMemo(()=>({isConnected:K,activeConnection:o,connectionError:y,modalStates:{isConnectModalOpen:s,isConnectedModalOpen:S,isChainsListOpen:d$1,isChainsListOpenMobile:x},contentTypes:{connectModal:D,connectedModal:j},statuses:{connectedButton:N}}),[K,o,y,s,S,d$1,x,D,j,N]),ae=useMemo(()=>c$1(l,G),[l,c$1,G]),he=w(we,G),ie=jsx(M,{customization:p?.errors}),Se=jsx(v,{labels:ae,children:r}),ce=i||u?jsx(H,{solanaRPCUrls:u,appChains:i,customization:p?.modals?.connectModal}):null,le=i||u?jsx(t,{solanaRPCUrls:u,appChains:i,transactionPool:n,pulsarAdapter:m,customization:p?.modals?.connectedModal,pagination:V}):null,xe=L?jsx(be,{...L}):null,de=jsx(c.Provider,{value:he,children:jsxs(v,{labels:ae,children:[xe,ie,r,ce,le]})}),Le=b(de,{ErrorsProvider:ie,LabelsProvider:Se,MainContent:de,ConnectModal:ce||jsx(Fragment,{}),ConnectedModal:le||jsx(Fragment,{})},G);return jsx(Fragment,{children:Le})}Qe.displayName="NovaConnectProvider";export{Z as ErrorsProvider,ee as NovaConnectLabelsProvider,Qe as NovaConnectProvider,be as NovaSiwxWatcher};
|
|
@@ -187,6 +187,12 @@ type NovaConnectLabels = {
|
|
|
187
187
|
impersonateAddressNotCorrect: string;
|
|
188
188
|
/** Error of the impersonation form while a wallet is connected */
|
|
189
189
|
impersonateAddressConnected: string;
|
|
190
|
+
/** Label of the "Remember this wallet" checkbox under the wallet list */
|
|
191
|
+
rememberWallet: string;
|
|
192
|
+
/** What the checkbox does: the tooltip of its info button and its description for screen readers */
|
|
193
|
+
rememberWalletHint: string;
|
|
194
|
+
/** Accessible name of the info button next to the checkbox */
|
|
195
|
+
rememberWalletInfo: string;
|
|
190
196
|
/** Start of the legal disclaimer */
|
|
191
197
|
legalIntro: string;
|
|
192
198
|
/** Link text of the terms of service (default: `Terms of Service`) */
|
|
@@ -187,6 +187,12 @@ type NovaConnectLabels = {
|
|
|
187
187
|
impersonateAddressNotCorrect: string;
|
|
188
188
|
/** Error of the impersonation form while a wallet is connected */
|
|
189
189
|
impersonateAddressConnected: string;
|
|
190
|
+
/** Label of the "Remember this wallet" checkbox under the wallet list */
|
|
191
|
+
rememberWallet: string;
|
|
192
|
+
/** What the checkbox does: the tooltip of its info button and its description for screen readers */
|
|
193
|
+
rememberWalletHint: string;
|
|
194
|
+
/** Accessible name of the info button next to the checkbox */
|
|
195
|
+
rememberWalletInfo: string;
|
|
190
196
|
/** Start of the legal disclaimer */
|
|
191
197
|
legalIntro: string;
|
|
192
198
|
/** Link text of the terms of service (default: `Terms of Service`) */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"@tuwaio/orbit-evm": ">=0.3",
|
|
95
95
|
"@tuwaio/orbit-solana": ">=0.4",
|
|
96
96
|
"@tuwaio/pulsar-core": ">=0.10",
|
|
97
|
-
"@tuwaio/satellite-core": ">=0.
|
|
97
|
+
"@tuwaio/satellite-core": ">=0.10",
|
|
98
98
|
"@tuwaio/satellite-evm": ">=0.7",
|
|
99
99
|
"@tuwaio/satellite-react": ">=0.7",
|
|
100
100
|
"@tuwaio/satellite-solana": ">=0.7",
|
|
@@ -164,23 +164,23 @@
|
|
|
164
164
|
"devDependencies": {
|
|
165
165
|
"@emotion/is-prop-valid": "^1.4.0",
|
|
166
166
|
"@heroicons/react": "^2.2.0",
|
|
167
|
-
"@radix-ui/react-dialog": "^1.
|
|
168
|
-
"@radix-ui/react-select": "^2.
|
|
169
|
-
"@solana/kit": "^8.
|
|
167
|
+
"@radix-ui/react-dialog": "^1.3.1",
|
|
168
|
+
"@radix-ui/react-select": "^2.4.1",
|
|
169
|
+
"@solana/kit": "^8.5.0",
|
|
170
170
|
"@tailwindcss/postcss": "^4.3.3",
|
|
171
171
|
"@tailwindcss/vite": "^4.3.3",
|
|
172
|
-
"@tuwaio/nova-core": "^0.
|
|
173
|
-
"@tuwaio/nova-transactions": "^0.
|
|
174
|
-
"@tuwaio/orbit-core": "0.
|
|
175
|
-
"@tuwaio/orbit-evm": "0.
|
|
176
|
-
"@tuwaio/orbit-solana": "0.
|
|
177
|
-
"@tuwaio/pulsar-core": "0.10.
|
|
178
|
-
"@tuwaio/satellite-core": "0.
|
|
179
|
-
"@tuwaio/satellite-evm": "0.
|
|
180
|
-
"@tuwaio/satellite-react": "0.
|
|
181
|
-
"@tuwaio/satellite-solana": "0.
|
|
172
|
+
"@tuwaio/nova-core": "^0.10.0",
|
|
173
|
+
"@tuwaio/nova-transactions": "^0.10.0",
|
|
174
|
+
"@tuwaio/orbit-core": "0.6.0",
|
|
175
|
+
"@tuwaio/orbit-evm": "0.4.0",
|
|
176
|
+
"@tuwaio/orbit-solana": "0.6.0",
|
|
177
|
+
"@tuwaio/pulsar-core": "0.10.1",
|
|
178
|
+
"@tuwaio/satellite-core": "0.10.0",
|
|
179
|
+
"@tuwaio/satellite-evm": "0.10.0",
|
|
180
|
+
"@tuwaio/satellite-react": "0.10.0",
|
|
181
|
+
"@tuwaio/satellite-solana": "0.10.0",
|
|
182
182
|
"@tuwaio/siwx-react": "0.6.2",
|
|
183
|
-
"@types/node": "^26.6.
|
|
183
|
+
"@types/node": "^26.6.5",
|
|
184
184
|
"@types/react": "^19.3.0",
|
|
185
185
|
"@wagmi/core": "^3.6.5",
|
|
186
186
|
"@wallet-standard/react": "^1.0.3",
|
|
@@ -190,18 +190,18 @@
|
|
|
190
190
|
"clsx": "^2.1.1",
|
|
191
191
|
"dayjs": "^1.11.23",
|
|
192
192
|
"ethereum-blockies-base64": "^1.0.2",
|
|
193
|
-
"framer-motion": "14.
|
|
193
|
+
"framer-motion": "14.3.0",
|
|
194
194
|
"immer": "^11.1.21",
|
|
195
|
-
"postcss": "^8.5.
|
|
195
|
+
"postcss": "^8.5.30",
|
|
196
196
|
"postcss-cli": "^12.0.0",
|
|
197
|
-
"react": "^19.3.
|
|
197
|
+
"react": "^19.3.1",
|
|
198
198
|
"react-toastify": "^11.1.0",
|
|
199
199
|
"tailwind-merge": "^3.7.0",
|
|
200
200
|
"tailwindcss": "^4.3.3",
|
|
201
|
-
"tsup": "^
|
|
201
|
+
"tsup": "^9.0.0",
|
|
202
202
|
"tw-animate-css": "^1.4.0",
|
|
203
203
|
"typescript": "6.0.3",
|
|
204
|
-
"viem": "^2.57.
|
|
204
|
+
"viem": "^2.57.7",
|
|
205
205
|
"zustand": "^5.0.15"
|
|
206
206
|
},
|
|
207
207
|
"scripts": {
|