@tuwaio/nova-transactions 1.0.0-fix-optimization-alpha.2.3dfb456 → 1.0.0-fix-optimization-alpha.3.6c41281
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/chunk-KER4647F.cjs +15 -0
- package/dist/chunk-NIL47Y5T.js +15 -0
- package/dist/index.cjs +1 -15
- package/dist/index.js +1 -15
- package/dist/providers/index.cjs +1 -15
- package/dist/providers/index.js +1 -15
- package/package.json +6 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime'),novaCore=require('@tuwaio/nova-core'),pulsarCore=require('@tuwaio/pulsar-core'),reactToastify=require('react-toastify'),solid=require('@heroicons/react/24/solid'),reactWeb3Icons=require('@bgd-labs/react-web3-icons'),utils=require('@bgd-labs/react-web3-icons/dist/utils'),orbitCore=require('@tuwaio/orbit-core'),Ht=require('dayjs'),ea=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ht__default=/*#__PURE__*/_interopDefault(Ht);var ea__default=/*#__PURE__*/_interopDefault(ea);var V={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var dt=react.createContext(V),vt=({labels:t,children:o})=>jsxRuntime.jsx(dt.Provider,{value:t,children:o}),v=()=>react.useContext(dt);function F({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=novaCore.useCopyToClipboard(),{actions:i,txError:p}=v(),a=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=novaCore.cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsxRuntime.jsx("span",{className:"novatx:font-mono",children:novaCore.textCenterEllipsis(o,5,5)});return jsxRuntime.jsxs("div",{className:a,children:[t&&jsxRuntime.jsxs("span",{className:e,children:[t,":"]}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxRuntime.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsxRuntime.jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var mt={[pulsarCore.TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[pulsarCore.TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[pulsarCore.TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function M({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=mt[t||"default"]??mt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsxRuntime.jsx("div",{className:novaCore.cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function O({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=T=>s?s(T):jsxRuntime.jsx(F,{...T}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,f=(()=>{let T=t.hash,m=t.replacedTxHash;return !T&&!m?null:m?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T&&a({label:c.original,hash:T,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:m,explorerUrl:p.getExplorerTxUrl(t)})]}):T&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:T,explorerUrl:p.getExplorerTxUrl(t)})})(),u=x&&x!==c.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(e,r),children:[u&&g,f,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var co=t=>({Pending:{label:t.pending,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[pulsarCore.TransactionStatus.Success]:{label:t.success,Icon:solid.CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[pulsarCore.TransactionStatus.Failed]:{label:t.failed,Icon:solid.XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[pulsarCore.TransactionStatus.Replaced]:{label:t.replaced,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function J({tx:t,className:o}){let{statuses:n}=v(),r=react.useMemo(()=>co(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsxRuntime.jsx("div",{className:novaCore.cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxRuntime.jsxs("div",{className:novaCore.cn(s,a,o),children:[jsxRuntime.jsx(p,{className:novaCore.cn("novatx:h-4 novatx:w-4",e)}),i]})}var mo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),fo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),To=({onClick:t,children:o})=>jsxRuntime.jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function bt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=orbitCore.selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:f=M,TransactionKey:u=O,StatusBadge:T=J,SpeedUpButton:m=mo,CancelButton:h=fo,TxInfoButton:w=To}=s?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:utils.getChainName(orbitCore.setChainId(o.chainId)),children:n??jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(o.chainId)})}),jsxRuntime.jsxs("div",{className:"novatx:flex-1",children:[jsxRuntime.jsx(f,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsxRuntime.jsx(f,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(u,{adapter:c,tx:o,variant:"toast"}),jsxRuntime.jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsx(T,{tx:o}),e?jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx(m,{onClick:g,children:i.speedUp}),jsxRuntime.jsx(h,{onClick:x,children:i.cancel})]}):t&&!!l&&jsxRuntime.jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Pt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=react.useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}=react.useMemo(()=>{let K=a?.status,Vt=i?.isInitializing??false,_t=a?.pending??false;return {isProcessing:Vt||_t,isSucceed:K===pulsarCore.TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:K===pulsarCore.TransactionStatus.Replaced}},[a,i]),m=react.useMemo(()=>e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),h=!!(u&&e&&i?.actionFunction&&c),w=!!(m?.speedUpTxAction&&m?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),L=()=>{if(!h||!m?.retryTxAction)return;let K={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};m.retryTxAction({tx:K,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},y=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),b=()=>{y&&m.cancelTxAction(a);},N=()=>{y&&m.speedUpTxAction(a);},S=s?.components?.Header,z=s?.components?.Footer,ct=s?.components?.StatusVisual,lt=s?.components?.ProgressIndicator,pt=s?.components?.InfoBlock,xt=s?.components?.ErrorBlock;return e?jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:K=>!K&&o(a?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[S?jsxRuntime.jsx(S,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(ht,{tx:e})}):jsxRuntime.jsx(No,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(ht,{tx:e})}),jsxRuntime.jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[ct?jsxRuntime.jsx(ct,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsxRuntime.jsx(St,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),lt?jsxRuntime.jsx(lt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsxRuntime.jsx(kt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),pt?jsxRuntime.jsx(pt,{tx:e,adapter:t}):jsxRuntime.jsx(It,{tx:e,adapter:t}),xt?jsxRuntime.jsx(xt,{error:a?.errorMessage||i?.errorMessage}):jsxRuntime.jsx(Nt,{error:a?.errorMessage||i?.errorMessage})]}),z?jsxRuntime.jsx(z,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(ko,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p})]})})}):null}function ht({tx:t}){return jsxRuntime.jsx(M,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var No=({onClose:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
+
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},Io=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsxRuntime.jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
+
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
+
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
+
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
+
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
+
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},ko=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxRuntime.jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
+
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
+
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
+
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx(Io,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
+
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
+
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function Nt({error:t,className:o}){let{isCopied:n,copy:r}=novaCore.useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxRuntime.jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsxRuntime.jsx("span",{children:l.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsxRuntime.jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsxRuntime.jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Fo({label:t,value:o}){return jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsxRuntime.jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function It({tx:t,adapter:o,className:n,customization:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Fo}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===orbitCore.OrbitAdapter.SOLANA,x=e?t:void 0;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsxRuntime.jsx(p,{label:s.network,value:jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsxRuntime.jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(a)})}),jsxRuntime.jsx("span",{children:utils.getChainName(orbitCore.setChainId(a))})]})}),t.localTimestamp&&jsxRuntime.jsx(p,{label:s.started,value:Ht__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x?.slot&&jsxRuntime.jsx(p,{label:s.slot,value:jsxRuntime.jsx(F,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsxRuntime.jsx(p,{label:c.recentBlockhash,value:jsxRuntime.jsx(F,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsxRuntime.jsx(O,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Xo={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Go({status:t,label:o,isFirst:n=false}){let r=Xo[t],s=()=>{switch(t){case "completed":return jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsxRuntime.jsx("div",{className:novaCore.cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function kt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Go}){let{trackingModal:c,statuses:i}=v(),p=react.useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsxRuntime.jsx(l,{...a},e))})}var jo={succeed:{Icon:solid.CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:solid.ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:solid.ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:solid.ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:solid.ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function St({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=jo[s];return jsxRuntime.jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsxRuntime.jsx(l,{className:novaCore.cn("novatx:h-16 novatx:w-16",c)})})}Ht__default.default.extend(ea__default.default);var na=({chainId:t})=>jsxRuntime.jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(t)})}),ra=({timestamp:t})=>jsxRuntime.jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?Ht__default.default.unix(t).fromNow():"..."});function Rt({tx:t,adapter:o,className:n,customization:r}){let{Icon:s=na,Title:l=M,Description:c=M,Timestamp:i=ra,StatusBadge:p=J,TransactionKey:a=O}=r?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsxRuntime.jsx(s,{chainId:t.chainId})}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsxRuntime.jsx(i,{timestamp:t.localTimestamp}),jsxRuntime.jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsxRuntime.jsx(p,{tx:t})]}),jsxRuntime.jsx(a,{tx:t,adapter:o,variant:"history"})]})}function ca({title:t,message:o,className:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsxRuntime.jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsxRuntime.jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function Lt({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:r,customization:s}){let{transactionsModal:l}=v(),c=react.useMemo(()=>o?pulsarCore.selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=ca,HistoryItem:p=Rt}=s?.components??{},a=()=>o?c.length>0?jsxRuntime.jsx("div",{className:novaCore.cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsxRuntime.jsx(p,{tx:e,adapter:t},e.txKey))}):jsxRuntime.jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsxRuntime.jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsxRuntime.jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ma=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
+
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Ot({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsxRuntime.jsx(p,{closeModal:i}):jsxRuntime.jsx(ma,{closeModal:i,title:c.history.title}),a?jsxRuntime.jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsxRuntime.jsx(Lt,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var ba=t=>({replaced:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.replaced})]}),loading:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsxRuntime.jsx("span",{children:t.loading})]}),succeed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.succeed})]}),failed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.failed})]})});function pr({children:t,action:o,getLastTxKey:n,transactionsPool:r,walletAddress:s,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[f,u]=react.useState("idle"),[T,m]=react.useState(void 0),h=react.useMemo(()=>ba(g),[g]);react.useEffect(()=>{u("idle"),m(void 0);},[s]),react.useEffect(()=>{if(!T)return;let y=r[T];if(y)switch(y.status){case pulsarCore.TransactionStatus.Success:u("succeed");break;case pulsarCore.TransactionStatus.Replaced:u("replaced");break;case pulsarCore.TransactionStatus.Failed:u("failed");break}},[r,T,s]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(f)){let y=setTimeout(()=>{u("idle"),m(void 0);},a);return ()=>clearTimeout(y)}},[f,a]);let w=async()=>{u("loading");try{await o(),m(n());}catch(y){console.error("Transaction initiation failed:",y),u("failed");}},L=()=>{switch(f){case "loading":return l??h.loading;case "succeed":return c??h.succeed;case "failed":return i??h.failed;case "replaced":return p??h.replaced;default:return t}};return jsxRuntime.jsx("button",{...x,disabled:f!=="idle"||x.disabled,onClick:w,className:novaCore.cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":f==="idle","novatx:bg-gray-400 novatx:text-white":f==="loading","novatx:bg-gray-500 novatx:text-white":f==="replaced","novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":f==="succeed","novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]":f==="failed"},e),children:L()})}var Sa={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Wr({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,g]=react.useState(false),f=react.useRef(r),u="nova-transactions",T=novaCore.useMediaQuery("(max-width: 767px)"),m=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),h=react.useMemo(()=>novaCore.deepMerge(V,i||{}),[i]),w=react.useCallback(b=>{if(!m.toasts)return;let N=b.pending?"info":Sa[b.status]??"info",S=z=>jsxRuntime.jsx(bt,{...z,tx:b,openTxInfoModal:m.transactionsModal?()=>g(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});reactToastify.toast.isActive(b.txKey)?reactToastify.toast.update(b.txKey,{render:S,type:N,containerId:u}):reactToastify.toast(S,{toastId:b.txKey,type:N,closeOnClick:false,containerId:u});},[r,m,a?.toast,t,o]);react.useEffect(()=>{let b=f.current;Object.values(r).forEach(N=>{let S=b[N.txKey];if(!S&&N.pending){w(N);return}S&&JSON.stringify(S)!==JSON.stringify(N)&&w(N);}),f.current=r;},[r,w]),react.useEffect(()=>{Object.values(r).forEach(b=>{reactToastify.toast.isActive(b.txKey,u)&&w(b);});},[o,w,r]);let L=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,y=m.toasts&&(!T||!L&&!x);return jsxRuntime.jsxs(vt,{labels:h,children:[y&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:novaCore.ToastCloseButton,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),m.transactionsModal&&jsxRuntime.jsx(Ot,{isOpen:x,setIsOpen:g,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),m.trackingTxModal&&jsxRuntime.jsx(Pt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>g(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}exports.a=V;exports.b=vt;exports.c=v;exports.d=Wr;exports.e=F;exports.f=M;exports.g=O;exports.h=J;exports.i=bt;exports.j=Pt;exports.k=Nt;exports.l=It;exports.m=kt;exports.n=St;exports.o=Rt;exports.p=Lt;exports.q=Ot;exports.r=pr;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {Web3Icon}from'@bgd-labs/react-web3-icons';import {getChainName}from'@bgd-labs/react-web3-icons/dist/utils';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Ht from'dayjs';import ea from'dayjs/plugin/relativeTime';var V={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var dt=createContext(V),vt=({labels:t,children:o})=>jsx(dt.Provider,{value:t,children:o}),v=()=>useContext(dt);function F({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=useCopyToClipboard(),{actions:i,txError:p}=v(),a=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsx("span",{className:"novatx:font-mono",children:textCenterEllipsis(o,5,5)});return jsxs("div",{className:a,children:[t&&jsxs("span",{className:e,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var mt={[TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function M({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=mt[t||"default"]??mt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsx("div",{className:cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function O({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=T=>s?s(T):jsx(F,{...T}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,f=(()=>{let T=t.hash,m=t.replacedTxHash;return !T&&!m?null:m?jsxs(Fragment,{children:[T&&a({label:c.original,hash:T,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:m,explorerUrl:p.getExplorerTxUrl(t)})]}):T&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:T,explorerUrl:p.getExplorerTxUrl(t)})})(),u=x&&x!==c.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(e,r),children:[u&&g,f,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var co=t=>({Pending:{label:t.pending,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[TransactionStatus.Success]:{label:t.success,Icon:CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[TransactionStatus.Failed]:{label:t.failed,Icon:XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[TransactionStatus.Replaced]:{label:t.replaced,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function J({tx:t,className:o}){let{statuses:n}=v(),r=useMemo(()=>co(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsx("div",{className:cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxs("div",{className:cn(s,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),i]})}var mo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),fo=({onClick:t,children:o})=>jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),To=({onClick:t,children:o})=>jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function bt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:f=M,TransactionKey:u=O,StatusBadge:T=J,SpeedUpButton:m=mo,CancelButton:h=fo,TxInfoButton:w=To}=s?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:getChainName(setChainId(o.chainId)),children:n??jsx(Web3Icon,{chainId:setChainId(o.chainId)})}),jsxs("div",{className:"novatx:flex-1",children:[jsx(f,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsx(f,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxs("div",{children:[jsx(u,{adapter:c,tx:o,variant:"toast"}),jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsx(T,{tx:o}),e?jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx(m,{onClick:g,children:i.speedUp}),jsx(h,{onClick:x,children:i.cancel})]}):t&&!!l&&jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Pt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}=useMemo(()=>{let K=a?.status,Vt=i?.isInitializing??false,_t=a?.pending??false;return {isProcessing:Vt||_t,isSucceed:K===TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:K===TransactionStatus.Replaced}},[a,i]),m=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),h=!!(u&&e&&i?.actionFunction&&c),w=!!(m?.speedUpTxAction&&m?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),L=()=>{if(!h||!m?.retryTxAction)return;let K={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};m.retryTxAction({tx:K,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},y=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),b=()=>{y&&m.cancelTxAction(a);},N=()=>{y&&m.speedUpTxAction(a);},S=s?.components?.Header,z=s?.components?.Footer,ct=s?.components?.StatusVisual,lt=s?.components?.ProgressIndicator,pt=s?.components?.InfoBlock,xt=s?.components?.ErrorBlock;return e?jsx(Dialog,{open:x,onOpenChange:K=>!K&&o(a?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[S?jsx(S,{onClose:()=>o(a?.txKey),title:jsx(ht,{tx:e})}):jsx(No,{onClose:()=>o(a?.txKey),title:jsx(ht,{tx:e})}),jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[ct?jsx(ct,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsx(St,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),lt?jsx(lt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}):jsx(kt,{isProcessing:g,isSucceed:f,isFailed:u,isReplaced:T}),pt?jsx(pt,{tx:e,adapter:t}):jsx(It,{tx:e,adapter:t}),xt?jsx(xt,{error:a?.errorMessage||i?.errorMessage}):jsx(Nt,{error:a?.errorMessage||i?.errorMessage})]}),z?jsx(z,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p}):jsx(ko,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:u,canReplace:w,onRetry:h?L:void 0,onSpeedUp:y?N:void 0,onCancel:y?b:void 0,connectedWalletAddress:p})]})})}):null}function ht({tx:t}){return jsx(M,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var No=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
+
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},Io=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
+
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
+
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
+
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
+
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
+
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},ko=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
+
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
+
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
+
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx(Io,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
+
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
+
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function Nt({error:t,className:o}){let{isCopied:n,copy:r}=useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsx(ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Fo({label:t,value:o}){return jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function It({tx:t,adapter:o,className:n,customization:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Fo}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===OrbitAdapter.SOLANA,x=e?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsx(p,{label:s.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(Web3Icon,{chainId:setChainId(a)})}),jsx("span",{children:getChainName(setChainId(a))})]})}),t.localTimestamp&&jsx(p,{label:s.started,value:Ht.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxs(Fragment,{children:[x?.slot&&jsx(p,{label:s.slot,value:jsx(F,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsx(p,{label:c.recentBlockhash,value:jsx(F,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsx(O,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Xo={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Go({status:t,label:o,isFirst:n=false}){let r=Xo[t],s=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function kt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Go}){let{trackingModal:c,statuses:i}=v(),p=useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsx(l,{...a},e))})}var jo={succeed:{Icon:CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function St({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=jo[s];return jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",c)})})}Ht.extend(ea);var na=({chainId:t})=>jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsx(Web3Icon,{chainId:setChainId(t)})}),ra=({timestamp:t})=>jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?Ht.unix(t).fromNow():"..."});function Rt({tx:t,adapter:o,className:n,customization:r}){let{Icon:s=na,Title:l=M,Description:c=M,Timestamp:i=ra,StatusBadge:p=J,TransactionKey:a=O}=r?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsx(s,{chainId:t.chainId})}),jsxs("div",{children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsx(i,{timestamp:t.localTimestamp}),jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsx(p,{tx:t})]}),jsx(a,{tx:t,adapter:o,variant:"history"})]})}function ca({title:t,message:o,className:n}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function Lt({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:r,customization:s}){let{transactionsModal:l}=v(),c=useMemo(()=>o?selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=ca,HistoryItem:p=Rt}=s?.components??{},a=()=>o?c.length>0?jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsx(p,{tx:e,adapter:t},e.txKey))}):jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ma=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
+
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
+
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function Ot({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:i}):jsx(ma,{closeModal:i,title:c.history.title}),a?jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsx(Lt,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var ba=t=>({replaced:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.replaced})]}),loading:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsx("span",{children:t.loading})]}),succeed:jsxs(Fragment,{children:[jsx(CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.succeed})]}),failed:jsxs(Fragment,{children:[jsx(ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.failed})]})});function pr({children:t,action:o,getLastTxKey:n,transactionsPool:r,walletAddress:s,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[f,u]=useState("idle"),[T,m]=useState(void 0),h=useMemo(()=>ba(g),[g]);useEffect(()=>{u("idle"),m(void 0);},[s]),useEffect(()=>{if(!T)return;let y=r[T];if(y)switch(y.status){case TransactionStatus.Success:u("succeed");break;case TransactionStatus.Replaced:u("replaced");break;case TransactionStatus.Failed:u("failed");break}},[r,T,s]),useEffect(()=>{if(["succeed","failed","replaced"].includes(f)){let y=setTimeout(()=>{u("idle"),m(void 0);},a);return ()=>clearTimeout(y)}},[f,a]);let w=async()=>{u("loading");try{await o(),m(n());}catch(y){console.error("Transaction initiation failed:",y),u("failed");}},L=()=>{switch(f){case "loading":return l??h.loading;case "succeed":return c??h.succeed;case "failed":return i??h.failed;case "replaced":return p??h.replaced;default:return t}};return jsx("button",{...x,disabled:f!=="idle"||x.disabled,onClick:w,className:cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":f==="idle","novatx:bg-gray-400 novatx:text-white":f==="loading","novatx:bg-gray-500 novatx:text-white":f==="replaced","novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]":f==="succeed","novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]":f==="failed"},e),children:L()})}var Sa={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Wr({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,g]=useState(false),f=useRef(r),u="nova-transactions",T=useMediaQuery("(max-width: 767px)"),m=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),h=useMemo(()=>deepMerge(V,i||{}),[i]),w=useCallback(b=>{if(!m.toasts)return;let N=b.pending?"info":Sa[b.status]??"info",S=z=>jsx(bt,{...z,tx:b,openTxInfoModal:m.transactionsModal?()=>g(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});toast.isActive(b.txKey)?toast.update(b.txKey,{render:S,type:N,containerId:u}):toast(S,{toastId:b.txKey,type:N,closeOnClick:false,containerId:u});},[r,m,a?.toast,t,o]);useEffect(()=>{let b=f.current;Object.values(r).forEach(N=>{let S=b[N.txKey];if(!S&&N.pending){w(N);return}S&&JSON.stringify(S)!==JSON.stringify(N)&&w(N);}),f.current=r;},[r,w]),useEffect(()=>{Object.values(r).forEach(b=>{toast.isActive(b.txKey,u)&&w(b);});},[o,w,r]);let L=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,y=m.toasts&&(!T||!L&&!x);return jsxs(vt,{labels:h,children:[y&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:ToastCloseButton,containerId:u,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),m.transactionsModal&&jsx(Ot,{isOpen:x,setIsOpen:g,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),m.trackingTxModal&&jsx(Pt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>g(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}export{V as a,vt as b,v as c,Wr as d,F as e,M as f,O as g,J as h,bt as i,Pt as j,Nt as k,It as l,kt as m,St as n,Rt as o,Lt as p,Ot as q,pr as r};
|
package/dist/index.cjs
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
'use strict';var solid=require('@heroicons/react/24/solid'),novaCore=require('@tuwaio/nova-core'),react=require('react'),jsxRuntime=require('react/jsx-runtime'),pulsarCore=require('@tuwaio/pulsar-core');require('react-toastify');var reactWeb3Icons=require('@bgd-labs/react-web3-icons'),utils=require('@bgd-labs/react-web3-icons/dist/utils'),orbitCore=require('@tuwaio/orbit-core'),It=require('dayjs'),Qo=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var It__default=/*#__PURE__*/_interopDefault(It);var Qo__default=/*#__PURE__*/_interopDefault(Qo);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 Et=react.createContext(J);var v=()=>react.useContext(Et);({[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"});function D({label:t,hash:o,explorerUrl:n,variant:c="default",className:r}){let{isCopied:l,copy:s}=novaCore.useCopyToClipboard(),{actions:i,txError:p}=v(),a=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":c==="default","novatx:text-xs":c==="compact"},r),e=novaCore.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=jsxRuntime.jsx("span",{className:"novatx:font-mono",children:novaCore.textCenterEllipsis(o,5,5)});return jsxRuntime.jsxs("div",{className:a,children:[t&&jsxRuntime.jsxs("span",{className:e,children:[t,":"]}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxRuntime.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsxRuntime.jsx("button",{type:"button",onClick:()=>s(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var xt={[pulsarCore.TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[pulsarCore.TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[pulsarCore.TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function S({txStatus:t,source:o,fallback:n,variant:c,className:r,applyColor:l=false}){let s,i="";if(typeof o=="string")s=o;else if(Array.isArray(o)){let e=xt[t||"default"]??xt.default;s=o[e.index],l&&(i=e.colorClass);}else s=n;return s?jsxRuntime.jsx("div",{className:novaCore.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)]",i,r),children:s}):null}function R({tx:t,adapter:o,variant:n="toast",className:c,renderHashLink:r,confirmations:l}){let{hashLabels:s,statuses:i}=v(),p=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=f=>r?r(f):jsxRuntime.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=s[String(t.tracker)],g=x?a({label:x,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,u=(()=>{let f=t.hash,T=t.replacedTxHash;return !f&&!T?null:T?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[f&&a({label:s.original,hash:f,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:s.replaced,hash:T,explorerUrl:p.getExplorerTxUrl(t)})]}):f&&typeof p.getExplorerTxUrl<"u"&&a({label:s.default,hash:f,explorerUrl:p.getExplorerTxUrl(t)})})(),m=x&&x!==s.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(e,c),children:[m&&g,u,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var ao=t=>({Pending:{label:t.pending,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[pulsarCore.TransactionStatus.Success]:{label:t.success,Icon:solid.CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[pulsarCore.TransactionStatus.Failed]:{label:t.failed,Icon:solid.XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[pulsarCore.TransactionStatus.Replaced]:{label:t.replaced,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function F({tx:t,className:o}){let{statuses:n}=v(),c=react.useMemo(()=>ao(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,s=l?c[l]:null;if(!s)return jsxRuntime.jsx("div",{className:novaCore.cn(r,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=s;return jsxRuntime.jsxs("div",{className:novaCore.cn(r,a,o),children:[jsxRuntime.jsx(p,{className:novaCore.cn("novatx:h-4 novatx:w-4",e)}),i]})}var co=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),lo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),po=({onClick:t,children:o})=>jsxRuntime.jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function Ut({openTxInfoModal:t,tx:o,icon:n,className:c,customization:r,connectedWalletAddress:l,adapter:s}){let{actions:i,toast:p}=v(),a=orbitCore.selectAdapterByKey({adapterKey:o.adapter,adapter:s}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:u=S,TransactionKey:m=R,StatusBadge:f=F,SpeedUpButton:T=co,CancelButton:w=lo,TxInfoButton:k=po}=r?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",c),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:utils.getChainName(orbitCore.setChainId(o.chainId)),children:n??jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(o.chainId)})}),jsxRuntime.jsxs("div",{className:"novatx:flex-1",children:[jsxRuntime.jsx(u,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsxRuntime.jsx(u,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(m,{adapter:s,tx:o,variant:"toast"}),jsxRuntime.jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsx(f,{tx:o}),e?jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx(T,{onClick:g,children:i.speedUp}),jsxRuntime.jsx(w,{onClick:x,children:i.cancel})]}):t&&!!l&&jsxRuntime.jsx(k,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Ft({adapter:t,onClose:o,onOpenAllTransactions:n,className:c,customization:r,transactionsPool:l,executeTxAction:s,initialTx:i,connectedWalletAddress:p}){let a=react.useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}=react.useMemo(()=>{let M=a?.status,Lt=i?.isInitializing??false,Kt=a?.pending??false;return {isProcessing:Lt||Kt,isSucceed:M===pulsarCore.TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:M===pulsarCore.TransactionStatus.Replaced}},[a,i]),T=react.useMemo(()=>e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),w=!!(m&&e&&i?.actionFunction&&s),k=!!(T?.speedUpTxAction&&T?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),E=()=>{if(!w||!T?.retryTxAction)return;let M={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};T.retryTxAction({tx:M,txKey:a?.txKey??"",onClose:o,executeTxAction:s});},b=k&&a&&["metamask"].includes(a?.connectorType.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?jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:M=>!M&&o(a?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",r?.modalProps?.className),...r?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",c),children:[nt?jsxRuntime.jsx(nt,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(gt,{tx:e})}):jsxRuntime.jsx(yo,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(gt,{tx:e})}),jsxRuntime.jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[st?jsxRuntime.jsx(st,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsxRuntime.jsx(wt,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),it?jsxRuntime.jsx(it,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsxRuntime.jsx(Ct,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),ct?jsxRuntime.jsx(ct,{tx:e,adapter:t}):jsxRuntime.jsx(bt,{tx:e,adapter:t}),lt?jsxRuntime.jsx(lt,{error:a?.errorMessage||i?.errorMessage}):jsxRuntime.jsx(yt,{error:a?.errorMessage||i?.errorMessage})]}),rt?jsxRuntime.jsx(rt,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?E:void 0,onSpeedUp:b?et:void 0,onCancel:b?at:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(Co,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?E:void 0,onSpeedUp:b?et:void 0,onCancel:b?at:void 0,connectedWalletAddress:p})]})})}):null}function gt({tx:t}){return jsxRuntime.jsx(S,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var yo=({onClose:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},bo=({isFailed:t,onRetry:o,isProcessing:n,canReplace:c,connectedWalletAddress:r,onOpenAllTransactions:l})=>{let{trackingModal:s}=v();return t&&o?jsxRuntime.jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
-
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
-
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
-
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:s.retry}):!n&&!c&&r?jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
-
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
-
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:s.allTransactions}):null},Co=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:c,onSpeedUp:r,onCancel:l,canReplace:s,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxRuntime.jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
-
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:s&&r&&l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:r,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
-
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
-
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx(bo,{isFailed:i,onRetry:c,isProcessing:n,canReplace:s,connectedWalletAddress:p,onOpenAllTransactions:o}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!s,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
-
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
-
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!s?a.processing:a.close})]})]})};function yt({error:t,className:o}){let{isCopied:n,copy:c}=novaCore.useCopyToClipboard(),{actions:r,txError:l}=v();return t?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxRuntime.jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsxRuntime.jsx("span",{children:l.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>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?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsxRuntime.jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsxRuntime.jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Lo({label:t,value:o}){return jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsxRuntime.jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function bt({tx:t,adapter:o,className:n,customization:c}){let{txInfo:r,statuses:l,hashLabels:s}=v(),i=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Lo}=c?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===orbitCore.OrbitAdapter.SOLANA,x=e?t:void 0;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsxRuntime.jsx(p,{label:r.network,value:jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsxRuntime.jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(a)})}),jsxRuntime.jsx("span",{children:utils.getChainName(orbitCore.setChainId(a))})]})}),t.localTimestamp&&jsxRuntime.jsx(p,{label:r.started,value:It__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x?.slot&&jsxRuntime.jsx(p,{label:r.slot,value:jsxRuntime.jsx(D,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsxRuntime.jsx(p,{label:s.recentBlockhash,value:jsxRuntime.jsx(D,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsxRuntime.jsx(R,{tx:t,adapter:o,variant:"history",renderHashLink:c?.components?.transactionKey})})]})}var Fo={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 Wo({status:t,label:o,isFirst:n=false}){let c=Fo[t],r=()=>{switch(t){case "completed":return jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",c.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",c.line)}),jsxRuntime.jsx("div",{className:novaCore.cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",c.border,c.fill),children:r()}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function Ct({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c,className:r,StepComponent:l=Wo}){let{trackingModal:s,statuses:i}=v(),p=react.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?s.progressIndicator.created:x===2?s.progressIndicator.processing:n?i.failed:c?i.replaced:s.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,s,i]);return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",r),children:p.map((a,e)=>jsxRuntime.jsx(l,{...a},e))})}var Go={succeed:{Icon:solid.CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:solid.ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:solid.ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:solid.ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:solid.ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function wt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c}){let r=o&&"succeed"||n&&"failed"||c&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:s}=Go[r];return jsxRuntime.jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsxRuntime.jsx(l,{className:novaCore.cn("novatx:h-16 novatx:w-16",s)})})}It__default.default.extend(Qo__default.default);var Zo=({chainId:t})=>jsxRuntime.jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(t)})}),jo=({timestamp:t})=>jsxRuntime.jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?It__default.default.unix(t).fromNow():"..."});function kt({tx:t,adapter:o,className:n,customization:c}){let{Icon:r=Zo,Title:l=S,Description:s=S,Timestamp:i=jo,StatusBadge:p=F,TransactionKey:a=R}=c?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsxRuntime.jsx(r,{chainId:t.chainId})}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsxRuntime.jsx(i,{timestamp:t.localTimestamp}),jsxRuntime.jsx(s,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsxRuntime.jsx(p,{tx:t})]}),jsxRuntime.jsx(a,{tx:t,adapter:o,variant:"history"})]})}function aa({title:t,message:o,className:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsxRuntime.jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsxRuntime.jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function St({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:c,customization:r}){let{transactionsModal:l}=v(),s=react.useMemo(()=>o?pulsarCore.selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=aa,HistoryItem:p=kt}=r?.components??{},a=()=>o?s.length>0?jsxRuntime.jsx("div",{className:novaCore.cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",r?.classNames?.listWrapper),children:s.map(e=>jsxRuntime.jsx(p,{tx:e,adapter:t},e.txKey))}):jsxRuntime.jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsxRuntime.jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",c),children:[r?.title&&jsxRuntime.jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:r?.title}),a()]})}var la=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Wt({isOpen:t,setIsOpen:o,customization:n,adapter:c,connectedWalletAddress:r,transactionsPool:l}){let{transactionsModal:s}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsxRuntime.jsx(p,{closeModal:i}):jsxRuntime.jsx(la,{closeModal:i,title:s.history.title}),a?jsxRuntime.jsx(a,{adapter:c,transactionsPool:l,connectedWalletAddress:r}):jsxRuntime.jsx(St,{adapter:c,transactionsPool:l,connectedWalletAddress:r})]})})})}var ua=t=>({replaced:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.replaced})]}),loading:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsxRuntime.jsx("span",{children:t.loading})]}),succeed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.succeed})]}),failed:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(solid.ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsxRuntime.jsx("span",{children:t.failed})]})});function Hr({children:t,action:o,getLastTxKey:n,transactionsPool:c,walletAddress:r,loadingContent:l,succeedContent:s,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[u,m]=react.useState("idle"),[f,T]=react.useState(void 0),w=react.useMemo(()=>ua(g),[g]);react.useEffect(()=>{m("idle"),T(void 0);},[r]),react.useEffect(()=>{if(!f)return;let b=c[f];if(b)switch(b.status){case pulsarCore.TransactionStatus.Success:m("succeed");break;case pulsarCore.TransactionStatus.Replaced:m("replaced");break;case pulsarCore.TransactionStatus.Failed:m("failed");break}},[c,f,r]),react.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");}},E=()=>{switch(u){case "loading":return l??w.loading;case "succeed":return s??w.succeed;case "failed":return i??w.failed;case "replaced":return p??w.replaced;default:return t}};return jsxRuntime.jsx("button",{...x,disabled:u!=="idle"||x.disabled,onClick:k,className:novaCore.cn("novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70",{"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90":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:E()})}exports.HashLink=D;exports.StatusAwareText=S;exports.ToastTransaction=Ut;exports.TrackingTxModal=Ft;exports.TransactionHistoryItem=kt;exports.TransactionKey=R;exports.TransactionStatusBadge=F;exports.TransactionsHistory=St;exports.TransactionsInfoModal=Wt;exports.TxActionButton=Hr;exports.TxErrorBlock=yt;exports.TxInfoBlock=bt;exports.TxProgressIndicator=Ct;exports.TxStatusVisual=wt;exports.defaultLabels=J;
|
|
1
|
+
'use strict';var chunkKER4647F_cjs=require('./chunk-KER4647F.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkKER4647F_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkKER4647F_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkKER4647F_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkKER4647F_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkKER4647F_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkKER4647F_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkKER4647F_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkKER4647F_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkKER4647F_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkKER4647F_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkKER4647F_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkKER4647F_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkKER4647F_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkKER4647F_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkKER4647F_cjs.a}});
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,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 Qo 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 Et=createContext(J);var v=()=>useContext(Et);({[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:s}=useCopyToClipboard(),{actions:i,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:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>s(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var 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 s,i="";if(typeof o=="string")s=o;else if(Array.isArray(o)){let e=xt[t||"default"]??xt.default;s=o[e.index],l&&(i=e.colorClass);}else s=n;return s?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)]",i,r),children:s}):null}function R({tx:t,adapter:o,variant:n="toast",className:c,renderHashLink:r,confirmations:l}){let{hashLabels:s,statuses:i}=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=s[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:s.original,hash:f,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:s.replaced,hash:T,explorerUrl:p.getExplorerTxUrl(t)})]}):f&&typeof p.getExplorerTxUrl<"u"&&a({label:s.default,hash:f,explorerUrl:p.getExplorerTxUrl(t)})})(),m=x&&x!==s.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:[i.confirmationsLabel,": ",l]})]})}var ao=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(()=>ao(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,s=l?c[l]:null;if(!s)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:i,Icon:p,badgeClasses:a,iconClasses:e}=s;return jsxs("div",{className:cn(r,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),i]})}var co=({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}),lo=({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}),po=({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 Ut({openTxInfoModal:t,tx:o,icon:n,className:c,customization:r,connectedWalletAddress:l,adapter:s}){let{actions:i,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:s}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},g=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:u=S,TransactionKey:m=R,StatusBadge:f=F,SpeedUpButton:T=co,CancelButton:w=lo,TxInfoButton:k=po}=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:s,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:i.speedUp}),jsx(w,{onClick:x,children:i.cancel})]}):t&&!!l&&jsx(k,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function Ft({adapter:t,onClose:o,onOpenAllTransactions:n,className:c,customization:r,transactionsPool:l,executeTxAction:s,initialTx:i,connectedWalletAddress:p}){let a=useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}=useMemo(()=>{let M=a?.status,Lt=i?.isInitializing??false,Kt=a?.pending??false;return {isProcessing:Lt||Kt,isSucceed:M===TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:M===TransactionStatus.Replaced}},[a,i]),T=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),w=!!(m&&e&&i?.actionFunction&&s),k=!!(T?.speedUpTxAction&&T?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),E=()=>{if(!w||!T?.retryTxAction)return;let M={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};T.retryTxAction({tx:M,txKey:a?.txKey??"",onClose:o,executeTxAction:s});},b=k&&a&&["metamask"].includes(a?.connectorType.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(gt,{tx:e})}):jsx(yo,{onClose:()=>o(a?.txKey),title:jsx(gt,{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(wt,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),it?jsx(it,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}):jsx(Ct,{isProcessing:g,isSucceed:u,isFailed:m,isReplaced:f}),ct?jsx(ct,{tx:e,adapter:t}):jsx(bt,{tx:e,adapter:t}),lt?jsx(lt,{error:a?.errorMessage||i?.errorMessage}):jsx(yt,{error:a?.errorMessage||i?.errorMessage})]}),rt?jsx(rt,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?E:void 0,onSpeedUp:b?et:void 0,onCancel:b?at:void 0,connectedWalletAddress:p}):jsx(Co,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:g,isFailed:m,canReplace:k,onRetry:w?E:void 0,onSpeedUp:b?et:void 0,onCancel:b?at: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 yo=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},bo=({isFailed:t,onRetry:o,isProcessing:n,canReplace:c,connectedWalletAddress:r,onOpenAllTransactions:l})=>{let{trackingModal:s}=v();return t&&o?jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
-
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
-
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
-
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:s.retry}):!n&&!c&&r?jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
-
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
-
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:s.allTransactions}):null},Co=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:c,onSpeedUp:r,onCancel:l,canReplace:s,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
-
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:s&&r&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:r,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
-
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
-
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx(bo,{isFailed:i,onRetry:c,isProcessing:n,canReplace:s,connectedWalletAddress:p,onOpenAllTransactions:o}),jsx("button",{type:"button",onClick:t,disabled:n&&!s,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
-
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
-
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!s?a.processing:a.close})]})]})};function yt({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 Lo({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 bt({tx:t,adapter:o,className:n,customization:c}){let{txInfo:r,statuses:l,hashLabels:s}=v(),i=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Lo}=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:It.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:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsx(p,{label:s.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(R,{tx:t,adapter:o,variant:"history",renderHashLink:c?.components?.transactionKey})})]})}var Fo={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 Wo({status:t,label:o,isFirst:n=false}){let c=Fo[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 Ct({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c,className:r,StepComponent:l=Wo}){let{trackingModal:s,statuses:i}=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?s.progressIndicator.created:x===2?s.progressIndicator.processing:n?i.failed:c?i.replaced:s.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,s,i]);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 Go={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 wt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:c}){let r=o&&"succeed"||n&&"failed"||c&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:s}=Go[r];return jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",s)})})}It.extend(Qo);var Zo=({chainId:t})=>jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsx(Web3Icon,{chainId:setChainId(t)})}),jo=({timestamp:t})=>jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?It.unix(t).fromNow():"..."});function kt({tx:t,adapter:o,className:n,customization:c}){let{Icon:r=Zo,Title:l=S,Description:s=S,Timestamp:i=jo,StatusBadge:p=F,TransactionKey:a=R}=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(i,{timestamp:t.localTimestamp}),jsx(s,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsx(p,{tx:t})]}),jsx(a,{tx:t,adapter:o,variant:"history"})]})}function aa({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 St({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:c,customization:r}){let{transactionsModal:l}=v(),s=useMemo(()=>o?selectAllTransactionsByActiveWallet(n,o).sort((x,g)=>(g.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=aa,HistoryItem:p=kt}=r?.components??{},a=()=>o?s.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:s.map(e=>jsx(p,{tx:e,adapter:t},e.txKey))}):jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",c),children:[r?.title&&jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:r?.title}),a()]})}var la=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function Wt({isOpen:t,setIsOpen:o,customization:n,adapter:c,connectedWalletAddress:r,transactionsPool:l}){let{transactionsModal:s}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:i}):jsx(la,{closeModal:i,title:s.history.title}),a?jsx(a,{adapter:c,transactionsPool:l,connectedWalletAddress:r}):jsx(St,{adapter:c,transactionsPool:l,connectedWalletAddress:r})]})})})}var ua=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 Hr({children:t,action:o,getLastTxKey:n,transactionsPool:c,walletAddress:r,loadingContent:l,succeedContent:s,failedContent:i,replacedContent:p,resetTimeout:a=2500,className:e,...x}){let{trackedTxButton:g}=v(),[u,m]=useState("idle"),[f,T]=useState(void 0),w=useMemo(()=>ua(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");}},E=()=>{switch(u){case "loading":return l??w.loading;case "succeed":return s??w.succeed;case "failed":return i??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:E()})}export{D as HashLink,S as StatusAwareText,Ut as ToastTransaction,Ft as TrackingTxModal,kt as TransactionHistoryItem,R as TransactionKey,F as TransactionStatusBadge,St as TransactionsHistory,Wt as TransactionsInfoModal,Hr as TxActionButton,yt as TxErrorBlock,bt as TxInfoBlock,Ct as TxProgressIndicator,wt as TxStatusVisual,J as defaultLabels};
|
|
1
|
+
export{e as HashLink,f as StatusAwareText,i as ToastTransaction,j as TrackingTxModal,o as TransactionHistoryItem,g as TransactionKey,h as TransactionStatusBadge,p as TransactionsHistory,q as TransactionsInfoModal,r as TxActionButton,k as TxErrorBlock,l as TxInfoBlock,m as TxProgressIndicator,n as TxStatusVisual,a as defaultLabels}from'./chunk-NIL47Y5T.js';
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime'),novaCore=require('@tuwaio/nova-core'),pulsarCore=require('@tuwaio/pulsar-core'),reactToastify=require('react-toastify'),solid=require('@heroicons/react/24/solid'),reactWeb3Icons=require('@bgd-labs/react-web3-icons'),utils=require('@bgd-labs/react-web3-icons/dist/utils'),orbitCore=require('@tuwaio/orbit-core'),kt=require('dayjs'),qo=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var kt__default=/*#__PURE__*/_interopDefault(kt);var qo__default=/*#__PURE__*/_interopDefault(qo);var z={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 it=react.createContext(z),ct=({labels:t,children:o})=>jsxRuntime.jsx(it.Provider,{value:t,children:o}),v=()=>react.useContext(it);function E({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=novaCore.useCopyToClipboard(),{actions:i,txError:p}=v(),a=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=novaCore.cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsxRuntime.jsx("span",{className:"novatx:font-mono",children:novaCore.textCenterEllipsis(o,5,5)});return jsxRuntime.jsxs("div",{className:a,children:[t&&jsxRuntime.jsxs("span",{className:e,children:[t,":"]}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxRuntime.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsxRuntime.jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var pt={[pulsarCore.TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[pulsarCore.TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[pulsarCore.TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function B({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=pt[t||"default"]??pt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsxRuntime.jsx("div",{className:novaCore.cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function K({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=m=>s?s(m):jsxRuntime.jsx(E,{...m}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],f=x?a({label:x,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:p.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?p?.getExplorerTxUrl(t):void 0}):null,b=(()=>{let m=t.hash,u=t.replacedTxHash;return !m&&!u?null:u?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[m&&a({label:c.original,hash:m,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:u,explorerUrl:p.getExplorerTxUrl(t)})]}):m&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:m,explorerUrl:p.getExplorerTxUrl(t)})})(),T=x&&x!==c.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(e,r),children:[T&&f,b,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var oo=t=>({Pending:{label:t.pending,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[pulsarCore.TransactionStatus.Success]:{label:t.success,Icon:solid.CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[pulsarCore.TransactionStatus.Failed]:{label:t.failed,Icon:solid.XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[pulsarCore.TransactionStatus.Replaced]:{label:t.replaced,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function _({tx:t,className:o}){let{statuses:n}=v(),r=react.useMemo(()=>oo(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsxRuntime.jsx("div",{className:novaCore.cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxRuntime.jsxs("div",{className:novaCore.cn(s,a,o),children:[jsxRuntime.jsx(p,{className:novaCore.cn("novatx:h-4 novatx:w-4",e)}),i]})}var io=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),co=({onClick:t,children:o})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:"novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",children:o}),lo=({onClick:t,children:o})=>jsxRuntime.jsx("button",{className:"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:o});function mt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=orbitCore.selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},f=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:b=B,TransactionKey:T=K,StatusBadge:m=_,SpeedUpButton:u=io,CancelButton:A=co,TxInfoButton:w=lo}=s?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:utils.getChainName(orbitCore.setChainId(o.chainId)),children:n??jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(o.chainId)})}),jsxRuntime.jsxs("div",{className:"novatx:flex-1",children:[jsxRuntime.jsx(b,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsxRuntime.jsx(b,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(T,{adapter:c,tx:o,variant:"toast"}),jsxRuntime.jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsx(m,{tx:o}),e?jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx(u,{onClick:f,children:i.speedUp}),jsxRuntime.jsx(A,{onClick:x,children:i.cancel})]}):t&&!!l&&jsxRuntime.jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function yt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=react.useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}=react.useMemo(()=>{let R=a?.status,Dt=i?.isInitializing??false,Ot=a?.pending??false;return {isProcessing:Dt||Ot,isSucceed:R===pulsarCore.TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:R===pulsarCore.TransactionStatus.Replaced}},[a,i]),u=react.useMemo(()=>e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),A=!!(T&&e&&i?.actionFunction&&c),w=!!(u?.speedUpTxAction&&u?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),F=()=>{if(!A||!u?.retryTxAction)return;let R={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};u.retryTxAction({tx:R,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},S=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),g=()=>{S&&u.cancelTxAction(a);},h=()=>{S&&u.speedUpTxAction(a);},I=s?.components?.Header,W=s?.components?.Footer,et=s?.components?.StatusVisual,nt=s?.components?.ProgressIndicator,rt=s?.components?.InfoBlock,st=s?.components?.ErrorBlock;return e?jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:R=>!R&&o(a?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[I?jsxRuntime.jsx(I,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(gt,{tx:e})}):jsxRuntime.jsx(go,{onClose:()=>o(a?.txKey),title:jsxRuntime.jsx(gt,{tx:e})}),jsxRuntime.jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[et?jsxRuntime.jsx(et,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}):jsxRuntime.jsx(ht,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}),nt?jsxRuntime.jsx(nt,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}):jsxRuntime.jsx(wt,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}),rt?jsxRuntime.jsx(rt,{tx:e,adapter:t}):jsxRuntime.jsx(Ct,{tx:e,adapter:t}),st?jsxRuntime.jsx(st,{error:a?.errorMessage||i?.errorMessage}):jsxRuntime.jsx(bt,{error:a?.errorMessage||i?.errorMessage})]}),W?jsxRuntime.jsx(W,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:T,canReplace:w,onRetry:A?F:void 0,onSpeedUp:S?h:void 0,onCancel:S?g:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(bo,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:T,canReplace:w,onRetry:A?F:void 0,onSpeedUp:S?h:void 0,onCancel:S?g:void 0,connectedWalletAddress:p})]})})}):null}function gt({tx:t}){return jsxRuntime.jsx(B,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var go=({onClose:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},yo=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsxRuntime.jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
-
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
-
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
-
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
-
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
-
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},bo=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxRuntime.jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
-
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
-
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
-
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsxRuntime.jsx(yo,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
-
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
-
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function bt({error:t,className:o}){let{isCopied:n,copy:r}=novaCore.useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxRuntime.jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsxRuntime.jsx("span",{children:l.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsxRuntime.jsx(solid.DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsxRuntime.jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsxRuntime.jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Ro({label:t,value:o}){return jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",children:[jsxRuntime.jsx("span",{className:"novatx:text-[var(--tuwa-text-secondary)]",children:t}),jsxRuntime.jsx("span",{className:"novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",children:o})]})}function Ct({tx:t,adapter:o,className:n,customization:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Ro}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===orbitCore.OrbitAdapter.SOLANA,x=e?t:void 0;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsxRuntime.jsx(p,{label:s.network,value:jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsxRuntime.jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(a)})}),jsxRuntime.jsx("span",{children:utils.getChainName(orbitCore.setChainId(a))})]})}),t.localTimestamp&&jsxRuntime.jsx(p,{label:s.started,value:kt__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x?.slot&&jsxRuntime.jsx(p,{label:s.slot,value:jsxRuntime.jsx(E,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsxRuntime.jsx(p,{label:c.recentBlockhash,value:jsxRuntime.jsx(E,{hash:x.recentBlockhash})})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:"novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",children:jsxRuntime.jsx(K,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Uo={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 Fo({status:t,label:o,isFirst:n=false}){let r=Uo[t],s=()=>{switch(t){case "completed":return jsxRuntime.jsx(solid.CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsxRuntime.jsx(solid.ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsxRuntime.jsx("div",{className:novaCore.cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function wt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Fo}){let{trackingModal:c,statuses:i}=v(),p=react.useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsxRuntime.jsx(l,{...a},e))})}var Xo={succeed:{Icon:solid.CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:solid.ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:solid.ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:solid.ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:solid.ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function ht({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=Xo[s];return jsxRuntime.jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsxRuntime.jsx(l,{className:novaCore.cn("novatx:h-16 novatx:w-16",c)})})}kt__default.default.extend(qo__default.default);var Qo=({chainId:t})=>jsxRuntime.jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsxRuntime.jsx(reactWeb3Icons.Web3Icon,{chainId:orbitCore.setChainId(t)})}),Zo=({timestamp:t})=>jsxRuntime.jsx("span",{className:"novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",children:t?kt__default.default.unix(t).fromNow():"..."});function St({tx:t,adapter:o,className:n,customization:r}){let{Icon:s=Qo,Title:l=B,Description:c=B,Timestamp:i=Zo,StatusBadge:p=_,TransactionKey:a=K}=r?.components??{};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxRuntime.jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsxRuntime.jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsxRuntime.jsx(s,{chainId:t.chainId})}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsxRuntime.jsx(i,{timestamp:t.localTimestamp}),jsxRuntime.jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsxRuntime.jsx(p,{tx:t})]}),jsxRuntime.jsx(a,{tx:t,adapter:o,variant:"history"})]})}function oa({title:t,message:o,className:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsxRuntime.jsx("h4",{className:"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",children:t}),jsxRuntime.jsx("p",{className:"novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",children:o})]})}function At({adapter:t,connectedWalletAddress:o,transactionsPool:n,className:r,customization:s}){let{transactionsModal:l}=v(),c=react.useMemo(()=>o?pulsarCore.selectAllTransactionsByActiveWallet(n,o).sort((x,f)=>(f.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=oa,HistoryItem:p=St}=s?.components??{},a=()=>o?c.length>0?jsxRuntime.jsx("div",{className:novaCore.cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsxRuntime.jsx(p,{tx:e,adapter:t},e.txKey))}):jsxRuntime.jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsxRuntime.jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsxRuntime.jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ca=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxRuntime.jsxs(novaCore.DialogHeader,{children:[jsxRuntime.jsx(novaCore.DialogTitle,{children:o}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Ht({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsxRuntime.jsx(p,{closeModal:i}):jsxRuntime.jsx(ca,{closeModal:i,title:c.history.title}),a?jsxRuntime.jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsxRuntime.jsx(At,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var fa={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Ur({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,f]=react.useState(false),b=react.useRef(r),T="nova-transactions",m=novaCore.useMediaQuery("(max-width: 767px)"),u=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),A=react.useMemo(()=>novaCore.deepMerge(z,i||{}),[i]),w=react.useCallback(g=>{if(!u.toasts)return;let h=g.pending?"info":fa[g.status]??"info",I=W=>jsxRuntime.jsx(mt,{...W,tx:g,openTxInfoModal:u.transactionsModal?()=>f(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});reactToastify.toast.isActive(g.txKey)?reactToastify.toast.update(g.txKey,{render:I,type:h,containerId:T}):reactToastify.toast(I,{toastId:g.txKey,type:h,closeOnClick:false,containerId:T});},[r,u,a?.toast,t,o]);react.useEffect(()=>{let g=b.current;Object.values(r).forEach(h=>{let I=g[h.txKey];if(!I&&h.pending){w(h);return}I&&JSON.stringify(I)!==JSON.stringify(h)&&w(h);}),b.current=r;},[r,w]),react.useEffect(()=>{Object.values(r).forEach(g=>{reactToastify.toast.isActive(g.txKey,T)&&w(g);});},[o,w,r]);let F=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,S=u.toasts&&(!m||!F&&!x);return jsxRuntime.jsxs(ct,{labels:A,children:[S&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:novaCore.ToastCloseButton,containerId:T,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),u.transactionsModal&&jsxRuntime.jsx(Ht,{isOpen:x,setIsOpen:f,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),u.trackingTxModal&&jsxRuntime.jsx(yt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>f(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}exports.NovaTransactionsLabelsProvider=ct;exports.NovaTransactionsProvider=Ur;exports.useLabels=v;
|
|
1
|
+
'use strict';var chunkKER4647F_cjs=require('../chunk-KER4647F.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkKER4647F_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkKER4647F_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkKER4647F_cjs.c}});
|
package/dist/providers/index.js
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import {createContext,useContext,useState,useRef,useMemo,useCallback,useEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useMediaQuery,deepMerge,ToastCloseButton,Dialog,DialogContent,cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,useCopyToClipboard,textCenterEllipsis}from'@tuwaio/nova-core';import {TransactionStatus,selectAllTransactionsByActiveWallet,TransactionTracker}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ClockIcon,ArrowPathIcon,ExclamationCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,CheckIcon,DocumentDuplicateIcon,XCircleIcon,ArrowTopRightOnSquareIcon}from'@heroicons/react/24/solid';import {Web3Icon}from'@bgd-labs/react-web3-icons';import {getChainName}from'@bgd-labs/react-web3-icons/dist/utils';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import kt from'dayjs';import qo from'dayjs/plugin/relativeTime';var z={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 it=createContext(z),ct=({labels:t,children:o})=>jsx(it.Provider,{value:t,children:o}),v=()=>useContext(it);function E({label:t,hash:o,explorerUrl:n,variant:r="default",className:s}){let{isCopied:l,copy:c}=useCopyToClipboard(),{actions:i,txError:p}=v(),a=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},s),e=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":r==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":r==="compact"}),x=jsx("span",{className:"novatx:font-mono",children:textCenterEllipsis(o,5,5)});return jsxs("div",{className:a,children:[t&&jsxs("span",{className:e,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",title:i.viewOnExplorer,"aria-label":i.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:"novatx:h-4 novatx:w-4"})]}):jsx("span",{className:"novatx:text-[var(--tuwa-text-primary)]",children:x}),jsx("button",{type:"button",onClick:()=>c(o),className:"novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",title:l?p.copied:i.copy,"aria-label":l?p.copied:i.copy,children:l?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var 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 B({txStatus:t,source:o,fallback:n,variant:r,className:s,applyColor:l=false}){let c,i="";if(typeof o=="string")c=o;else if(Array.isArray(o)){let e=pt[t||"default"]??pt.default;c=o[e.index],l&&(i=e.colorClass);}else c=n;return c?jsx("div",{className:cn(r==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",i,s),children:c}):null}function K({tx:t,adapter:o,variant:n="toast",className:r,renderHashLink:s,confirmations:l}){let{hashLabels:c,statuses:i}=v(),p=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!p)return null;let a=m=>s?s(m):jsx(E,{...m}),e=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",x=c[String(t.tracker)],f=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,b=(()=>{let m=t.hash,u=t.replacedTxHash;return !m&&!u?null:u?jsxs(Fragment,{children:[m&&a({label:c.original,hash:m,variant:"compact"}),typeof p.getExplorerTxUrl<"u"&&a({label:c.replaced,hash:u,explorerUrl:p.getExplorerTxUrl(t)})]}):m&&typeof p.getExplorerTxUrl<"u"&&a({label:c.default,hash:m,explorerUrl:p.getExplorerTxUrl(t)})})(),T=x&&x!==c.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(e,r),children:[T&&f,b,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[i.confirmationsLabel,": ",l]})]})}var oo=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 _({tx:t,className:o}){let{statuses:n}=v(),r=useMemo(()=>oo(n),[n]),s="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",l=t.pending?"Pending":t.status,c=l?r[l]:null;if(!c)return jsx("div",{className:cn(s,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",o),children:t.status??n.unknown});let{label:i,Icon:p,badgeClasses:a,iconClasses:e}=c;return jsxs("div",{className:cn(s,a,o),children:[jsx(p,{className:cn("novatx:h-4 novatx:w-4",e)}),i]})}var io=({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}),co=({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}),lo=({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 mt({openTxInfoModal:t,tx:o,icon:n,className:r,customization:s,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=v(),a=selectAdapterByKey({adapterKey:o.adapter,adapter:c}),e=!!(o.tracker==="ethereum"&&o.pending&&a?.speedUpTxAction&&a?.cancelTxAction&&o.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(o.connectorType.split(":")[1])),x=()=>{e&&a.cancelTxAction(o);},f=()=>{e&&a.speedUpTxAction(o);},{StatusAwareText:b=B,TransactionKey:T=K,StatusBadge:m=_,SpeedUpButton:u=io,CancelButton:A=co,TxInfoButton:w=lo}=s?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",r),children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx("div",{className:"novatx:w-[40px] novatx:flex-shrink-0 [&>img]:novatx:w-full [&>img]:novatx:h-auto",title:getChainName(setChainId(o.chainId)),children:n??jsx(Web3Icon,{chainId:setChainId(o.chainId)})}),jsxs("div",{className:"novatx:flex-1",children:[jsx(b,{txStatus:o.status,source:o.title,fallback:o.type,variant:"title",applyColor:true}),jsx(b,{txStatus:o.status,source:o.description,variant:"description"})]})]}),jsxs("div",{children:[jsx(T,{adapter:c,tx:o,variant:"toast"}),jsxs("div",{className:"novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",children:[jsx(m,{tx:o}),e?jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx(u,{onClick:f,children:i.speedUp}),jsx(A,{onClick:x,children:i.cancel})]}):t&&!!l&&jsx(w,{onClick:t,children:p.openTransactionsInfo})]})]})]})}function yt({adapter:t,onClose:o,onOpenAllTransactions:n,className:r,customization:s,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let a=useMemo(()=>i?.lastTxKey?l[i.lastTxKey]:void 0,[l,i]),e=a??i,x=i?.withTrackedModal&&!a||(a?.isTrackedModalOpen??false),{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}=useMemo(()=>{let R=a?.status,Dt=i?.isInitializing??false,Ot=a?.pending??false;return {isProcessing:Dt||Ot,isSucceed:R===TransactionStatus.Success,isFailed:a?.isError||!!i?.errorMessage,isReplaced:R===TransactionStatus.Replaced}},[a,i]),u=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),A=!!(T&&e&&i?.actionFunction&&c),w=!!(u?.speedUpTxAction&&u?.cancelTxAction&&a?.pending&&a.tracker==="ethereum"),F=()=>{if(!A||!u?.retryTxAction)return;let R={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:i?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};u.retryTxAction({tx:R,txKey:a?.txKey??"",onClose:o,executeTxAction:c});},S=w&&a&&["metamask"].includes(a?.connectorType.split(":")[1]),g=()=>{S&&u.cancelTxAction(a);},h=()=>{S&&u.speedUpTxAction(a);},I=s?.components?.Header,W=s?.components?.Footer,et=s?.components?.StatusVisual,nt=s?.components?.ProgressIndicator,rt=s?.components?.InfoBlock,st=s?.components?.ErrorBlock;return e?jsx(Dialog,{open:x,onOpenChange:R=>!R&&o(a?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",s?.modalProps?.className),...s?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",r),children:[I?jsx(I,{onClose:()=>o(a?.txKey),title:jsx(gt,{tx:e})}):jsx(go,{onClose:()=>o(a?.txKey),title:jsx(gt,{tx:e})}),jsxs("main",{className:"novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",children:[et?jsx(et,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}):jsx(ht,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}),nt?jsx(nt,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}):jsx(wt,{isProcessing:f,isSucceed:b,isFailed:T,isReplaced:m}),rt?jsx(rt,{tx:e,adapter:t}):jsx(Ct,{tx:e,adapter:t}),st?jsx(st,{error:a?.errorMessage||i?.errorMessage}):jsx(bt,{error:a?.errorMessage||i?.errorMessage})]}),W?jsx(W,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:T,canReplace:w,onRetry:A?F:void 0,onSpeedUp:S?h:void 0,onCancel:S?g:void 0,connectedWalletAddress:p}):jsx(bo,{onClose:()=>o(a?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:T,canReplace:w,onRetry:A?F:void 0,onSpeedUp:S?h:void 0,onCancel:S?g:void 0,connectedWalletAddress:p})]})})}):null}function gt({tx:t}){return jsx(B,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:"novatx:text-lg"})}var go=({onClose:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
2
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
3
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})},yo=({isFailed:t,onRetry:o,isProcessing:n,canReplace:r,connectedWalletAddress:s,onOpenAllTransactions:l})=>{let{trackingModal:c}=v();return t&&o?jsx("button",{type:"button",onClick:o,className:`novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md
|
|
4
|
-
novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)]
|
|
5
|
-
novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity
|
|
6
|
-
novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]`,children:c.retry}):!n&&!r&&s?jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:rounded-md
|
|
7
|
-
novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]
|
|
8
|
-
novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]`,children:c.allTransactions}):null},bo=({onClose:t,onOpenAllTransactions:o,isProcessing:n,onRetry:r,onSpeedUp:s,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p})=>{let{trackingModal:a,actions:e}=v();return jsxs("footer",{className:`novatx:flex novatx:w-full novatx:items-center novatx:justify-between
|
|
9
|
-
novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4`,children:[jsx("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:c&&s&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:s,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
10
|
-
novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.speedUp}),jsx("button",{type:"button",onClick:l,className:`novatx:cursor-pointer novatx:text-sm novatx:font-medium
|
|
11
|
-
novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80`,children:e.cancel})]})}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-3",children:[jsx(yo,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:o}),jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:`novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold
|
|
12
|
-
novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]
|
|
13
|
-
novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50`,children:n&&!c?a.processing:a.close})]})]})};function bt({error:t,className:o}){let{isCopied:n,copy:r}=useCopyToClipboard(),{actions:s,txError:l}=v();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",o),children:[jsxs("div",{className:"novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",children:[jsx(ExclamationTriangleIcon,{className:"novatx:h-5 novatx:w-5"}),jsx("span",{children:l.title})]}),jsx("button",{type:"button",onClick:()=>r(t),title:n?l.copied:s.copy,"aria-label":n?l.copied:`${s.copy} error message`,className:"novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",children:n?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:"novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",children:jsx("p",{className:"novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",children:t})})]}):null}function Ro({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:r}){let{txInfo:s,statuses:l,hashLabels:c}=v(),i=selectAdapterByKey({adapterKey:t.adapter,adapter:o});if(!i)return null;let{InfoRow:p=Ro}=r?.components??{},a="chainId"in t?t.chainId:t.desiredChainID,e=t.adapter===OrbitAdapter.SOLANA,x=e?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",n),children:[jsx(p,{label:s.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(Web3Icon,{chainId:setChainId(a)})}),jsx("span",{children:getChainName(setChainId(a))})]})}),t.localTimestamp&&jsx(p,{label:s.started,value:kt.unix(t.localTimestamp).format("MMM D, HH:mm:ss")}),e&&jsxs(Fragment,{children:[x?.slot&&jsx(p,{label:s.slot,value:jsx(E,{hash:x.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${x.slot}`)}`:void 0})}),(typeof x?.confirmations=="number"||typeof x?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:x.confirmations}),x?.recentBlockhash&&jsx(p,{label:c.recentBlockhash,value:jsx(E,{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(K,{tx:t,adapter:o,variant:"history",renderHashLink:r?.components?.transactionKey})})]})}var Uo={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 Fo({status:t,label:o,isFirst:n=false}){let r=Uo[t],s=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",r.pulse)});default:return null}};return jsxs("div",{className:"novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",r.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",r.border,r.fill),children:s()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]"),children:o})]})}function wt({isProcessing:t,isSucceed:o,isFailed:n,isReplaced:r,className:s,StepComponent:l=Fo}){let{trackingModal:c,statuses:i}=v(),p=useMemo(()=>{let a=x=>{if(x===1)return "completed";if(x===2){if(o||n||r)return "completed";if(t)return "active"}if(x===3){if(o)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?i.failed:r?i.replaced:c.progressIndicator.succeed;return [{status:a(1),label:e(1),isFirst:true},{status:a(2),label:e(2)},{status:a(3),label:e(3),isLast:true}]},[t,o,n,r,c,i]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",s),children:p.map((a,e)=>jsx(l,{...a},e))})}var Xo={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:r}){let s=o&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:c}=Xo[s];return jsx("div",{className:"novatx:flex novatx:justify-center novatx:py-4",children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",c)})})}kt.extend(qo);var Qo=({chainId:t})=>jsx("div",{className:"novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",children:jsx(Web3Icon,{chainId:setChainId(t)})}),Zo=({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:r}){let{Icon:s=Qo,Title:l=B,Description:c=B,Timestamp:i=Zo,StatusBadge:p=_,TransactionKey:a=K}=r?.components??{};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:"novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",children:jsx(s,{chainId:t.chainId})}),jsxs("div",{children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true}),jsx(i,{timestamp:t.localTimestamp}),jsx(c,{txStatus:t.status,source:t.description,variant:"description"})]})]}),jsx(p,{tx:t})]}),jsx(a,{tx:t,adapter:o,variant:"history"})]})}function oa({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:r,customization:s}){let{transactionsModal:l}=v(),c=useMemo(()=>o?selectAllTransactionsByActiveWallet(n,o).sort((x,f)=>(f.localTimestamp??0)-(x.localTimestamp??0)):[],[n,o]),{Placeholder:i=oa,HistoryItem:p=St}=s?.components??{},a=()=>o?c.length>0?jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",s?.classNames?.listWrapper),children:c.map(e=>jsx(p,{tx:e,adapter:t},e.txKey))}):jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage}):jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage});return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",r),children:[s?.title&&jsx("h3",{className:"novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",children:s?.title}),a()]})}var ca=({closeModal:t,title:o})=>{let{actions:n}=v();return jsxs(DialogHeader,{children:[jsx(DialogTitle,{children:o}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":n.close,className:`novatx:cursor-pointer novatx:rounded-full novatx:p-1
|
|
14
|
-
novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors
|
|
15
|
-
novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]`,children:jsx(CloseIcon,{})})})]})};function Ht({isOpen:t,setIsOpen:o,customization:n,adapter:r,connectedWalletAddress:s,transactionsPool:l}){let{transactionsModal:c}=v(),i=()=>o(false),p=n?.components?.Header,a=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&i(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:i}):jsx(ca,{closeModal:i,title:c.history.title}),a?jsx(a,{adapter:r,transactionsPool:l,connectedWalletAddress:s}):jsx(At,{adapter:r,transactionsPool:l,connectedWalletAddress:s})]})})})}var fa={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Ur({adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r,initialTx:s,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:a,...e}){let[x,f]=useState(false),b=useRef(r),T="nova-transactions",m=useMediaQuery("(max-width: 767px)"),u=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),A=useMemo(()=>deepMerge(z,i||{}),[i]),w=useCallback(g=>{if(!u.toasts)return;let h=g.pending?"info":fa[g.status]??"info",I=W=>jsx(mt,{...W,tx:g,openTxInfoModal:u.transactionsModal?()=>f(true):void 0,customization:a?.toast,adapter:t,connectedWalletAddress:o});toast.isActive(g.txKey)?toast.update(g.txKey,{render:I,type:h,containerId:T}):toast(I,{toastId:g.txKey,type:h,closeOnClick:false,containerId:T});},[r,u,a?.toast,t,o]);useEffect(()=>{let g=b.current;Object.values(r).forEach(h=>{let I=g[h.txKey];if(!I&&h.pending){w(h);return}I&&JSON.stringify(I)!==JSON.stringify(h)&&w(h);}),b.current=r;},[r,w]),useEffect(()=>{Object.values(r).forEach(g=>{toast.isActive(g.txKey,T)&&w(g);});},[o,w,r]);let F=!!s?.withTrackedModal&&r[s?.lastTxKey??""]?.isTrackedModalOpen,S=u.toasts&&(!m||!F&&!x);return jsxs(ct,{labels:A,children:[S&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:ToastCloseButton,containerId:T,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),u.transactionsModal&&jsx(Ht,{isOpen:x,setIsOpen:f,customization:a?.transactionsInfoModal,adapter:t,connectedWalletAddress:o,connectedAdapterType:n,transactionsPool:r}),u.trackingTxModal&&jsx(yt,{initialTx:s,onClose:c,onOpenAllTransactions:()=>f(true),transactionsPool:r,customization:a?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:o})]})}export{ct as NovaTransactionsLabelsProvider,Ur as NovaTransactionsProvider,v as useLabels};
|
|
1
|
+
export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-NIL47Y5T.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-transactions",
|
|
3
|
-
"version": "1.0.0-fix-optimization-alpha.
|
|
3
|
+
"version": "1.0.0-fix-optimization-alpha.3.6c41281",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"dayjs": "1.x.x"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@tuwaio/orbit-core": "^0.2.
|
|
78
|
-
"@tuwaio/pulsar-core": "^0.3.
|
|
77
|
+
"@tuwaio/orbit-core": "^0.2.2",
|
|
78
|
+
"@tuwaio/pulsar-core": "^0.3.2",
|
|
79
79
|
"dayjs": "^1.11.19",
|
|
80
80
|
"@bgd-labs/react-web3-icons": "^1.58.0",
|
|
81
81
|
"@heroicons/react": "^2.2.0",
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
"@types/react": "^19.2.7",
|
|
85
85
|
"autoprefixer": "^10.4.23",
|
|
86
86
|
"clsx": "^2.1.1",
|
|
87
|
-
"framer-motion": "^12.
|
|
88
|
-
"immer": "^11.1.
|
|
87
|
+
"framer-motion": "^12.24.8",
|
|
88
|
+
"immer": "^11.1.3",
|
|
89
89
|
"postcss": "^8.5.6",
|
|
90
90
|
"postcss-cli": "^11.0.1",
|
|
91
91
|
"react": "^19.2.3",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"typescript": "~5.9.3",
|
|
95
95
|
"tailwindcss": "^4.1.18",
|
|
96
96
|
"zustand": "^5.0.9",
|
|
97
|
-
"@tuwaio/nova-core": "^1.0.0-fix-optimization-alpha.
|
|
97
|
+
"@tuwaio/nova-core": "^1.0.0-fix-optimization-alpha.3.6c41281"
|
|
98
98
|
},
|
|
99
99
|
"scripts": {
|
|
100
100
|
"build": "tsup && pnpm exec postcss ./src/styles/app.css -o ./dist/index.css"
|