@tuwaio/nova-transactions 0.2.4 → 0.2.6

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.
@@ -0,0 +1 @@
1
+ import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,getChainName,NetworkIcon,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Wt from'dayjs';import no from'dayjs/plugin/relativeTime';var j={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var ht=createContext(j),Nt=({labels:t,children:a})=>jsx(ht.Provider,{value:t,children:a}),g=()=>useContext(ht);function $({label:t,hash:a,explorerUrl:n,variant:s="default",className:o,classNames:l}){let{isCopied:i,copy:c}=useCopyToClipboard(),{actions:p,txError:r}=g(),e=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":s==="default","novatx:text-xs":s==="compact"},o),d=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":s==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":s==="compact"},l?.label),x=jsx("span",{className:cn("novatx:font-mono",l?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:e,children:[t&&jsxs("span",{className:d,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",l?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",l?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",l?.link),children:x}),jsx("button",{type:"button",onClick:()=>c(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",l?.copyButton),title:i?r.copied:p.copy,"aria-label":i?r.copied:p.copy,children:i?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var wt={[TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function R({txStatus:t,source:a,fallback:n,variant:s,className:o,applyColor:l=false}){let i,c="";if(typeof a=="string")i=a;else if(Array.isArray(a)){let e=wt[t||"default"]??wt.default;i=a[e.index],l&&(c=e.colorClass);}else i=n;return i?jsx("div",{className:cn(s==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",c,o),children:i}):null}function _({tx:t,adapter:a,variant:n="toast",className:s,renderHashLink:o,confirmations:l,hashLinkClassNames:i,originalHashLinkClassNames:c}){let{hashLabels:p,statuses:r}=g(),e=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let d=(C,f)=>o?o(C):jsx($,{...C,classNames:f??i}),x=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",u=p[String(t.tracker)],T=u?d({label:u,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,h=(()=>{let C=t.hash,f=t.replacedTxHash;return !C&&!f?null:f?jsxs(Fragment,{children:[C&&d({label:p.original,hash:C,variant:"compact"},c),typeof e.getExplorerTxUrl<"u"&&d({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):C&&typeof e.getExplorerTxUrl<"u"&&d({label:p.default,hash:C,explorerUrl:e.getExplorerTxUrl(t)})})(),y=u&&u!==p.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(x,s),children:[y&&T,h,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[r.confirmationsLabel,": ",l]})]})}var ua=t=>({Pending:{label:t.pending,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[TransactionStatus.Success]:{label:t.success,Icon:CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[TransactionStatus.Failed]:{label:t.failed,Icon:XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[TransactionStatus.Replaced]:{label:t.replaced,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function at({tx:t,className:a,classNames:n}){let{statuses:s}=g(),o=useMemo(()=>ua(s),[s]),l="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",i=t.pending?"Pending":t.status,c=i?o[i]:null;if(!c)return jsx("div",{className:cn(l,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsx("span",{className:n?.label,children:t.status??s.unknown})});let{label:p,Icon:r,badgeClasses:e,iconClasses:d}=c;return jsxs("div",{className:cn(l,e,n?.container,a),children:[jsx(r,{className:cn("novatx:h-4 novatx:w-4",d,n?.icon)}),jsx("span",{className:n?.label,children:p})]})}var Ca=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ha=({onClick:t,children:a,className:n})=>jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Bt({openTxInfoModal:t,tx:a,icon:n,className:s,customization:o,connectedWalletAddress:l,adapter:i}){let{actions:c,toast:p}=g(),r=selectAdapterByKey({adapterKey:a.adapter,adapter:i}),e=!!(a.tracker==="ethereum"&&a.pending&&r?.speedUpTxAction&&r?.cancelTxAction&&a.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),d=()=>{e&&r.cancelTxAction(a);},x=()=>{e&&r.speedUpTxAction(a);},{StatusAwareText:u=R,TransactionKey:T=_,StatusBadge:h=at,SpeedUpButton:y=Ca,CancelButton:C=ba,TxInfoButton:f=ha}=o?.components??{},m=o?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",m?.container,s),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",m?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",m?.iconWrapper),title:getChainName(setChainId(a.chainId)),children:n??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",m?.contentWrapper),children:[jsx(u,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:m?.title}),jsx(u,{txStatus:a.status,source:a.description,variant:"description",className:m?.description})]})]}),jsxs("div",{children:[jsx(T,{adapter:i,tx:a,variant:"toast",className:m?.transactionKey,hashLinkClassNames:{label:m?.hashLabel,link:m?.hashLink,copyButton:m?.hashCopyButton},originalHashLinkClassNames:{label:m?.originalHashLabel,link:m?.originalHashLink,copyButton:m?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",m?.footer),children:[jsx(h,{tx:a,className:m?.statusBadge,classNames:{icon:m?.statusBadgeIcon,label:m?.statusBadgeLabel}}),e?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",m?.actionsContainer),children:[jsx(y,{onClick:x,className:m?.speedUpButton,children:c.speedUp}),jsx(C,{onClick:d,className:m?.cancelButton,children:c.cancel})]}):t&&!!l&&jsx(f,{onClick:t,className:m?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Ht({adapter:t,onClose:a,onOpenAllTransactions:n,className:s,customization:o,transactionsPool:l,executeTxAction:i,initialTx:c,connectedWalletAddress:p}){let r=useMemo(()=>c?.lastTxKey?l[c.lastTxKey]:void 0,[l,c]),e=r??c,d=c?.withTrackedModal&&!r||(r?.isTrackedModalOpen??false),{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}=useMemo(()=>{let F=r?.status,Qt=c?.isInitializing??false,Zt=r?.pending??false;return {isProcessing:Qt||Zt,isSucceed:F===TransactionStatus.Success,isFailed:r?.isError||!!c?.errorMessage,isReplaced:F===TransactionStatus.Replaced}},[r,c]),y=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),C=!!(T&&e&&c?.actionFunction&&i),f=!!(y?.speedUpTxAction&&y?.cancelTxAction&&r?.pending&&r.tracker==="ethereum"),m=()=>{if(!C||!y?.retryTxAction)return;let F={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:c?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};y.retryTxAction({tx:F,txKey:r?.txKey??"",onClose:a,executeTxAction:i});},B=f&&r&&["metamask"].includes(r?.connectorType.split(":")[1]),U=()=>{B&&y.cancelTxAction(r);},b=()=>{B&&y.speedUpTxAction(r);},w=o?.components?.Header,N=o?.components?.Footer,Z=o?.components?.StatusVisual,yt=o?.components?.ProgressIndicator,Ct=o?.components?.InfoBlock,bt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsx(Dialog,{open:d,onOpenChange:F=>!F&&a(r?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,s),children:[w?jsx(w,{onClose:()=>a(r?.txKey),title:jsx(Lt,{tx:e,className:W?.headerTitle})}):jsx(La,{onClose:()=>a(r?.txKey),title:jsx(Lt,{tx:e,className:W?.headerTitle}),classNames:W}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Z?jsx(Z,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsx(Rt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),yt?jsx(yt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsx(Kt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),Ct?jsx(Ct,{tx:e,adapter:t}):jsx(At,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),bt?jsx(bt,{error:r?.errorMessage||c?.errorMessage}):jsx(Mt,{error:r?.errorMessage||c?.errorMessage,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),N?jsx(N,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p}):jsx(Ma,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p,classNames:W})]})})})}function Lt({tx:t,className:a}){return jsx(R,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var La=({onClose:t,title:a,classNames:n})=>{let{actions:s}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":s.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})},Ha=({isFailed:t,onRetry:a,isProcessing:n,canReplace:s,connectedWalletAddress:o,onOpenAllTransactions:l,classNames:i})=>{let{trackingModal:c}=g();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",i?.retryButton),children:c.retry}):!n&&!s&&o?jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",i?.allTransactionsButton),children:c.allTransactions}):null},Ma=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:s,onSpeedUp:o,onCancel:l,canReplace:i,isFailed:c,connectedWalletAddress:p,classNames:r})=>{let{trackingModal:e,actions:d}=g();return jsxs("footer",{className:cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",r?.footer),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",r?.footerActions),children:i&&o&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:o,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",r?.speedUpButton),children:d.speedUp}),jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",r?.cancelButton),children:d.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",r?.footerButtons),children:[jsx(Ha,{isFailed:c,onRetry:s,isProcessing:n,canReplace:i,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:r}),jsx("button",{type:"button",onClick:t,disabled:n&&!i,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",r?.closeModalButton),children:n&&!i?e.processing:e.close})]})]})};function Mt({error:t,className:a,classNames:n}){let{isCopied:s,copy:o}=useCopyToClipboard(),{actions:l,txError:i}=g();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",n?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",n?.icon)}),jsx("span",{children:i.title})]}),jsx("button",{type:"button",onClick:()=>o(t),title:s?i.copied:l.copy,"aria-label":s?i.copied:`${l.copy} error message`,className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:s?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:t})})]}):null}function _a({label:t,value:a,classNames:n}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",n?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function At({tx:t,adapter:a,className:n,customization:s}){let{txInfo:o,statuses:l,hashLabels:i}=g(),c=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!c)return null;let{InfoRow:p=_a}=s?.components??{},r=s?.classNames,e={row:r?.row,label:r?.rowLabel,value:r?.rowValue},d="chainId"in t?t.chainId:t.desiredChainID,x=t.adapter===OrbitAdapter.SOLANA,u=x?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",r?.container,n),children:[jsx(p,{label:o.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(NetworkIcon,{chainId:setChainId(d)})}),jsx("span",{children:getChainName(setChainId(d))})]}),classNames:e}),t.localTimestamp&&jsx(p,{label:o.started,value:Wt.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),x&&jsxs(Fragment,{children:[u?.slot&&jsx(p,{label:o.slot,value:jsx($,{hash:u.slot.toString(),explorerUrl:c?.getExplorerUrl?`${c?.getExplorerUrl(`/block/${u.slot}`)}`:void 0}),classNames:e}),(typeof u?.confirmations=="number"||typeof u?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:u.confirmations,classNames:e}),u?.recentBlockhash&&jsx(p,{label:i.recentBlockhash,value:jsx($,{hash:u.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsx("div",{className:cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",r?.separator),children:jsx(_,{tx:t,adapter:a,variant:"history",renderHashLink:s?.components?.transactionKey,hashLinkClassNames:r?.hashLink,originalHashLinkClassNames:r?.originalHashLink})})]})}var qa={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Qa({status:t,label:a,isFirst:n=false,classNames:s}){let o=qa[t],l=s?.statusOverrides?.[t],i=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",o.pulse)});default:return null}};return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",s?.container),children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,s?.line,l?.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",o.border,o.fill,s?.circle,l?.circle),children:i()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]",s?.label,l?.label),children:a})]})}function Kt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,StepComponent:l=Qa,stepClassNames:i}){let{trackingModal:c,statuses:p}=g(),r=useMemo(()=>{let e=x=>{if(x===1)return "completed";if(x===2){if(a||n||s)return "completed";if(t)return "active"}if(x===3){if(a)return "completed";if(n)return "error";if(s)return "replaced";if(t)return "active"}return "inactive"},d=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?p.failed:s?p.replaced:c.progressIndicator.succeed;return [{status:e(1),label:d(1),isFirst:true,classNames:i},{status:e(2),label:d(2),classNames:i},{status:e(3),label:d(3),isLast:true,classNames:i}]},[t,a,n,s,c,p,i]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",o),children:r.map((e,d)=>jsx(l,{...e},d))})}var ao={succeed:{Icon:CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function Rt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,iconClassNames:l}){let i=a&&"succeed"||n&&"failed"||s&&"replaced"||t&&"processing"||"initializing",{Icon:c,className:p}=ao[i],r=l?.statusOverrides?.[i];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsx(c,{className:cn("novatx:h-16 novatx:w-16",p,l?.icon,r)})})}Wt.extend(no);var so=({chainId:t,className:a})=>jsx("div",{className:cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsx(NetworkIcon,{chainId:setChainId(t)})}),ro=({timestamp:t,className:a})=>jsx("span",{className:cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Wt.unix(t).fromNow():"..."});function Ft({tx:t,adapter:a,className:n,customization:s}){let{Icon:o=so,Title:l=R,Description:i=R,Timestamp:c=ro,StatusBadge:p=at,TransactionKey:r=_}=s?.components??{},e=s?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",e?.container,n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxs("div",{className:e?.contentWrapper,children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsx(c,{timestamp:t.localTimestamp,className:e?.timestamp}),jsx(i,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsx(r,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function lo({title:t,message:a,className:n,classNames:s}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",s?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",s?.message),children:a})]})}function Vt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:s,customization:o}){let{transactionsModal:l}=g(),i=useMemo(()=>a?selectAllTransactionsByActiveWallet(n,a).sort((d,x)=>(x.localTimestamp??0)-(d.localTimestamp??0)):[],[n,a]),{Placeholder:c=lo,HistoryItem:p=Ft}=o?.components??{},r=()=>{if(!a)return jsx(c,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(i.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",o?.classNames?.listWrapper),children:i.map(d=>jsx(p,{tx:d,adapter:t,customization:{classNames:e}},d.txKey))})}return jsx(c,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,s),children:[o?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),r()]})}var To=({closeModal:t,title:a,classNames:n})=>{let{actions:s}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":s.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})};function Jt({isOpen:t,setIsOpen:a,customization:n,adapter:s,connectedWalletAddress:o,transactionsPool:l}){let{transactionsModal:i}=g(),c=()=>a(false),p=n?.components?.Header,r=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&c(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:c}):jsx(To,{closeModal:c,title:i.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),r?jsx(r,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization}):jsx(Vt,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var ho=t=>({replaced:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.replaced})]}),loading:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsx("span",{children:t.loading})]}),succeed:jsxs(Fragment,{children:[jsx(CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.succeed})]}),failed:jsxs(Fragment,{children:[jsx(ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.failed})]})});function ps({children:t,action:a,getLastTxKey:n,transactionsPool:s,walletAddress:o,loadingContent:l,succeedContent:i,failedContent:c,replacedContent:p,resetTimeout:r=2500,className:e,classNames:d,...x}){let{trackedTxButton:u}=g(),[T,h]=useState("idle"),[y,C]=useState(void 0),f=useMemo(()=>ho(u),[u]);useEffect(()=>{h("idle"),C(void 0);},[o]),useEffect(()=>{if(!y)return;let N=s[y];if(N)switch(N.status){case TransactionStatus.Success:h("succeed");break;case TransactionStatus.Replaced:h("replaced");break;case TransactionStatus.Failed:h("failed");break}},[s,y,o]),useEffect(()=>{if(["succeed","failed","replaced"].includes(T)){let N=setTimeout(()=>{h("idle"),C(void 0);},r);return ()=>clearTimeout(N)}},[T,r]);let m=async()=>{h("loading");try{await a(),C(n());}catch(N){console.error("Transaction initiation failed:",N),h("failed");}},B=()=>{switch(T){case "loading":return l??f.loading;case "succeed":return i??f.succeed;case "failed":return c??f.failed;case "replaced":return p??f.replaced;default:return t}},U={idle:"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=d?.[T]??U[T],w=d?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsx("button",{...x,disabled:T!=="idle"||x.disabled,onClick:m,className:cn(w,b,e),children:B()})}var So={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Vs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s,initialTx:o,executeTxAction:l,closeTxTrackedModal:i,labels:c,features:p,customization:r,...e}){let[d,x]=useState(false),u=useRef(s),T="nova-transactions",h=useMediaQuery("(max-width: 767px)"),y=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),C=useMemo(()=>deepMerge(j,c||{}),[c]),f=useCallback(b=>{if(!y.toasts)return;let w=b.pending?"info":So[b.status]??"info",N=Z=>jsx(Bt,{...Z,tx:b,openTxInfoModal:y.transactionsModal?()=>x(true):void 0,customization:r?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(b.txKey)?toast.update(b.txKey,{render:N,type:w,containerId:T}):toast(N,{toastId:b.txKey,type:w,closeOnClick:false,containerId:T});},[s,y,r?.toast,t,a]);useEffect(()=>{let b=u.current;Object.values(s).forEach(w=>{let N=b[w.txKey];if(!N&&w.pending){f(w);return}N&&JSON.stringify(N)!==JSON.stringify(w)&&f(w);}),u.current=s;},[s,f]),useEffect(()=>{Object.values(s).forEach(b=>{toast.isActive(b.txKey,T)&&f(b);});},[a,f,s]);let m=!!o?.withTrackedModal&&s[o?.lastTxKey??""]?.isTrackedModalOpen,B=y.toasts&&(!h||!m&&!d),U=useMemo(()=>{let b=r?.toastCloseButton;return b?({closeToast:w})=>jsx(ToastCloseButton,{closeToast:w,...b}):ToastCloseButton},[r?.toastCloseButton]);return jsxs(Nt,{labels:C,children:[B&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:U,containerId:T,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),y.transactionsModal&&jsx(Jt,{isOpen:d,setIsOpen:x,customization:r?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s}),y.trackingTxModal&&jsx(Ht,{initialTx:o,onClose:i,onOpenAllTransactions:()=>x(true),transactionsPool:s,customization:r?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:a})]})}export{j as a,Nt as b,g as c,Vs as d,$ as e,R as f,_ as g,at as h,Bt as i,Ht as j,Mt as k,At as l,Kt as m,Rt as n,Ft as o,Vt as p,Jt as q,ps as r};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkKER4647F_cjs=require('./chunk-KER4647F.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkKER4647F_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkKER4647F_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkKER4647F_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkKER4647F_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkKER4647F_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkKER4647F_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkKER4647F_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkKER4647F_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkKER4647F_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkKER4647F_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkKER4647F_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkKER4647F_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkKER4647F_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkKER4647F_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkKER4647F_cjs.a}});
1
+ 'use strict';var chunkB3JQWEZF_cjs=require('./chunk-B3JQWEZF.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.a}});
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { N as NovaTransactionsLabels } from './TransactionsInfoModal-6RO18o9e.cjs';
2
- export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, n as StepProps, m as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, u as TransactionHistoryItem, s as TransactionHistoryItemCustomization, t as TransactionHistoryItemProps, w as TransactionKey, v as TransactionKeyProps, E as TransactionStatusBadge, D as TransactionStatusBadgeProps, z as TransactionsHistory, x as TransactionsHistoryCustomization, y as TransactionsHistoryProps, C as TransactionsInfoModal, A as TransactionsInfoModalCustomization, B as TransactionsInfoModalProps, i as TxErrorBlock, h as TxErrorBlockProps, l as TxInfoBlock, j as TxInfoBlockCustomization, k as TxInfoBlockProps, p as TxProgressIndicator, o as TxProgressIndicatorProps, r as TxStatusVisual, q as TxStatusVisualProps } from './TransactionsInfoModal-6RO18o9e.cjs';
1
+ import { N as NovaTransactionsLabels } from './TransactionsInfoModal-DSBueMY4.cjs';
2
+ export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-DSBueMY4.cjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Transaction, TransactionPool } from '@tuwaio/pulsar-core';
5
5
  import { ButtonHTMLAttributes, ReactNode } from 'react';
