@tuwaio/nova-connect 1.0.0-fix-packages-alpha.12.e9e925c → 1.0.0-fix-indep-alpha.1.a295e4d

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.d.ts CHANGED
@@ -836,6 +836,14 @@ interface AdapterInfo {
836
836
  error?: Error;
837
837
  }
838
838
 
839
+ /**
840
+ * Universal address validation function that supports multiple blockchain formats
841
+ * @param value - Address string to validate
842
+ * @param type - Optional blockchain type to validate against ('evm' | 'solana' | 'auto')
843
+ * @returns boolean indicating if the address is valid
844
+ */
845
+ declare function isAddress(value: string, type?: 'evm' | 'solana' | 'auto'): boolean;
846
+
839
847
  /**
840
848
  * Gets the appropriate chain ID for connecting based on the selected adapter.
841
849
  * Returns the first available chain for the adapter, or a sensible default.
@@ -1154,4 +1162,4 @@ declare function initializeBlockchainSupport(): Promise<InitializationResult>;
1154
1162
  */
1155
1163
  declare function isAdapterSupported(adapter: OrbitAdapter): Promise<boolean>;
1156
1164
 
1157
- export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
1165
+ export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isAddress, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {A,v,z,s,C,y,B,r,D}from'./chunk-4FB4UCVM.js';import {d,h as h$1,t,p,w,g,c}from'./chunk-S6WXKVYP.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,q as getAvailableChainIds,x as getAvailableSolanaClusters,p as getConnectChainId,t as getFilteredConnectors,r as getGroupedConnectors,n as getLabelWithFallback,v as getNetworkIcon,s as hasAvailableConnectors,u as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,y as isValidSolanaCluster,w as networksLinks,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,z as useWalletChainsList,A as useWalletNativeBalance}from'./chunk-S6WXKVYP.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-B2NRY4JV.js';import {a}from'./chunk-3BMX6JWH.js';import {h,f}from'./chunk-P5ZBSLGK.js';import {waitFor,delay,formatConnectorName,getConnectorTypeFromName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';import {isAddress}from'gill';var ue=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(D,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),Ce=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},fe=(o,e)=>{o(e.title,e.rawError,e.errorKey);},ve=o=>{o();},ye=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},ge=o=>o,be=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(c=>c.switchNetworkError),R=h(c=>c.activeConnection),B=h(c=>c.connectionError),{ToastError:N=ue,Container:y=Ce}=t?.components??{},{showError:d=fe,dismissError:S=ve,onCopyComplete:H=ye}=t?.handlers??{},{errorTitle:T=ge,errorHash:E=be}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let c=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:c,hasSwitchError:b,isConnected:P,hasAnyError:c||b,primaryError:B||u||null,errorType:c?"wallet":b?"switch":null}},[B,u,R?.isConnected]),z=useMemo(()=>{switch(s.errorType){case "wallet":return f.connectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>T(z,{errorType:s.errorType}),[T,z,s.errorType]),W=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(W,{primaryError:s.primaryError,errorType:s.errorType}),[E,W,s.primaryError,s.errorType]),D=useCallback(()=>{S(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,S]),F=useCallback((c,b)=>{H(c,b,s.errorType);},[H,s.errorType]),n=useCallback((c,b,P)=>{if(D(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[D,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((c,b,P)=>{d(n,{title:c,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:c,isConnected:b,primaryError:P}=s;if(b&&!c){D(),M.current.clear();return}if(c&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,D]),useEffect(()=>()=>{D(),M.current.clear();},[D]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function ze(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatConnectorName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var Jo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));Jo.displayName="DefaultModalContainer";var Qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Qo.displayName="DefaultModalHeader";var Xo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Xo.displayName="DefaultInfoButton";var Yo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Yo.displayName="DefaultTitle";var Zo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));Zo.displayName="DefaultCloseButton";var oe=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));oe.displayName="DefaultMainContent";var ee=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));ee.displayName="DefaultFooter";var te=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));te.displayName="DefaultBackButton";var ne=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));ne.displayName="DefaultActionButton";var re=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));re.displayName="DefaultActionDescription";var ae=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});ae.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t$1,setIsConnectModalOpen:f$1,setConnectModalContentType:u,setActiveConnector:R,setImpersonatedAddress:B$1,setIsConnected:N,connectModalContentType:y$1,selectedAdapter:d$1,setSelectedAdapter:S,isConnected:H,activeConnector:T,impersonatedAddress:E}=d(),M=h(l=>l.connectionError),x=h(l=>l.getConnectors),s$1=h(l=>l.connect),z$1=h(l=>l.activeConnection),m=h$1(),W=useContext(f),C$1=useMemo(()=>{if(t$1)return x()},[t$1,x]),D=useMemo(()=>t({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F=useMemo(()=>M?typeof M=="string"?new Error(M):M:null,[M]),n=useMemo(()=>({contentType:y$1,selectedAdapter:d$1,activeConnector:T,impersonatedAddress:E,isConnected:H,isOpen:t$1,error:F,connectors:C$1,filteredConnectors:D,labels:m}),[y$1,d$1,T,E,H,t$1,F,C$1,D,m]);useEffect(()=>{t$1&&(u("connectors"),S(void 0),R(void 0),B$1(""),N(false));},[t$1]);let{components:v$1={},classNames:g={},handlers:p$1={},config:h$2={},childComponents:c={}}=r,b=v$1.ModalContainer||Jo,P=v$1.ModalHeader||Qo,V=v$1.InfoButton||Xo,_=v$1.Title||Yo,q=v$1.CloseButton||Zo,J=v$1.MainContent||oe,Q=v$1.Footer||ee,so=v$1.BackButton||te,X=v$1.ActionButton||ne,io=v$1.ActionDescription||re,G=v$1.EmptyState||ae,Co=v$1.Dialog||Dialog,co=v$1.DialogContent||DialogContent,eo=v$1.MotionDiv||motion.div,to=useCallback(()=>{switch(y$1){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&T&&C$1&&ze(C$1[d$1],T)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y$1,d$1,T,C$1,m]),Y=useCallback(()=>"connectors",[y$1]),Z=useCallback(l=>{p$1?.onOpenChange?p$1.onOpenChange(l,n):f$1(l);},[p$1?.onOpenChange,n,f$1]),fo=useCallback(()=>{let l=()=>u(Y());p$1?.onBack?p$1.onBack(n,l):l();},[p$1?.onBack,n,u,Y]),vo=useCallback(()=>{p$1?.onInfoClick?p$1.onInfoClick(n):u("about");},[p$1?.onInfoClick,n,u]),j=useCallback(async(l,yo)=>{await s$1({connectorType:l,chainId:p({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>W?.getState().activeConnection?.isConnected),N(!0);let go=setTimeout(()=>f$1(!1),400),le=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(le);}catch(go){console.error(go);}},[s$1,o,d$1,e]),$=useCallback(async(l,yo)=>{S(l),u("connecting"),await j(yo,l);},[j]),Bo=useCallback(l=>{R(formatConnectorName(l.name)),l.adapters.length===1?(S(l.adapters[0]),u(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting"):formatConnectorName(l.name)==="impersonatedwallet"?u("impersonate"):u("network");},[d$1]),ie=useCallback(()=>{switch(y$1){case "network":return jsx(B,{activeConnector:T,connectors:D,onClick:$,customization:c.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(C,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:l=>S(l),customization:c.networkTabs}),jsx(y,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:D,selectedAdapter:d$1,onClick:Bo,setContentType:u,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$1,withImpersonated:a,customization:c.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(s,{customization:c.aboutWallets});case "getWallet":return jsx(z,{customization:c.getWallet});case "connecting":return jsx(v,{selectedAdapter:d$1,connectors:D,activeConnector:T,isConnected:H,customization:c.connecting});case "impersonate":return jsx(A,{selectedAdapter:d$1,impersonatedAddress:E,setImpersonatedAddress:B$1,customization:c.impersonateForm})}},[y$1,T,D,$,c,C$1,d$1,Bo,H,E]),K=useCallback(()=>{switch(y$1){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p$1.onActionClick?.connectors?p$1.onActionClick.connectors(n):u("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p$1.onActionClick?.getWallet?p$1.onActionClick.getWallet(n):window.open(w[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p$1.onActionClick?.about?p$1.onActionClick.about(n):window.open(w[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p$1.onActionClick?.impersonate)await p$1.onActionClick.impersonate(n);else {let l=E.trim();if(M||!l||isAddress(l)||z$1?.isConnected)return;impersonatedHelpers.setImpersonated(l),u("connecting"),await j(getConnectorTypeFromName(d$1??OrbitAdapter.EVM,T??""),d$1??OrbitAdapter.EVM);}}};case "connecting":return M&&d$1&&T?{title:m.tryAgain,onClick:async()=>{p$1.onActionClick?.connecting?await p$1.onActionClick.connecting(n):await j(getConnectorTypeFromName(d$1,T),d$1);}}:void 0}},[y$1,m,p$1,n,d$1,C$1,E,M,j,T])(),ce=useCallback(()=>{switch(y$1){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y$1]);return jsx(Co,{open:t$1,onOpenChange:Z,children:jsx(co,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y$1==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J,{className:g.mainContent?.({modalData:n}),modalData:n,children:ie()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y$1!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K}),onClick:K.onClick,disabled:K.disabled,loading:K.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K,children:K.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:ce()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,je=o=>o,$e=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r$1,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B,customization:N}){let y=h($=>$.activeConnection),d=h($=>$.connectionError),{LabelsProvider:S=Fe,ErrorsProvider:H=Ve}=N?.components??{},{merge:T=Ue,transform:E=Ge}=N?.labels??{},{transform:M=je}=N?.contextValue??{},{providerTree:x=$e}=N?.rendering??{},s=useMemo(()=>T(a,o||{}),[o,T]),[z,m]=useState(false),[W,C]=useState(false),[D,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,c$1]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeConnection:y,connectionError:d,modalStates:{isConnectModalOpen:z,isConnectedModalOpen:W,isChainsListOpen:D,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,z,W,D,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),co=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r$1,withImpersonated:u,withBalance:R,withChain:B,isConnectModalOpen:z,setIsConnectModalOpen:m,isConnectedModalOpen:W,setIsConnectedModalOpen:C,isChainsListOpen:D,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:c$1,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r$1,u,R,B,z,m,W,C,D,F,n,v,g,p,X,io,h$1,c$1,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(H,{customization:N?.errors}),to=jsx(S,{labels:Co,children:e}),Y=a$1||r$1?jsx(No,{withImpersonated:u,solanaRPCUrls:r$1,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r$1?jsx(r,{solanaRPCUrls:r$1,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),j=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:j})}Ke.displayName="NovaConnectProvider";async function Jn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-YYMTL3XH.js'),!0}catch{return false}}async function Qn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Xn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Yn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Zn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,Jn as getBlockchainUtilities,Qn as getEvmUtils,Xn as getSolanaUtils,Yn as initializeBlockchainSupport,Zn as isAdapterSupported};//# sourceMappingURL=index.js.map
1
+ import {A,v,z,s,C,y,B,r,D}from'./chunk-5MQWJQI6.js';import {d,h as h$1,u,q,p,x,g,c}from'./chunk-K3D72CBB.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,r as getAvailableChainIds,y as getAvailableSolanaClusters,q as getConnectChainId,u as getFilteredConnectors,s as getGroupedConnectors,n as getLabelWithFallback,w as getNetworkIcon,t as hasAvailableConnectors,v as hasConnectorsForAdapter,k as hasLabel,p as isAddress,m as isDefaultLabels,z as isValidSolanaCluster,x as networksLinks,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,A as useWalletChainsList,B as useWalletNativeBalance}from'./chunk-K3D72CBB.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-B2NRY4JV.js';import {a}from'./chunk-3BMX6JWH.js';import {h,f}from'./chunk-2T6SPFUT.js';import {waitFor,delay,formatConnectorName,getConnectorTypeFromName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';var Ce=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(D,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),fe=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},ve=(o,e)=>{o(e.title,e.rawError,e.errorKey);},ye=o=>{o();},ge=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},be=o=>o,Te=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(c=>c.switchNetworkError),R=h(c=>c.activeConnection),B=h(c=>c.connectionError),{ToastError:N=Ce,Container:y=fe}=t?.components??{},{showError:d=ve,dismissError:S=ye,onCopyComplete:H=ge}=t?.handlers??{},{errorTitle:T=be,errorHash:E=Te}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let c=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:c,hasSwitchError:b,isConnected:P,hasAnyError:c||b,primaryError:B||u||null,errorType:c?"wallet":b?"switch":null}},[B,u,R?.isConnected]),z=useMemo(()=>{switch(s.errorType){case "wallet":return f.connectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>T(z,{errorType:s.errorType}),[T,z,s.errorType]),W=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(W,{primaryError:s.primaryError,errorType:s.errorType}),[E,W,s.primaryError,s.errorType]),D=useCallback(()=>{S(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,S]),F=useCallback((c,b)=>{H(c,b,s.errorType);},[H,s.errorType]),n=useCallback((c,b,P)=>{if(D(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[D,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((c,b,P)=>{d(n,{title:c,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:c,isConnected:b,primaryError:P}=s;if(b&&!c){D(),M.current.clear();return}if(c&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,D]),useEffect(()=>()=>{D(),M.current.clear();},[D]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function ze(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatConnectorName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var Qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));Qo.displayName="DefaultModalContainer";var Xo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Xo.displayName="DefaultModalHeader";var Yo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Yo.displayName="DefaultInfoButton";var Zo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Zo.displayName="DefaultTitle";var oe=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));oe.displayName="DefaultCloseButton";var ee=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));ee.displayName="DefaultMainContent";var te=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));te.displayName="DefaultFooter";var ne=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));ne.displayName="DefaultBackButton";var re=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));re.displayName="DefaultActionButton";var ae=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));ae.displayName="DefaultActionDescription";var se=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});se.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t,setIsConnectModalOpen:f$1,setConnectModalContentType:u$1,setActiveConnector:R,setImpersonatedAddress:B$1,setIsConnected:N,connectModalContentType:y$1,selectedAdapter:d$1,setSelectedAdapter:S,isConnected:H,activeConnector:T,impersonatedAddress:E}=d(),M=h(l=>l.connectionError),x$1=h(l=>l.getConnectors),s$1=h(l=>l.connect),z$1=h(l=>l.activeConnection),m=h$1(),W=useContext(f),C$1=useMemo(()=>{if(t)return x$1()},[t,x$1]),D=useMemo(()=>u({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F=useMemo(()=>M?typeof M=="string"?new Error(M):M:null,[M]),n=useMemo(()=>({contentType:y$1,selectedAdapter:d$1,activeConnector:T,impersonatedAddress:E,isConnected:H,isOpen:t,error:F,connectors:C$1,filteredConnectors:D,labels:m}),[y$1,d$1,T,E,H,t,F,C$1,D,m]);useEffect(()=>{t&&(u$1("connectors"),S(void 0),R(void 0),B$1(""),N(false));},[t]);let{components:v$1={},classNames:g={},handlers:p$1={},config:h$2={},childComponents:c={}}=r,b=v$1.ModalContainer||Qo,P=v$1.ModalHeader||Xo,V=v$1.InfoButton||Yo,_=v$1.Title||Zo,q$1=v$1.CloseButton||oe,J=v$1.MainContent||ee,Q=v$1.Footer||te,so=v$1.BackButton||ne,X=v$1.ActionButton||re,io=v$1.ActionDescription||ae,G=v$1.EmptyState||se,Co=v$1.Dialog||Dialog,co=v$1.DialogContent||DialogContent,eo=v$1.MotionDiv||motion.div,to=useCallback(()=>{switch(y$1){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&T&&C$1&&ze(C$1[d$1],T)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y$1,d$1,T,C$1,m]),Y=useCallback(()=>"connectors",[y$1]),Z=useCallback(l=>{p$1?.onOpenChange?p$1.onOpenChange(l,n):f$1(l);},[p$1?.onOpenChange,n,f$1]),fo=useCallback(()=>{let l=()=>u$1(Y());p$1?.onBack?p$1.onBack(n,l):l();},[p$1?.onBack,n,u$1,Y]),vo=useCallback(()=>{p$1?.onInfoClick?p$1.onInfoClick(n):u$1("about");},[p$1?.onInfoClick,n,u$1]),j=useCallback(async(l,yo)=>{await s$1({connectorType:l,chainId:q({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>W?.getState().activeConnection?.isConnected),N(!0);let go=setTimeout(()=>f$1(!1),400),de=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(de);}catch(go){console.error(go);}},[s$1,o,d$1,e]),$=useCallback(async(l,yo)=>{S(l),u$1("connecting"),await j(yo,l);},[j]),Bo=useCallback(l=>{R(formatConnectorName(l.name)),l.adapters.length===1?(S(l.adapters[0]),u$1(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u$1(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting"):formatConnectorName(l.name)==="impersonatedwallet"?u$1("impersonate"):u$1("network");},[d$1]),ce=useCallback(()=>{switch(y$1){case "network":return jsx(B,{activeConnector:T,connectors:D,onClick:$,customization:c.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(C,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:l=>S(l),customization:c.networkTabs}),jsx(y,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:D,selectedAdapter:d$1,onClick:Bo,setContentType:u$1,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$1,withImpersonated:a,customization:c.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(s,{customization:c.aboutWallets});case "getWallet":return jsx(z,{customization:c.getWallet});case "connecting":return jsx(v,{selectedAdapter:d$1,connectors:D,activeConnector:T,isConnected:H,customization:c.connecting});case "impersonate":return jsx(A,{selectedAdapter:d$1,impersonatedAddress:E,setImpersonatedAddress:B$1,customization:c.impersonateForm})}},[y$1,T,D,$,c,C$1,d$1,Bo,H,E]),K=useCallback(()=>{switch(y$1){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p$1.onActionClick?.connectors?p$1.onActionClick.connectors(n):u$1("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p$1.onActionClick?.getWallet?p$1.onActionClick.getWallet(n):window.open(x[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p$1.onActionClick?.about?p$1.onActionClick.about(n):window.open(x[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p$1.onActionClick?.impersonate)await p$1.onActionClick.impersonate(n);else {let l=E.trim();if(M||!l||p(l)||z$1?.isConnected)return;impersonatedHelpers.setImpersonated(l),u$1("connecting"),await j(getConnectorTypeFromName(d$1??OrbitAdapter.EVM,T??""),d$1??OrbitAdapter.EVM);}}};case "connecting":return M&&d$1&&T?{title:m.tryAgain,onClick:async()=>{p$1.onActionClick?.connecting?await p$1.onActionClick.connecting(n):await j(getConnectorTypeFromName(d$1,T),d$1);}}:void 0}},[y$1,m,p$1,n,d$1,C$1,E,M,j,T])(),le=useCallback(()=>{switch(y$1){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y$1]);return jsx(Co,{open:t,onOpenChange:Z,children:jsx(co,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y$1==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q$1,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J,{className:g.mainContent?.({modalData:n}),modalData:n,children:ce()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y$1!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K}),onClick:K.onClick,disabled:K.disabled,loading:K.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K,children:K.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:le()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,je=o=>o,$e=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r$1,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B,customization:N}){let y=h($=>$.activeConnection),d=h($=>$.connectionError),{LabelsProvider:S=Fe,ErrorsProvider:H=Ve}=N?.components??{},{merge:T=Ue,transform:E=Ge}=N?.labels??{},{transform:M=je}=N?.contextValue??{},{providerTree:x=$e}=N?.rendering??{},s=useMemo(()=>T(a,o||{}),[o,T]),[z,m]=useState(false),[W,C]=useState(false),[D,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,c$1]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeConnection:y,connectionError:d,modalStates:{isConnectModalOpen:z,isConnectedModalOpen:W,isChainsListOpen:D,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,z,W,D,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),co=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r$1,withImpersonated:u,withBalance:R,withChain:B,isConnectModalOpen:z,setIsConnectModalOpen:m,isConnectedModalOpen:W,setIsConnectedModalOpen:C,isChainsListOpen:D,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:c$1,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r$1,u,R,B,z,m,W,C,D,F,n,v,g,p,X,io,h$1,c$1,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(H,{customization:N?.errors}),to=jsx(S,{labels:Co,children:e}),Y=a$1||r$1?jsx(No,{withImpersonated:u,solanaRPCUrls:r$1,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r$1?jsx(r,{solanaRPCUrls:r$1,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),j=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:j})}Ke.displayName="NovaConnectProvider";async function Jn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-YYMTL3XH.js'),!0}catch{return false}}async function Qn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Xn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Yn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Zn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,Jn as getBlockchainUtilities,Qn as getEvmUtils,Xn as getSolanaUtils,Yn as initializeBlockchainSupport,Zn as isAdapterSupported};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map