@tuwaio/nova-transactions 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{TransactionsInfoModal-EKgcn7Ot.d.cts → TransactionsInfoModal-DN70QAqZ.d.cts} +1 -1
- package/dist/{TransactionsInfoModal-EKgcn7Ot.d.ts → TransactionsInfoModal-DN70QAqZ.d.ts} +1 -1
- package/dist/chunk-QNGBNGYN.js +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/providers/index.d.cts +2 -2
- package/dist/providers/index.d.ts +2 -2
- package/package.json +2 -2
|
@@ -944,4 +944,4 @@ type TransactionsInfoModalProps<T extends Transaction> = Pick<NovaTransactionsPr
|
|
|
944
944
|
};
|
|
945
945
|
declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, pagination, selectedTxKey, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
|
|
946
946
|
|
|
947
|
-
export {
|
|
947
|
+
export { type TransactionsInfoModalProps as A, TxErrorBlock as B, type CopyableFieldProps as C, type DetailItemProps as D, type TxErrorBlockClassNames as E, type TxErrorBlockProps as F, TxInfoBlock as G, HashLink as H, type TxInfoBlockCustomization as I, type JsonBlockProps as J, type TxInfoBlockProps as K, TxProgressIndicator as L, type MetadataRowProps as M, type NovaTransactionsLabels as N, type TxProgressIndicatorProps as O, TxStatusVisual as P, type TxStatusVisualClassNames as Q, type TxStatusVisualProps as R, StatusAwareText as S, ToastTransaction as T, NovaTransactionsProvider as U, type NovaTransactionsProviderProps as V, type HashLinkProps as a, type StatusAwareTextProps as b, type StepClassNames as c, type StepProps as d, type StepStatus as e, type ToastTransactionCustomization as f, type ToastTransactionProps as g, TrackingTxModal as h, type TrackingTxModalCustomization as i, type TrackingTxModalProps as j, TransactionDetails as k, type TransactionDetailsCustomization as l, type TransactionDetailsProps as m, TransactionHistoryItem as n, type TransactionHistoryItemCustomization as o, type TransactionHistoryItemProps as p, TransactionKey as q, type TransactionKeyProps as r, TransactionStatusBadge as s, type TransactionStatusBadgeProps as t, TransactionsHistory as u, type TransactionsHistoryCustomization as v, type TransactionsHistoryLoaderProps as w, type TransactionsHistoryProps as x, TransactionsInfoModal as y, type TransactionsInfoModalCustomization as z };
|
|
@@ -944,4 +944,4 @@ type TransactionsInfoModalProps<T extends Transaction> = Pick<NovaTransactionsPr
|
|
|
944
944
|
};
|
|
945
945
|
declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, pagination, selectedTxKey, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
|
|
946
946
|
|
|
947
|
-
export {
|
|
947
|
+
export { type TransactionsInfoModalProps as A, TxErrorBlock as B, type CopyableFieldProps as C, type DetailItemProps as D, type TxErrorBlockClassNames as E, type TxErrorBlockProps as F, TxInfoBlock as G, HashLink as H, type TxInfoBlockCustomization as I, type JsonBlockProps as J, type TxInfoBlockProps as K, TxProgressIndicator as L, type MetadataRowProps as M, type NovaTransactionsLabels as N, type TxProgressIndicatorProps as O, TxStatusVisual as P, type TxStatusVisualClassNames as Q, type TxStatusVisualProps as R, StatusAwareText as S, ToastTransaction as T, NovaTransactionsProvider as U, type NovaTransactionsProviderProps as V, type HashLinkProps as a, type StatusAwareTextProps as b, type StepClassNames as c, type StepProps as d, type StepStatus as e, type ToastTransactionCustomization as f, type ToastTransactionProps as g, TrackingTxModal as h, type TrackingTxModalCustomization as i, type TrackingTxModalProps as j, TransactionDetails as k, type TransactionDetailsCustomization as l, type TransactionDetailsProps as m, TransactionHistoryItem as n, type TransactionHistoryItemCustomization as o, type TransactionHistoryItemProps as p, TransactionKey as q, type TransactionKeyProps as r, TransactionStatusBadge as s, type TransactionStatusBadgeProps as t, TransactionsHistory as u, type TransactionsHistoryCustomization as v, type TransactionsHistoryLoaderProps as w, type TransactionsHistoryProps as x, TransactionsInfoModal as y, type TransactionsInfoModalCustomization as z };
|
package/dist/chunk-QNGBNGYN.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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 aa from'dayjs';import {ArrowLeftIcon,CheckCircleIcon as CheckCircleIcon$1,ClockIcon as ClockIcon$1,ExclamationTriangleIcon as ExclamationTriangleIcon$1,GlobeAltIcon,CpuChipIcon,LinkIcon,CheckBadgeIcon,KeyIcon,DocumentDuplicateIcon as DocumentDuplicateIcon$1}from'@heroicons/react/24/outline';import Je from'dayjs/plugin/relativeTime';var nt={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:{openTransaction:"Open transaction"},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"},transactionDetails:{title:"Transaction Details",subtitle:"View full execution metrics and on-chain status.",metadata:"Metadata",executionData:"Execution Data",adapter:"Adapter",submittedAt:"Submitted At",finishedAt:"Finished At",tracker:"Tracker",connector:"Connector",confirmations:"Confirmations",txKey:"TX Key",from:"From (Origin)",to:"To (Recipient)",hash:"Transaction Hash",network:"Network",inputData:"Input Data",payload:"Payload Data",context:"Context",nonce:"Nonce",value:"Value (Raw)",maxFee:"Max Fee per Gas",maxPriorityFee:"Max Priority Fee per Gas",solanaTitle:"Solana Execution Data",starknetTitle:"Starknet Execution Data",contextTitle:"Context & Payload",fee:"Fee",slot:"Slot",instructions:"Instructions",recentBlockhash:"Recent Blockhash",contractAddress:"Contract Address",actualFee:"Actual Fee",titleContext:"Title Context",descriptionContext:"Description Context",errorContext:"Error Context",fullPayload:"Full Payload",rpcUrl:"RPC URL",replacedHash:"Replaced Hash"}};var Rt=createContext(nt),At=({labels:t,children:a})=>jsx(Rt.Provider,{value:t,children:a}),C=()=>useContext(Rt);function tt({label:t,hash:a,explorerUrl:o,variant:n="default",className:e,classNames:s}){let{isCopied:l,copy:p}=useCopyToClipboard(),{actions:x,txError:r}=C(),c=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":n==="default","novatx:text-xs":n==="compact"},e),m=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":n==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":n==="compact"},s?.label),d=jsx("span",{className:cn("novatx:font-mono",s?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:c,children:[t&&jsxs("span",{className:m,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[o?jsxs("a",{href:o,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",s?.link),title:x.viewOnExplorer,"aria-label":x.viewOnExplorer,children:[d,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",s?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",s?.link),children:d}),jsx("button",{type:"button",onClick:()=>p(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",s?.copyButton),title:l?r.copied:x.copy,"aria-label":l?r.copied:x.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 Dt={[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 J({txStatus:t,source:a,fallback:o,variant:n,className:e,applyColor:s=false}){let l,p="";if(typeof a=="string")l=a;else if(Array.isArray(a)){let c=Dt[t||"default"]??Dt.default;l=a[c.index],s&&(p=c.colorClass);}else l=o;return l?jsx("div",{className:cn(n==="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)]",p,e),children:l}):null}function q({tx:t,adapter:a,variant:o="toast",className:n,renderHashLink:e,confirmations:s,hashLinkClassNames:l,originalHashLinkClassNames:p}){let{hashLabels:x,statuses:r}=C(),c=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!c)return null;let m=(u,f)=>e?e(u):jsx(tt,{...u,classNames:f??l}),d=o==="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",g=x[String(t.tracker)],S=g?m({label:g,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:c.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?c?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let u=t.hash,f=t.replacedTxHash;return !u&&!f?null:f?jsxs(Fragment,{children:[u&&m({label:x.original,hash:u,variant:"compact"},p),typeof c.getExplorerTxUrl<"u"&&m({label:x.replaced,hash:f,explorerUrl:c.getExplorerTxUrl(t)})]}):u&&typeof c.getExplorerTxUrl<"u"&&m({label:x.default,hash:u,explorerUrl:c.getExplorerTxUrl(t)})})(),w=g&&g!==x.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(d,n),children:[w&&S,y,typeof s=="number"&&s>0&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[r.confirmationsLabel,": ",s]})]})}var Ha=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 it({tx:t,className:a,classNames:o}){let{statuses:n}=C(),e=Ha(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,p=l?e[l]:null;if(!p)return jsx("div",{className:cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o?.container,a),children:jsx("span",{className:o?.label,children:t.status??n.unknown})});let{label:x,Icon:r,badgeClasses:c,iconClasses:m}=p;return jsxs("div",{className:cn(s,c,o?.container,a),children:[jsx(r,{className:cn("novatx:h-4 novatx:w-4",m,o?.icon)}),jsx("span",{className:o?.label,children:x})]})}var Ea=({onClick:t,children:a,className:o})=>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",o),children:a}),Fa=({onClick:t,children:a,className:o})=>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",o),children:a}),Oa=({onClick:t,children:a,className:o})=>jsx("button",{className:o||"novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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}),Ua=({count:t,required:a,isSuccess:o,className:n})=>jsxs("div",{className:cn("novatx:absolute novatx:-left-1 novatx:-top-1 novatx:z-10 novatx:flex novatx:min-w-[18px] novatx:items-center novatx:justify-center novatx:rounded-full novatx:border novatx:px-1.5 novatx:py-0.5 novatx:text-[10px] novatx:font-bold novatx:shadow-sm novatx:backdrop-blur-sm novatx:transition-colors",o?"novatx:border-[var(--tuwa-success-icon)]/30 novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":"novatx:border-[var(--tuwa-pending-icon)]/30 novatx:bg-[var(--tuwa-pending-bg)]/50 novatx:text-[var(--tuwa-pending-text)]",n),children:[t,a&&a>1?`/${a}`:""]});function Ot({openTxInfoModal:t,tx:a,icon:o,className:n,customization:e,connectedWalletAddress:s,adapter:l}){let{actions:p,toast:x}=C(),r=selectAdapterByKey({adapterKey:a.adapter,adapter:l}),c=!!(a.tracker==="ethereum"&&a.pending&&(!a.confirmations||Number(a.confirmations)<1)&&r?.speedUpTxAction&&r?.cancelTxAction&&a.from.toLowerCase()===s?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),m=()=>{c&&r.cancelTxAction(a);},d=()=>{c&&r.speedUpTxAction(a);},{StatusAwareText:g=J,TransactionKey:S=q,StatusBadge:y=it,SpeedUpButton:w=Ea,CancelButton:u=Fa,TxInfoButton:f=Oa,ConfirmationsBadge:k=Ua}=e?.components??{},v=e?.classNames;return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",v?.container,n),children:[a.confirmations&&Number(a.confirmations)>0&&jsx(k,{count:a.confirmations,required:a.requiredConfirmations,isSuccess:a.status===TransactionStatus.Success,className:v?.confirmationsBadge}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",v?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",v?.iconWrapper),title:getChainName(setChainId(a.chainId)).name,children:o??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",v?.contentWrapper),children:[jsx(g,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:v?.title}),jsx(g,{txStatus:a.status,source:a.description,variant:"description",className:v?.description})]})]}),jsxs("div",{children:[jsx(S,{adapter:l,tx:a,variant:"toast",className:v?.transactionKey,hashLinkClassNames:{label:v?.hashLabel,link:v?.hashLink,copyButton:v?.hashCopyButton},originalHashLinkClassNames:{label:v?.originalHashLabel,link:v?.originalHashLink,copyButton:v?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",v?.footer),children:[jsx(y,{tx:a,className:v?.statusBadge,classNames:{icon:v?.statusBadgeIcon,label:v?.statusBadgeLabel}}),c?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",v?.actionsContainer),children:[jsx(w,{onClick:d,className:v?.speedUpButton,children:p.speedUp}),jsx(u,{onClick:m,className:v?.cancelButton,children:p.cancel})]}):t&&a.from.toLowerCase()===s?.toLowerCase()&&jsx(f,{onClick:()=>t(a.txKey),className:v?.txInfoButton,children:x.openTransaction})]})]})]})}function Vt({adapter:t,onClose:a,onOpenAllTransactions:o,className:n,customization:e,transactionsPool:s,executeTxAction:l,initialTx:p,connectedWalletAddress:x}){let r=p?.lastTxKey?s[p.lastTxKey]:void 0,c=r??p,m=p?.withTrackedModal&&!r||(r?.isTrackedModalOpen??false),d=r?.status,g=p?.isInitializing??false,S=r?.pending??false,y=g||S,w=d===TransactionStatus.Success,u=r?.isError||!!p?.error,f=d===TransactionStatus.Replaced,k=c?selectAdapterByKey({adapterKey:c.adapter,adapter:t}):void 0,v=!!(u&&c&&p?.actionFunction&&l),P=!!(k?.speedUpTxAction&&k?.cancelTxAction&&r?.pending&&(!r.confirmations||Number(r.confirmations)<1)&&r.tracker==="ethereum"),b=()=>{if(!v||!k?.retryTxAction)return;let ut={adapter:c.adapter,type:c.type,desiredChainID:"desiredChainID"in c?c.desiredChainID:c.chainId,actionFunction:p?.actionFunction,title:c.title,description:c.description,payload:c.payload,rpcUrl:"rpcUrl"in c?c?.rpcUrl:"desiredChainID"in c?c.desiredChainID:c.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in c?c.withTrackedModal:false};k.retryTxAction({tx:ut,txKey:r?.txKey??"",onClose:a,executeTxAction:l});},I=P&&r&&["metamask"].includes(r?.connectorType.split(":")[1]),L=()=>{I&&k.cancelTxAction(r);},B=()=>{I&&k.speedUpTxAction(r);},R=e?.components?.Header,O=e?.components?.Footer,ot=e?.components?.StatusVisual,$=e?.components?.ProgressIndicator,Ht=e?.components?.InfoBlock,Mt=e?.components?.ErrorBlock;if(!c)return null;let z=e?.classNames;return jsx(Dialog,{open:m,onOpenChange:ut=>!ut&&a(r?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",e?.modalProps?.className),...e?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",z?.container,n),children:[R?jsx(R,{onClose:()=>a(r?.txKey),title:jsx(Wt,{tx:c,className:z?.headerTitle})}):jsx($a,{onClose:()=>a(r?.txKey),title:jsx(Wt,{tx:c,className:z?.headerTitle}),classNames:z}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",z?.main),children:[ot?jsx(ot,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f}):jsx(jt,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f,className:e?.statusVisualCustomization?.className,iconClassNames:e?.statusVisualCustomization?.iconClassNames}),$?jsx($,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f}):jsx(Yt,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f,className:e?.progressIndicatorCustomization?.className,stepClassNames:e?.progressIndicatorCustomization?.stepClassNames}),Ht?jsx(Ht,{tx:c,adapter:t}):jsx(Jt,{tx:c,adapter:t,customization:e?.infoBlockCustomization}),Mt?jsx(Mt,{error:r?.error||p?.error}):jsx(_t,{error:r?.error||p?.error,className:e?.errorBlockCustomization?.className,classNames:e?.errorBlockCustomization?.classNames})]}),O?jsx(O,{onClose:()=>a(r?.txKey),onOpenAllTransactions:o,isProcessing:y,isFailed:u,canReplace:P,onRetry:v?b:void 0,onSpeedUp:I?B:void 0,onCancel:I?L:void 0,connectedWalletAddress:x}):jsx(Xa,{onClose:()=>a(r?.txKey),onOpenAllTransactions:o,isProcessing:y,isFailed:u,canReplace:P,onRetry:v?b:void 0,onSpeedUp:I?B:void 0,onCancel:I?L:void 0,connectedWalletAddress:x,classNames:z})]})})})}function Wt({tx:t,className:a}){return jsx(J,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var $a=({onClose:t,title:a,classNames:o})=>{let{actions:n}=C();return jsxs(DialogHeader,{className:o?.header,children:[jsx(DialogTitle,{className:o?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.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)]",o?.closeButton),children:jsx(CloseIcon,{})})})]})},za=({isFailed:t,onRetry:a,isProcessing:o,canReplace:n,connectedWalletAddress:e,onOpenAllTransactions:s,classNames:l})=>{let{trackingModal:p}=C();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-[var(--tuwa-rounded-corners)] novatx:sm:rounded-[var(--tuwa-rounded-corners)] 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)]",l?.retryButton),children:p.retry}):!o&&!n&&e?jsx("button",{type:"button",onClick:s,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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)]",l?.allTransactionsButton),children:p.allTransactions}):null},Xa=({onClose:t,onOpenAllTransactions:a,isProcessing:o,onRetry:n,onSpeedUp:e,onCancel:s,canReplace:l,isFailed:p,connectedWalletAddress:x,classNames:r})=>{let{trackingModal:c,actions:m}=C();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:l&&e&&s&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:e,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:m.speedUp}),jsx("button",{type:"button",onClick:s,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:m.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",r?.footerButtons),children:[jsx(za,{isFailed:p,onRetry:n,isProcessing:o,canReplace:l,connectedWalletAddress:x,onOpenAllTransactions:a,classNames:r}),jsx("button",{type:"button",onClick:t,disabled:o&&!l,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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:o&&!l?c.processing:c.close})]})]})};function _t({error:t,className:a,classNames:o}){let{isCopied:n,copy:e}=useCopyToClipboard(),{actions:s,txError:l}=C(),{displayMessage:p,copyMessage:x}=useMemo(()=>t?typeof t=="string"?{displayMessage:t,copyMessage:t}:{displayMessage:t.message,copyMessage:JSON.stringify(t.raw,null,2)}:{displayMessage:"",copyMessage:""},[t]);return !t||!p?null:jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",o?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",o?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",o?.icon)}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>e(x),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.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)]",o?.copyButton),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:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",o?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",o?.messageText),children:p})})]})}function ce({label:t,value:a,classNames:o}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm novatx:gap-2",o?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",o?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",o?.value),children:a})]})}function Jt({tx:t,adapter:a,className:o,customization:n}){let{txInfo:e,statuses:s,hashLabels:l}=C(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!p)return null;let{InfoRow:x=ce}=n?.components??{},r=n?.classNames,c={row:r?.row,label:r?.rowLabel,value:r?.rowValue},m="chainId"in t?t.chainId:t.desiredChainID,d=t.adapter===OrbitAdapter.SOLANA,g=d?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",r?.container,o),children:[jsx(x,{label:e.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(m)})}),jsx("span",{children:getChainName(setChainId(m)).name})]}),classNames:c}),t.localTimestamp&&jsx(x,{label:e.started,value:aa.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:c}),d&&jsxs(Fragment,{children:[g?.slot&&jsx(x,{label:e.slot,value:jsx(tt,{hash:g.slot.toString(),explorerUrl:p?.getExplorerUrl?`${p?.getExplorerUrl(`/block/${g.slot}`)}`:void 0}),classNames:c}),g?.recentBlockhash&&jsx(x,{label:l.recentBlockhash,value:jsx(tt,{hash:g.recentBlockhash}),classNames:c})]}),"confirmations"in t&&Number(t.confirmations)>0&&jsx(x,{label:s.confirmationsLabel,value:t.confirmations,classNames:c}),"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(q,{tx:t,adapter:a,variant:"history",renderHashLink:n?.components?.transactionKey,hashLinkClassNames:r?.hashLink,originalHashLinkClassNames:r?.originalHashLink})})]})}var ve={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 me({status:t,label:a,isFirst:o=false,classNames:n}){let e=ve[t],s=n?.statusOverrides?.[t],l=()=>{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",e.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",n?.container),children:[!o&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",e.line,n?.line,s?.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",e.border,e.fill,n?.circle,s?.circle),children:l()}),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)]",n?.label,s?.label),children:a})]})}function Yt({isProcessing:t,isSucceed:a,isFailed:o,isReplaced:n,className:e,StepComponent:s=me,stepClassNames:l}){let{trackingModal:p,statuses:x}=C(),r=d=>{if(d===1)return "completed";if(d===2){if(a||o||n)return "completed";if(t)return "active"}if(d===3){if(a)return "completed";if(o)return "error";if(n)return "replaced";if(t)return "active"}return "inactive"},c=d=>d===1?p.progressIndicator.created:d===2?p.progressIndicator.processing:o?x.failed:n?x.replaced:p.progressIndicator.succeed,m=[{status:r(1),label:c(1),isFirst:true,classNames:l},{status:r(2),label:c(2),classNames:l},{status:r(3),label:c(3),isLast:true,classNames:l}];return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",e),children:m.map((d,g)=>jsx(s,{...d},g))})}var ye={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 jt({isProcessing:t,isSucceed:a,isFailed:o,isReplaced:n,className:e,iconClassNames:s}){let l=a&&"succeed"||o&&"failed"||n&&"replaced"||t&&"processing"||"initializing",{Icon:p,className:x}=ye[l],r=s?.statusOverrides?.[l];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",e),children:jsx(p,{className:cn("novatx:h-16 novatx:w-16",x,s?.icon,r)})})}var Re=({children:t,className:a})=>jsx("div",{className:cn("novatx:overflow-hidden novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-secondary)]",a),children:t}),Ae=({children:t,className:a})=>jsx("h4",{className:cn("novatx:mb-2 novatx:border-b novatx:border-[var(--tuwa-border-primary)] novatx:pb-2 novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-primary)] sm:novatx:mb-4 sm:novatx:pb-4",a),children:t}),lt=({children:t,className:a})=>jsx("span",{className:cn("novatx:block novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-tertiary)]",a),children:t}),ht=({value:t,className:a,size:o="md"})=>{let{isCopied:n,copy:e}=useCopyToClipboard(),{actions:s,txError:l}=C(),p=o==="sm"?"novatx:h-3.5 novatx:w-3.5":"novatx:h-4 novatx:w-4";return jsx("button",{type:"button",onClick:()=>e(t),className:cn("novatx:cursor-pointer novatx:p-2 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-accent)]",o==="sm"&&"novatx:p-1",a),title:n?l.copied:s.copy,"aria-label":n?l.copied:s.copy,children:n?jsx(CheckIcon,{className:cn(p,"novatx:text-[var(--tuwa-success-icon)]")}):jsx(DocumentDuplicateIcon$1,{className:p})})},De=({label:t,value:a,mono:o=true,className:n,children:e,classNames:s})=>jsxs("div",{className:cn("novatx:space-y-1.5",n),children:[jsx(lt,{className:s?.label,children:t}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2",s?.container),children:[e||jsx("code",{className:cn("novatx:min-w-0 novatx:flex-1 novatx:truncate novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-3 novatx:py-2 novatx:text-xs novatx:text-[var(--tuwa-text-primary)]",o&&"novatx:font-mono",s?.code),title:a,children:a}),jsx(ht,{value:a,className:s?.copyButton})]})]}),Ke=({label:t,value:a,mono:o=false,className:n,classNames:e})=>a==null||a===""?null:jsxs("div",{className:cn("novatx:space-y-1",n),children:[jsx(lt,{className:e?.label,children:t}),jsx("span",{className:cn("novatx:block novatx:break-all novatx:text-sm novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o&&"novatx:font-mono novatx:text-xs",e?.value),children:a})]}),Ee=({icon:t,label:a,children:o,className:n,classNames:e})=>jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:py-2.5",n),children:[jsxs("div",{className:"novatx:flex novatx:min-w-0 novatx:items-center novatx:gap-2.5",children:[jsx(t,{className:cn("novatx:h-4 novatx:w-4 novatx:shrink-0 novatx:text-[var(--tuwa-text-tertiary)]",e?.icon)}),jsx("span",{className:cn("novatx:truncate novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",e?.label),children:a})]}),jsx("div",{className:cn("novatx:ml-4 novatx:max-w-[55%] novatx:shrink-0 novatx:truncate novatx:text-right novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",e?.value),children:o})]}),Fe=({label:t,data:a,className:o,classNames:n})=>{if(!a||typeof a=="object"&&Object.keys(a).length===0)return null;let e=typeof a=="string"?a:JSON.stringify(a,null,2);return jsxs("div",{className:cn("novatx:space-y-2",o),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsx(lt,{className:n?.label,children:t}),jsx(ht,{value:e,size:"sm",className:n?.copyButton})]}),jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[300px] novatx:overflow-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:p-3",n?.container),children:jsx("pre",{className:cn("novatx:font-mono novatx:text-[10px] novatx:leading-relaxed novatx:text-[var(--tuwa-text-primary)] novatx:whitespace-pre-wrap",n?.pre),children:e})})]})},Oe=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2 lg:novatx:grid-cols-3",children:[jsx(o,{label:a.nonce,value:t.nonce}),jsx(o,{label:a.maxFee,value:t.maxFeePerGas}),jsx(o,{label:a.maxPriorityFee,value:t.maxPriorityFeePerGas}),jsx(o,{label:a.value,value:t.value}),t.replacedTxHash&&jsx(n,{label:a.replacedHash,value:t.replacedTxHash})]}),Ue=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2",children:[jsx(o,{label:a.fee,value:t.fee}),jsx(o,{label:a.slot,value:t.slot}),t.recentBlockhash&&jsx(n,{label:a.recentBlockhash,value:t.recentBlockhash})]}),We=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2",children:[t.contractAddress&&jsx(n,{label:a.contractAddress,value:t.contractAddress}),jsx(o,{label:a.actualFee,value:t.actualFee?`${t.actualFee.amount} ${t.actualFee.unit}`:void 0})]});function oa({tx:t,onBack:a,adapter:o,className:n,customization:e}){let{transactionDetails:s,statuses:l,actions:p,txError:x}=C(),{isCopied:r,copy:c}=useCopyToClipboard(),m=useMemo(()=>selectAdapterByKey({adapterKey:t.adapter,adapter:o}),[t.adapter,o]),d=t.pending?"pending":t.status===TransactionStatus.Success?"success":"error",g=m?.getExplorerTxUrl?.(t),{SectionCard:S=Re,SectionHeading:y=Ae,CopyableField:w=De,DetailItem:u=Ke,MetadataRow:f=Ee,JsonBlock:k=Fe}=e?.components??{},v=e?.classNames,P=t.adapter===OrbitAdapter.EVM?t:null,b=t.adapter===OrbitAdapter.SOLANA?t:null,I=t.adapter===OrbitAdapter.Starknet?t:null;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-6 novatx:p-4",n,v?.container),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between",v?.header),children:jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-2 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",v?.backButton),title:p.close,children:jsx(ArrowLeftIcon,{className:"novatx:h-5 novatx:w-5"})}),jsxs("div",{children:[jsx("h3",{className:cn("novatx:text-lg novatx:font-black novatx:uppercase novatx:tracking-tight novatx:text-[var(--tuwa-text-primary)]",v?.title),children:s.title}),jsx("p",{className:cn("novatx:text-[10px] novatx:font-bold novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-tertiary)]",v?.subtitle),children:s.subtitle})]})]})}),jsxs(S,{className:v?.coreInfoCard,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:border-b novatx:border-[var(--tuwa-border-primary)] novatx:p-4",children:jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:shrink-0 novatx:items-center novatx:justify-center novatx:rounded-[var(--tuwa-rounded-corners)]",d==="success"?"novatx:bg-emerald-500/10 novatx:text-emerald-500":d==="pending"?"novatx:bg-amber-500/10 novatx:text-amber-500":"novatx:bg-rose-500/10 novatx:text-rose-500",v?.statusIconContainer),children:d==="success"?jsx(CheckCircleIcon$1,{className:"novatx:h-6 novatx:w-6"}):d==="pending"?jsx(ClockIcon$1,{className:"novatx:h-6 novatx:w-6"}):jsx(ExclamationTriangleIcon$1,{className:"novatx:h-6 novatx:w-6"})}),jsxs("div",{children:[jsx("h3",{className:"novatx:text-lg novatx:font-black novatx:uppercase novatx:tracking-tight novatx:text-[var(--tuwa-text-primary)]",children:t.type}),jsx("p",{className:cn("novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest",d==="success"?"novatx:text-emerald-500":d==="pending"?"novatx:text-amber-500":"novatx:text-rose-500"),children:t.pending?l.pending:t.status??l.failed})]})]})}),jsxs("div",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-4 sm:novatx:grid-cols-2",children:[jsx(w,{label:s.hash,value:P?.hash||t.txKey,className:"novatx:min-w-0",classNames:{code:g?"novatx:p-0 novatx:border-none novatx:bg-transparent":void 0},children:g?jsx("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"novatx:block novatx:truncate novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-3 novatx:py-2 novatx:text-xs novatx:font-mono novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:P?.hash||t.txKey}):null}),jsxs("div",{className:"novatx:space-y-1.5",children:[jsx(lt,{children:s.network}),jsxs("div",{className:cn("novatx:flex novatx:h-[42px] novatx:items-center novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-4",v?.networkBadge),children:[jsx(NetworkIcon,{chainId:setChainId(t.chainId),className:"novatx:h-5 novatx:w-5 novatx:shrink-0"}),jsx("span",{className:"novatx:truncate novatx:text-sm novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:getChainName(setChainId(t.chainId)).name}),jsxs("span",{className:"novatx:ml-auto novatx:shrink-0 novatx:font-mono novatx:text-[10px] novatx:text-[var(--tuwa-text-tertiary)]",children:["ID: ",t.chainId]})]})]})]}),jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-8 sm:novatx:grid-cols-2",children:[jsx(w,{label:s.from,value:t.from}),P?.to?jsx(w,{label:s.to,value:P.to}):jsx(u,{label:s.to,value:"\u2014"})]})]})]}),jsxs(S,{className:cn("novatx:p-4",v?.metadataSection),children:[jsx(y,{children:s.metadata}),jsxs("div",{className:"novatx:divide-y novatx:divide-[var(--tuwa-border-primary)]",children:[jsx(f,{icon:GlobeAltIcon,label:s.adapter,children:jsx("span",{className:"novatx:capitalize",children:t.adapter})}),jsx(f,{icon:ClockIcon$1,label:s.submittedAt,children:aa.unix(t.localTimestamp).format("MMM D, YYYY HH:mm:ss")}),t.finishedTimestamp&&jsx(f,{icon:CheckCircleIcon$1,label:s.finishedAt,children:aa.unix(t.finishedTimestamp).format("MMM D, YYYY HH:mm:ss")}),jsx(f,{icon:CpuChipIcon,label:s.tracker,children:jsx("span",{className:"novatx:capitalize",children:t.tracker})}),jsx(f,{icon:LinkIcon,label:s.connector,children:jsx("span",{className:"novatx:capitalize",children:t.connectorType})}),t.confirmations&&Number(t.confirmations)>0&&jsxs(f,{icon:CheckBadgeIcon,label:s.confirmations,children:[t.confirmations,t.requiredConfirmations?` / ${t.requiredConfirmations}`:""]}),t.rpcUrl&&jsx(f,{icon:GlobeAltIcon,label:s.rpcUrl,children:jsx("span",{className:"novatx:block novatx:max-w-[200px] novatx:truncate",title:t.rpcUrl,children:t.rpcUrl})}),jsx(f,{icon:KeyIcon,label:s.txKey,children:jsxs("div",{className:"novatx:flex novatx:min-w-0 novatx:items-center novatx:gap-1.5",children:[jsx("span",{className:"novatx:truncate font-mono",children:t.txKey}),jsx(ht,{value:t.txKey,size:"sm",className:"novatx:p-0"})]})})]})]}),jsxs(S,{className:cn("novatx:p-4",v?.executionSection),children:[jsx(y,{children:s.executionData}),jsxs("div",{className:"novatx:space-y-6",children:[P&&jsx(Oe,{tx:P,labels:s,components:{DetailItem:u,CopyableField:w}}),b&&jsx(Ue,{tx:b,labels:s,components:{DetailItem:u,CopyableField:w}}),I&&jsx(We,{tx:I,labels:s,components:{DetailItem:u,CopyableField:w}}),jsxs("div",{className:"novatx:space-y-6 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-6",children:[P&&P.input&&P.input!=="0x"&&jsx(k,{label:s.inputData,data:P.input}),b&&b.instructions&&jsx(k,{label:s.instructions,data:b.instructions}),jsx(k,{label:s.fullPayload,data:t.payload}),jsx(k,{label:s.errorContext,data:t.error})]})]})]})]})}aa.extend(Je);var Ye=({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)})}),je=({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?aa.unix(t).fromNow():"..."});function sa({tx:t,adapter:a,className:o,customization:n,onSelectTx:e,canViewDetails:s=true}){let{Icon:l=Ye,Title:p=J,Description:x=J,Timestamp:r=je,StatusBadge:c=it,TransactionKey:m=q}=n?.components??{},d=n?.classNames;return jsxs("div",{onClick:g=>{g.target.closest("button, a")||s&&e?.();},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:last:border-b-0",e&&s&&"novatx:cursor-pointer novatx:hover:bg-[var(--tuwa-bg-secondary)]",d?.container,o),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)]",d?.iconWrapper),children:jsx(l,{chainId:t.chainId,className:d?.icon})}),jsxs("div",{className:d?.contentWrapper,children:[jsx(p,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:d?.title}),jsx(r,{timestamp:t.localTimestamp,className:d?.timestamp}),jsx(x,{txStatus:t.status,source:t.description,variant:"description",className:d?.description})]})]}),jsx(c,{tx:t,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}})]}),jsx(m,{tx:t,adapter:a,variant:"history",className:d?.txKeyContainer,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}})]})}var ze=2500;function Xe({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-4",t),role:"status","aria-live":"polite",children:jsx("div",{className:cn("novatx:h-5 novatx:w-5 novatx:animate-spin novatx:rounded-full novatx:border-2 novatx:border-[var(--tuwa-text-secondary)] novatx:border-t-transparent",a)})})}function qe({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-3 novatx:animate-[novatx-fade-out_0.4s_ease-out_2s_forwards]",t),role:"alert","aria-live":"assertive",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:cn("novatx:h-5 novatx:w-5 novatx:text-red-500",a),children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z",clipRule:"evenodd"})})})}function Ze({title:t,message:a,className:o,classNames:n}){return jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",o),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",n?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",n?.message),children:a})]})}function ia({adapter:t,connectedWalletAddress:a,transactionsPool:o,className:n,customization:e,pagination:s,initialTxKey:l,canViewDetails:p=true}){let{transactionsModal:x}=C(),[r,c]=useState(p?l??null:null);useEffect(()=>{if(l&&p){let b=setTimeout(()=>c(l),0);return ()=>clearTimeout(b)}},[l,p]);let m=useRef(null),d=useRef(false),[g,S]=useState(false),y=useRef(void 0),w=a?selectAllTransactionsByActiveWallet(o,a).sort((I,L)=>(L.localTimestamp??0)-(I.localTimestamp??0)):[];useEffect(()=>{let b=s?.isError??false,I=d.current;if(d.current=b,b&&!I){let L=setTimeout(()=>S(true),0);return y.current=setTimeout(()=>S(false),ze),()=>{clearTimeout(L),clearTimeout(y.current);}}},[s?.isError]);let u=useCallback(b=>{b[0]?.isIntersecting&&s?.hasMore&&!s?.isLoading&&a&&s.fetchNextPage(a);},[s,a]);useEffect(()=>{if(!s?.hasMore||!m.current)return;let b=new IntersectionObserver(u,{threshold:.1});return b.observe(m.current),()=>b.disconnect()},[s?.hasMore,u]);let{Placeholder:f=Ze,HistoryItem:k=sa,Loader:v=Xe}=e?.components??{},P=()=>{if(!a)return jsx(f,{title:x.history.connectWalletTitle,message:x.history.connectWalletMessage,className:e?.classNames?.placeholderContainer,classNames:{title:e?.classNames?.placeholderTitle,message:e?.classNames?.placeholderMessage}});if(w.length>0){let b={container:e?.classNames?.itemContainer,iconWrapper:e?.classNames?.itemIconWrapper,icon:e?.classNames?.itemIcon,contentWrapper:e?.classNames?.itemContentWrapper,title:e?.classNames?.itemTitle,timestamp:e?.classNames?.itemTimestamp,description:e?.classNames?.itemDescription,statusBadge:e?.classNames?.itemStatusBadge,statusBadgeIcon:e?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:e?.classNames?.itemStatusBadgeLabel,txKeyContainer:e?.classNames?.itemTxKeyContainer,hashLabel:e?.classNames?.itemHashLabel,hashLink:e?.classNames?.itemHashLink,hashCopyButton:e?.classNames?.itemHashCopyButton,originalHashLabel:e?.classNames?.itemOriginalHashLabel,originalHashLink:e?.classNames?.itemOriginalHashLink,originalHashCopyButton:e?.classNames?.itemOriginalHashCopyButton};return jsxs("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",e?.classNames?.listWrapper),children:[w.map(I=>jsx(k,{tx:I,adapter:t,canViewDetails:p,customization:{classNames:b},onSelectTx:()=>p&&c(I.txKey)},I.txKey)),s?.hasMore&&jsx("div",{ref:m,className:"novatx:h-px","aria-hidden":"true"}),s?.isLoading&&jsx(v,{className:e?.classNames?.loaderContainer,iconClassName:e?.classNames?.loaderIcon}),g&&jsx(qe,{className:e?.classNames?.errorContainer,iconClassName:e?.classNames?.errorIcon})]})}return jsx(f,{title:x.history.noTransactionsTitle,message:x.history.noTransactionsMessage,className:e?.classNames?.placeholderContainer,classNames:{title:e?.classNames?.placeholderTitle,message:e?.classNames?.placeholderMessage}})};if(r){let b=w.find(I=>I.txKey===r);if(b)return jsx(oa,{tx:b,adapter:t,onBack:()=>c(null),customization:e?.detailsCustomization})}return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",e?.classNames?.container,n),children:[e?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",e?.classNames?.titleText),children:e?.title}),P()]})}var so=({closeModal:t,title:a,classNames:o})=>{let{actions:n}=C();return jsxs(DialogHeader,{className:o?.header,children:[jsx(DialogTitle,{className:o?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.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)]",o?.closeButton),children:jsx(CloseIcon,{})})})]})};function ca({isOpen:t,setIsOpen:a,customization:o,adapter:n,connectedWalletAddress:e,transactionsPool:s,pagination:l,selectedTxKey:p}){let{transactionsModal:x}=C(),r=()=>a(false),c=o?.components?.Header,m=o?.components?.History;return jsx(Dialog,{open:t,onOpenChange:d=>!d&&r(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",o?.classNames?.contentWrapper),children:[c?jsx(c,{closeModal:r}):jsx(so,{closeModal:r,title:x.history.title,classNames:{header:o?.classNames?.header,title:o?.classNames?.headerTitle,closeButton:o?.classNames?.closeButton}}),m?jsx(m,{adapter:n,transactionsPool:s,connectedWalletAddress:e,customization:o?.historyCustomization,pagination:l}):jsx(ia,{adapter:n,transactionsPool:s,connectedWalletAddress:e,customization:o?.historyCustomization,pagination:l,initialTxKey:p})]})})})}var lo=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 vr({children:t,action:a,getLastTxKey:o,transactionsPool:n,walletAddress:e,loadingContent:s,succeedContent:l,failedContent:p,replacedContent:x,resetTimeout:r=2500,className:c,classNames:m,...d}){let{trackedTxButton:g}=C(),[S,y]=useState("idle"),[w,u]=useState(void 0),f=lo(g);useEffect(()=>{y("idle"),u(void 0);},[e]),useEffect(()=>{if(!w)return;let L=n[w];if(L)switch(L.status){case TransactionStatus.Success:y("succeed");break;case TransactionStatus.Replaced:y("replaced");break;case TransactionStatus.Failed:y("failed");break}},[n,w,e]),useEffect(()=>{if(["succeed","failed","replaced"].includes(S)){let L=setTimeout(()=>{y("idle"),u(void 0);},r);return ()=>clearTimeout(L)}},[S,r]);let k=async()=>{y("loading");try{await a(),u(o());}catch(L){console.error("Transaction initiation failed:",L),y("failed");}},v=()=>{switch(S){case "loading":return s??f.loading;case "succeed":return l??f.succeed;case "failed":return p??f.failed;case "replaced":return x??f.replaced;default:return t}},P={idle:"novatx:bg-[var(--tuwa-button-gradient-from)] 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=m?.[S]??P[S],I=m?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-[var(--tuwa-rounded-corners)] 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",{...d,disabled:S!=="idle"||d.disabled,onClick:k,className:cn(I,b,c),children:v()})}var go={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Gr({adapter:t,connectedWalletAddress:a,connectedAdapterType:o,transactionsPool:n,initialTx:e,executeTxAction:s,closeTxTrackedModal:l,labels:p,features:x,customization:r,pagination:c,...m}){let[d,g]=useState(false),[S,y]=useState(null),w=useRef(n),u="nova-transactions",f=useMediaQuery("(max-width: 767px)"),k=useMemo(()=>({toasts:x?.toasts??true,transactionsModal:x?.transactionsModal??true,trackingTxModal:x?.trackingTxModal??true}),[x]),v=useMemo(()=>deepMerge(nt,p||{}),[p]),P=useCallback(B=>{if(!k.toasts)return;let R=B.pending?"info":go[B.status]??"info",O=ot=>jsx(Ot,{...ot,tx:B,openTxInfoModal:k.transactionsModal?$=>{y($&&typeof $=="string"?$:null),g(true);}:void 0,customization:r?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(B.txKey)?toast.update(B.txKey,{render:O,type:R,containerId:u}):toast(O,{toastId:B.txKey,type:R,closeOnClick:false,containerId:u});},[n,k,r?.toast,t,a]);useEffect(()=>{let B=w.current;Object.values(n).forEach(R=>{let O=B[R.txKey];if(!O&&R.pending){P(R);return}O&&JSON.stringify(O)!==JSON.stringify(R)&&P(R);}),w.current=n;},[n,P]),useEffect(()=>{Object.values(n).forEach(B=>{toast.isActive(B.txKey,u)&&P(B);});},[a,P,n]);let b=!!e?.withTrackedModal&&n[e?.lastTxKey??""]?.isTrackedModalOpen,I=k.toasts&&(!f||!b&&!d),L=useMemo(()=>{let B=r?.toastCloseButton;return B?({closeToast:R})=>jsx(ToastCloseButton,{closeToast:R,...B}):ToastCloseButton},[r?.toastCloseButton]);return jsxs(At,{labels:v,children:[I&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:L,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...m}),k.transactionsModal&&jsx(ca,{isOpen:d,setIsOpen:B=>{g(B),B||y(null);},selectedTxKey:S,customization:r?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:o,transactionsPool:n,pagination:c}),k.trackingTxModal&&jsx(Vt,{initialTx:e,onClose:l,onOpenAllTransactions:()=>g(true),transactionsPool:n,customization:r?.trackingTxModal,executeTxAction:s,adapter:t,connectedWalletAddress:a})]})}
|
|
1
|
+
import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,NetworkIcon,getChainName,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,ExclamationTriangleIcon,ClockIcon,ArrowPathIcon,ExclamationCircleIcon,CheckCircleIcon,XCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import aa from'dayjs';import {ArrowLeftIcon,CheckCircleIcon as CheckCircleIcon$1,ClockIcon as ClockIcon$1,ExclamationTriangleIcon as ExclamationTriangleIcon$1,GlobeAltIcon,CpuChipIcon,LinkIcon,CheckBadgeIcon,KeyIcon,DocumentDuplicateIcon as DocumentDuplicateIcon$1}from'@heroicons/react/24/outline';import Je from'dayjs/plugin/relativeTime';var nt={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:{openTransaction:"Open transaction"},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"},transactionDetails:{title:"Transaction Details",subtitle:"View full execution metrics and on-chain status.",metadata:"Metadata",executionData:"Execution Data",adapter:"Adapter",submittedAt:"Submitted At",finishedAt:"Finished At",tracker:"Tracker",connector:"Connector",confirmations:"Confirmations",txKey:"TX Key",from:"From (Origin)",to:"To (Recipient)",hash:"Transaction Hash",network:"Network",inputData:"Input Data",payload:"Payload Data",context:"Context",nonce:"Nonce",value:"Value (Raw)",maxFee:"Max Fee per Gas",maxPriorityFee:"Max Priority Fee per Gas",solanaTitle:"Solana Execution Data",starknetTitle:"Starknet Execution Data",contextTitle:"Context & Payload",fee:"Fee",slot:"Slot",instructions:"Instructions",recentBlockhash:"Recent Blockhash",contractAddress:"Contract Address",actualFee:"Actual Fee",titleContext:"Title Context",descriptionContext:"Description Context",errorContext:"Error Context",fullPayload:"Full Payload",rpcUrl:"RPC URL",replacedHash:"Replaced Hash"}};var Rt=createContext(nt),At=({labels:t,children:a})=>jsx(Rt.Provider,{value:t,children:a}),C=()=>useContext(Rt);function tt({label:t,hash:a,explorerUrl:o,variant:n="default",className:e,classNames:s}){let{isCopied:l,copy:p}=useCopyToClipboard(),{actions:x,txError:r}=C(),c=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":n==="default","novatx:text-xs":n==="compact"},e),m=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":n==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":n==="compact"},s?.label),d=jsx("span",{className:cn("novatx:font-mono",s?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:c,children:[t&&jsxs("span",{className:m,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[o?jsxs("a",{href:o,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",s?.link),title:x.viewOnExplorer,"aria-label":x.viewOnExplorer,children:[d,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",s?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",s?.link),children:d}),jsx("button",{type:"button",onClick:()=>p(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",s?.copyButton),title:l?r.copied:x.copy,"aria-label":l?r.copied:x.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 Dt={[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 J({txStatus:t,source:a,fallback:o,variant:n,className:e,applyColor:s=false}){let l,p="";if(typeof a=="string")l=a;else if(Array.isArray(a)){let c=Dt[t||"default"]??Dt.default;l=a[c.index],s&&(p=c.colorClass);}else l=o;return l?jsx("div",{className:cn(n==="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)]",p,e),children:l}):null}function q({tx:t,adapter:a,variant:o="toast",className:n,renderHashLink:e,confirmations:s,hashLinkClassNames:l,originalHashLinkClassNames:p}){let{hashLabels:x,statuses:r}=C(),c=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!c)return null;let m=(u,f)=>e?e(u):jsx(tt,{...u,classNames:f??l}),d=o==="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",g=x[String(t.tracker)],S=g?m({label:g,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:c.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?c?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let u=t.hash,f=t.replacedTxHash;return !u&&!f?null:f?jsxs(Fragment,{children:[u&&m({label:x.original,hash:u,variant:"compact"},p),typeof c.getExplorerTxUrl<"u"&&m({label:x.replaced,hash:f,explorerUrl:c.getExplorerTxUrl(t)})]}):u&&typeof c.getExplorerTxUrl<"u"&&m({label:x.default,hash:u,explorerUrl:c.getExplorerTxUrl(t)})})(),w=g&&g!==x.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(d,n),children:[w&&S,y,typeof s=="number"&&s>0&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[r.confirmationsLabel,": ",s]})]})}var Ha=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 it({tx:t,className:a,classNames:o}){let{statuses:n}=C(),e=Ha(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,p=l?e[l]:null;if(!p)return jsx("div",{className:cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o?.container,a),children:jsx("span",{className:o?.label,children:t.status??n.unknown})});let{label:x,Icon:r,badgeClasses:c,iconClasses:m}=p;return jsxs("div",{className:cn(s,c,o?.container,a),children:[jsx(r,{className:cn("novatx:h-4 novatx:w-4",m,o?.icon)}),jsx("span",{className:o?.label,children:x})]})}var Ea=({onClick:t,children:a,className:o})=>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",o),children:a}),Fa=({onClick:t,children:a,className:o})=>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",o),children:a}),Oa=({onClick:t,children:a,className:o})=>jsx("button",{className:o||"novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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}),Ua=({count:t,required:a,isSuccess:o,className:n})=>jsxs("div",{className:cn("novatx:absolute novatx:-left-1 novatx:-top-1 novatx:z-10 novatx:flex novatx:min-w-[18px] novatx:items-center novatx:justify-center novatx:rounded-full novatx:border novatx:px-1.5 novatx:py-0.5 novatx:text-[10px] novatx:font-bold novatx:shadow-sm novatx:backdrop-blur-sm novatx:transition-colors",o?"novatx:border-[var(--tuwa-success-icon)]/30 novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":"novatx:border-[var(--tuwa-pending-icon)]/30 novatx:bg-[var(--tuwa-pending-bg)]/50 novatx:text-[var(--tuwa-pending-text)]",n),children:[t,a&&a>1?`/${a}`:""]});function Ot({openTxInfoModal:t,tx:a,icon:o,className:n,customization:e,connectedWalletAddress:s,adapter:l}){let{actions:p,toast:x}=C(),r=selectAdapterByKey({adapterKey:a.adapter,adapter:l}),c=!!(a.tracker==="ethereum"&&a.pending&&(!a.confirmations||Number(a.confirmations)<1)&&r?.speedUpTxAction&&r?.cancelTxAction&&a.from.toLowerCase()===s?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),m=()=>{c&&r.cancelTxAction(a);},d=()=>{c&&r.speedUpTxAction(a);},{StatusAwareText:g=J,TransactionKey:S=q,StatusBadge:y=it,SpeedUpButton:w=Ea,CancelButton:u=Fa,TxInfoButton:f=Oa,ConfirmationsBadge:k=Ua}=e?.components??{},v=e?.classNames;return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",v?.container,n),children:[a.confirmations&&Number(a.confirmations)>0&&jsx(k,{count:a.confirmations,required:a.requiredConfirmations,isSuccess:a.status===TransactionStatus.Success,className:v?.confirmationsBadge}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",v?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",v?.iconWrapper),title:getChainName(setChainId(a.chainId)).name,children:o??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",v?.contentWrapper),children:[jsx(g,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:v?.title}),jsx(g,{txStatus:a.status,source:a.description,variant:"description",className:v?.description})]})]}),jsxs("div",{children:[jsx(S,{adapter:l,tx:a,variant:"toast",className:v?.transactionKey,hashLinkClassNames:{label:v?.hashLabel,link:v?.hashLink,copyButton:v?.hashCopyButton},originalHashLinkClassNames:{label:v?.originalHashLabel,link:v?.originalHashLink,copyButton:v?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",v?.footer),children:[jsx(y,{tx:a,className:v?.statusBadge,classNames:{icon:v?.statusBadgeIcon,label:v?.statusBadgeLabel}}),c?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",v?.actionsContainer),children:[jsx(w,{onClick:d,className:v?.speedUpButton,children:p.speedUp}),jsx(u,{onClick:m,className:v?.cancelButton,children:p.cancel})]}):t&&a.from.toLowerCase()===s?.toLowerCase()&&jsx(f,{onClick:()=>t(a.txKey),className:v?.txInfoButton,children:x.openTransaction})]})]})]})}function Vt({adapter:t,onClose:a,onOpenAllTransactions:o,className:n,customization:e,transactionsPool:s,executeTxAction:l,initialTx:p,connectedWalletAddress:x}){let r=p?.lastTxKey?s[p.lastTxKey]:void 0,c=r??p,m=p?.withTrackedModal&&!r||(r?.isTrackedModalOpen??false),d=r?.status,g=p?.isInitializing??false,S=r?.pending??false,y=g||S,w=d===TransactionStatus.Success,u=r?.isError||!!p?.error,f=d===TransactionStatus.Replaced,k=c?selectAdapterByKey({adapterKey:c.adapter,adapter:t}):void 0,v=!!(u&&c&&p?.actionFunction&&l),P=!!(k?.speedUpTxAction&&k?.cancelTxAction&&r?.pending&&(!r.confirmations||Number(r.confirmations)<1)&&r.tracker==="ethereum"),b=()=>{if(!v||!k?.retryTxAction)return;let ut={adapter:c.adapter,type:c.type,desiredChainID:"desiredChainID"in c?c.desiredChainID:c.chainId,actionFunction:p?.actionFunction,title:c.title,description:c.description,payload:c.payload,rpcUrl:"rpcUrl"in c?c?.rpcUrl:"desiredChainID"in c?c.desiredChainID:c.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in c?c.withTrackedModal:false};k.retryTxAction({tx:ut,txKey:r?.txKey??"",onClose:a,executeTxAction:l});},I=P&&r&&["metamask"].includes(r?.connectorType.split(":")[1]),L=()=>{I&&k.cancelTxAction(r);},B=()=>{I&&k.speedUpTxAction(r);},R=e?.components?.Header,O=e?.components?.Footer,ot=e?.components?.StatusVisual,$=e?.components?.ProgressIndicator,Ht=e?.components?.InfoBlock,Mt=e?.components?.ErrorBlock;if(!c)return null;let z=e?.classNames;return jsx(Dialog,{open:m,onOpenChange:ut=>!ut&&a(r?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",e?.modalProps?.className),...e?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",z?.container,n),children:[R?jsx(R,{onClose:()=>a(r?.txKey),title:jsx(Wt,{tx:c,className:z?.headerTitle})}):jsx($a,{onClose:()=>a(r?.txKey),title:jsx(Wt,{tx:c,className:z?.headerTitle}),classNames:z}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",z?.main),children:[ot?jsx(ot,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f}):jsx(jt,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f,className:e?.statusVisualCustomization?.className,iconClassNames:e?.statusVisualCustomization?.iconClassNames}),$?jsx($,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f}):jsx(Yt,{isProcessing:y,isSucceed:w,isFailed:u,isReplaced:f,className:e?.progressIndicatorCustomization?.className,stepClassNames:e?.progressIndicatorCustomization?.stepClassNames}),Ht?jsx(Ht,{tx:c,adapter:t}):jsx(Jt,{tx:c,adapter:t,customization:e?.infoBlockCustomization}),Mt?jsx(Mt,{error:r?.error||p?.error}):jsx(_t,{error:r?.error||p?.error,className:e?.errorBlockCustomization?.className,classNames:e?.errorBlockCustomization?.classNames})]}),O?jsx(O,{onClose:()=>a(r?.txKey),onOpenAllTransactions:o,isProcessing:y,isFailed:u,canReplace:P,onRetry:v?b:void 0,onSpeedUp:I?B:void 0,onCancel:I?L:void 0,connectedWalletAddress:x}):jsx(Xa,{onClose:()=>a(r?.txKey),onOpenAllTransactions:o,isProcessing:y,isFailed:u,canReplace:P,onRetry:v?b:void 0,onSpeedUp:I?B:void 0,onCancel:I?L:void 0,connectedWalletAddress:x,classNames:z})]})})})}function Wt({tx:t,className:a}){return jsx(J,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var $a=({onClose:t,title:a,classNames:o})=>{let{actions:n}=C();return jsxs(DialogHeader,{className:o?.header,children:[jsx(DialogTitle,{className:o?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.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)]",o?.closeButton),children:jsx(CloseIcon,{})})})]})},za=({isFailed:t,onRetry:a,isProcessing:o,canReplace:n,connectedWalletAddress:e,onOpenAllTransactions:s,classNames:l})=>{let{trackingModal:p}=C();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-[var(--tuwa-rounded-corners)] novatx:sm:rounded-[var(--tuwa-rounded-corners)] 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)]",l?.retryButton),children:p.retry}):!o&&!n&&e?jsx("button",{type:"button",onClick:s,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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)]",l?.allTransactionsButton),children:p.allTransactions}):null},Xa=({onClose:t,onOpenAllTransactions:a,isProcessing:o,onRetry:n,onSpeedUp:e,onCancel:s,canReplace:l,isFailed:p,connectedWalletAddress:x,classNames:r})=>{let{trackingModal:c,actions:m}=C();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:l&&e&&s&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:e,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:m.speedUp}),jsx("button",{type:"button",onClick:s,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:m.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",r?.footerButtons),children:[jsx(za,{isFailed:p,onRetry:n,isProcessing:o,canReplace:l,connectedWalletAddress:x,onOpenAllTransactions:a,classNames:r}),jsx("button",{type:"button",onClick:t,disabled:o&&!l,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] 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:o&&!l?c.processing:c.close})]})]})};function _t({error:t,className:a,classNames:o}){let{isCopied:n,copy:e}=useCopyToClipboard(),{actions:s,txError:l}=C(),{displayMessage:p,copyMessage:x}=useMemo(()=>t?typeof t=="string"?{displayMessage:t,copyMessage:t}:{displayMessage:t.message,copyMessage:JSON.stringify(t.raw,null,2)}:{displayMessage:"",copyMessage:""},[t]);return !t||!p?null:jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",o?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",o?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",o?.icon)}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>e(x),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.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)]",o?.copyButton),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:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",o?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",o?.messageText),children:p})})]})}function ce({label:t,value:a,classNames:o}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm novatx:gap-2",o?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",o?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",o?.value),children:a})]})}function Jt({tx:t,adapter:a,className:o,customization:n}){let{txInfo:e,statuses:s,hashLabels:l}=C(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!p)return null;let{InfoRow:x=ce}=n?.components??{},r=n?.classNames,c={row:r?.row,label:r?.rowLabel,value:r?.rowValue},m="chainId"in t?t.chainId:t.desiredChainID,d=t.adapter===OrbitAdapter.SOLANA,g=d?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",r?.container,o),children:[jsx(x,{label:e.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(m)})}),jsx("span",{children:getChainName(setChainId(m)).name})]}),classNames:c}),t.localTimestamp&&jsx(x,{label:e.started,value:aa.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:c}),d&&jsxs(Fragment,{children:[g?.slot&&jsx(x,{label:e.slot,value:jsx(tt,{hash:g.slot.toString(),explorerUrl:p?.getExplorerUrl?`${p?.getExplorerUrl(`/block/${g.slot}`)}`:void 0}),classNames:c}),g?.recentBlockhash&&jsx(x,{label:l.recentBlockhash,value:jsx(tt,{hash:g.recentBlockhash}),classNames:c})]}),"confirmations"in t&&Number(t.confirmations)>0&&jsx(x,{label:s.confirmationsLabel,value:t.confirmations,classNames:c}),"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(q,{tx:t,adapter:a,variant:"history",renderHashLink:n?.components?.transactionKey,hashLinkClassNames:r?.hashLink,originalHashLinkClassNames:r?.originalHashLink})})]})}var ve={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 me({status:t,label:a,isFirst:o=false,classNames:n}){let e=ve[t],s=n?.statusOverrides?.[t],l=()=>{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",e.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",n?.container),children:[!o&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",e.line,n?.line,s?.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",e.border,e.fill,n?.circle,s?.circle),children:l()}),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)]",n?.label,s?.label),children:a})]})}function Yt({isProcessing:t,isSucceed:a,isFailed:o,isReplaced:n,className:e,StepComponent:s=me,stepClassNames:l}){let{trackingModal:p,statuses:x}=C(),r=d=>{if(d===1)return "completed";if(d===2){if(a||o||n)return "completed";if(t)return "active"}if(d===3){if(a)return "completed";if(o)return "error";if(n)return "replaced";if(t)return "active"}return "inactive"},c=d=>d===1?p.progressIndicator.created:d===2?p.progressIndicator.processing:o?x.failed:n?x.replaced:p.progressIndicator.succeed,m=[{status:r(1),label:c(1),isFirst:true,classNames:l},{status:r(2),label:c(2),classNames:l},{status:r(3),label:c(3),isLast:true,classNames:l}];return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",e),children:m.map((d,g)=>jsx(s,{...d},g))})}var ye={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 jt({isProcessing:t,isSucceed:a,isFailed:o,isReplaced:n,className:e,iconClassNames:s}){let l=a&&"succeed"||o&&"failed"||n&&"replaced"||t&&"processing"||"initializing",{Icon:p,className:x}=ye[l],r=s?.statusOverrides?.[l];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",e),children:jsx(p,{className:cn("novatx:h-16 novatx:w-16",x,s?.icon,r)})})}var Re=({children:t,className:a})=>jsx("div",{className:cn("novatx:overflow-hidden novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-secondary)]",a),children:t}),Ae=({children:t,className:a})=>jsx("h4",{className:cn("novatx:mb-2 novatx:border-b novatx:border-[var(--tuwa-border-primary)] novatx:pb-2 novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-primary)] sm:novatx:mb-4 sm:novatx:pb-4",a),children:t}),lt=({children:t,className:a})=>jsx("span",{className:cn("novatx:block novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-tertiary)]",a),children:t}),ht=({value:t,className:a,size:o="md"})=>{let{isCopied:n,copy:e}=useCopyToClipboard(),{actions:s,txError:l}=C(),p=o==="sm"?"novatx:h-3.5 novatx:w-3.5":"novatx:h-4 novatx:w-4";return jsx("button",{type:"button",onClick:()=>e(t),className:cn("novatx:cursor-pointer novatx:p-2 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-accent)]",o==="sm"&&"novatx:p-1",a),title:n?l.copied:s.copy,"aria-label":n?l.copied:s.copy,children:n?jsx(CheckIcon,{className:cn(p,"novatx:text-[var(--tuwa-success-icon)]")}):jsx(DocumentDuplicateIcon$1,{className:p})})},De=({label:t,value:a,mono:o=true,className:n,children:e,classNames:s})=>jsxs("div",{className:cn("novatx:space-y-1.5",n),children:[jsx(lt,{className:s?.label,children:t}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2",s?.container),children:[e||jsx("code",{className:cn("novatx:min-w-0 novatx:flex-1 novatx:truncate novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-3 novatx:py-2 novatx:text-xs novatx:text-[var(--tuwa-text-primary)]",o&&"novatx:font-mono",s?.code),title:a,children:a}),jsx(ht,{value:a,className:s?.copyButton})]})]}),Ke=({label:t,value:a,mono:o=false,className:n,classNames:e})=>a==null||a===""?null:jsxs("div",{className:cn("novatx:space-y-1",n),children:[jsx(lt,{className:e?.label,children:t}),jsx("span",{className:cn("novatx:block novatx:break-all novatx:text-sm novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o&&"novatx:font-mono novatx:text-xs",e?.value),children:a})]}),Ee=({icon:t,label:a,children:o,className:n,classNames:e})=>jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:py-2.5",n),children:[jsxs("div",{className:"novatx:flex novatx:min-w-0 novatx:items-center novatx:gap-2.5",children:[jsx(t,{className:cn("novatx:h-4 novatx:w-4 novatx:shrink-0 novatx:text-[var(--tuwa-text-tertiary)]",e?.icon)}),jsx("span",{className:cn("novatx:truncate novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",e?.label),children:a})]}),jsx("div",{className:cn("novatx:ml-4 novatx:max-w-[55%] novatx:shrink-0 novatx:truncate novatx:text-right novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",e?.value),children:o})]}),Fe=({label:t,data:a,className:o,classNames:n})=>{if(!a||typeof a=="object"&&Object.keys(a).length===0)return null;let e=typeof a=="string"?a:JSON.stringify(a,null,2);return jsxs("div",{className:cn("novatx:space-y-2",o),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsx(lt,{className:n?.label,children:t}),jsx(ht,{value:e,size:"sm",className:n?.copyButton})]}),jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[300px] novatx:overflow-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:p-3",n?.container),children:jsx("pre",{className:cn("novatx:font-mono novatx:text-[10px] novatx:leading-relaxed novatx:text-[var(--tuwa-text-primary)] novatx:whitespace-pre-wrap",n?.pre),children:e})})]})},Oe=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2 lg:novatx:grid-cols-3",children:[jsx(o,{label:a.nonce,value:t.nonce}),jsx(o,{label:a.maxFee,value:t.maxFeePerGas}),jsx(o,{label:a.maxPriorityFee,value:t.maxPriorityFeePerGas}),jsx(o,{label:a.value,value:t.value}),t.replacedTxHash&&jsx(n,{label:a.replacedHash,value:t.replacedTxHash})]}),Ue=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2",children:[jsx(o,{label:a.fee,value:t.fee}),jsx(o,{label:a.slot,value:t.slot}),t.recentBlockhash&&jsx(n,{label:a.recentBlockhash,value:t.recentBlockhash})]}),We=({tx:t,labels:a,components:{DetailItem:o,CopyableField:n}})=>jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-6 sm:novatx:grid-cols-2",children:[t.contractAddress&&jsx(n,{label:a.contractAddress,value:t.contractAddress}),jsx(o,{label:a.actualFee,value:t.actualFee?`${t.actualFee.amount} ${t.actualFee.unit}`:void 0})]});function oa({tx:t,onBack:a,adapter:o,className:n,customization:e}){let{transactionDetails:s,statuses:l,actions:p,txError:x}=C(),{isCopied:r,copy:c}=useCopyToClipboard(),m=useMemo(()=>selectAdapterByKey({adapterKey:t.adapter,adapter:o}),[t.adapter,o]),d=t.pending?"pending":t.status===TransactionStatus.Success?"success":"error",g=m?.getExplorerTxUrl?.(t),{SectionCard:S=Re,SectionHeading:y=Ae,CopyableField:w=De,DetailItem:u=Ke,MetadataRow:f=Ee,JsonBlock:k=Fe}=e?.components??{},v=e?.classNames,P=t.adapter===OrbitAdapter.EVM?t:null,b=t.adapter===OrbitAdapter.SOLANA?t:null,I=t.adapter===OrbitAdapter.Starknet?t:null;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-6 novatx:p-4",n,v?.container),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between",v?.header),children:jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-2 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",v?.backButton),title:p.close,children:jsx(ArrowLeftIcon,{className:"novatx:h-5 novatx:w-5"})}),jsxs("div",{children:[jsx("h3",{className:cn("novatx:text-lg novatx:font-black novatx:uppercase novatx:tracking-tight novatx:text-[var(--tuwa-text-primary)]",v?.title),children:s.title}),jsx("p",{className:cn("novatx:text-[10px] novatx:font-bold novatx:uppercase novatx:tracking-widest novatx:text-[var(--tuwa-text-tertiary)]",v?.subtitle),children:s.subtitle})]})]})}),jsxs(S,{className:v?.coreInfoCard,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:border-b novatx:border-[var(--tuwa-border-primary)] novatx:p-4",children:jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:shrink-0 novatx:items-center novatx:justify-center novatx:rounded-[var(--tuwa-rounded-corners)]",d==="success"?"novatx:bg-emerald-500/10 novatx:text-emerald-500":d==="pending"?"novatx:bg-amber-500/10 novatx:text-amber-500":"novatx:bg-rose-500/10 novatx:text-rose-500",v?.statusIconContainer),children:d==="success"?jsx(CheckCircleIcon$1,{className:"novatx:h-6 novatx:w-6"}):d==="pending"?jsx(ClockIcon$1,{className:"novatx:h-6 novatx:w-6"}):jsx(ExclamationTriangleIcon$1,{className:"novatx:h-6 novatx:w-6"})}),jsxs("div",{children:[jsx("h3",{className:"novatx:text-lg novatx:font-black novatx:uppercase novatx:tracking-tight novatx:text-[var(--tuwa-text-primary)]",children:t.type}),jsx("p",{className:cn("novatx:text-[10px] novatx:font-black novatx:uppercase novatx:tracking-widest",d==="success"?"novatx:text-emerald-500":d==="pending"?"novatx:text-amber-500":"novatx:text-rose-500"),children:t.pending?l.pending:t.status??l.failed})]})]})}),jsxs("div",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-4 sm:novatx:grid-cols-2",children:[jsx(w,{label:s.hash,value:P?.hash||t.txKey,className:"novatx:min-w-0",classNames:{code:g?"novatx:p-0 novatx:border-none novatx:bg-transparent":void 0},children:g?jsx("a",{href:g,target:"_blank",rel:"noopener noreferrer",className:"novatx:block novatx:truncate novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-3 novatx:py-2 novatx:text-xs novatx:font-mono novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:P?.hash||t.txKey}):null}),jsxs("div",{className:"novatx:space-y-1.5",children:[jsx(lt,{children:s.network}),jsxs("div",{className:cn("novatx:flex novatx:h-[42px] novatx:items-center novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-muted)]/50 novatx:px-4",v?.networkBadge),children:[jsx(NetworkIcon,{chainId:setChainId(t.chainId),className:"novatx:h-5 novatx:w-5 novatx:shrink-0"}),jsx("span",{className:"novatx:truncate novatx:text-sm novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:getChainName(setChainId(t.chainId)).name}),jsxs("span",{className:"novatx:ml-auto novatx:shrink-0 novatx:font-mono novatx:text-[10px] novatx:text-[var(--tuwa-text-tertiary)]",children:["ID: ",t.chainId]})]})]})]}),jsxs("div",{className:"novatx:grid novatx:grid-cols-1 novatx:gap-8 sm:novatx:grid-cols-2",children:[jsx(w,{label:s.from,value:t.from}),P?.to?jsx(w,{label:s.to,value:P.to}):jsx(u,{label:s.to,value:"\u2014"})]})]})]}),jsxs(S,{className:cn("novatx:p-4",v?.metadataSection),children:[jsx(y,{children:s.metadata}),jsxs("div",{className:"novatx:divide-y novatx:divide-[var(--tuwa-border-primary)]",children:[jsx(f,{icon:GlobeAltIcon,label:s.adapter,children:jsx("span",{className:"novatx:capitalize",children:t.adapter})}),jsx(f,{icon:ClockIcon$1,label:s.submittedAt,children:aa.unix(t.localTimestamp).format("MMM D, YYYY HH:mm:ss")}),t.finishedTimestamp&&jsx(f,{icon:CheckCircleIcon$1,label:s.finishedAt,children:aa.unix(t.finishedTimestamp).format("MMM D, YYYY HH:mm:ss")}),jsx(f,{icon:CpuChipIcon,label:s.tracker,children:jsx("span",{className:"novatx:capitalize",children:t.tracker})}),jsx(f,{icon:LinkIcon,label:s.connector,children:jsx("span",{className:"novatx:capitalize",children:t.connectorType})}),t.confirmations&&Number(t.confirmations)>0&&jsxs(f,{icon:CheckBadgeIcon,label:s.confirmations,children:[t.confirmations,t.requiredConfirmations?` / ${t.requiredConfirmations}`:""]}),t.rpcUrl&&jsx(f,{icon:GlobeAltIcon,label:s.rpcUrl,children:jsx("span",{className:"novatx:block novatx:max-w-[200px] novatx:truncate",title:t.rpcUrl,children:t.rpcUrl})}),jsx(f,{icon:KeyIcon,label:s.txKey,children:jsxs("div",{className:"novatx:flex novatx:min-w-0 novatx:items-center novatx:gap-1.5",children:[jsx("span",{className:"novatx:truncate font-mono",children:t.txKey}),jsx(ht,{value:t.txKey,size:"sm",className:"novatx:p-0"})]})})]})]}),jsxs(S,{className:cn("novatx:p-4",v?.executionSection),children:[jsx(y,{children:s.executionData}),jsxs("div",{className:"novatx:space-y-6",children:[P&&jsx(Oe,{tx:P,labels:s,components:{DetailItem:u,CopyableField:w}}),b&&jsx(Ue,{tx:b,labels:s,components:{DetailItem:u,CopyableField:w}}),I&&jsx(We,{tx:I,labels:s,components:{DetailItem:u,CopyableField:w}}),jsxs("div",{className:"novatx:space-y-6 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-6",children:[P&&P.input&&P.input!=="0x"&&jsx(k,{label:s.inputData,data:P.input}),b&&b.instructions&&jsx(k,{label:s.instructions,data:b.instructions}),jsx(k,{label:s.fullPayload,data:t.payload}),jsx(k,{label:s.errorContext,data:t.error})]})]})]})]})}aa.extend(Je);var Ye=({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)})}),je=({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?aa.unix(t).fromNow():"..."});function sa({tx:t,adapter:a,className:o,customization:n,onSelectTx:e,canViewDetails:s=true}){let{Icon:l=Ye,Title:p=J,Description:x=J,Timestamp:r=je,StatusBadge:c=it,TransactionKey:m=q}=n?.components??{},d=n?.classNames;return jsxs("div",{onClick:g=>{g.target.closest("button, a")||s&&e?.();},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:last:border-b-0",e&&s&&"novatx:cursor-pointer novatx:hover:bg-[var(--tuwa-bg-secondary)]",d?.container,o),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)]",d?.iconWrapper),children:jsx(l,{chainId:t.chainId,className:d?.icon})}),jsxs("div",{className:d?.contentWrapper,children:[jsx(p,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:d?.title}),jsx(r,{timestamp:t.localTimestamp,className:d?.timestamp}),jsx(x,{txStatus:t.status,source:t.description,variant:"description",className:d?.description})]})]}),jsx(c,{tx:t,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}})]}),jsx(m,{tx:t,adapter:a,variant:"history",className:d?.txKeyContainer,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}})]})}var ze=2500;function Xe({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-4",t),role:"status","aria-live":"polite",children:jsx("div",{className:cn("novatx:h-5 novatx:w-5 novatx:animate-spin novatx:rounded-full novatx:border-2 novatx:border-[var(--tuwa-text-secondary)] novatx:border-t-transparent",a)})})}function qe({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-3 novatx:animate-[novatx-fade-out_0.4s_ease-out_2s_forwards]",t),role:"alert","aria-live":"assertive",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:cn("novatx:h-5 novatx:w-5 novatx:text-red-500",a),children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z",clipRule:"evenodd"})})})}function Ze({title:t,message:a,className:o,classNames:n}){return jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",o),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",n?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",n?.message),children:a})]})}function ia({adapter:t,connectedWalletAddress:a,transactionsPool:o,className:n,customization:e,pagination:s,initialTxKey:l,canViewDetails:p=true}){let{transactionsModal:x}=C(),[r,c]=useState(p?l??null:null);useEffect(()=>{if(l&&p){let b=setTimeout(()=>c(l),0);return ()=>clearTimeout(b)}},[l,p]);let m=useRef(null),d=useRef(false),[g,S]=useState(false),y=useRef(void 0),w=a?selectAllTransactionsByActiveWallet(o,a).sort((I,L)=>(L.localTimestamp??0)-(I.localTimestamp??0)):[];useEffect(()=>{let b=s?.isError??false,I=d.current;if(d.current=b,b&&!I){let L=setTimeout(()=>S(true),0);return y.current=setTimeout(()=>S(false),ze),()=>{clearTimeout(L),clearTimeout(y.current);}}},[s?.isError]);let u=useCallback(b=>{b[0]?.isIntersecting&&s?.hasMore&&!s?.isLoading&&a&&s.fetchNextPage(a);},[s,a]);useEffect(()=>{if(!s?.hasMore||!m.current)return;let b=new IntersectionObserver(u,{threshold:.1});return b.observe(m.current),()=>b.disconnect()},[s?.hasMore,u]);let{Placeholder:f=Ze,HistoryItem:k=sa,Loader:v=Xe}=e?.components??{},P=()=>{if(!a)return jsx(f,{title:x.history.connectWalletTitle,message:x.history.connectWalletMessage,className:e?.classNames?.placeholderContainer,classNames:{title:e?.classNames?.placeholderTitle,message:e?.classNames?.placeholderMessage}});if(w.length>0){let b={container:e?.classNames?.itemContainer,iconWrapper:e?.classNames?.itemIconWrapper,icon:e?.classNames?.itemIcon,contentWrapper:e?.classNames?.itemContentWrapper,title:e?.classNames?.itemTitle,timestamp:e?.classNames?.itemTimestamp,description:e?.classNames?.itemDescription,statusBadge:e?.classNames?.itemStatusBadge,statusBadgeIcon:e?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:e?.classNames?.itemStatusBadgeLabel,txKeyContainer:e?.classNames?.itemTxKeyContainer,hashLabel:e?.classNames?.itemHashLabel,hashLink:e?.classNames?.itemHashLink,hashCopyButton:e?.classNames?.itemHashCopyButton,originalHashLabel:e?.classNames?.itemOriginalHashLabel,originalHashLink:e?.classNames?.itemOriginalHashLink,originalHashCopyButton:e?.classNames?.itemOriginalHashCopyButton};return jsxs("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",e?.classNames?.listWrapper),children:[w.map(I=>jsx(k,{tx:I,adapter:t,canViewDetails:p,customization:{classNames:b},onSelectTx:()=>p&&c(I.txKey)},I.txKey)),s?.hasMore&&jsx("div",{ref:m,className:"novatx:h-px","aria-hidden":"true"}),s?.isLoading&&jsx(v,{className:e?.classNames?.loaderContainer,iconClassName:e?.classNames?.loaderIcon}),g&&jsx(qe,{className:e?.classNames?.errorContainer,iconClassName:e?.classNames?.errorIcon})]})}return jsx(f,{title:x.history.noTransactionsTitle,message:x.history.noTransactionsMessage,className:e?.classNames?.placeholderContainer,classNames:{title:e?.classNames?.placeholderTitle,message:e?.classNames?.placeholderMessage}})};if(r){let b=w.find(I=>I.txKey===r);if(b)return jsx(oa,{tx:b,adapter:t,onBack:()=>c(null),customization:e?.detailsCustomization})}return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",e?.classNames?.container,n),children:[e?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",e?.classNames?.titleText),children:e?.title}),P()]})}var so=({closeModal:t,title:a,classNames:o})=>{let{actions:n}=C();return jsxs(DialogHeader,{className:o?.header,children:[jsx(DialogTitle,{className:o?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.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)]",o?.closeButton),children:jsx(CloseIcon,{})})})]})};function ca({isOpen:t,setIsOpen:a,customization:o,adapter:n,connectedWalletAddress:e,transactionsPool:s,pagination:l,selectedTxKey:p}){let{transactionsModal:x}=C(),r=()=>a(false),c=o?.components?.Header,m=o?.components?.History;return jsx(Dialog,{open:t,onOpenChange:d=>!d&&r(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",o?.classNames?.contentWrapper),children:[c?jsx(c,{closeModal:r}):jsx(so,{closeModal:r,title:x.history.title,classNames:{header:o?.classNames?.header,title:o?.classNames?.headerTitle,closeButton:o?.classNames?.closeButton}}),m?jsx(m,{adapter:n,transactionsPool:s,connectedWalletAddress:e,customization:o?.historyCustomization,pagination:l}):jsx(ia,{adapter:n,transactionsPool:s,connectedWalletAddress:e,customization:o?.historyCustomization,pagination:l,initialTxKey:p})]})})})}var lo=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 vr({children:t,action:a,getLastTxKey:o,transactionsPool:n,walletAddress:e,loadingContent:s,succeedContent:l,failedContent:p,replacedContent:x,resetTimeout:r=2500,className:c,classNames:m,...d}){let{trackedTxButton:g}=C(),[S,y]=useState("idle"),[w,u]=useState(void 0),f=lo(g);useEffect(()=>{y("idle"),u(void 0);},[e]),useEffect(()=>{if(!w)return;let L=n[w];if(L)switch(L.status){case TransactionStatus.Success:y("succeed");break;case TransactionStatus.Replaced:y("replaced");break;case TransactionStatus.Failed:y("failed");break}},[n,w,e]),useEffect(()=>{if(["succeed","failed","replaced"].includes(S)){let L=setTimeout(()=>{y("idle"),u(void 0);},r);return ()=>clearTimeout(L)}},[S,r]);let k=async()=>{y("loading");try{await a(),u(o());}catch(L){console.error("Transaction initiation failed:",L),y("failed");}},v=()=>{switch(S){case "loading":return s??f.loading;case "succeed":return l??f.succeed;case "failed":return p??f.failed;case "replaced":return x??f.replaced;default:return t}},P={idle:"novatx:bg-[var(--tuwa-button-gradient-from)] 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=m?.[S]??P[S],I=m?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-[var(--tuwa-rounded-corners)] 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",{...d,disabled:S!=="idle"||d.disabled,onClick:k,className:cn(I,b,c),children:v()})}var go={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Gr({adapter:t,connectedWalletAddress:a,connectedAdapterType:o,transactionsPool:n,initialTx:e,executeTxAction:s,closeTxTrackedModal:l,labels:p,features:x,customization:r,pagination:c,...m}){let[d,g]=useState(false),[S,y]=useState(null),w=useRef(n),u="nova-transactions",f=useMediaQuery("(max-width: 767px)"),k=useMemo(()=>({toasts:x?.toasts??true,transactionsModal:x?.transactionsModal??true,trackingTxModal:x?.trackingTxModal??true}),[x]),v=useMemo(()=>deepMerge(nt,p||{}),[p]),P=useCallback(B=>{if(!k.toasts)return;let R=B.pending?"info":go[B.status]??"info",O=ot=>jsx(Ot,{...ot,tx:B,openTxInfoModal:k.transactionsModal?$=>{y($&&typeof $=="string"?$:null),g(true);}:void 0,customization:r?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(B.txKey)?toast.update(B.txKey,{render:O,type:R,containerId:u}):toast(O,{toastId:B.txKey,type:R,closeOnClick:false,containerId:u});},[n,k,r?.toast,t,a]);useEffect(()=>{let B=w.current;Object.values(n).forEach(R=>{let O=B[R.txKey];if(!O&&R.pending){P(R);return}O&&JSON.stringify(O)!==JSON.stringify(R)&&P(R);}),w.current=n;},[n,P]),useEffect(()=>{Object.values(n).forEach(B=>{toast.isActive(B.txKey,u)&&P(B);});},[a,P,n]);let b=!!e?.withTrackedModal&&n[e?.lastTxKey??""]?.isTrackedModalOpen,I=k.toasts&&(!f||!b&&!d),L=useMemo(()=>{let B=r?.toastCloseButton;return B?({closeToast:R})=>jsx(ToastCloseButton,{closeToast:R,...B}):ToastCloseButton},[r?.toastCloseButton]);return jsxs(At,{labels:v,children:[I&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:L,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...m}),k.transactionsModal&&jsx(ca,{isOpen:d,setIsOpen:B=>{g(B),B||y(null);},selectedTxKey:S,customization:r?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:o,transactionsPool:n,pagination:c}),k.trackingTxModal&&jsx(Vt,{initialTx:e,onClose:l,onOpenAllTransactions:()=>g(true),transactionsPool:n,customization:r?.trackingTxModal,executeTxAction:s,adapter:t,connectedWalletAddress:a})]})}
|
|
2
2
|
export{nt as a,At as b,C as c,Gr as d,tt as e,J as f,q as g,it as h,Ot as i,Vt as j,_t as k,Jt as l,Yt as m,jt as n,oa as o,sa as p,ia as q,ca as r,vr as s};
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-
|
|
2
|
-
export { C as CopyableFieldProps, D as DetailItemProps,
|
|
1
|
+
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-DN70QAqZ.cjs';
|
|
2
|
+
export { C as CopyableFieldProps, D as DetailItemProps, H as HashLink, a as HashLinkProps, J as JsonBlockProps, M as MetadataRowProps, S as StatusAwareText, b as StatusAwareTextProps, c as StepClassNames, d as StepProps, e as StepStatus, T as ToastTransaction, f as ToastTransactionCustomization, g as ToastTransactionProps, h as TrackingTxModal, i as TrackingTxModalCustomization, j as TrackingTxModalProps, k as TransactionDetails, l as TransactionDetailsCustomization, m as TransactionDetailsProps, n as TransactionHistoryItem, o as TransactionHistoryItemCustomization, p as TransactionHistoryItemProps, q as TransactionKey, r as TransactionKeyProps, s as TransactionStatusBadge, t as TransactionStatusBadgeProps, u as TransactionsHistory, v as TransactionsHistoryCustomization, w as TransactionsHistoryLoaderProps, x as TransactionsHistoryProps, y as TransactionsInfoModal, z as TransactionsInfoModalCustomization, A as TransactionsInfoModalProps, B as TxErrorBlock, E as TxErrorBlockClassNames, F as TxErrorBlockProps, G as TxInfoBlock, I as TxInfoBlockCustomization, K as TxInfoBlockProps, L as TxProgressIndicator, O as TxProgressIndicatorProps, P as TxStatusVisual, Q as TxStatusVisualClassNames, R as TxStatusVisualProps } from './TransactionsInfoModal-DN70QAqZ.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';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-
|
|
2
|
-
export { C as CopyableFieldProps, D as DetailItemProps,
|
|
1
|
+
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-DN70QAqZ.js';
|
|
2
|
+
export { C as CopyableFieldProps, D as DetailItemProps, H as HashLink, a as HashLinkProps, J as JsonBlockProps, M as MetadataRowProps, S as StatusAwareText, b as StatusAwareTextProps, c as StepClassNames, d as StepProps, e as StepStatus, T as ToastTransaction, f as ToastTransactionCustomization, g as ToastTransactionProps, h as TrackingTxModal, i as TrackingTxModalCustomization, j as TrackingTxModalProps, k as TransactionDetails, l as TransactionDetailsCustomization, m as TransactionDetailsProps, n as TransactionHistoryItem, o as TransactionHistoryItemCustomization, p as TransactionHistoryItemProps, q as TransactionKey, r as TransactionKeyProps, s as TransactionStatusBadge, t as TransactionStatusBadgeProps, u as TransactionsHistory, v as TransactionsHistoryCustomization, w as TransactionsHistoryLoaderProps, x as TransactionsHistoryProps, y as TransactionsInfoModal, z as TransactionsInfoModalCustomization, A as TransactionsInfoModalProps, B as TxErrorBlock, E as TxErrorBlockClassNames, F as TxErrorBlockProps, G as TxInfoBlock, I as TxInfoBlockCustomization, K as TxInfoBlockProps, L as TxProgressIndicator, O as TxProgressIndicatorProps, P as TxStatusVisual, Q as TxStatusVisualClassNames, R as TxStatusVisualProps } from './TransactionsInfoModal-DN70QAqZ.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';
|
|
@@ -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-
|
|
4
|
-
export {
|
|
3
|
+
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-DN70QAqZ.cjs';
|
|
4
|
+
export { U as NovaTransactionsProvider, V as NovaTransactionsProviderProps } from '../TransactionsInfoModal-DN70QAqZ.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-
|
|
4
|
-
export {
|
|
3
|
+
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-DN70QAqZ.js';
|
|
4
|
+
export { U as NovaTransactionsProvider, V as NovaTransactionsProviderProps } from '../TransactionsInfoModal-DN70QAqZ.js';
|
|
5
5
|
import '@tuwaio/nova-core';
|
|
6
6
|
import '@tuwaio/pulsar-core';
|
|
7
7
|
import '@tuwaio/orbit-core';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-transactions",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@tuwaio/orbit-core": "^0.2.8",
|
|
79
|
-
"@tuwaio/pulsar-core": "^0.6.
|
|
79
|
+
"@tuwaio/pulsar-core": "^0.6.2",
|
|
80
80
|
"dayjs": "^1.11.20",
|
|
81
81
|
"@web3icons/react": "^4.1.17",
|
|
82
82
|
"@web3icons/common": "^0.11.46",
|