@@ -19,8 +19,27 @@ type TxActionButtonProps<T extends Transaction> = Omit<ButtonHTMLAttributes<HTML
19
19
  failedContent?: ReactNode;
20
20
  replacedContent?: ReactNode;
21
21
  resetTimeout?: number;
22
+ /** Granular classNames for state-specific styling. Each overrides default styles for that state. */
23
+ classNames?: {
24
+ /** Base button classes (always applied) */
25
+ base?: string;
26
+ /** Classes for idle state (replaces default if provided) */
27
+ idle?: string;
28
+ /** Classes for loading state (replaces default if provided) */
29
+ loading?: string;
30
+ /** Classes for succeed state (replaces default if provided) */
31
+ succeed?: string;
32
+ /** Classes for failed state (replaces default if provided) */
33
+ failed?: string;
34
+ /** Classes for replaced state (replaces default if provided) */
35
+ replaced?: string;
36
+ /** Classes for the status icon */
37
+ icon?: string;
38
+ /** Classes for the label text */
39
+ label?: string;
40
+ };
22
41
  };
23
- declare function TxActionButton<T extends Transaction>({ children, action, getLastTxKey, transactionsPool, walletAddress, loadingContent, succeedContent, failedContent, replacedContent, resetTimeout, className, ...props }: TxActionButtonProps<T>): react_jsx_runtime.JSX.Element;
42
+ declare function TxActionButton<T extends Transaction>({ children, action, getLastTxKey, transactionsPool, walletAddress, loadingContent, succeedContent, failedContent, replacedContent, resetTimeout, className, classNames, ...props }: TxActionButtonProps<T>): react_jsx_runtime.JSX.Element;
24
43
 
