@tuwaio/nova-connect 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkPSJ67NHK_cjs=require('./chunk-PSJ67NHK.cjs'),chunkPXKZLOYO_cjs=require('./chunk-PXKZLOYO.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunk2SFIZVDC_cjs=require('./chunk-2SFIZVDC.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime');var Oo=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:n,...d})=>jsxRuntime.jsx(chunkPSJ67NHK_cjs.H,{title:o,rawError:e,onCopyComplete:r,customization:d.customization}),Ro=o=>{let e=chunkPXKZLOYO_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Bo=(o,e)=>{o(e.title,e.rawError,e.errorKey);},Ao=o=>{o();},zo=(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));}},ko=o=>o,Ho=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:n}){let d=chunkPXKZLOYO_cjs.h(),A=chunk2SFIZVDC_cjs.h(a=>a.switchNetworkError),F=chunk2SFIZVDC_cjs.h(a=>a.activeConnection),z=chunk2SFIZVDC_cjs.h(a=>a.connectionError),{ToastError:k=Oo,Container:G=Ro}=n?.components??{},{showError:H=Bo,dismissError:c=Ao,onCopyComplete:M=zo}=n?.handlers??{},{errorTitle:V=ko,errorHash:q=Ho}=n??{},f=react.useRef(new Set),C=react.useRef(null),y=!!z,S=!!A,g=!!F?.isConnected,E=y||S,m=z||A||null,x=y?"wallet":S?"switch":null,t={hasWalletError:y,hasSwitchError:S,isConnected:g,hasAnyError:E,primaryError:m,errorType:x},O=d.somethingWentWrong;switch(t.errorType){case "wallet":O=d.connectionError;break;case "switch":O=d.errorWhenChainSwitching;break}let h=V(O,{errorType:t.errorType}),$=t.primaryError?`${t.errorType}-${t.primaryError.message.substring(0,50)}`:null,P=q($,{primaryError:t.primaryError,errorType:t.errorType}),v=react.useCallback(()=>{c(()=>{C.current&&(reactToastify.toast.dismiss(C.current),C.current=null),reactToastify.toast.dismiss({containerId:o});});},[o,c]),w=react.useCallback((a,i)=>{M(a,i,t.errorType);},[M,t.errorType]),U=react.useCallback((a,i,p)=>{if(v(),!f.current.has(p))try{let T={containerId:o,toastId:p,onClose:()=>{f.current.delete(p),C.current=null;}},Q=n?.toastOptions?.error?.({title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected}),R={...T,...Q};reactToastify.toast.error(jsxRuntime.jsx(k,{title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected,onCopyComplete:X=>w(X,i),customization:n?.toastErrorCustomization}),R),f.current.add(p),C.current=p;}catch(T){console.error("Failed to show error toast:",T);}},[v,o,n?.toastOptions?.error,n?.toastErrorCustomization,k,t.errorType,t.isConnected,w]),N=react.useCallback((a,i,p)=>{H(U,{title:a,rawError:i,errorKey:p,errorType:t.errorType});},[U,H,t.errorType]);react.useEffect(()=>{if(g&&!E){v(),f.current.clear();return}if(E&&m&&P){if(g&&x!=="switch")return;N(h,m,P);}},[E,g,m,x,h,P,N,v]),react.useEffect(()=>()=>{v(),f.current.clear();},[v]);let _=n?.classNames?.container?n.classNames.container({hasErrors:t.hasAnyError,errorType:t.errorType}):"novacon:p-0 novacon:bg-transparent",j=react.useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:i})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:i,...a}):novaCore.ToastCloseButton},[n?.toastCloseButton]),J={...{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},...n?.containerProps,className:_};return jsxRuntime.jsx(G,{...J})}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 n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in o));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunkPXKZLOYO_cjs.g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Io=({labels:o,children:e})=>jsxRuntime.jsx(io,{labels:o,children:e}),Do=({customization:o})=>jsxRuntime.jsx(so,{customization:o}),Ko=(o,e)=>novaCore.deepMerge(o,e||{}),Fo=o=>o,Go=o=>o,qo=(o,e,r)=>o;function $o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:n,pulsarAdapter:d,withImpersonated:A,withBalance:F,withChain:z,popularConnectors:k,customConnectorGroups:G,legal:H,customization:c}){let M=chunk2SFIZVDC_cjs.h(ro=>ro.activeConnection),V=chunk2SFIZVDC_cjs.h(ro=>ro.connectionError),{LabelsProvider:q=Io,ErrorsProvider:f=Do}=c?.components??{},{merge:C=Ko,transform:y=Fo}=c?.labels??{},{transform:S=Go}=c?.contextValue??{},{providerTree:g=qo}=c?.rendering??{},E=react.useMemo(()=>C(chunkMGBN4EIT_cjs.a,o||{}),[o,C]),[m,x]=react.useState(false),[t,O]=react.useState(false),[h,$]=react.useState(false),[P,v]=react.useState(false),[w,U]=react.useState("idle"),[N,_]=react.useState("connectors"),[j,po]=react.useState(void 0),[J,a]=react.useState(void 0),[i,p]=react.useState(""),[T,Q]=react.useState(false),[R,X]=react.useState("main"),go={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:G,withBalance:F,withChain:z,isConnectModalOpen:m,setIsConnectModalOpen:x,isConnectedModalOpen:t,setIsConnectedModalOpen:O,isChainsListOpen:h,setIsChainsListOpen:$,isChainsListOpenMobile:P,setIsChainsListOpenMobile:v,connectedButtonStatus:w,setConnectedButtonStatus:U,connectedModalContentType:R,setConnectedModalContentType:X,connectModalContentType:N,setConnectModalContentType:_,selectedAdapter:j,setSelectedAdapter:po,activeConnector:J,setActiveConnector:a,impersonatedAddress:i,setImpersonatedAddress:p,isConnected:T,setIsConnected:Q,legal:H},W=react.useMemo(()=>({isConnected:T,activeConnection:M,connectionError:V,modalStates:{isConnectModalOpen:m,isConnectedModalOpen:t,isChainsListOpen:h,isChainsListOpenMobile:P},contentTypes:{connectModal:N,connectedModal:R},statuses:{connectedButton:w}}),[T,M,V,m,t,h,P,N,R,w]),ho=react.useMemo(()=>y(E,W),[E,y,W]),uo=S(go,W),Y=jsxRuntime.jsx(f,{customization:c?.errors}),Z=jsxRuntime.jsx(q,{labels:ho,children:e}),oo=r||s?jsxRuntime.jsx(chunkPSJ67NHK_cjs.G,{solanaRPCUrls:s,appChains:r,customization:c?.modals?.connectModal}):null,eo=r||s?jsxRuntime.jsx(chunkPSJ67NHK_cjs.t,{solanaRPCUrls:s,appChains:r,transactionPool:n,pulsarAdapter:d,customization:c?.modals?.connectedModal}):null,wo=jsxRuntime.jsxs(chunkPXKZLOYO_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),No=jsxRuntime.jsxs(chunkPXKZLOYO_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=g(No,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:wo,ConnectModal:oo||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:eo||jsxRuntime.jsx(jsxRuntime.Fragment,{})},W);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Lo})}$o.displayName="NovaConnectProvider";async function Pr(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await D(),hasSolanaUtils:await K(),adaptersStatus:o()}}async function D(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function K(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await D())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 br(){try{if(!await K())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 yr(){let o={evm:false,solana:false,errors:[]};try{let e=await D(),r=await K();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),n=[];e&&n.push(orbitCore.OrbitAdapter.EVM),r&&n.push(orbitCore.OrbitAdapter.SOLANA),await s(n),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 gr(o){return o===orbitCore.OrbitAdapter.Starknet||o!==orbitCore.OrbitAdapter.EVM&&o!==orbitCore.OrbitAdapter.SOLANA?false:o===orbitCore.OrbitAdapter.EVM?D():K()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.q}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.v}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.p}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.t}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.r}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.s}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.u}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.w}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.f}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.x}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkPXKZLOYO_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=Pr;exports.getEvmUtils=Tr;exports.getSolanaUtils=br;exports.initializeBlockchainSupport=yr;exports.isAdapterSupported=gr;
1
+ 'use strict';var chunk7CLA2EHI_cjs=require('./chunk-7CLA2EHI.cjs'),chunkPXKZLOYO_cjs=require('./chunk-PXKZLOYO.cjs'),chunkK44IHM6B_cjs=require('./chunk-K44IHM6B.cjs'),chunkMGBN4EIT_cjs=require('./chunk-MGBN4EIT.cjs'),chunk2SFIZVDC_cjs=require('./chunk-2SFIZVDC.cjs'),orbitCore=require('@tuwaio/orbit-core'),novaCore=require('@tuwaio/nova-core'),react=require('react'),reactToastify=require('react-toastify'),jsxRuntime=require('react/jsx-runtime');var Oo=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:n,...d})=>jsxRuntime.jsx(chunk7CLA2EHI_cjs.H,{title:o,rawError:e,onCopyComplete:r,customization:d.customization}),Ro=o=>{let e=chunkPXKZLOYO_cjs.h();return jsxRuntime.jsx(reactToastify.ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Bo=(o,e)=>{o(e.title,e.rawError,e.errorKey);},Ao=o=>{o();},zo=(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));}},ko=o=>o,Ho=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:n}){let d=chunkPXKZLOYO_cjs.h(),A=chunk2SFIZVDC_cjs.h(a=>a.switchNetworkError),F=chunk2SFIZVDC_cjs.h(a=>a.activeConnection),z=chunk2SFIZVDC_cjs.h(a=>a.connectionError),{ToastError:k=Oo,Container:G=Ro}=n?.components??{},{showError:H=Bo,dismissError:c=Ao,onCopyComplete:M=zo}=n?.handlers??{},{errorTitle:V=ko,errorHash:q=Ho}=n??{},f=react.useRef(new Set),C=react.useRef(null),y=!!z,S=!!A,g=!!F?.isConnected,E=y||S,m=z||A||null,x=y?"wallet":S?"switch":null,t={hasWalletError:y,hasSwitchError:S,isConnected:g,hasAnyError:E,primaryError:m,errorType:x},O=d.somethingWentWrong;switch(t.errorType){case "wallet":O=d.connectionError;break;case "switch":O=d.errorWhenChainSwitching;break}let h=V(O,{errorType:t.errorType}),$=t.primaryError?`${t.errorType}-${t.primaryError.message.substring(0,50)}`:null,P=q($,{primaryError:t.primaryError,errorType:t.errorType}),v=react.useCallback(()=>{c(()=>{C.current&&(reactToastify.toast.dismiss(C.current),C.current=null),reactToastify.toast.dismiss({containerId:o});});},[o,c]),w=react.useCallback((a,i)=>{M(a,i,t.errorType);},[M,t.errorType]),U=react.useCallback((a,i,p)=>{if(v(),!f.current.has(p))try{let T={containerId:o,toastId:p,onClose:()=>{f.current.delete(p),C.current=null;}},Q=n?.toastOptions?.error?.({title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected}),R={...T,...Q};reactToastify.toast.error(jsxRuntime.jsx(k,{title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected,onCopyComplete:X=>w(X,i),customization:n?.toastErrorCustomization}),R),f.current.add(p),C.current=p;}catch(T){console.error("Failed to show error toast:",T);}},[v,o,n?.toastOptions?.error,n?.toastErrorCustomization,k,t.errorType,t.isConnected,w]),N=react.useCallback((a,i,p)=>{H(U,{title:a,rawError:i,errorKey:p,errorType:t.errorType});},[U,H,t.errorType]);react.useEffect(()=>{if(g&&!E){v(),f.current.clear();return}if(E&&m&&P){if(g&&x!=="switch")return;N(h,m,P);}},[E,g,m,x,h,P,N,v]),react.useEffect(()=>()=>{v(),f.current.clear();},[v]);let _=n?.classNames?.container?n.classNames.container({hasErrors:t.hasAnyError,errorType:t.errorType}):"novacon:p-0 novacon:bg-transparent",j=react.useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:i})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:i,...a}):novaCore.ToastCloseButton},[n?.toastCloseButton]),J={...{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},...n?.containerProps,className:_};return jsxRuntime.jsx(G,{...J})}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 n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in o));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsxRuntime.jsx(chunkPXKZLOYO_cjs.g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Io=({labels:o,children:e})=>jsxRuntime.jsx(io,{labels:o,children:e}),Do=({customization:o})=>jsxRuntime.jsx(so,{customization:o}),Ko=(o,e)=>novaCore.deepMerge(o,e||{}),Fo=o=>o,Go=o=>o,qo=(o,e,r)=>o;function $o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:n,pulsarAdapter:d,withImpersonated:A,withBalance:F,withChain:z,popularConnectors:k,customConnectorGroups:G,legal:H,customization:c}){let M=chunk2SFIZVDC_cjs.h(ro=>ro.activeConnection),V=chunk2SFIZVDC_cjs.h(ro=>ro.connectionError),{LabelsProvider:q=Io,ErrorsProvider:f=Do}=c?.components??{},{merge:C=Ko,transform:y=Fo}=c?.labels??{},{transform:S=Go}=c?.contextValue??{},{providerTree:g=qo}=c?.rendering??{},E=react.useMemo(()=>C(chunkMGBN4EIT_cjs.a,o||{}),[o,C]),[m,x]=react.useState(false),[t,O]=react.useState(false),[h,$]=react.useState(false),[P,v]=react.useState(false),[w,U]=react.useState("idle"),[N,_]=react.useState("connectors"),[j,po]=react.useState(void 0),[J,a]=react.useState(void 0),[i,p]=react.useState(""),[T,Q]=react.useState(false),[R,X]=react.useState("main"),go={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:G,withBalance:F,withChain:z,isConnectModalOpen:m,setIsConnectModalOpen:x,isConnectedModalOpen:t,setIsConnectedModalOpen:O,isChainsListOpen:h,setIsChainsListOpen:$,isChainsListOpenMobile:P,setIsChainsListOpenMobile:v,connectedButtonStatus:w,setConnectedButtonStatus:U,connectedModalContentType:R,setConnectedModalContentType:X,connectModalContentType:N,setConnectModalContentType:_,selectedAdapter:j,setSelectedAdapter:po,activeConnector:J,setActiveConnector:a,impersonatedAddress:i,setImpersonatedAddress:p,isConnected:T,setIsConnected:Q,legal:H},W=react.useMemo(()=>({isConnected:T,activeConnection:M,connectionError:V,modalStates:{isConnectModalOpen:m,isConnectedModalOpen:t,isChainsListOpen:h,isChainsListOpenMobile:P},contentTypes:{connectModal:N,connectedModal:R},statuses:{connectedButton:w}}),[T,M,V,m,t,h,P,N,R,w]),ho=react.useMemo(()=>y(E,W),[E,y,W]),uo=S(go,W),Y=jsxRuntime.jsx(f,{customization:c?.errors}),Z=jsxRuntime.jsx(q,{labels:ho,children:e}),oo=r||s?jsxRuntime.jsx(chunk7CLA2EHI_cjs.G,{solanaRPCUrls:s,appChains:r,customization:c?.modals?.connectModal}):null,eo=r||s?jsxRuntime.jsx(chunk7CLA2EHI_cjs.t,{solanaRPCUrls:s,appChains:r,transactionPool:n,pulsarAdapter:d,customization:c?.modals?.connectedModal}):null,wo=jsxRuntime.jsxs(chunkPXKZLOYO_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),No=jsxRuntime.jsxs(chunkPXKZLOYO_cjs.c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=g(No,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:wo,ConnectModal:oo||jsxRuntime.jsx(jsxRuntime.Fragment,{}),ConnectedModal:eo||jsxRuntime.jsx(jsxRuntime.Fragment,{})},W);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Lo})}$o.displayName="NovaConnectProvider";async function Pr(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs');return {hasEvmUtils:await D(),hasSolanaUtils:await K(),adaptersStatus:o()}}async function D(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function K(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await D())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 br(){try{if(!await K())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 yr(){let o={evm:false,solana:false,errors:[]};try{let e=await D(),r=await K();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-QCNOPM6I.cjs'),n=[];e&&n.push(orbitCore.OrbitAdapter.EVM),r&&n.push(orbitCore.OrbitAdapter.SOLANA),await s(n),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 gr(o){return o===orbitCore.OrbitAdapter.Starknet||o!==orbitCore.OrbitAdapter.EVM&&o!==orbitCore.OrbitAdapter.SOLANA?false:o===orbitCore.OrbitAdapter.EVM?D():K()}Object.defineProperty(exports,"NovaConnectLabelsContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.g}});Object.defineProperty(exports,"NovaConnectProviderContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.c}});Object.defineProperty(exports,"NovaConnectProviderError",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.b}});Object.defineProperty(exports,"createLabelsSubset",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.o}});Object.defineProperty(exports,"getAvailableChainIds",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.q}});Object.defineProperty(exports,"getAvailableSolanaClusters",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.v}});Object.defineProperty(exports,"getConnectChainId",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.p}});Object.defineProperty(exports,"getFilteredConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.t}});Object.defineProperty(exports,"getGroupedConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.r}});Object.defineProperty(exports,"getLabelWithFallback",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.n}});Object.defineProperty(exports,"hasAvailableConnectors",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.s}});Object.defineProperty(exports,"hasConnectorsForAdapter",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.u}});Object.defineProperty(exports,"hasLabel",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.k}});Object.defineProperty(exports,"isDefaultLabels",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.m}});Object.defineProperty(exports,"isValidSolanaCluster",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.w}});Object.defineProperty(exports,"useGetWalletNameAndAvatar",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.a}});Object.defineProperty(exports,"useHasNovaConnectContext",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.e}});Object.defineProperty(exports,"useLabelsByCategory",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.l}});Object.defineProperty(exports,"useNovaConnect",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.d}});Object.defineProperty(exports,"useNovaConnectLabel",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.i}});Object.defineProperty(exports,"useNovaConnectLabels",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.h}});Object.defineProperty(exports,"useNovaConnectLabelsSubset",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.j}});Object.defineProperty(exports,"useNovaConnectOptional",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.f}});Object.defineProperty(exports,"useWalletChainsList",{enumerable:true,get:function(){return chunkPXKZLOYO_cjs.x}});Object.defineProperty(exports,"useWalletNativeBalance",{enumerable:true,get:function(){return chunkPXKZLOYO_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=Pr;exports.getEvmUtils=Tr;exports.getSolanaUtils=br;exports.initializeBlockchainSupport=yr;exports.isAdapterSupported=gr;
package/dist/index.css CHANGED
@@ -1170,24 +1170,24 @@
1170
1170
  }
1171
1171
  }
1172
1172
  }
