@tuwaio/nova-transactions 1.0.0-fix-integrate-orbit-alpha.23.c69d70b → 1.0.0-fix-integrate-orbit-alpha.25.ff80134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +44 -0
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/providers/index.cjs +4 -4
- package/dist/providers/index.cjs.map +1 -1
- package/dist/providers/index.js +4 -4
- package/dist/providers/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.css
CHANGED
|
@@ -597,8 +597,10 @@
|
|
|
597
597
|
--novacore-text-sm--line-height: calc(1.25 / 0.875);
|
|
598
598
|
--novacore-text-lg: 1.125rem;
|
|
599
599
|
--novacore-text-lg--line-height: calc(1.75 / 1.125);
|
|
600
|
+
--novacore-font-weight-semibold: 600;
|
|
600
601
|
--novacore-font-weight-bold: 700;
|
|
601
602
|
--novacore-tracking-tight: -0.025em;
|
|
603
|
+
--novacore-radius-md: 0.375rem;
|
|
602
604
|
--novacore-radius-2xl: 1rem;
|
|
603
605
|
--novacore-blur-sm: 8px;
|
|
604
606
|
--novacore-default-transition-duration: 150ms;
|
|
@@ -666,6 +668,9 @@
|
|
|
666
668
|
.novacore\:w-full {
|
|
667
669
|
width: 100%;
|
|
668
670
|
}
|
|
671
|
+
.novacore\:cursor-pointer {
|
|
672
|
+
cursor: pointer;
|
|
673
|
+
}
|
|
669
674
|
.novacore\:flex-col {
|
|
670
675
|
flex-direction: column;
|
|
671
676
|
}
|
|
@@ -681,6 +686,9 @@
|
|
|
681
686
|
.novacore\:justify-between {
|
|
682
687
|
justify-content: space-between;
|
|
683
688
|
}
|
|
689
|
+
.novacore\:gap-1 {
|
|
690
|
+
gap: calc(var(--novacore-spacing) * 1);
|
|
691
|
+
}
|
|
684
692
|
.novacore\:gap-3 {
|
|
685
693
|
gap: calc(var(--novacore-spacing) * 3);
|
|
686
694
|
}
|
|
@@ -690,6 +698,9 @@
|
|
|
690
698
|
.novacore\:overflow-y-auto {
|
|
691
699
|
overflow-y: auto;
|
|
692
700
|
}
|
|
701
|
+
.novacore\:rounded-md {
|
|
702
|
+
border-radius: var(--novacore-radius-md);
|
|
703
|
+
}
|
|
693
704
|
.novacore\:rounded-t-2xl {
|
|
694
705
|
border-top-left-radius: var(--novacore-radius-2xl);
|
|
695
706
|
border-top-right-radius: var(--novacore-radius-2xl);
|
|
@@ -708,6 +719,9 @@
|
|
|
708
719
|
.novacore\:bg-\[var\(--tuwa-bg-primary\)\] {
|
|
709
720
|
background-color: var(--tuwa-bg-primary);
|
|
710
721
|
}
|
|
722
|
+
.novacore\:bg-\[var\(--tuwa-standart-button-bg\)\] {
|
|
723
|
+
background-color: var(--tuwa-standart-button-bg);
|
|
724
|
+
}
|
|
711
725
|
.novacore\:bg-black\/55 {
|
|
712
726
|
background-color: var(--novacore-color-black);
|
|
713
727
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -723,6 +737,12 @@
|
|
|
723
737
|
.novacore\:p-4 {
|
|
724
738
|
padding: calc(var(--novacore-spacing) * 4);
|
|
725
739
|
}
|
|
740
|
+
.novacore\:px-3 {
|
|
741
|
+
padding-inline: calc(var(--novacore-spacing) * 3);
|
|
742
|
+
}
|
|
743
|
+
.novacore\:py-2 {
|
|
744
|
+
padding-block: calc(var(--novacore-spacing) * 2);
|
|
745
|
+
}
|
|
726
746
|
.novacore\:text-lg {
|
|
727
747
|
font-size: var(--novacore-text-lg);
|
|
728
748
|
line-height: var(--tw-leading, var(--novacore-text-lg--line-height));
|
|
@@ -739,6 +759,10 @@
|
|
|
739
759
|
--tw-font-weight: var(--novacore-font-weight-bold);
|
|
740
760
|
font-weight: var(--novacore-font-weight-bold);
|
|
741
761
|
}
|
|
762
|
+
.novacore\:font-semibold {
|
|
763
|
+
--tw-font-weight: var(--novacore-font-weight-semibold);
|
|
764
|
+
font-weight: var(--novacore-font-weight-semibold);
|
|
765
|
+
}
|
|
742
766
|
.novacore\:tracking-tight {
|
|
743
767
|
--tw-tracking: var(--novacore-tracking-tight);
|
|
744
768
|
letter-spacing: var(--novacore-tracking-tight);
|
|
@@ -770,6 +794,23 @@
|
|
|
770
794
|
--tw-outline-style: none;
|
|
771
795
|
outline-style: none;
|
|
772
796
|
}
|
|
797
|
+
.novacore\:hover\:bg-\[var\(--tuwa-standart-button-hover\)\] {
|
|
798
|
+
&:hover {
|
|
799
|
+
@media (hover: hover) {
|
|
800
|
+
background-color: var(--tuwa-standart-button-hover);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
.novacore\:disabled\:cursor-not-allowed {
|
|
805
|
+
&:disabled {
|
|
806
|
+
cursor: not-allowed;
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
.novacore\:disabled\:opacity-50 {
|
|
810
|
+
&:disabled {
|
|
811
|
+
opacity: 50%;
|
|
812
|
+
}
|
|
813
|
+
}
|
|
773
814
|
.novacore\:sm\:top-\[50\%\] {
|
|
774
815
|
@media (width >= 40rem) {
|
|
775
816
|
top: 50%;
|
|
@@ -932,6 +973,9 @@
|
|
|
932
973
|
background-color: var(--tuwa-text-primary);
|
|
933
974
|
}
|
|
934
975
|
}
|
|
976
|
+
.NovaModalOpen {
|
|
977
|
+
overflow: hidden;
|
|
978
|
+
}
|
|
935
979
|
@property --tw-leading {
|
|
936
980
|
syntax: "*";
|
|
937
981
|
inherits: false;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,XMarkIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {useCopyToClipboard,cn,textCenterEllipsis,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon}from'@tuwaio/nova-core';import {createContext,useContext,useMemo,useState,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import'react-toastify';import {Web3Icon}from'@bgd-labs/react-web3-icons';import {getChainName}from'@bgd-labs/react-web3-icons/dist/utils';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import It from'dayjs';import jo from'dayjs/plugin/relativeTime';var J={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var Ot=createContext(J);var v=()=>useContext(Ot);({[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"});function D({label:t,hash:o,explorerUrl:n,variant:c="default",className:r}){let{isCopied:l,copy:i}=useCopyToClipboard(),{actions:s,txError:p}=v(),a=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":c==="default","novatx:text-xs":c==="compact"},r),e=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":c==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":c==="compact"}),x=jsx("span",{className:"novatx:font-mono",children:textCenterEllipsis(o,5,5)});return jsxs("div",{className:a,children:[t&&jsxs("span",{className:e,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:s.viewOnExplorer,"aria-label":s.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>i(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:s.copy,"aria-label":l?p.copied:s.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 pt={[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 S({txStatus:t,source:o,fallback:n,variant:c,className:r,applyColor:l=false}){let i,s="";if(typeof o=="string")i=o;else if(Array.isArray(o)){let e=pt[t||"default"]??pt.default;i=o[e.index],l&&(s=e.colorClass);}else i=n;return i?jsx("div",{className:cn(c==="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)]",s,r),children:i}):null}function Ut({closeToast:t}){let{actions:o}=v();return jsx("button",{type:"button",onClick:t,"aria-label":o.close,title:o.close,className:cn("novatx:absolute novatx:top-2 novatx:right-2 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)]"),children:jsx(XMarkIcon,{className:"novatx:h-5 novatx:w-5"})})}function L({tx:t,adapter:o,variant:n="toast",className:c,renderHashLink:r,confirmations:l}){let{hashLabels:i,statuses:s}=v(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=f=>r?r(f):jsx(D,{...f}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=i[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,u=(()=>{let f=t.hash,T=t.replacedTxHash;return !f&&!T?null:T?jsxs(Fragment,{children:[f&&a({label:i.original,hash:f,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:i.replaced,hash:T,explorerUrl:p.getExplorerTxUrl(t)})]}):f&&typeof p.getExplorerTxUrl<"u"&&a({label:i.default,hash:f,explorerUrl:p.getExplorerTxUrl(t)})})(),m=x&&x!==i.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(e,c),children:[m&&g,u,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",l]})]})}var ro=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 F({tx:t,className:o}){let{statuses:n}=v(),c=useMemo(()=>ro(n),[n]),r="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,i=l?c[l]:null;if(!i)return jsx("div",{className:cn(r,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:s,Icon:p,badgeClasses:a,iconClasses:e}=i;return jsxs("div",{className:cn(r,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),s]})}var xo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),vo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),uo=({onClick:t,children:o})=>jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function Ft({openTxInfoModal:t,tx:o,icon:n,className:c,customization:r,connectedWalletAddress:l,adapter:i}){let{actions:s,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:i}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:u=S,TransactionKey:m=L,StatusBadge:f=F,SpeedUpButton:T=xo,CancelButton:w=vo,TxInfoButton:b=uo}=r?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",c),children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:getChainName(setChainId(o.chainId)),children:n??jsx(Web3Icon,{chainId:setChainId(o.chainId)})}),jsxs("div",{className:"novatx:flex-1",children:[jsx(u,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsx(u,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxs("div",{children:[jsx(m,{adapter:i,tx:o,variant:"toast"}),jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsx(f,{tx:o}),e?jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx(T,{onClick:g,children:s.speedUp}),jsx(w,{onClick:x,children:s.cancel})]}):t&&!!l&&jsx(b,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Wt({adapter:t,onClose:o,onOpenAllTransactions:n,className:c,customization:r,transactionsPool:l,executeTxAction:i,initialTx:s,connectedWalletAddress:p}){let a=useMemo(()=>s?.lastTxKey?l[s.lastTxKey]:void 0,[l,s]),e=a??s,x=s?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}=useMemo(()=>{let M=a?.status,Rt=s?.isInitializing??false,Kt=a?.pending??false;return {isProcessing:Rt||Kt,isSucceed:M===TransactionStatus.Success,isFailed:a?.isError||!!s?.errorMessage,isReplaced:M===TransactionStatus.Replaced}},[a,s]),T=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),w=!!(m&&e&&s?.actionFunction&&i),b=!!(T?.speedUpTxAction&&T?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),O=()=>{if(!w||!T?.retryTxAction)return;let M={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:s?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};T.retryTxAction({tx:M,txKey:a?.txKey??"",onClose:o,executeTxAction:i});},N=()=>{b&&a&&T.cancelTxAction(a);},at=()=>{b&&a&&T.speedUpTxAction(a);},et=r?.components?.Header,nt=r?.components?.Footer,rt=r?.components?.StatusVisual,st=r?.components?.ProgressIndicator,it=r?.components?.InfoBlock,ct=r?.components?.ErrorBlock;return e?jsx(Dialog,{open:x,onOpenChange:M=>!M&&o(a?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",r?.modalProps?.className),...r?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",c),children:[et?jsx(et,{onClose:()=>o(a?.txKey),title:jsx(gt,{tx:e})}):jsx(wo,{onClose:()=>o(a?.txKey),title:jsx(gt,{tx:e})}),jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[rt?jsx(rt,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsx(wt,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),st?jsx(st,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsx(Ct,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),it?jsx(it,{tx:e,adapter:t}):jsx(bt,{tx:e,adapter:t}),ct?jsx(ct,{error:a?.errorMessage||s?.errorMessage}):jsx(yt,{error:a?.errorMessage||s?.errorMessage})]}),nt?jsx(nt,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:b,onRetry:w?O:void 0,onSpeedUp:b?at:void 0,onCancel:b?N:void 0,connectedWalletAddress:p}):jsx(ho,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:b,onRetry:w?O:void 0,onSpeedUp:b?at:void 0,onCancel:b?N:void 0,connectedWalletAddress:p})]})})}):null}function gt({tx:t}){return jsx(S,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var wo=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
1
|
+
import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,XMarkIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {useCopyToClipboard,cn,textCenterEllipsis,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon}from'@tuwaio/nova-core';import {createContext,useContext,useMemo,useState,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import'react-toastify';import {Web3Icon}from'@bgd-labs/react-web3-icons';import {getChainName}from'@bgd-labs/react-web3-icons/dist/utils';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import kt from'dayjs';import ta from'dayjs/plugin/relativeTime';var J={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var Ut=createContext(J);var v=()=>useContext(Ut);({[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"});function D({label:t,hash:o,explorerUrl:n,variant:c="default",className:r}){let{isCopied:l,copy:i}=useCopyToClipboard(),{actions:s,txError:p}=v(),a=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":c==="default","novatx:text-xs":c==="compact"},r),e=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":c==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":c==="compact"}),x=jsx("span",{className:"novatx:font-mono",children:textCenterEllipsis(o,5,5)});return jsxs("div",{className:a,children:[t&&jsxs("span",{className:e,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:s.viewOnExplorer,"aria-label":s.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>i(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:s.copy,"aria-label":l?p.copied:s.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 xt={[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 S({txStatus:t,source:o,fallback:n,variant:c,className:r,applyColor:l=false}){let i,s="";if(typeof o=="string")i=o;else if(Array.isArray(o)){let e=xt[t||"default"]??xt.default;i=o[e.index],l&&(s=e.colorClass);}else i=n;return i?jsx("div",{className:cn(c==="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)]",s,r),children:i}):null}function Ft({closeToast:t}){let{actions:o}=v();return jsx("button",{type:"button",onClick:t,"aria-label":o.close,title:o.close,className:cn("novatx:absolute novatx:top-2 novatx:right-2 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)]"),children:jsx(XMarkIcon,{className:"novatx:h-5 novatx:w-5"})})}function L({tx:t,adapter:o,variant:n="toast",className:c,renderHashLink:r,confirmations:l}){let{hashLabels:i,statuses:s}=v(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=f=>r?r(f):jsx(D,{...f}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=i[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,u=(()=>{let f=t.hash,T=t.replacedTxHash;return !f&&!T?null:T?jsxs(Fragment,{children:[f&&a({label:i.original,hash:f,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:i.replaced,hash:T,explorerUrl:p.getExplorerTxUrl(t)})]}):f&&typeof p.getExplorerTxUrl<"u"&&a({label:i.default,hash:f,explorerUrl:p.getExplorerTxUrl(t)})})(),m=x&&x!==i.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(e,c),children:[m&&g,u,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",l]})]})}var so=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 F({tx:t,className:o}){let{statuses:n}=v(),c=useMemo(()=>so(n),[n]),r="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,i=l?c[l]:null;if(!i)return jsx("div",{className:cn(r,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:s,Icon:p,badgeClasses:a,iconClasses:e}=i;return jsxs("div",{className:cn(r,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),s]})}var vo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),uo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),mo=({onClick:t,children:o})=>jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function Wt({openTxInfoModal:t,tx:o,icon:n,className:c,customization:r,connectedWalletAddress:l,adapter:i}){let{actions:s,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:i}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["phantom","metamask"].includes(o.walletType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:u=S,TransactionKey:m=L,StatusBadge:f=F,SpeedUpButton:T=vo,CancelButton:w=uo,TxInfoButton:k=mo}=r?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",c),children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:getChainName(setChainId(o.chainId)),children:n??jsx(Web3Icon,{chainId:setChainId(o.chainId)})}),jsxs("div",{className:"novatx:flex-1",children:[jsx(u,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsx(u,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxs("div",{children:[jsx(m,{adapter:i,tx:o,variant:"toast"}),jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsx(f,{tx:o}),e?jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx(T,{onClick:g,children:s.speedUp}),jsx(w,{onClick:x,children:s.cancel})]}):t&&!!l&&jsx(k,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function zt({adapter:t,onClose:o,onOpenAllTransactions:n,className:c,customization:r,transactionsPool:l,executeTxAction:i,initialTx:s,connectedWalletAddress:p}){let a=useMemo(()=>s?.lastTxKey?l[s.lastTxKey]:void 0,[l,s]),e=a??s,x=s?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}=useMemo(()=>{let M=a?.status,Kt=s?.isInitializing??false,Dt=a?.pending??false;return {isProcessing:Kt||Dt,isSucceed:M===TransactionStatus.Success,isFailed:a?.isError||!!s?.errorMessage,isReplaced:M===TransactionStatus.Replaced}},[a,s]),T=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),w=!!(m&&e&&s?.actionFunction&&i),k=!!(T?.speedUpTxAction&&T?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),O=()=>{if(!w||!T?.retryTxAction)return;let M={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:s?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};T.retryTxAction({tx:M,txKey:a?.txKey??"",onClose:o,executeTxAction:i});},b=k&&a&&["phantom","metamask"].includes(a?.walletType.split(":")[1]),at=()=>{b&&T.cancelTxAction(a);},et=()=>{b&&T.speedUpTxAction(a);},nt=r?.components?.Header,rt=r?.components?.Footer,st=r?.components?.StatusVisual,it=r?.components?.ProgressIndicator,ct=r?.components?.InfoBlock,lt=r?.components?.ErrorBlock;return e?jsx(Dialog,{open:x,onOpenChange:M=>!M&&o(a?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",r?.modalProps?.className),...r?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",c),children:[nt?jsx(nt,{onClose:()=>o(a?.txKey),title:jsx(yt,{tx:e})}):jsx(ho,{onClose:()=>o(a?.txKey),title:jsx(yt,{tx:e})}),jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[st?jsx(st,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsx(ht,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),it?jsx(it,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsx(wt,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),ct?jsx(ct,{tx:e,adapter:t}):jsx(Ct,{tx:e,adapter:t}),lt?jsx(lt,{error:a?.errorMessage||s?.errorMessage}):jsx(bt,{error:a?.errorMessage||s?.errorMessage})]}),rt?jsx(rt,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?O:void 0,onSpeedUp:b?et:void 0,onCancel:b?at:void 0,connectedWalletAddress:p}):jsx(Po,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?O:void 0,onSpeedUp:b?et:void 0,onCancel:b?at:void 0,connectedWalletAddress:p})]})})}):null}function yt({tx:t}){return jsx(S,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var ho=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
2
|
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},
|
|
3
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},Po=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:c,onSpeedUp:r,onCancel:l,canReplace:i,isFailed:s,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v(),x=()=>s&&c?jsx("button",{type:"button",onClick:c,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
4
|
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
5
|
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
6
|
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:a.retry}):!n&&!i&&p?jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-md
|
|
@@ -10,7 +10,7 @@ import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,XMarkIcon,Arro
|
|
|
10
10
|
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
11
|
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx(x,{}),jsx("button",{type:"button",onClick:t,disabled:n&&!i,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
12
|
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
-
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!i?a.processing:a.close})]})]})};function
|
|
13
|
+
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!i?a.processing:a.close})]})]})};function bt({error:t,className:o}){let{isCopied:n,copy:c}=useCopyToClipboard(),{actions:r,txError:l}=v();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsx(ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>c(t),title:n?l.copied:r.copy,"aria-label":n?l.copied:`${r.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Eo({label:t,value:o}){return jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function Ct({tx:t,adapter:o,className:n,customization:c}){let{txInfo:r,statuses:l,hashLabels:i}=v(),s=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!s)return null;let{InfoRow:p=Eo}=c?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===OrbitAdapter.SOLANA,x=e?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsx(p,{label:r.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(Web3Icon,{chainId:setChainId(a)})}),jsx("span",{children:getChainName(setChainId(a))})]})}),t.localTimestamp&&jsx(p,{label:r.started,value:kt.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxs(Fragment,{children:[x?.slot&&jsx(p,{label:r.slot,value:jsx(D,{hash:x.slot.toString(),explorerUrl:s?.getExplorerUrl?`${s?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsx(p,{label:i.recentBlockhash,value:jsx(D,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsx(L,{tx:t,adapter:o,variant:"history",renderHashLink:c?.components?.transactionKey})})]})}var Vo={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 _o({status:t,label:o,isFirst:n=false}){let c=Vo[t],r=()=>{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",c.pulse)});default:return null}};return jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",c.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",c.border,c.fill),children:r()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function wt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c,className:r,StepComponent:l=_o}){let{trackingModal:i,statuses:s}=v(),p=useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||c)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(c)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?i.progressIndicator.created:x===2?i.progressIndicator.processing:n?s.failed:c?s.replaced:i.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,c,i,s]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",r),children:p.map((a,e)=>jsx(l,{...a},e))})}var qo={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 ht({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c}){let r=o&&"succeed"||n&&"failed"||c&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:i}=qo[r];return jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",i)})})}kt.extend(ta);var oa=({chainId:t})=>jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsx(Web3Icon,{chainId:setChainId(t)})}),aa=({timestamp:t})=>jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?kt.unix(t).fromNow():"..."});function St({tx:t,adapter:o,className:n,customization:c}){let{Icon:r=oa,Title:l=S,Description:i=S,Timestamp:s=aa,StatusBadge:p=F,TransactionKey:a=L}=c?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsx(r,{chainId:t.chainId})}),jsxs("div",{children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsx(s,{timestamp:t.localTimestamp}),jsx(i,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsx(p,{tx:t})]}),jsx(a,{tx:t,adapter:o,variant:"history"})]})}function ra({title:t,message:o,className:n}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function At({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:c,customization:r}){let{transactionsModal:l}=v(),i=useMemo(()=>o?selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:s=ra,HistoryItem:p=St}=r?.components??{},a=()=>o?i.length>0?jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",r?.classNames?.listWrapper),children:i.map(e=>jsx(p,{tx:e,adapter:t},e.txKey))}):jsx(s,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsx(s,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",c),children:[r?.title&&jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:r?.title}),a()]})}var da=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
14
|
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function
|
|
15
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function Vt({isOpen:t,setIsOpen:o,customization:n,adapter:c,connectedWalletAddress:r,transactionsPool:l}){let{transactionsModal:i}=v(),s=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&s(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:s}):jsx(da,{closeModal:s,title:i.history.title}),a?jsx(a,{adapter:c,transactionsPool:l,connectedWalletAddress:r}):jsx(At,{adapter:c,transactionsPool:l,connectedWalletAddress:r})]})})})}var Ta=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 Ur({children:t,action:o,getLastTxKey:n,transactionsPool:c,walletAddress:r,loadingContent:l,succeedContent:i,failedContent:s,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[u,m]=useState("idle"),[f,T]=useState(void 0),w=useMemo(()=>Ta(g),[g]);useEffect(()=>{m("idle"),T(void 0);},[r]),useEffect(()=>{if(!f)return;let b=c[f];if(b)switch(b.status){case TransactionStatus.Success:m("succeed");break;case TransactionStatus.Replaced:m("replaced");break;case TransactionStatus.Failed:m("failed");break}},[c,f,r]),useEffect(()=>{if(["succeed","failed","replaced"].includes(u)){let b=setTimeout(()=>{m("idle"),T(void 0);},a);return ()=>clearTimeout(b)}},[u,a]);let k=async()=>{m("loading");try{await o(),T(n());}catch(b){console.error("Transaction initiation failed:",b),m("failed");}},O=()=>{switch(u){case "loading":return l??w.loading;case "succeed":return i??w.succeed;case "failed":return s??w.failed;case "replaced":return p??w.replaced;default:return t}};return jsx("button",{...x,disabled:u!=="idle"||x.disabled,onClick:k,className:cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":u==="idle","novatx:bg-gray-400 novatx:text-white":u==="loading","novatx:bg-gray-500 novatx:text-white":u==="replaced","novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":u==="succeed","novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]":u==="failed"},e),children:O()})}export{D as HashLink,S as StatusAwareText,Ft as ToastCloseButton,Wt as ToastTransaction,zt as TrackingTxModal,St as TransactionHistoryItem,L as TransactionKey,F as TransactionStatusBadge,At as TransactionsHistory,Vt as TransactionsInfoModal,Ur as TxActionButton,bt as TxErrorBlock,Ct as TxInfoBlock,wt as TxProgressIndicator,ht as TxStatusVisual,J as defaultLabels};//# sourceMappingURL=index.js.map
|
|
16
16
|
//# sourceMappingURL=index.js.map
|