25
44
  /**
26
45
  * @file This file contains the default English labels for all UI components.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { N as NovaTransactionsLabels } from './TransactionsInfoModal-6RO18o9e.js';
2
- export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, n as StepProps, m as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, u as TransactionHistoryItem, s as TransactionHistoryItemCustomization, t as TransactionHistoryItemProps, w as TransactionKey, v as TransactionKeyProps, E as TransactionStatusBadge, D as TransactionStatusBadgeProps, z as TransactionsHistory, x as TransactionsHistoryCustomization, y as TransactionsHistoryProps, C as TransactionsInfoModal, A as TransactionsInfoModalCustomization, B as TransactionsInfoModalProps, i as TxErrorBlock, h as TxErrorBlockProps, l as TxInfoBlock, j as TxInfoBlockCustomization, k as TxInfoBlockProps, p as TxProgressIndicator, o as TxProgressIndicatorProps, r as TxStatusVisual, q as TxStatusVisualProps } from './TransactionsInfoModal-6RO18o9e.js';
1
+ import { N as NovaTransactionsLabels } from './TransactionsInfoModal-DSBueMY4.js';
2
+ export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-DSBueMY4.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Transaction, TransactionPool } from '@tuwaio/pulsar-core';
5
5
  import { ButtonHTMLAttributes, ReactNode } from 'react';
@@ -19,8 +19,27 @@ type TxActionButtonProps<T extends Transaction> = Omit<ButtonHTMLAttributes<HTML
19
19
  failedContent?: ReactNode;
20
20
  replacedContent?: ReactNode;
21
21
  resetTimeout?: number;
22
+ /** Granular classNames for state-specific styling. Each overrides default styles for that state. */
23
+ classNames?: {
24
+ /** Base button classes (always applied) */
25
+ base?: string;
26
+ /** Classes for idle state (replaces default if provided) */
27
+ idle?: string;
28
+ /** Classes for loading state (replaces default if provided) */
29
+ loading?: string;
30
+ /** Classes for succeed state (replaces default if provided) */
31
+ succeed?: string;
32
+ /** Classes for failed state (replaces default if provided) */
33
+ failed?: string;
34
+ /** Classes for replaced state (replaces default if provided) */
35
+ replaced?: string;
36
+ /** Classes for the status icon */
37
+ icon?: string;
38
+ /** Classes for the label text */
39
+ label?: string;
40
+ };
22
41
  };