1173
- .novacon\:hover\:bg-\[var\(--tuwa-bg-tertiary\)\] {
1173
+ .novacon\:hover\:bg-\[var\(--tuwa-button-gradient-from-hover\)\] {
1174
1174
  &:hover {
1175
1175
  @media (hover: hover) {
1176
- background-color: var(--tuwa-bg-tertiary);
1176
+ background-color: var(--tuwa-button-gradient-from-hover);
1177
1177
  }
1178
1178
  }
1179
1179
  }
1180
- .novacon\:hover\:bg-\[var\(--tuwa-button-gradient-from-hover\)\] {
1180
+ .novacon\:hover\:bg-\[var\(--tuwa-error-text\)\] {
1181
1181
  &:hover {
1182
1182
  @media (hover: hover) {
1183
- background-color: var(--tuwa-button-gradient-from-hover);
1183
+ background-color: var(--tuwa-error-text);
1184
1184
  }
1185
1185
  }
1186
1186
  }
1187
- .novacon\:hover\:bg-\[var\(--tuwa-error-text\)\] {
1187
+ .novacon\:hover\:bg-\[var\(--tuwa-standart-button-hover\)\] {
1188
1188
  &:hover {
1189
1189
  @media (hover: hover) {
1190
- background-color: var(--tuwa-error-text);
1190
+ background-color: var(--tuwa-standart-button-hover);
1191
1191
  }
1192
1192
  }
1193
1193
  }
@@ -1360,9 +1360,9 @@
1360
1360
  scale: 0.98;
1361
1361
  }
1362
1362
  }
1363
- .novacon\:active\:bg-\[var\(--tuwa-bg-quaternary\)\] {
1363
+ .novacon\:active\:bg-\[var\(--tuwa-bg-muted\)\] {
1364
1364
  &:active {
1365
- background-color: var(--tuwa-bg-quaternary);
1365
+ background-color: var(--tuwa-bg-muted);
1366
1366
  }
1367
1367
  }
1368
1368
  .novacon\:active\:bg-\[var\(--tuwa-error-text\)\] {
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import {G,t,H}from'./chunk-TMKU7PMN.js';import {h,g,c}from'./chunk-ZD4FCYAW.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-ZD4FCYAW.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 {h as h$1}from'./chunk-S3RQJGCL.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 Oo=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:n,...d})=>jsx(H,{title:o,rawError:e,onCopyComplete:r,customization:d.customization}),Ro=o=>{let e=h();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Bo=(o,e)=>{o(e.title,e.rawError,e.errorKey);},Ao=o=>{o();},zo=(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));}},ko=o=>o,Ho=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:n}){let d=h(),A=h$1(a=>a.switchNetworkError),F=h$1(a=>a.activeConnection),z=h$1(a=>a.connectionError),{ToastError:k=Oo,Container:G=Ro}=n?.components??{},{showError:H=Bo,dismissError:c=Ao,onCopyComplete:M=zo}=n?.handlers??{},{errorTitle:V=ko,errorHash:q=Ho}=n??{},f=useRef(new Set),C=useRef(null),y=!!z,S=!!A,g=!!F?.isConnected,E=y||S,m=z||A||null,x=y?"wallet":S?"switch":null,t={hasWalletError:y,hasSwitchError:S,isConnected:g,hasAnyError:E,primaryError:m,errorType:x},O=d.somethingWentWrong;switch(t.errorType){case "wallet":O=d.connectionError;break;case "switch":O=d.errorWhenChainSwitching;break}let h$2=V(O,{errorType:t.errorType}),$=t.primaryError?`${t.errorType}-${t.primaryError.message.substring(0,50)}`:null,P=q($,{primaryError:t.primaryError,errorType:t.errorType}),v=useCallback(()=>{c(()=>{C.current&&(toast.dismiss(C.current),C.current=null),toast.dismiss({containerId:o});});},[o,c]),w=useCallback((a,i)=>{M(a,i,t.errorType);},[M,t.errorType]),U=useCallback((a,i,p)=>{if(v(),!f.current.has(p))try{let T={containerId:o,toastId:p,onClose:()=>{f.current.delete(p),C.current=null;}},Q=n?.toastOptions?.error?.({title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected}),R={...T,...Q};toast.error(jsx(k,{title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected,onCopyComplete:X=>w(X,i),customization:n?.toastErrorCustomization}),R),f.current.add(p),C.current=p;}catch(T){console.error("Failed to show error toast:",T);}},[v,o,n?.toastOptions?.error,n?.toastErrorCustomization,k,t.errorType,t.isConnected,w]),N=useCallback((a,i,p)=>{H(U,{title:a,rawError:i,errorKey:p,errorType:t.errorType});},[U,H,t.errorType]);useEffect(()=>{if(g&&!E){v(),f.current.clear();return}if(E&&m&&P){if(g&&x!=="switch")return;N(h$2,m,P);}},[E,g,m,x,h$2,P,N,v]),useEffect(()=>()=>{v(),f.current.clear();},[v]);let _=n?.classNames?.container?n.classNames.container({hasErrors:t.hasAnyError,errorType:t.errorType}):"novacon:p-0 novacon:bg-transparent",j=useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:i})=>jsx(ToastCloseButton,{closeToast:i,...a}):ToastCloseButton},[n?.toastCloseButton]),J={...{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},...n?.containerProps,className:_};return jsx(G,{...J})}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 n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in o));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Io=({labels:o,children:e})=>jsx(io,{labels:o,children:e}),Do=({customization:o})=>jsx(so,{customization:o}),Ko=(o,e)=>deepMerge(o,e||{}),Fo=o=>o,Go=o=>o,qo=(o,e,r)=>o;function $o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:n,pulsarAdapter:d,withImpersonated:A,withBalance:F,withChain:z,popularConnectors:k,customConnectorGroups:G$1,legal:H,customization:c$1}){let M=h$1(ro=>ro.activeConnection),V=h$1(ro=>ro.connectionError),{LabelsProvider:q=Io,ErrorsProvider:f=Do}=c$1?.components??{},{merge:C=Ko,transform:y=Fo}=c$1?.labels??{},{transform:S=Go}=c$1?.contextValue??{},{providerTree:g=qo}=c$1?.rendering??{},E=useMemo(()=>C(a,o||{}),[o,C]),[m,x]=useState(false),[t$1,O]=useState(false),[h,$]=useState(false),[P,v]=useState(false),[w,U]=useState("idle"),[N,_]=useState("connectors"),[j,po]=useState(void 0),[J,a$1]=useState(void 0),[i,p]=useState(""),[T,Q]=useState(false),[R,X]=useState("main"),go={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:G$1,withBalance:F,withChain:z,isConnectModalOpen:m,setIsConnectModalOpen:x,isConnectedModalOpen:t$1,setIsConnectedModalOpen:O,isChainsListOpen:h,setIsChainsListOpen:$,isChainsListOpenMobile:P,setIsChainsListOpenMobile:v,connectedButtonStatus:w,setConnectedButtonStatus:U,connectedModalContentType:R,setConnectedModalContentType:X,connectModalContentType:N,setConnectModalContentType:_,selectedAdapter:j,setSelectedAdapter:po,activeConnector:J,setActiveConnector:a$1,impersonatedAddress:i,setImpersonatedAddress:p,isConnected:T,setIsConnected:Q,legal:H},W=useMemo(()=>({isConnected:T,activeConnection:M,connectionError:V,modalStates:{isConnectModalOpen:m,isConnectedModalOpen:t$1,isChainsListOpen:h,isChainsListOpenMobile:P},contentTypes:{connectModal:N,connectedModal:R},statuses:{connectedButton:w}}),[T,M,V,m,t$1,h,P,N,R,w]),ho=useMemo(()=>y(E,W),[E,y,W]),uo=S(go,W),Y=jsx(f,{customization:c$1?.errors}),Z=jsx(q,{labels:ho,children:e}),oo=r||s?jsx(G,{solanaRPCUrls:s,appChains:r,customization:c$1?.modals?.connectModal}):null,eo=r||s?jsx(t,{solanaRPCUrls:s,appChains:r,transactionPool:n,pulsarAdapter:d,customization:c$1?.modals?.connectedModal}):null,wo=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),No=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=g(No,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:wo,ConnectModal:oo||jsx(Fragment,{}),ConnectedModal:eo||jsx(Fragment,{})},W);return jsx(Fragment,{children:Lo})}$o.displayName="NovaConnectProvider";async function Pr(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await D(),hasSolanaUtils:await K(),adaptersStatus:o()}}async function D(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function K(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await D())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 br(){try{if(!await K())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 yr(){let o={evm:false,solana:false,errors:[]};try{let e=await D(),r=await K();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),n=[];e&&n.push(OrbitAdapter.EVM),r&&n.push(OrbitAdapter.SOLANA),await s(n),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 gr(o){return o===OrbitAdapter.Starknet||o!==OrbitAdapter.EVM&&o!==OrbitAdapter.SOLANA?false:o===OrbitAdapter.EVM?D():K()}export{so as ErrorsProvider,io as NovaConnectLabelsProvider,$o as NovaConnectProvider,Pr as getBlockchainUtilities,Tr as getEvmUtils,br as getSolanaUtils,yr as initializeBlockchainSupport,gr as isAdapterSupported};
1
+ import {G,t,H}from'./chunk-6EWZWAEF.js';import {h,g,c}from'./chunk-ZD4FCYAW.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-ZD4FCYAW.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 {h as h$1}from'./chunk-S3RQJGCL.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 Oo=({title:o,rawError:e,onCopyComplete:r,errorType:s,isConnected:n,...d})=>jsx(H,{title:o,rawError:e,onCopyComplete:r,customization:d.customization}),Ro=o=>{let e=h();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Bo=(o,e)=>{o(e.title,e.rawError,e.errorKey);},Ao=o=>{o();},zo=(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));}},ko=o=>o,Ho=o=>o;function so({containerId:o="nova-connect-errors",position:e="top-center",autoClose:r=7e3,draggable:s=false,customization:n}){let d=h(),A=h$1(a=>a.switchNetworkError),F=h$1(a=>a.activeConnection),z=h$1(a=>a.connectionError),{ToastError:k=Oo,Container:G=Ro}=n?.components??{},{showError:H=Bo,dismissError:c=Ao,onCopyComplete:M=zo}=n?.handlers??{},{errorTitle:V=ko,errorHash:q=Ho}=n??{},f=useRef(new Set),C=useRef(null),y=!!z,S=!!A,g=!!F?.isConnected,E=y||S,m=z||A||null,x=y?"wallet":S?"switch":null,t={hasWalletError:y,hasSwitchError:S,isConnected:g,hasAnyError:E,primaryError:m,errorType:x},O=d.somethingWentWrong;switch(t.errorType){case "wallet":O=d.connectionError;break;case "switch":O=d.errorWhenChainSwitching;break}let h$2=V(O,{errorType:t.errorType}),$=t.primaryError?`${t.errorType}-${t.primaryError.message.substring(0,50)}`:null,P=q($,{primaryError:t.primaryError,errorType:t.errorType}),v=useCallback(()=>{c(()=>{C.current&&(toast.dismiss(C.current),C.current=null),toast.dismiss({containerId:o});});},[o,c]),w=useCallback((a,i)=>{M(a,i,t.errorType);},[M,t.errorType]),U=useCallback((a,i,p)=>{if(v(),!f.current.has(p))try{let T={containerId:o,toastId:p,onClose:()=>{f.current.delete(p),C.current=null;}},Q=n?.toastOptions?.error?.({title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected}),R={...T,...Q};toast.error(jsx(k,{title:a,rawError:i,errorType:t.errorType,isConnected:t.isConnected,onCopyComplete:X=>w(X,i),customization:n?.toastErrorCustomization}),R),f.current.add(p),C.current=p;}catch(T){console.error("Failed to show error toast:",T);}},[v,o,n?.toastOptions?.error,n?.toastErrorCustomization,k,t.errorType,t.isConnected,w]),N=useCallback((a,i,p)=>{H(U,{title:a,rawError:i,errorKey:p,errorType:t.errorType});},[U,H,t.errorType]);useEffect(()=>{if(g&&!E){v(),f.current.clear();return}if(E&&m&&P){if(g&&x!=="switch")return;N(h$2,m,P);}},[E,g,m,x,h$2,P,N,v]),useEffect(()=>()=>{v(),f.current.clear();},[v]);let _=n?.classNames?.container?n.classNames.container({hasErrors:t.hasAnyError,errorType:t.errorType}):"novacon:p-0 novacon:bg-transparent",j=useMemo(()=>{let a=n?.toastCloseButton;return a?({closeToast:i})=>jsx(ToastCloseButton,{closeToast:i,...a}):ToastCloseButton},[n?.toastCloseButton]),J={...{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},...n?.containerProps,className:_};return jsx(G,{...J})}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 n=["connectWallet","disconnect","connecting","connected","error","success"].filter(d=>!(d in o));n.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${n.join(", ")}`);}return jsx(g.Provider,{value:r,children:e})}io.displayName="NovaConnectLabelsProvider";var Io=({labels:o,children:e})=>jsx(io,{labels:o,children:e}),Do=({customization:o})=>jsx(so,{customization:o}),Ko=(o,e)=>deepMerge(o,e||{}),Fo=o=>o,Go=o=>o,qo=(o,e,r)=>o;function $o({labels:o,children:e,appChains:r,solanaRPCUrls:s,transactionPool:n,pulsarAdapter:d,withImpersonated:A,withBalance:F,withChain:z,popularConnectors:k,customConnectorGroups:G$1,legal:H,customization:c$1}){let M=h$1(ro=>ro.activeConnection),V=h$1(ro=>ro.connectionError),{LabelsProvider:q=Io,ErrorsProvider:f=Do}=c$1?.components??{},{merge:C=Ko,transform:y=Fo}=c$1?.labels??{},{transform:S=Go}=c$1?.contextValue??{},{providerTree:g=qo}=c$1?.rendering??{},E=useMemo(()=>C(a,o||{}),[o,C]),[m,x]=useState(false),[t$1,O]=useState(false),[h,$]=useState(false),[P,v]=useState(false),[w,U]=useState("idle"),[N,_]=useState("connectors"),[j,po]=useState(void 0),[J,a$1]=useState(void 0),[i,p]=useState(""),[T,Q]=useState(false),[R,X]=useState("main"),go={appChains:r,solanaRPCUrls:s,withImpersonated:A,popularConnectors:k,customConnectorGroups:G$1,withBalance:F,withChain:z,isConnectModalOpen:m,setIsConnectModalOpen:x,isConnectedModalOpen:t$1,setIsConnectedModalOpen:O,isChainsListOpen:h,setIsChainsListOpen:$,isChainsListOpenMobile:P,setIsChainsListOpenMobile:v,connectedButtonStatus:w,setConnectedButtonStatus:U,connectedModalContentType:R,setConnectedModalContentType:X,connectModalContentType:N,setConnectModalContentType:_,selectedAdapter:j,setSelectedAdapter:po,activeConnector:J,setActiveConnector:a$1,impersonatedAddress:i,setImpersonatedAddress:p,isConnected:T,setIsConnected:Q,legal:H},W=useMemo(()=>({isConnected:T,activeConnection:M,connectionError:V,modalStates:{isConnectModalOpen:m,isConnectedModalOpen:t$1,isChainsListOpen:h,isChainsListOpenMobile:P},contentTypes:{connectModal:N,connectedModal:R},statuses:{connectedButton:w}}),[T,M,V,m,t$1,h,P,N,R,w]),ho=useMemo(()=>y(E,W),[E,y,W]),uo=S(go,W),Y=jsx(f,{customization:c$1?.errors}),Z=jsx(q,{labels:ho,children:e}),oo=r||s?jsx(G,{solanaRPCUrls:s,appChains:r,customization:c$1?.modals?.connectModal}):null,eo=r||s?jsx(t,{solanaRPCUrls:s,appChains:r,transactionPool:n,pulsarAdapter:d,customization:c$1?.modals?.connectedModal}):null,wo=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),No=jsxs(c.Provider,{value:uo,children:[Y,Z,oo,eo]}),Lo=g(No,{ErrorsProvider:Y,LabelsProvider:Z,MainContent:wo,ConnectModal:oo||jsx(Fragment,{}),ConnectedModal:eo||jsx(Fragment,{})},W);return jsx(Fragment,{children:Lo})}$o.displayName="NovaConnectProvider";async function Pr(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-YZZUYC6D.js');return {hasEvmUtils:await D(),hasSolanaUtils:await K(),adaptersStatus:o()}}async function D(){try{return await import('viem'),await import('@tuwaio/orbit-evm'),!0}catch{return false}}async function K(){try{return await import('gill'),await import('@tuwaio/orbit-solana'),!0}catch{return false}}async function Tr(){try{if(!await D())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 br(){try{if(!await K())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 yr(){let o={evm:false,solana:false,errors:[]};try{let e=await D(),r=await K();if(e||r){let{preloadChainAdapters:s}=await import('./getChainsListByConnectorType-YZZUYC6D.js'),n=[];e&&n.push(OrbitAdapter.EVM),r&&n.push(OrbitAdapter.SOLANA),await s(n),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 gr(o){return o===OrbitAdapter.Starknet||o!==OrbitAdapter.EVM&&o!==OrbitAdapter.SOLANA?false:o===OrbitAdapter.EVM?D():K()}export{so as ErrorsProvider,io as NovaConnectLabelsProvider,$o as NovaConnectProvider,Pr as getBlockchainUtilities,Tr as getEvmUtils,br as getSolanaUtils,yr as initializeBlockchainSupport,gr as isAdapterSupported};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/nova-connect",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -234,8 +234,8 @@
234
234
  "tw-animate-css": "^1.4.0",
235
235
  "typescript": "^5.9.3",
236
236
  "tsup": "^8.5.1",
237
- "@tuwaio/nova-transactions": "^0.3.0",
238
- "@tuwaio/nova-core": "^0.3.0"
237
+ "@tuwaio/nova-core": "^0.3.0",
238
+ "@tuwaio/nova-transactions": "^0.3.0"
239
239
  },
240
240
  "scripts": {
241
241
  "start": "tsup src/index.ts --watch",