@tuwaio/nova-connect 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkS6Y4W6FH_cjs=require('./chunk-S6Y4W6FH.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(chunkS6Y4W6FH_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(chunkS6Y4W6FH_cjs.G,{solanaRPCUrls:s,appChains:r,customization:d?.modals?.connectModal}):null,eo=r||s?jsxRuntime.jsx(chunkS6Y4W6FH_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 chunkZAFADJGW_cjs=require('./chunk-ZAFADJGW.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(chunkZAFADJGW_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(chunkZAFADJGW_cjs.G,{solanaRPCUrls:s,appChains:r,customization:d?.modals?.connectModal}):null,eo=r||s?jsxRuntime.jsx(chunkZAFADJGW_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;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import {G,t,H}from'./chunk-F56UBR3G.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-HDWCIE4X.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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/nova-connect",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -51,7 +51,8 @@
51
51
  "access": "public"
52
52
  },
53
53
  "files": [
54
- "dist"
54
+ "dist",
55
+ "socket.json"
55
56
  ],
56
57
  "keywords": [
57
58
  "web3",
@@ -198,18 +199,18 @@
198
199
  },
199
200
  "devDependencies": {
200
201
  "@heroicons/react": "^2.2.0",
201
- "@radix-ui/react-dialog": "^1.1.20",
202
- "@radix-ui/react-select": "^2.3.4",
203
- "@tuwaio/orbit-core": "^0.2.13",
204
- "@tuwaio/orbit-evm": "^0.2.18",
205
- "@tuwaio/orbit-solana": "^0.2.11",
206
- "@tuwaio/satellite-react": "^0.3.9",
207
- "@tuwaio/satellite-core": "^0.3.7",
208
- "@tuwaio/satellite-evm": "^0.3.8",
209
- "@tuwaio/satellite-solana": "^0.3.10",
210
- "@tuwaio/pulsar-core": "^0.6.7",
202
+ "@radix-ui/react-dialog": "^1.1.22",
203
+ "@radix-ui/react-select": "^2.3.6",
204
+ "@tuwaio/orbit-core": "^0.2.15",
205
+ "@tuwaio/orbit-evm": "^0.2.20",
206
+ "@tuwaio/orbit-solana": "^0.2.13",
207
+ "@tuwaio/satellite-react": "^0.3.10",
208
+ "@tuwaio/satellite-core": "^0.3.8",
209
+ "@tuwaio/satellite-evm": "^0.3.9",
210
+ "@tuwaio/satellite-solana": "^0.3.11",
211
+ "@tuwaio/pulsar-core": "^0.6.8",
211
212
  "@wallet-standard/react": "^1.0.3",
212
- "@wagmi/core": "^3.6.3",
213
+ "@wagmi/core": "^3.6.4",
213
214
  "@web3icons/react": "^4.1.19",
214
215
  "@web3icons/common": "^0.11.48",
215
216
  "gill": "^0.14.0",
@@ -218,24 +219,24 @@
218
219
  "immer": "^11.1.15",
219
220
  "ethereum-blockies-base64": "^1.0.2",
220
221
  "framer-motion": "^12.42.2",
221
- "react": "^19.2.7",
222
+ "react": "^19.2.8",
222
223
  "react-toastify": "^11.1.0",
223
224
  "tailwind-merge": "^3.6.0",
224
- "viem": "^2.55.4",
225
+ "viem": "^2.55.8",
225
226
  "zustand": "^5.0.14",
226
227
  "@tailwindcss/postcss": "^4.3.3",
227
228
  "@tailwindcss/vite": "^4.3.3",
228
229
  "@types/react": "^19.2.17",
229
230
  "autoprefixer": "^10.5.4",
230
- "postcss": "^8.5.20",
231
+ "postcss": "^8.5.23",
231
232
  "postcss-cli": "^11.0.1",
232
233
  "tailwindcss": "^4.3.3",
233
234
  "@emotion/is-prop-valid": "^1.4.0",
234
235
  "tw-animate-css": "^1.4.0",
235
236
  "typescript": "^6.0.3",
236
237
  "tsup": "^8.5.1",
237
- "@tuwaio/nova-core": "^0.4.5",
238
- "@tuwaio/nova-transactions": "^0.4.6"
238
+ "@tuwaio/nova-core": "^0.4.7",
239
+ "@tuwaio/nova-transactions": "^0.4.8"
239
240
  },
240
241
  "scripts": {
241
242
  "start": "tsup src/index.ts --watch",
package/socket.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://socket.dev/config/schema.json",
3
+ "version": 1,
4
+ "issueRules": {
5
+ "networkAccess": "ignore",
6
+ "envVars": "ignore",
7
+ "filesystemAccess": "ignore",
8
+ "shellAccess": "ignore",
9
+ "minifiedFile": "ignore",
10
+ "obfuscatedFile": "ignore",
11
+ "urlStrings": "ignore",
12
+ "unpopularPackage": "ignore",
13
+ "unstableOwnership": "ignore",
14
+ "newAuthor": "ignore",
15
+ "gptAnomaly": "ignore"
16
+ }
17
+ }