23
- declare function TxActionButton<T extends Transaction>({ children, action, getLastTxKey, transactionsPool, walletAddress, loadingContent, succeedContent, failedContent, replacedContent, resetTimeout, className, ...props }: TxActionButtonProps<T>): react_jsx_runtime.JSX.Element;
42
+ declare function TxActionButton<T extends Transaction>({ children, action, getLastTxKey, transactionsPool, walletAddress, loadingContent, succeedContent, failedContent, replacedContent, resetTimeout, className, classNames, ...props }: TxActionButtonProps<T>): react_jsx_runtime.JSX.Element;
24
43
 
25
44
  /**
26
45
  * @file This file contains the default English labels for all UI components.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export{e as HashLink,f as StatusAwareText,i as ToastTransaction,j as TrackingTxModal,o as TransactionHistoryItem,g as TransactionKey,h as TransactionStatusBadge,p as TransactionsHistory,q as TransactionsInfoModal,r as TxActionButton,k as TxErrorBlock,l as TxInfoBlock,m as TxProgressIndicator,n as TxStatusVisual,a as defaultLabels}from'./chunk-NIL47Y5T.js';
1
+ export{e as HashLink,f as StatusAwareText,i as ToastTransaction,j as TrackingTxModal,o as TransactionHistoryItem,g as TransactionKey,h as TransactionStatusBadge,p as TransactionsHistory,q as TransactionsInfoModal,r as TxActionButton,k as TxErrorBlock,l as TxInfoBlock,m as TxProgressIndicator,n as TxStatusVisual,a as defaultLabels}from'./chunk-QZL22XK4.js';
@@ -1 +1 @@
1
- 'use strict';var chunkKER4647F_cjs=require('../chunk-KER4647F.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkKER4647F_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkKER4647F_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkKER4647F_cjs.c}});
1
+ 'use strict';var chunkB3JQWEZF_cjs=require('../chunk-B3JQWEZF.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkB3JQWEZF_cjs.c}});
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-6RO18o9e.cjs';
4
- export { G as NovaTransactionsProvider, F as NovaTransactionsProviderProps } from '../TransactionsInfoModal-6RO18o9e.cjs';
3
+ import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-DSBueMY4.cjs';
4
+ export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-DSBueMY4.cjs';
5
5
  import '@tuwaio/nova-core';
6
6
  import '@tuwaio/pulsar-core';
7
7
  import '@tuwaio/orbit-core';
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-6RO18o9e.js';
4
- export { G as NovaTransactionsProvider, F as NovaTransactionsProviderProps } from '../TransactionsInfoModal-6RO18o9e.js';
3
+ import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-DSBueMY4.js';
4
+ export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-DSBueMY4.js';
5
5
  import '@tuwaio/nova-core';
6
6
  import '@tuwaio/pulsar-core';
7
7
  import '@tuwaio/orbit-core';
@@ -1 +1 @@
1
- export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-NIL47Y5T.js';
1
+ export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-QZL22XK4.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/nova-transactions",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -62,7 +62,8 @@
62
62
  }
63
63
  ],
64
64
  "peerDependencies": {
65
- "@bgd-labs/react-web3-icons": ">=1.5",
65
+ "@web3icons/react": ">=4",
66
+ "@web3icons/common": ">=0.11",
66
67
  "@heroicons/react": "2.x.x",
67
68
  "@radix-ui/react-dialog": "1.x.x",
68
69
  "framer-motion": "12.x.x",
@@ -74,17 +75,18 @@
74
75
  "dayjs": "1.x.x"
75
76
  },
76
77
  "devDependencies": {
77
- "@tuwaio/orbit-core": "^0.2.2",
78
- "@tuwaio/pulsar-core": "^0.3.2",
78
+ "@tuwaio/orbit-core": "^0.2.4",
79
+ "@tuwaio/pulsar-core": "^0.3.3",
79
80
  "dayjs": "^1.11.19",
80
- "@bgd-labs/react-web3-icons": "^1.58.0",
81
+ "@web3icons/react": "^4.1.13",
82
+ "@web3icons/common": "^0.11.42",
81
83
  "@heroicons/react": "^2.2.0",
82
84
  "@radix-ui/react-dialog": "^1.1.15",
83
85
  "@tailwindcss/postcss": "^4.1.18",
84
- "@types/react": "^19.2.7",
86
+ "@types/react": "^19.2.8",
85
87
  "autoprefixer": "^10.4.23",
86
88
  "clsx": "^2.1.1",
87
- "framer-motion": "^12.24.8",
89
+ "framer-motion": "^12.26.2",
88
90
  "immer": "^11.1.3",
89
91
  "postcss": "^8.5.6",
90
92
  "postcss-cli": "^11.0.1",
@@ -93,8 +95,8 @@
93
95
  "tsup": "^8.5.1",
94
96
  "typescript": "~5.9.3",
95
97
  "tailwindcss": "^4.1.18",
96
- "zustand": "^5.0.9",
97
- "@tuwaio/nova-core": "^0.2.3"
98
+ "zustand": "^5.0.10",
99
+ "@tuwaio/nova-core": "^0.2.5"
98
100
  },
99
101
  "scripts": {
100
102
  "build": "tsup && pnpm exec postcss ./src/styles/app.css -o ./dist/index.css"
@@ -1,15 +0,0 @@
1
- 'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime'),novaCore=require('@tuwaio/nova-core'),pulsarCore=require('@tuwaio/pulsar-core'),reactToastify=require('react-toastify'),solid=require('@heroicons/react/24/solid'),reactWeb3Icons=require('@bgd-labs/react-web3-icons'),utils=require('@bgd-labs/react-web3-icons/dist/utils'),orbitCore=require('@tuwaio/orbit-core'),Ht=require('dayjs'),ea=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ht__default=/*#__PURE__*/_interopDefault(Ht);var ea__default=/*#__PURE__*/_interopDefault(ea);var V={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var dt=react.createContext(V),vt=({labels:t,children:o})=>jsxRuntime.jsx(dt.Provider,{value:t,children:o}),v=()=>react.useContext(dt);function F({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=novaCore.useCopyToClipboard(),{actions:i,txError:p}=v(),a=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=novaCore.cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsxRuntime.jsx("span",{className:"novatx:font-mono",children:novaCore.textCenterEllipsis(o,5,5)});return jsxRuntime.jsxs("div",{className:a,children:[t&&jsxRuntime.jsxs("span",{className:e,children:[t,":"]}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxRuntime.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsxRuntime.jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var mt={[pulsarCore.TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[pulsarCore.TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[pulsarCore.TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function M({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=mt[t||"default"]??mt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsxRuntime.jsx("div",{className:novaCore.cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function O({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=T=>s?s(T):jsxRuntime.jsx(F,{...T}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,f=(()=>{let T=t.hash,m=t.replacedTxHash;return !T&&!m?null:m?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T&&a({label:c.original,hash:T,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:m,explorerUrl:p.getExplorerTxUrl(t)})]}):T&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:T,explorerUrl:p.getExplorerTxUrl(t)})})(),u=x&&x!==c.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(e,r),children:[u&&g,f,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var co=t=>({Pending:{label:t.pending,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[pulsarCore.TransactionStatus.Success]:{label:t.success,Icon:solid.CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[pulsarCore.TransactionStatus.Failed]:{label:t.failed,Icon:solid.XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[pulsarCore.TransactionStatus.Replaced]:{label:t.replaced,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function J({tx:t,className:o}){let{statuses:n}=v(),r=react.useMemo(()=>co(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsxRuntime.jsx("div",{className:novaCore.cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxRuntime.jsxs("div",{className:novaCore.cn(s,a,o),children:[jsxRuntime.jsx(p,{className:novaCore.cn("novatx:h-4 novatx:w-4",e)}),i]})}var mo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),fo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),To=({onClick:t,children:o})=>jsxRuntime.jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function bt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=orbitCore.selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:f=M,TransactionKey:u=O,StatusBadge:T=J,SpeedUpButton:m=mo,CancelButton:h=fo,TxInfoButton:w=To}=s?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:utils.getChainName(orbitCore.setChainId(o.chainId)),children:n??jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(o.chainId)})}),jsxRuntime.jsxs("div",{className:"novatx:flex-1",children:[jsxRuntime.jsx(f,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsxRuntime.jsx(f,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(u,{adapter:c,tx:o,variant:"toast"}),jsxRuntime.jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsx(T,{tx:o}),e?jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx(m,{onClick:g,children:i.speedUp}),jsxRuntime.jsx(h,{onClick:x,children:i.cancel})]}):t&&!!l&&jsxRuntime.jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Pt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=react.useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}=react.useMemo(()=>{let K=a?.status,Vt=i?.isInitializing??false,_t=a?.pending??false;return {isProcessing:Vt||_t,isSucceed:K===pulsarCore.TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:K===pulsarCore.TransactionStatus.Replaced}},[a,i]),m=react.useMemo(()=>e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),h=!!(u&&e&&i?.actionFunction&&c),w=!!(m?.speedUpTxAction&&m?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),L=()=>{if(!h||!m?.retryTxAction)return;let K={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};m.retryTxAction({tx:K,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},y=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),b=()=>{y&&m.cancelTxAction(a);},N=()=>{y&&m.speedUpTxAction(a);},S=s?.components?.Header,z=s?.components?.Footer,ct=s?.components?.StatusVisual,lt=s?.components?.ProgressIndicator,pt=s?.components?.InfoBlock,xt=s?.components?.ErrorBlock;return e?jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:K=>!K&&o(a?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[S?jsxRuntime.jsx(S,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(ht,{tx:e})}):jsxRuntime.jsx(No,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(ht,{tx:e})}),jsxRuntime.jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[ct?jsxRuntime.jsx(ct,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsxRuntime.jsx(St,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),lt?jsxRuntime.jsx(lt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsxRuntime.jsx(kt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),pt?jsxRuntime.jsx(pt,{tx:e,adapter:t}):jsxRuntime.jsx(It,{tx:e,adapter:t}),xt?jsxRuntime.jsx(xt,{error:a?.errorMessage||i?.errorMessage}):jsxRuntime.jsx(Nt,{error:a?.errorMessage||i?.errorMessage})]}),z?jsxRuntime.jsx(z,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(ko,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p})]})})}):null}function ht({tx:t}){return jsxRuntime.jsx(M,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var No=({onClose:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
2
- novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
3
- novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},Io=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsxRuntime.jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
4
- novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
5
- novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
6
- novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
7
- novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
8
- novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},ko=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxRuntime.jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
9
- novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
10
- novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
11
- novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx(Io,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
12
- novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
13
- novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function Nt({error:t,className:o}){let{isCopied:n,copy:r}=novaCore.useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxRuntime.jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsxRuntime.jsx("span",{children:l.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsxRuntime.jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsxRuntime.jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Fo({label:t,value:o}){return jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsxRuntime.jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function It({tx:t,adapter:o,className:n,customization:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Fo}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===orbitCore.OrbitAdapter.SOLANA,x=e?t:void 0;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsxRuntime.jsx(p,{label:s.network,value:jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsxRuntime.jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(a)})}),jsxRuntime.jsx("span",{children:utils.getChainName(orbitCore.setChainId(a))})]})}),t.localTimestamp&&jsxRuntime.jsx(p,{label:s.started,value:Ht__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x?.slot&&jsxRuntime.jsx(p,{label:s.slot,value:jsxRuntime.jsx(F,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsxRuntime.jsx(p,{label:c.recentBlockhash,value:jsxRuntime.jsx(F,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsxRuntime.jsx(O,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Xo={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Go({status:t,label:o,isFirst:n=false}){let r=Xo[t],s=()=>{switch(t){case "completed":return jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsxRuntime.jsx("div",{className:novaCore.cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function kt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Go}){let{trackingModal:c,statuses:i}=v(),p=react.useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsxRuntime.jsx(l,{...a},e))})}var jo={succeed:{Icon:solid.CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:solid.ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:solid.ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:solid.ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:solid.ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function St({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=jo[s];return jsxRuntime.jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsxRuntime.jsx(l,{className:novaCore.cn("novatx:h-16 novatx:w-16",c)})})}Ht__default.default.extend(ea__default.default);var na=({chainId:t})=>jsxRuntime.jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(t)})}),ra=({timestamp:t})=>jsxRuntime.jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?Ht__default.default.unix(t).fromNow():"..."});function Rt({tx:t,adapter:o,className:n,customization:r}){let{Icon:s=na,Title:l=M,Description:c=M,Timestamp:i=ra,StatusBadge:p=J,TransactionKey:a=O}=r?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsxRuntime.jsx(s,{chainId:t.chainId})}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsxRuntime.jsx(i,{timestamp:t.localTimestamp}),jsxRuntime.jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsxRuntime.jsx(p,{tx:t})]}),jsxRuntime.jsx(a,{tx:t,adapter:o,variant:"history"})]})}function ca({title:t,message:o,className:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsxRuntime.jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsxRuntime.jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function Lt({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:r,customization:s}){let{transactionsModal:l}=v(),c=react.useMemo(()=>o?pulsarCore.selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=ca,HistoryItem:p=Rt}=s?.components??{},a=()=>o?c.length>0?jsxRuntime.jsx("div",{className:novaCore.cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsxRuntime.jsx(p,{tx:e,adapter:t},e.txKey))}):jsxRuntime.jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsxRuntime.jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsxRuntime.jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ma=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
14
- novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
15
- novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Ot({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsxRuntime.jsx(p,{closeModal:i}):jsxRuntime.jsx(ma,{closeModal:i,title:c.history.title}),a?jsxRuntime.jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsxRuntime.jsx(Lt,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var ba=t=>({replaced:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.replaced})]}),loading:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsxRuntime.jsx("span",{children:t.loading})]}),succeed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.succeed})]}),failed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.failed})]})});function pr({children:t,action:o,getLastTxKey:n,transactionsPool:r,walletAddress:s,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[f,u]=react.useState("idle"),[T,m]=react.useState(void 0),h=react.useMemo(()=>ba(g),[g]);react.useEffect(()=>{u("idle"),m(void 0);},[s]),react.useEffect(()=>{if(!T)return;let y=r[T];if(y)switch(y.status){case pulsarCore.TransactionStatus.Success:u("succeed");break;case pulsarCore.TransactionStatus.Replaced:u("replaced");break;case pulsarCore.TransactionStatus.Failed:u("failed");break}},[r,T,s]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(f)){let y=setTimeout(()=>{u("idle"),m(void 0);},a);return ()=>clearTimeout(y)}},[f,a]);let w=async()=>{u("loading");try{await o(),m(n());}catch(y){console.error("Transaction initiation failed:",y),u("failed");}},L=()=>{switch(f){case "loading":return l??h.loading;case "succeed":return c??h.succeed;case "failed":return i??h.failed;case "replaced":return p??h.replaced;default:return t}};return jsxRuntime.jsx("button",{...x,disabled:f!=="idle"||x.disabled,onClick:w,className:novaCore.cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":f==="idle","novatx:bg-gray-400 novatx:text-white":f==="loading","novatx:bg-gray-500 novatx:text-white":f==="replaced","novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":f==="succeed","novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]":f==="failed"},e),children:L()})}var Sa={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Wr({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,g]=react.useState(false),f=react.useRef(r),u="nova-transactions",T=novaCore.useMediaQuery("(max-width: 767px)"),m=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),h=react.useMemo(()=>novaCore.deepMerge(V,i||{}),[i]),w=react.useCallback(b=>{if(!m.toasts)return;let N=b.pending?"info":Sa[b.status]??"info",S=z=>jsxRuntime.jsx(bt,{...z,tx:b,openTxInfoModal:m.transactionsModal?()=>g(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});reactToastify.toast.isActive(b.txKey)?reactToastify.toast.update(b.txKey,{render:S,type:N,containerId:u}):reactToastify.toast(S,{toastId:b.txKey,type:N,closeOnClick:false,containerId:u});},[r,m,a?.toast,t,o]);react.useEffect(()=>{let b=f.current;Object.values(r).forEach(N=>{let S=b[N.txKey];if(!S&&N.pending){w(N);return}S&&JSON.stringify(S)!==JSON.stringify(N)&&w(N);}),f.current=r;},[r,w]),react.useEffect(()=>{Object.values(r).forEach(b=>{reactToastify.toast.isActive(b.txKey,u)&&w(b);});},[o,w,r]);let L=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,y=m.toasts&&(!T||!L&&!x);return jsxRuntime.jsxs(vt,{labels:h,children:[y&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:novaCore.ToastCloseButton,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),m.transactionsModal&&jsxRuntime.jsx(Ot,{isOpen:x,setIsOpen:g,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),m.trackingTxModal&&jsxRuntime.jsx(Pt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>g(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}exports.a=V;exports.b=vt;exports.c=v;exports.d=Wr;exports.e=F;exports.f=M;exports.g=O;exports.h=J;exports.i=bt;exports.j=Pt;exports.k=Nt;exports.l=It;exports.m=kt;exports.n=St;exports.o=Rt;exports.p=Lt;exports.q=Ot;exports.r=pr;
@@ -1,15 +0,0 @@
1
- import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {Web3Icon}from'@bgd-labs/react-web3-icons';import {getChainName}from'@bgd-labs/react-web3-icons/dist/utils';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Ht from'dayjs';import ea from'dayjs/plugin/relativeTime';var V={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var dt=createContext(V),vt=({labels:t,children:o})=>jsx(dt.Provider,{value:t,children:o}),v=()=>useContext(dt);function F({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=useCopyToClipboard(),{actions:i,txError:p}=v(),a=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsx("span",{className:"novatx:font-mono",children:textCenterEllipsis(o,5,5)});return jsxs("div",{className:a,children:[t&&jsxs("span",{className:e,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var mt={[TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function M({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=mt[t||"default"]??mt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsx("div",{className:cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function O({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=T=>s?s(T):jsx(F,{...T}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,f=(()=>{let T=t.hash,m=t.replacedTxHash;return !T&&!m?null:m?jsxs(Fragment,{children:[T&&a({label:c.original,hash:T,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:m,explorerUrl:p.getExplorerTxUrl(t)})]}):T&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:T,explorerUrl:p.getExplorerTxUrl(t)})})(),u=x&&x!==c.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(e,r),children:[u&&g,f,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var co=t=>({Pending:{label:t.pending,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[TransactionStatus.Success]:{label:t.success,Icon:CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[TransactionStatus.Failed]:{label:t.failed,Icon:XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[TransactionStatus.Replaced]:{label:t.replaced,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function J({tx:t,className:o}){let{statuses:n}=v(),r=useMemo(()=>co(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsx("div",{className:cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxs("div",{className:cn(s,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),i]})}var mo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),fo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),To=({onClick:t,children:o})=>jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function bt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:f=M,TransactionKey:u=O,StatusBadge:T=J,SpeedUpButton:m=mo,CancelButton:h=fo,TxInfoButton:w=To}=s?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:getChainName(setChainId(o.chainId)),children:n??jsx(Web3Icon,{chainId:setChainId(o.chainId)})}),jsxs("div",{className:"novatx:flex-1",children:[jsx(f,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsx(f,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxs("div",{children:[jsx(u,{adapter:c,tx:o,variant:"toast"}),jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsx(T,{tx:o}),e?jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx(m,{onClick:g,children:i.speedUp}),jsx(h,{onClick:x,children:i.cancel})]}):t&&!!l&&jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Pt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}=useMemo(()=>{let K=a?.status,Vt=i?.isInitializing??false,_t=a?.pending??false;return {isProcessing:Vt||_t,isSucceed:K===TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:K===TransactionStatus.Replaced}},[a,i]),m=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),h=!!(u&&e&&i?.actionFunction&&c),w=!!(m?.speedUpTxAction&&m?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),L=()=>{if(!h||!m?.retryTxAction)return;let K={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};m.retryTxAction({tx:K,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},y=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),b=()=>{y&&m.cancelTxAction(a);},N=()=>{y&&m.speedUpTxAction(a);},S=s?.components?.Header,z=s?.components?.Footer,ct=s?.components?.StatusVisual,lt=s?.components?.ProgressIndicator,pt=s?.components?.InfoBlock,xt=s?.components?.ErrorBlock;return e?jsx(Dialog,{open:x,onOpenChange:K=>!K&&o(a?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[S?jsx(S,{onClose:()=>o(a?.txKey),title:jsx(ht,{tx:e})}):jsx(No,{onClose:()=>o(a?.txKey),title:jsx(ht,{tx:e})}),jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[ct?jsx(ct,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsx(St,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),lt?jsx(lt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsx(kt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),pt?jsx(pt,{tx:e,adapter:t}):jsx(It,{tx:e,adapter:t}),xt?jsx(xt,{error:a?.errorMessage||i?.errorMessage}):jsx(Nt,{error:a?.errorMessage||i?.errorMessage})]}),z?jsx(z,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p}):jsx(ko,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p})]})})}):null}function ht({tx:t}){return jsx(M,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var No=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
2
- novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
3
- novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},Io=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
4
- novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
5
- novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
6
- novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
7
- novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
8
- novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},ko=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
9
- novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
10
- novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
11
- novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx(Io,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
12
- novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
13
- novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function Nt({error:t,className:o}){let{isCopied:n,copy:r}=useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsx(ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Fo({label:t,value:o}){return jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function It({tx:t,adapter:o,className:n,customization:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Fo}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===OrbitAdapter.SOLANA,x=e?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsx(p,{label:s.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(Web3Icon,{chainId:setChainId(a)})}),jsx("span",{children:getChainName(setChainId(a))})]})}),t.localTimestamp&&jsx(p,{label:s.started,value:Ht.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxs(Fragment,{children:[x?.slot&&jsx(p,{label:s.slot,value:jsx(F,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsx(p,{label:c.recentBlockhash,value:jsx(F,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsx(O,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Xo={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Go({status:t,label:o,isFirst:n=false}){let r=Xo[t],s=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function kt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Go}){let{trackingModal:c,statuses:i}=v(),p=useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsx(l,{...a},e))})}var jo={succeed:{Icon:CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function St({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=jo[s];return jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",c)})})}Ht.extend(ea);var na=({chainId:t})=>jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsx(Web3Icon,{chainId:setChainId(t)})}),ra=({timestamp:t})=>jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?Ht.unix(t).fromNow():"..."});function Rt({tx:t,adapter:o,className:n,customization:r}){let{Icon:s=na,Title:l=M,Description:c=M,Timestamp:i=ra,StatusBadge:p=J,TransactionKey:a=O}=r?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsx(s,{chainId:t.chainId})}),jsxs("div",{children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsx(i,{timestamp:t.localTimestamp}),jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsx(p,{tx:t})]}),jsx(a,{tx:t,adapter:o,variant:"history"})]})}function ca({title:t,message:o,className:n}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function Lt({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:r,customization:s}){let{transactionsModal:l}=v(),c=useMemo(()=>o?selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=ca,HistoryItem:p=Rt}=s?.components??{},a=()=>o?c.length>0?jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsx(p,{tx:e,adapter:t},e.txKey))}):jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ma=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
14
- novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
15
- novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function Ot({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:i}):jsx(ma,{closeModal:i,title:c.history.title}),a?jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsx(Lt,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var ba=t=>({replaced:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.replaced})]}),loading:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsx("span",{children:t.loading})]}),succeed:jsxs(Fragment,{children:[jsx(CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.succeed})]}),failed:jsxs(Fragment,{children:[jsx(ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.failed})]})});function pr({children:t,action:o,getLastTxKey:n,transactionsPool:r,walletAddress:s,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[f,u]=useState("idle"),[T,m]=useState(void 0),h=useMemo(()=>ba(g),[g]);useEffect(()=>{u("idle"),m(void 0);},[s]),useEffect(()=>{if(!T)return;let y=r[T];if(y)switch(y.status){case TransactionStatus.Success:u("succeed");break;case TransactionStatus.Replaced:u("replaced");break;case TransactionStatus.Failed:u("failed");break}},[r,T,s]),useEffect(()=>{if(["succeed","failed","replaced"].includes(f)){let y=setTimeout(()=>{u("idle"),m(void 0);},a);return ()=>clearTimeout(y)}},[f,a]);let w=async()=>{u("loading");try{await o(),m(n());}catch(y){console.error("Transaction initiation failed:",y),u("failed");}},L=()=>{switch(f){case "loading":return l??h.loading;case "succeed":return c??h.succeed;case "failed":return i??h.failed;case "replaced":return p??h.replaced;default:return t}};return jsx("button",{...x,disabled:f!=="idle"||x.disabled,onClick:w,className:cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":f==="idle","novatx:bg-gray-400 novatx:text-white":f==="loading","novatx:bg-gray-500 novatx:text-white":f==="replaced","novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":f==="succeed","novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]":f==="failed"},e),children:L()})}var Sa={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Wr({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,g]=useState(false),f=useRef(r),u="nova-transactions",T=useMediaQuery("(max-width: 767px)"),m=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),h=useMemo(()=>deepMerge(V,i||{}),[i]),w=useCallback(b=>{if(!m.toasts)return;let N=b.pending?"info":Sa[b.status]??"info",S=z=>jsx(bt,{...z,tx:b,openTxInfoModal:m.transactionsModal?()=>g(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});toast.isActive(b.txKey)?toast.update(b.txKey,{render:S,type:N,containerId:u}):toast(S,{toastId:b.txKey,type:N,closeOnClick:false,containerId:u});},[r,m,a?.toast,t,o]);useEffect(()=>{let b=f.current;Object.values(r).forEach(N=>{let S=b[N.txKey];if(!S&&N.pending){w(N);return}S&&JSON.stringify(S)!==JSON.stringify(N)&&w(N);}),f.current=r;},[r,w]),useEffect(()=>{Object.values(r).forEach(b=>{toast.isActive(b.txKey,u)&&w(b);});},[o,w,r]);let L=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,y=m.toasts&&(!T||!L&&!x);return jsxs(vt,{labels:h,children:[y&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:ToastCloseButton,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),m.transactionsModal&&jsx(Ot,{isOpen:x,setIsOpen:g,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),m.trackingTxModal&&jsx(Pt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>g(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}export{V as a,vt as b,v as c,Wr as d,F as e,M as f,O as g,J as h,bt as i,Pt as j,Nt as k,It as l,kt as m,St as n,Rt as o,Lt as p,Ot as q,pr as r};