@tuwaio/nova-transactions 0.2.7 → 0.3.0
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/README.md +3 -12
- package/dist/{TransactionsInfoModal-DSBueMY4.d.cts → TransactionsInfoModal-D7eykTZp.d.cts} +3 -6
- package/dist/{TransactionsInfoModal-DSBueMY4.d.ts → TransactionsInfoModal-D7eykTZp.d.ts} +3 -6
- package/dist/chunk-IUJ7P7EE.cjs +1 -0
- package/dist/chunk-PUSPAQGZ.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +11 -13
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.d.cts +2 -2
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.js +1 -1
- package/package.json +14 -14
- package/dist/chunk-DKXUN36U.js +0 -1
- package/dist/chunk-HWS752GS.cjs +0 -1
package/README.md
CHANGED
|
@@ -57,14 +57,8 @@ pnpm add dayjs clsx tailwind-merge
|
|
|
57
57
|
For a complete setup with all TUWA packages:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
# Using pnpm (recommended)
|
|
60
|
+
# Using pnpm (recommended), but you can use npm, yarn or bun as well
|
|
61
61
|
pnpm add @tuwaio/nova-transactions @tuwaio/nova-core @tuwaio/pulsar-core @tuwaio/orbit-core react-toastify framer-motion @radix-ui/react-dialog @heroicons/react @web3icons/common @web3icons/react dayjs react immer zustand clsx tailwind-merge
|
|
62
|
-
|
|
63
|
-
# Using npm
|
|
64
|
-
npm install @tuwaio/nova-transactions @tuwaio/nova-core @tuwaio/pulsar-core @tuwaio/orbit-core react-toastify framer-motion @radix-ui/react-dialog @heroicons/react @web3icons/common @web3icons/react dayjs react immer zustand clsx tailwind-merge
|
|
65
|
-
|
|
66
|
-
# Using yarn
|
|
67
|
-
yarn add @tuwaio/nova-transactions @tuwaio/nova-core @tuwaio/pulsar-core @tuwaio/orbit-core react-toastify framer-motion @radix-ui/react-dialog @heroicons/react @web3icons/common @web3icons/react dayjs react immer zustand clsx tailwind-merge
|
|
68
62
|
```
|
|
69
63
|
|
|
70
64
|
---
|
|
@@ -148,7 +142,6 @@ export function NovaTransactionsProvider() {
|
|
|
148
142
|
|
|
149
143
|
```tsx
|
|
150
144
|
// src/providers/index.tsx
|
|
151
|
-
import { RainbowKitProvider } from '@rainbow-me/rainbowkit';
|
|
152
145
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
153
146
|
import { ReactNode } from 'react';
|
|
154
147
|
import { WagmiProvider } from 'wagmi';
|
|
@@ -163,10 +156,8 @@ export function Providers({ children }: { children: ReactNode }) {
|
|
|
163
156
|
return (
|
|
164
157
|
<WagmiProvider config={config}>
|
|
165
158
|
<QueryClientProvider client={queryClient}>
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
{children}
|
|
169
|
-
</RainbowKitProvider>
|
|
159
|
+
<NovaTransactionsProvider />
|
|
160
|
+
{children}
|
|
170
161
|
</QueryClientProvider>
|
|
171
162
|
</WagmiProvider>
|
|
172
163
|
);
|
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { ToastCloseButtonProps, DialogContent } from '@tuwaio/nova-core';
|
|
3
3
|
import { TransactionStatus, Transaction, TxAdapter, TransactionPool, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
|
|
4
4
|
import { ReactNode, ComponentType, JSX, ComponentPropsWithoutRef } from 'react';
|
|
5
|
-
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
5
|
+
import { OrbitAdapter, TuwaErrorState } from '@tuwaio/orbit-core';
|
|
6
6
|
import { ToastContainerProps, ToastContentProps } from 'react-toastify';
|
|
7
7
|
import { MotionProps } from 'framer-motion';
|
|
8
8
|
|
|
@@ -410,9 +410,6 @@ type TrackingTxModalProps<T extends Transaction> = Pick<NovaTransactionsProvider
|
|
|
410
410
|
};
|
|
411
411
|
declare function TrackingTxModal<T extends Transaction>({ adapter, onClose, onOpenAllTransactions, className, customization, transactionsPool, executeTxAction, initialTx, connectedWalletAddress, }: TrackingTxModalProps<T>): react_jsx_runtime.JSX.Element | null;
|
|
412
412
|
|
|
413
|
-
/**
|
|
414
|
-
* @file This file contains the `TxErrorBlock` component for displaying transaction error messages.
|
|
415
|
-
*/
|
|
416
413
|
type TxErrorBlockClassNames = {
|
|
417
414
|
/** Classes for the container */
|
|
418
415
|
container?: string;
|
|
@@ -430,8 +427,8 @@ type TxErrorBlockClassNames = {
|
|
|
430
427
|
messageText?: string;
|
|
431
428
|
};
|
|
432
429
|
type TxErrorBlockProps = {
|
|
433
|
-
/** The error
|
|
434
|
-
error?: string;
|
|
430
|
+
/** The error to display. Can be a string or a TuwaErrorState. If undefined or empty, the component renders nothing. */
|
|
431
|
+
error?: string | TuwaErrorState;
|
|
435
432
|
/** Optional additional CSS classes for the container. */
|
|
436
433
|
className?: string;
|
|
437
434
|
/** Granular classNames for sub-elements */
|
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { ToastCloseButtonProps, DialogContent } from '@tuwaio/nova-core';
|
|
3
3
|
import { TransactionStatus, Transaction, TxAdapter, TransactionPool, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
|
|
4
4
|
import { ReactNode, ComponentType, JSX, ComponentPropsWithoutRef } from 'react';
|
|
5
|
-
import { OrbitAdapter } from '@tuwaio/orbit-core';
|
|
5
|
+
import { OrbitAdapter, TuwaErrorState } from '@tuwaio/orbit-core';
|
|
6
6
|
import { ToastContainerProps, ToastContentProps } from 'react-toastify';
|
|
7
7
|
import { MotionProps } from 'framer-motion';
|
|
8
8
|
|
|
@@ -410,9 +410,6 @@ type TrackingTxModalProps<T extends Transaction> = Pick<NovaTransactionsProvider
|
|
|
410
410
|
};
|
|
411
411
|
declare function TrackingTxModal<T extends Transaction>({ adapter, onClose, onOpenAllTransactions, className, customization, transactionsPool, executeTxAction, initialTx, connectedWalletAddress, }: TrackingTxModalProps<T>): react_jsx_runtime.JSX.Element | null;
|
|
412
412
|
|
|
413
|
-
/**
|
|
414
|
-
* @file This file contains the `TxErrorBlock` component for displaying transaction error messages.
|
|
415
|
-
*/
|
|
416
413
|
type TxErrorBlockClassNames = {
|
|
417
414
|
/** Classes for the container */
|
|
418
415
|
container?: string;
|
|
@@ -430,8 +427,8 @@ type TxErrorBlockClassNames = {
|
|
|
430
427
|
messageText?: string;
|
|
431
428
|
};
|
|
432
429
|
type TxErrorBlockProps = {
|
|
433
|
-
/** The error
|
|
434
|
-
error?: string;
|
|
430
|
+
/** The error to display. Can be a string or a TuwaErrorState. If undefined or empty, the component renders nothing. */
|
|
431
|
+
error?: string | TuwaErrorState;
|
|
435
432
|
/** Optional additional CSS classes for the container. */
|
|
436
433
|
className?: string;
|
|
437
434
|
/** Granular classNames for sub-elements */
|
|
@@ -0,0 +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'),orbitCore=require('@tuwaio/orbit-core'),Vt=require('dayjs'),eo=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Vt__default=/*#__PURE__*/_interopDefault(Vt);var eo__default=/*#__PURE__*/_interopDefault(eo);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 wt=react.createContext(Z),Pt=({labels:t,children:a})=>jsxRuntime.jsx(wt.Provider,{value:t,children:a}),g=()=>react.useContext(wt);function Y({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:l}){let{isCopied:c,copy:i}=novaCore.useCopyToClipboard(),{actions:p,txError:s}=g(),e=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),x=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"},l?.label),u=jsxRuntime.jsx("span",{className:novaCore.cn("novatx:font-mono",l?.hash),children:novaCore.textCenterEllipsis(a,5,5)});return jsxRuntime.jsxs("div",{className:e,children:[t&&jsxRuntime.jsxs("span",{className:x,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:novaCore.cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",l?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[u,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:novaCore.cn("novatx:h-4 novatx:w-4",l?.linkIcon)})]}):jsxRuntime.jsx("span",{className:novaCore.cn("novatx:text-[var(--tuwa-text-primary)]",l?.link),children:u}),jsxRuntime.jsx("button",{type:"button",onClick:()=>i(a),className:novaCore.cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",l?.copyButton),title:c?s.copied:p.copy,"aria-label":c?s.copied:p.copy,children:c?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 kt={[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 O({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:l=false}){let c,i="";if(typeof a=="string")c=a;else if(Array.isArray(a)){let e=kt[t||"default"]??kt.default;c=a[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,o),children:c}):null}function V({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:l,hashLinkClassNames:c,originalHashLinkClassNames:i}){let{hashLabels:p,statuses:s}=g(),e=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let x=(T,f)=>o?o(T):jsxRuntime.jsx(Y,{...T,classNames:f??c}),u=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",m=p[String(t.tracker)],N=m?x({label:m,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let T=t.hash,f=t.replacedTxHash;return !T&&!f?null:f?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T&&x({label:p.original,hash:T,variant:"compact"},i),typeof e.getExplorerTxUrl<"u"&&x({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):T&&typeof e.getExplorerTxUrl<"u"&&x({label:p.default,hash:T,explorerUrl:e.getExplorerTxUrl(t)})})(),C=m&&m!==p.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(u,r),children:[C&&N,y,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",l]})]})}var va=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 tt({tx:t,className:a,classNames:n}){let{statuses:r}=g(),o=va(r),l="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",c=t.pending?"Pending":t.status,i=c?o[c]:null;if(!i)return jsxRuntime.jsx("div",{className:novaCore.cn(l,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsxRuntime.jsx("span",{className:n?.label,children:t.status??r.unknown})});let{label:p,Icon:s,badgeClasses:e,iconClasses:x}=i;return jsxRuntime.jsxs("div",{className:novaCore.cn(l,e,n?.container,a),children:[jsxRuntime.jsx(s,{className:novaCore.cn("novatx:h-4 novatx:w-4",x,n?.icon)}),jsxRuntime.jsx("span",{className:n?.label,children:p})]})}var ya=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Ca=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Lt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=g(),s=orbitCore.selectAdapterByKey({adapterKey:a.adapter,adapter:c}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),x=()=>{e&&s.cancelTxAction(a);},u=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:m=O,TransactionKey:N=V,StatusBadge:y=tt,SpeedUpButton:C=ya,CancelButton:T=Ca,TxInfoButton:f=ba}=o?.components??{},d=o?.classNames;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",d?.container,r),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",d?.header),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:w-[40px] novatx:flex-shrink-0",d?.iconWrapper),title:novaCore.getChainName(orbitCore.setChainId(a.chainId)).name,children:n??jsxRuntime.jsx(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(a.chainId)})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex-1",d?.contentWrapper),children:[jsxRuntime.jsx(m,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsxRuntime.jsx(m,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(N,{adapter:c,tx:a,variant:"toast",className:d?.transactionKey,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",d?.footer),children:[jsxRuntime.jsx(y,{tx:a,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}}),e?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",d?.actionsContainer),children:[jsxRuntime.jsx(C,{onClick:u,className:d?.speedUpButton,children:i.speedUp}),jsxRuntime.jsx(T,{onClick:x,className:d?.cancelButton,children:i.cancel})]}):t&&a.from.toLowerCase()===l?.toLowerCase()&&jsxRuntime.jsx(f,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Mt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let s=i?.lastTxKey?l[i.lastTxKey]:void 0,e=s??i,x=i?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),u=s?.status,m=i?.isInitializing??false,N=s?.pending??false,y=m||N,C=u===pulsarCore.TransactionStatus.Success,T=s?.isError||!!i?.error,f=u===pulsarCore.TransactionStatus.Replaced,d=e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,M=!!(T&&e&&i?.actionFunction&&c),K=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),b=()=>{if(!M||!d?.retryTxAction)return;let it={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};d.retryTxAction({tx:it,txKey:s?.txKey??"",onClose:a,executeTxAction:c});},h=K&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),w=()=>{h&&d.cancelTxAction(s);},Q=()=>{h&&d.speedUpTxAction(s);},ft=o?.components?.Header,yt=o?.components?.Footer,Ct=o?.components?.StatusVisual,bt=o?.components?.ProgressIndicator,ht=o?.components?.InfoBlock,Nt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:it=>!it&&a(s?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,r),children:[ft?jsxRuntime.jsx(ft,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(At,{tx:e,className:W?.headerTitle})}):jsxRuntime.jsx(Sa,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(At,{tx:e,className:W?.headerTitle}),classNames:W}),jsxRuntime.jsxs("main",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Ct?jsxRuntime.jsx(Ct,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsxRuntime.jsx(Dt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),bt?jsxRuntime.jsx(bt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsxRuntime.jsx(Ot,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),ht?jsxRuntime.jsx(ht,{tx:e,adapter:t}):jsxRuntime.jsx(Rt,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Nt?jsxRuntime.jsx(Nt,{error:s?.error||i?.error}):jsxRuntime.jsx(Kt,{error:s?.error||i?.error,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),yt?jsxRuntime.jsx(yt,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(Ha,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p,classNames:W})]})})})}function At({tx:t,className:a}){return jsxRuntime.jsx(O,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:novaCore.cn("novatx:text-lg",a)})}var Sa=({onClose:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxRuntime.jsxs(novaCore.DialogHeader,{className:n?.header,children:[jsxRuntime.jsx(novaCore.DialogTitle,{className:n?.headerTitle,children:a}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":r.close,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},La=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:l,classNames:c})=>{let{trackingModal:i}=g();return t&&a?jsxRuntime.jsx("button",{type:"button",onClick:a,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-t-[var(--tuwa-rounded-corners)] novatx:sm:rounded-[var(--tuwa-rounded-corners)] novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",c?.retryButton),children:i.retry}):!n&&!r&&o?jsxRuntime.jsx("button",{type:"button",onClick:l,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",c?.allTransactionsButton),children:i.allTransactions}):null},Ha=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:x}=g();return jsxRuntime.jsxs("footer",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",s?.footer),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",s?.footerActions),children:c&&o&&l&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:o,className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",s?.speedUpButton),children:x.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:l,className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",s?.cancelButton),children:x.cancel})]})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsxRuntime.jsx(La,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:s}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",s?.closeModalButton),children:n&&!c?e.processing:e.close})]})]})};function Kt({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=novaCore.useCopyToClipboard(),{actions:l,txError:c}=g(),{displayMessage:i,copyMessage:p}=react.useMemo(()=>t?typeof t=="string"?{displayMessage:t,copyMessage:t}:{displayMessage:t.message,copyMessage:JSON.stringify(t.raw,null,2)}:{displayMessage:"",copyMessage:""},[t]);return !t||!i?null:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",n?.container,a),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:novaCore.cn("novatx:h-5 novatx:w-5",n?.icon)}),jsxRuntime.jsx("span",{children:c.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>o(p),title:r?c.copied:l.copy,"aria-label":r?c.copied:`${l.copy} error message`,className:novaCore.cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:r?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:novaCore.cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsxRuntime.jsx("p",{className:novaCore.cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:i})})]})}function _a({label:t,value:a,classNames:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm novatx:gap-2",n?.row),children:[jsxRuntime.jsx("span",{className:novaCore.cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function Rt({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:l,hashLabels:c}=g(),i=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!i)return null;let{InfoRow:p=_a}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},x="chainId"in t?t.chainId:t.desiredChainID,u=t.adapter===orbitCore.OrbitAdapter.SOLANA,m=u?t:void 0;return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",s?.container,n),children:[jsxRuntime.jsx(p,{label:o.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(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(x)})}),jsxRuntime.jsx("span",{children:novaCore.getChainName(orbitCore.setChainId(x)).name})]}),classNames:e}),t.localTimestamp&&jsxRuntime.jsx(p,{label:o.started,value:Vt__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),u&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[m?.slot&&jsxRuntime.jsx(p,{label:o.slot,value:jsxRuntime.jsx(Y,{hash:m.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${m.slot}`)}`:void 0}),classNames:e}),(typeof m?.confirmations=="number"||typeof m?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:m.confirmations,classNames:e}),m?.recentBlockhash&&jsxRuntime.jsx(p,{label:c.recentBlockhash,value:jsxRuntime.jsx(Y,{hash:m.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",s?.separator),children:jsxRuntime.jsx(V,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var $a={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function qa({status:t,label:a,isFirst:n=false,classNames:r}){let o=$a[t],l=r?.statusOverrides?.[t],c=()=>{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",o.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",r?.container),children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,r?.line,l?.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",o.border,o.fill,r?.circle,l?.circle),children:c()}),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)]",r?.label,l?.label),children:a})]})}function Ot({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:l=qa,stepClassNames:c}){let{trackingModal:i,statuses:p}=g(),s=u=>{if(u===1)return "completed";if(u===2){if(a||n||r)return "completed";if(t)return "active"}if(u===3){if(a)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=u=>u===1?i.progressIndicator.created:u===2?i.progressIndicator.processing:n?p.failed:r?p.replaced:i.progressIndicator.succeed,x=[{status:s(1),label:e(1),isFirst:true,classNames:c},{status:s(2),label:e(2),classNames:c},{status:s(3),label:e(3),isLast:true,classNames:c}];return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",o),children:x.map((u,m)=>jsxRuntime.jsx(l,{...u},m))})}var to={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 Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:l}){let c=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:i,className:p}=to[c],s=l?.statusOverrides?.[c];return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsxRuntime.jsx(i,{className:novaCore.cn("novatx:h-16 novatx:w-16",p,l?.icon,s)})})}Vt__default.default.extend(eo__default.default);var no=({chainId:t,className:a})=>jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsxRuntime.jsx(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(t)})}),so=({timestamp:t,className:a})=>jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Vt__default.default.unix(t).fromNow():"..."});function _t({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=no,Title:l=O,Description:c=O,Timestamp:i=so,StatusBadge:p=tt,TransactionKey:s=V}=r?.components??{},e=r?.classNames;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)]",e?.container,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:novaCore.cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsxRuntime.jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxRuntime.jsxs("div",{className:e?.contentWrapper,children:[jsxRuntime.jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsxRuntime.jsx(i,{timestamp:t.localTimestamp,className:e?.timestamp}),jsxRuntime.jsx(c,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsxRuntime.jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsxRuntime.jsx(s,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function io({title:t,message:a,className:n,classNames:r}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsxRuntime.jsx("h4",{className:novaCore.cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",r?.title),children:t}),jsxRuntime.jsx("p",{className:novaCore.cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",r?.message),children:a})]})}function Jt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o}){let{transactionsModal:l}=g(),c=a?pulsarCore.selectAllTransactionsByActiveWallet(n,a).sort((x,u)=>(u.localTimestamp??0)-(x.localTimestamp??0)):[],{Placeholder:i=io,HistoryItem:p=_t}=o?.components??{},s=()=>{if(!a)return jsxRuntime.jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(c.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return jsxRuntime.jsx("div",{className:novaCore.cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",o?.classNames?.listWrapper),children:c.map(x=>jsxRuntime.jsx(p,{tx:x,adapter:t,customization:{classNames:e}},x.txKey))})}return jsxRuntime.jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,r),children:[o?.title&&jsxRuntime.jsx("h3",{className:novaCore.cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),s()]})}var mo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxRuntime.jsxs(novaCore.DialogHeader,{className:n?.header,children:[jsxRuntime.jsx(novaCore.DialogTitle,{className:n?.title,children:a}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":r.close,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Gt({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:l}){let{transactionsModal:c}=g(),i=()=>a(false),p=n?.components?.Header,s=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(mo,{closeModal:i,title:c.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),s?jsxRuntime.jsx(s,{adapter:r,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization}):jsxRuntime.jsx(Jt,{adapter:r,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var yo=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 zn({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:s=2500,className:e,classNames:x,...u}){let{trackedTxButton:m}=g(),[N,y]=react.useState("idle"),[C,T]=react.useState(void 0),f=yo(m);react.useEffect(()=>{y("idle"),T(void 0);},[o]),react.useEffect(()=>{if(!C)return;let w=r[C];if(w)switch(w.status){case pulsarCore.TransactionStatus.Success:y("succeed");break;case pulsarCore.TransactionStatus.Replaced:y("replaced");break;case pulsarCore.TransactionStatus.Failed:y("failed");break}},[r,C,o]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(N)){let w=setTimeout(()=>{y("idle"),T(void 0);},s);return ()=>clearTimeout(w)}},[N,s]);let d=async()=>{y("loading");try{await a(),T(n());}catch(w){console.error("Transaction initiation failed:",w),y("failed");}},M=()=>{switch(N){case "loading":return l??f.loading;case "succeed":return c??f.succeed;case "failed":return i??f.failed;case "replaced":return p??f.replaced;default:return t}},K={idle:"novatx:bg-[var(--tuwa-button-gradient-from)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=x?.[N]??K[N],h=x?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsxRuntime.jsx("button",{...u,disabled:N!=="idle"||u.disabled,onClick:d,className:novaCore.cn(h,b,e),children:M()})}var ko={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Hs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:s,...e}){let[x,u]=react.useState(false),m=react.useRef(r),N="nova-transactions",y=novaCore.useMediaQuery("(max-width: 767px)"),C=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),T=react.useMemo(()=>novaCore.deepMerge(Z,i||{}),[i]),f=react.useCallback(b=>{if(!C.toasts)return;let h=b.pending?"info":ko[b.status]??"info",w=Q=>jsxRuntime.jsx(Lt,{...Q,tx:b,openTxInfoModal:C.transactionsModal?()=>u(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});reactToastify.toast.isActive(b.txKey)?reactToastify.toast.update(b.txKey,{render:w,type:h,containerId:N}):reactToastify.toast(w,{toastId:b.txKey,type:h,closeOnClick:false,containerId:N});},[r,C,s?.toast,t,a]);react.useEffect(()=>{let b=m.current;Object.values(r).forEach(h=>{let w=b[h.txKey];if(!w&&h.pending){f(h);return}w&&JSON.stringify(w)!==JSON.stringify(h)&&f(h);}),m.current=r;},[r,f]),react.useEffect(()=>{Object.values(r).forEach(b=>{reactToastify.toast.isActive(b.txKey,N)&&f(b);});},[a,f,r]);let d=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,M=C.toasts&&(!y||!d&&!x),K=react.useMemo(()=>{let b=s?.toastCloseButton;return b?({closeToast:h})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:h,...b}):novaCore.ToastCloseButton},[s?.toastCloseButton]);return jsxRuntime.jsxs(Pt,{labels:T,children:[M&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:K,containerId:N,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),C.transactionsModal&&jsxRuntime.jsx(Gt,{isOpen:x,setIsOpen:u,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r}),C.trackingTxModal&&jsxRuntime.jsx(Mt,{initialTx:o,onClose:c,onOpenAllTransactions:()=>u(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:a})]})}exports.a=Z;exports.b=Pt;exports.c=g;exports.d=Hs;exports.e=Y;exports.f=O;exports.g=V;exports.h=tt;exports.i=Lt;exports.j=Mt;exports.k=Kt;exports.l=Rt;exports.m=Ot;exports.n=Dt;exports.o=_t;exports.p=Jt;exports.q=Gt;exports.r=zn;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,getChainName,NetworkIcon,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Vt from'dayjs';import eo 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 wt=createContext(Z),Pt=({labels:t,children:a})=>jsx(wt.Provider,{value:t,children:a}),g=()=>useContext(wt);function Y({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:l}){let{isCopied:c,copy:i}=useCopyToClipboard(),{actions:p,txError:s}=g(),e=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),x=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"},l?.label),u=jsx("span",{className:cn("novatx:font-mono",l?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:e,children:[t&&jsxs("span",{className:x,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",l?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[u,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",l?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",l?.link),children:u}),jsx("button",{type:"button",onClick:()=>i(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",l?.copyButton),title:c?s.copied:p.copy,"aria-label":c?s.copied:p.copy,children:c?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 kt={[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 O({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:l=false}){let c,i="";if(typeof a=="string")c=a;else if(Array.isArray(a)){let e=kt[t||"default"]??kt.default;c=a[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,o),children:c}):null}function V({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:l,hashLinkClassNames:c,originalHashLinkClassNames:i}){let{hashLabels:p,statuses:s}=g(),e=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let x=(T,f)=>o?o(T):jsx(Y,{...T,classNames:f??c}),u=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",m=p[String(t.tracker)],N=m?x({label:m,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let T=t.hash,f=t.replacedTxHash;return !T&&!f?null:f?jsxs(Fragment,{children:[T&&x({label:p.original,hash:T,variant:"compact"},i),typeof e.getExplorerTxUrl<"u"&&x({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):T&&typeof e.getExplorerTxUrl<"u"&&x({label:p.default,hash:T,explorerUrl:e.getExplorerTxUrl(t)})})(),C=m&&m!==p.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(u,r),children:[C&&N,y,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",l]})]})}var va=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 tt({tx:t,className:a,classNames:n}){let{statuses:r}=g(),o=va(r),l="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",c=t.pending?"Pending":t.status,i=c?o[c]:null;if(!i)return jsx("div",{className:cn(l,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsx("span",{className:n?.label,children:t.status??r.unknown})});let{label:p,Icon:s,badgeClasses:e,iconClasses:x}=i;return jsxs("div",{className:cn(l,e,n?.container,a),children:[jsx(s,{className:cn("novatx:h-4 novatx:w-4",x,n?.icon)}),jsx("span",{className:n?.label,children:p})]})}var ya=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Ca=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Lt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:l,adapter:c}){let{actions:i,toast:p}=g(),s=selectAdapterByKey({adapterKey:a.adapter,adapter:c}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),x=()=>{e&&s.cancelTxAction(a);},u=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:m=O,TransactionKey:N=V,StatusBadge:y=tt,SpeedUpButton:C=ya,CancelButton:T=Ca,TxInfoButton:f=ba}=o?.components??{},d=o?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",d?.container,r),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",d?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",d?.iconWrapper),title:getChainName(setChainId(a.chainId)).name,children:n??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",d?.contentWrapper),children:[jsx(m,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsx(m,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxs("div",{children:[jsx(N,{adapter:c,tx:a,variant:"toast",className:d?.transactionKey,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",d?.footer),children:[jsx(y,{tx:a,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}}),e?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",d?.actionsContainer),children:[jsx(C,{onClick:u,className:d?.speedUpButton,children:i.speedUp}),jsx(T,{onClick:x,className:d?.cancelButton,children:i.cancel})]}):t&&a.from.toLowerCase()===l?.toLowerCase()&&jsx(f,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Mt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:l,executeTxAction:c,initialTx:i,connectedWalletAddress:p}){let s=i?.lastTxKey?l[i.lastTxKey]:void 0,e=s??i,x=i?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),u=s?.status,m=i?.isInitializing??false,N=s?.pending??false,y=m||N,C=u===TransactionStatus.Success,T=s?.isError||!!i?.error,f=u===TransactionStatus.Replaced,d=e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,M=!!(T&&e&&i?.actionFunction&&c),K=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),b=()=>{if(!M||!d?.retryTxAction)return;let it={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};d.retryTxAction({tx:it,txKey:s?.txKey??"",onClose:a,executeTxAction:c});},h=K&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),w=()=>{h&&d.cancelTxAction(s);},Q=()=>{h&&d.speedUpTxAction(s);},ft=o?.components?.Header,yt=o?.components?.Footer,Ct=o?.components?.StatusVisual,bt=o?.components?.ProgressIndicator,ht=o?.components?.InfoBlock,Nt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsx(Dialog,{open:x,onOpenChange:it=>!it&&a(s?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,r),children:[ft?jsx(ft,{onClose:()=>a(s?.txKey),title:jsx(At,{tx:e,className:W?.headerTitle})}):jsx(Sa,{onClose:()=>a(s?.txKey),title:jsx(At,{tx:e,className:W?.headerTitle}),classNames:W}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Ct?jsx(Ct,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsx(Dt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),bt?jsx(bt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsx(Ot,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),ht?jsx(ht,{tx:e,adapter:t}):jsx(Rt,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Nt?jsx(Nt,{error:s?.error||i?.error}):jsx(Kt,{error:s?.error||i?.error,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),yt?jsx(yt,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p}):jsx(Ha,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p,classNames:W})]})})})}function At({tx:t,className:a}){return jsx(O,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var Sa=({onClose:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":r.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})},La=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:l,classNames:c})=>{let{trackingModal:i}=g();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-[var(--tuwa-rounded-corners)] novatx:sm:rounded-[var(--tuwa-rounded-corners)] novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",c?.retryButton),children:i.retry}):!n&&!r&&o?jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",c?.allTransactionsButton),children:i.allTransactions}):null},Ha=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:l,canReplace:c,isFailed:i,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:x}=g();return jsxs("footer",{className:cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",s?.footer),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",s?.footerActions),children:c&&o&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:o,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",s?.speedUpButton),children:x.speedUp}),jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",s?.cancelButton),children:x.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsx(La,{isFailed:i,onRetry:r,isProcessing:n,canReplace:c,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:s}),jsx("button",{type:"button",onClick:t,disabled:n&&!c,className:cn("novatx:cursor-pointer novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",s?.closeModalButton),children:n&&!c?e.processing:e.close})]})]})};function Kt({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=useCopyToClipboard(),{actions:l,txError:c}=g(),{displayMessage:i,copyMessage:p}=useMemo(()=>t?typeof t=="string"?{displayMessage:t,copyMessage:t}:{displayMessage:t.message,copyMessage:JSON.stringify(t.raw,null,2)}:{displayMessage:"",copyMessage:""},[t]);return !t||!i?null:jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",n?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",n?.icon)}),jsx("span",{children:c.title})]}),jsx("button",{type:"button",onClick:()=>o(p),title:r?c.copied:l.copy,"aria-label":r?c.copied:`${l.copy} error message`,className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:r?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:i})})]})}function _a({label:t,value:a,classNames:n}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm novatx:gap-2",n?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function Rt({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:l,hashLabels:c}=g(),i=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!i)return null;let{InfoRow:p=_a}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},x="chainId"in t?t.chainId:t.desiredChainID,u=t.adapter===OrbitAdapter.SOLANA,m=u?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",s?.container,n),children:[jsx(p,{label:o.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(NetworkIcon,{chainId:setChainId(x)})}),jsx("span",{children:getChainName(setChainId(x)).name})]}),classNames:e}),t.localTimestamp&&jsx(p,{label:o.started,value:Vt.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),u&&jsxs(Fragment,{children:[m?.slot&&jsx(p,{label:o.slot,value:jsx(Y,{hash:m.slot.toString(),explorerUrl:i?.getExplorerUrl?`${i?.getExplorerUrl(`/block/${m.slot}`)}`:void 0}),classNames:e}),(typeof m?.confirmations=="number"||typeof m?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:m.confirmations,classNames:e}),m?.recentBlockhash&&jsx(p,{label:c.recentBlockhash,value:jsx(Y,{hash:m.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsx("div",{className:cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",s?.separator),children:jsx(V,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var $a={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function qa({status:t,label:a,isFirst:n=false,classNames:r}){let o=$a[t],l=r?.statusOverrides?.[t],c=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",o.pulse)});default:return null}};return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",r?.container),children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,r?.line,l?.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",o.border,o.fill,r?.circle,l?.circle),children:c()}),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)]",r?.label,l?.label),children:a})]})}function Ot({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:l=qa,stepClassNames:c}){let{trackingModal:i,statuses:p}=g(),s=u=>{if(u===1)return "completed";if(u===2){if(a||n||r)return "completed";if(t)return "active"}if(u===3){if(a)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=u=>u===1?i.progressIndicator.created:u===2?i.progressIndicator.processing:n?p.failed:r?p.replaced:i.progressIndicator.succeed,x=[{status:s(1),label:e(1),isFirst:true,classNames:c},{status:s(2),label:e(2),classNames:c},{status:s(3),label:e(3),isLast:true,classNames:c}];return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",o),children:x.map((u,m)=>jsx(l,{...u},m))})}var to={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 Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:l}){let c=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:i,className:p}=to[c],s=l?.statusOverrides?.[c];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsx(i,{className:cn("novatx:h-16 novatx:w-16",p,l?.icon,s)})})}Vt.extend(eo);var no=({chainId:t,className:a})=>jsx("div",{className:cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsx(NetworkIcon,{chainId:setChainId(t)})}),so=({timestamp:t,className:a})=>jsx("span",{className:cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Vt.unix(t).fromNow():"..."});function _t({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=no,Title:l=O,Description:c=O,Timestamp:i=so,StatusBadge:p=tt,TransactionKey:s=V}=r?.components??{},e=r?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",e?.container,n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxs("div",{className:e?.contentWrapper,children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsx(i,{timestamp:t.localTimestamp,className:e?.timestamp}),jsx(c,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsx(s,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function io({title:t,message:a,className:n,classNames:r}){return jsxs("div",{className:cn("novatx:rounded-[var(--tuwa-rounded-corners)] novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",r?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",r?.message),children:a})]})}function Jt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o}){let{transactionsModal:l}=g(),c=a?selectAllTransactionsByActiveWallet(n,a).sort((x,u)=>(u.localTimestamp??0)-(x.localTimestamp??0)):[],{Placeholder:i=io,HistoryItem:p=_t}=o?.components??{},s=()=>{if(!a)return jsx(i,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(c.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-[var(--tuwa-rounded-corners)] novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",o?.classNames?.listWrapper),children:c.map(x=>jsx(p,{tx:x,adapter:t,customization:{classNames:e}},x.txKey))})}return jsx(i,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,r),children:[o?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),s()]})}var mo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":r.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})};function Gt({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:l}){let{transactionsModal:c}=g(),i=()=>a(false),p=n?.components?.Header,s=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(mo,{closeModal:i,title:c.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),s?jsx(s,{adapter:r,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization}):jsx(Jt,{adapter:r,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var yo=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 zn({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:l,succeedContent:c,failedContent:i,replacedContent:p,resetTimeout:s=2500,className:e,classNames:x,...u}){let{trackedTxButton:m}=g(),[N,y]=useState("idle"),[C,T]=useState(void 0),f=yo(m);useEffect(()=>{y("idle"),T(void 0);},[o]),useEffect(()=>{if(!C)return;let w=r[C];if(w)switch(w.status){case TransactionStatus.Success:y("succeed");break;case TransactionStatus.Replaced:y("replaced");break;case TransactionStatus.Failed:y("failed");break}},[r,C,o]),useEffect(()=>{if(["succeed","failed","replaced"].includes(N)){let w=setTimeout(()=>{y("idle"),T(void 0);},s);return ()=>clearTimeout(w)}},[N,s]);let d=async()=>{y("loading");try{await a(),T(n());}catch(w){console.error("Transaction initiation failed:",w),y("failed");}},M=()=>{switch(N){case "loading":return l??f.loading;case "succeed":return c??f.succeed;case "failed":return i??f.failed;case "replaced":return p??f.replaced;default:return t}},K={idle:"novatx:bg-[var(--tuwa-button-gradient-from)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=x?.[N]??K[N],h=x?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-[var(--tuwa-rounded-corners)] novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsx("button",{...u,disabled:N!=="idle"||u.disabled,onClick:d,className:cn(h,b,e),children:M()})}var ko={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Hs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:l,closeTxTrackedModal:c,labels:i,features:p,customization:s,...e}){let[x,u]=useState(false),m=useRef(r),N="nova-transactions",y=useMediaQuery("(max-width: 767px)"),C=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),T=useMemo(()=>deepMerge(Z,i||{}),[i]),f=useCallback(b=>{if(!C.toasts)return;let h=b.pending?"info":ko[b.status]??"info",w=Q=>jsx(Lt,{...Q,tx:b,openTxInfoModal:C.transactionsModal?()=>u(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(b.txKey)?toast.update(b.txKey,{render:w,type:h,containerId:N}):toast(w,{toastId:b.txKey,type:h,closeOnClick:false,containerId:N});},[r,C,s?.toast,t,a]);useEffect(()=>{let b=m.current;Object.values(r).forEach(h=>{let w=b[h.txKey];if(!w&&h.pending){f(h);return}w&&JSON.stringify(w)!==JSON.stringify(h)&&f(h);}),m.current=r;},[r,f]),useEffect(()=>{Object.values(r).forEach(b=>{toast.isActive(b.txKey,N)&&f(b);});},[a,f,r]);let d=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,M=C.toasts&&(!y||!d&&!x),K=useMemo(()=>{let b=s?.toastCloseButton;return b?({closeToast:h})=>jsx(ToastCloseButton,{closeToast:h,...b}):ToastCloseButton},[s?.toastCloseButton]);return jsxs(Pt,{labels:T,children:[M&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:K,containerId:N,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),C.transactionsModal&&jsx(Gt,{isOpen:x,setIsOpen:u,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r}),C.trackingTxModal&&jsx(Mt,{initialTx:o,onClose:c,onOpenAllTransactions:()=>u(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:a})]})}export{Z as a,Pt as b,g as c,Hs as d,Y as e,O as f,V as g,tt as h,Lt as i,Mt as j,Kt as k,Rt as l,Ot as m,Dt as n,_t as o,Jt as p,Gt as q,zn as r};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkIUJ7P7EE_cjs=require('./chunk-IUJ7P7EE.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.a}});
|
package/dist/index.css
CHANGED
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
--novatx-font-weight-medium: 500;
|
|
21
21
|
--novatx-font-weight-semibold: 600;
|
|
22
22
|
--novatx-font-weight-bold: 700;
|
|
23
|
-
--novatx-radius-md: 0.375rem;
|
|
24
|
-
--novatx-radius-lg: 0.5rem;
|
|
25
23
|
--novatx-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
26
24
|
--novatx-animate-spin: spin 1s linear infinite;
|
|
27
25
|
--novatx-animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
@@ -204,18 +202,15 @@
|
|
|
204
202
|
.novatx\:rounded {
|
|
205
203
|
border-radius: 0.25rem;
|
|
206
204
|
}
|
|
205
|
+
.novatx\:rounded-\[var\(--tuwa-rounded-corners\)\] {
|
|
206
|
+
border-radius: var(--tuwa-rounded-corners);
|
|
207
|
+
}
|
|
207
208
|
.novatx\:rounded-full {
|
|
208
209
|
border-radius: calc(infinity * 1px);
|
|
209
210
|
}
|
|
210
|
-
.novatx\:rounded-
|
|
211
|
-
border-radius: var(--
|
|
212
|
-
|
|
213
|
-
.novatx\:rounded-md {
|
|
214
|
-
border-radius: var(--novatx-radius-md);
|
|
215
|
-
}
|
|
216
|
-
.novatx\:rounded-t-md {
|
|
217
|
-
border-top-left-radius: var(--novatx-radius-md);
|
|
218
|
-
border-top-right-radius: var(--novatx-radius-md);
|
|
211
|
+
.novatx\:rounded-t-\[var\(--tuwa-rounded-corners\)\] {
|
|
212
|
+
border-top-left-radius: var(--tuwa-rounded-corners);
|
|
213
|
+
border-top-right-radius: var(--tuwa-rounded-corners);
|
|
219
214
|
}
|
|
220
215
|
.novatx\:border {
|
|
221
216
|
border-style: var(--tw-border-style);
|
|
@@ -269,6 +264,9 @@
|
|
|
269
264
|
.novatx\:bg-\[var\(--tuwa-border-primary\)\] {
|
|
270
265
|
background-color: var(--tuwa-border-primary);
|
|
271
266
|
}
|
|
267
|
+
.novatx\:bg-\[var\(--tuwa-button-gradient-from\)\] {
|
|
268
|
+
background-color: var(--tuwa-button-gradient-from);
|
|
269
|
+
}
|
|
272
270
|
.novatx\:bg-\[var\(--tuwa-error-bg\)\] {
|
|
273
271
|
background-color: var(--tuwa-error-bg);
|
|
274
272
|
}
|
|
@@ -601,9 +599,9 @@
|
|
|
601
599
|
max-width: var(--novatx-container-md);
|
|
602
600
|
}
|
|
603
601
|
}
|
|
604
|
-
.novatx\:sm\:rounded-
|
|
602
|
+
.novatx\:sm\:rounded-\[var\(--tuwa-rounded-corners\)\] {
|
|
605
603
|
@media (width >= 40rem) {
|
|
606
|
-
border-radius: var(--
|
|
604
|
+
border-radius: var(--tuwa-rounded-corners);
|
|
607
605
|
}
|
|
608
606
|
}
|
|
609
607
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-
|
|
2
|
-
export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-
|
|
1
|
+
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-D7eykTZp.cjs';
|
|
2
|
+
export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-D7eykTZp.cjs';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import { Transaction, TransactionPool } from '@tuwaio/pulsar-core';
|
|
5
5
|
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-
|
|
2
|
-
export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-
|
|
1
|
+
import { N as NovaTransactionsLabels } from './TransactionsInfoModal-D7eykTZp.js';
|
|
2
|
+
export { a as HashLink, H as HashLinkProps, b as StatusAwareText, S as StatusAwareTextProps, o as StepClassNames, p as StepProps, n as StepStatus, d as ToastTransaction, T as ToastTransactionCustomization, c as ToastTransactionProps, g as TrackingTxModal, e as TrackingTxModalCustomization, f as TrackingTxModalProps, x as TransactionHistoryItem, v as TransactionHistoryItemCustomization, w as TransactionHistoryItemProps, z as TransactionKey, y as TransactionKeyProps, I as TransactionStatusBadge, G as TransactionStatusBadgeProps, C as TransactionsHistory, A as TransactionsHistoryCustomization, B as TransactionsHistoryProps, F as TransactionsInfoModal, D as TransactionsInfoModalCustomization, E as TransactionsInfoModalProps, j as TxErrorBlock, h as TxErrorBlockClassNames, i as TxErrorBlockProps, m as TxInfoBlock, k as TxInfoBlockCustomization, l as TxInfoBlockProps, r as TxProgressIndicator, q as TxProgressIndicatorProps, u as TxStatusVisual, s as TxStatusVisualClassNames, t as TxStatusVisualProps } from './TransactionsInfoModal-D7eykTZp.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import { Transaction, TransactionPool } from '@tuwaio/pulsar-core';
|
|
5
5
|
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{e as HashLink,f as StatusAwareText,i as ToastTransaction,j as TrackingTxModal,o as TransactionHistoryItem,g as TransactionKey,h as TransactionStatusBadge,p as TransactionsHistory,q as TransactionsInfoModal,r as TxActionButton,k as TxErrorBlock,l as TxInfoBlock,m as TxProgressIndicator,n as TxStatusVisual,a as defaultLabels}from'./chunk-
|
|
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-PUSPAQGZ.js';
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkIUJ7P7EE_cjs=require('../chunk-IUJ7P7EE.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkIUJ7P7EE_cjs.c}});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-
|
|
4
|
-
export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-
|
|
3
|
+
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-D7eykTZp.cjs';
|
|
4
|
+
export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-D7eykTZp.cjs';
|
|
5
5
|
import '@tuwaio/nova-core';
|
|
6
6
|
import '@tuwaio/pulsar-core';
|
|
7
7
|
import '@tuwaio/orbit-core';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-
|
|
4
|
-
export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-
|
|
3
|
+
import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-D7eykTZp.js';
|
|
4
|
+
export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-D7eykTZp.js';
|
|
5
5
|
import '@tuwaio/nova-core';
|
|
6
6
|
import '@tuwaio/pulsar-core';
|
|
7
7
|
import '@tuwaio/orbit-core';
|
package/dist/providers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-
|
|
1
|
+
export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-PUSPAQGZ.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-transactions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -69,34 +69,34 @@
|
|
|
69
69
|
"framer-motion": "12.x.x",
|
|
70
70
|
"react": ">=19.2.3",
|
|
71
71
|
"react-toastify": ">=11",
|
|
72
|
-
"@tuwaio/pulsar-core": ">=0.
|
|
73
|
-
"@tuwaio/nova-core": ">=0.
|
|
74
|
-
"@tuwaio/orbit-core": ">=0.2.
|
|
72
|
+
"@tuwaio/pulsar-core": ">=0.5",
|
|
73
|
+
"@tuwaio/nova-core": ">=0.3",
|
|
74
|
+
"@tuwaio/orbit-core": ">=0.2.7",
|
|
75
75
|
"dayjs": "1.x.x"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@tuwaio/orbit-core": "^0.2.
|
|
79
|
-
"@tuwaio/pulsar-core": "^0.
|
|
78
|
+
"@tuwaio/orbit-core": "^0.2.7",
|
|
79
|
+
"@tuwaio/pulsar-core": "^0.5.0",
|
|
80
80
|
"dayjs": "^1.11.19",
|
|
81
|
-
"@web3icons/react": "^4.1.
|
|
82
|
-
"@web3icons/common": "^0.11.
|
|
81
|
+
"@web3icons/react": "^4.1.16",
|
|
82
|
+
"@web3icons/common": "^0.11.45",
|
|
83
83
|
"@heroicons/react": "^2.2.0",
|
|
84
84
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
85
85
|
"@tailwindcss/postcss": "^4.1.18",
|
|
86
|
-
"@types/react": "^19.2.
|
|
87
|
-
"autoprefixer": "^10.4.
|
|
86
|
+
"@types/react": "^19.2.10",
|
|
87
|
+
"autoprefixer": "^10.4.24",
|
|
88
88
|
"clsx": "^2.1.1",
|
|
89
|
-
"framer-motion": "^12.29.
|
|
89
|
+
"framer-motion": "^12.29.2",
|
|
90
90
|
"immer": "^11.1.3",
|
|
91
91
|
"postcss": "^8.5.6",
|
|
92
92
|
"postcss-cli": "^11.0.1",
|
|
93
|
-
"react": "^19.2.
|
|
93
|
+
"react": "^19.2.4",
|
|
94
94
|
"react-toastify": "^11.0.5",
|
|
95
95
|
"tsup": "^8.5.1",
|
|
96
96
|
"typescript": "~5.9.3",
|
|
97
97
|
"tailwindcss": "^4.1.18",
|
|
98
|
-
"zustand": "^5.0.
|
|
99
|
-
"@tuwaio/nova-core": "^0.
|
|
98
|
+
"zustand": "^5.0.11",
|
|
99
|
+
"@tuwaio/nova-core": "^0.3.0"
|
|
100
100
|
},
|
|
101
101
|
"scripts": {
|
|
102
102
|
"build": "tsup && pnpm exec postcss ./src/styles/app.css -o ./dist/index.css"
|
package/dist/chunk-DKXUN36U.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {createContext,useContext,useState,useEffect,useRef,useMemo,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,getChainName,NetworkIcon,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Vt from'dayjs';import oo 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 wt=createContext(Z),Pt=({labels:t,children:a})=>jsx(wt.Provider,{value:t,children:a}),g=()=>useContext(wt);function Y({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:c}){let{isCopied:i,copy:l}=useCopyToClipboard(),{actions:p,txError:s}=g(),e=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),x=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"},c?.label),m=jsx("span",{className:cn("novatx:font-mono",c?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:e,children:[t&&jsxs("span",{className:x,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",c?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[m,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",c?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",c?.link),children:m}),jsx("button",{type:"button",onClick:()=>l(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",c?.copyButton),title:i?s.copied:p.copy,"aria-label":i?s.copied:p.copy,children:i?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var kt={[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 O({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:c=false}){let i,l="";if(typeof a=="string")i=a;else if(Array.isArray(a)){let e=kt[t||"default"]??kt.default;i=a[e.index],c&&(l=e.colorClass);}else i=n;return i?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)]",l,o),children:i}):null}function V({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:c,hashLinkClassNames:i,originalHashLinkClassNames:l}){let{hashLabels:p,statuses:s}=g(),e=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let x=(T,f)=>o?o(T):jsx(Y,{...T,classNames:f??i}),m=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",u=p[String(t.tracker)],N=u?x({label:u,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let T=t.hash,f=t.replacedTxHash;return !T&&!f?null:f?jsxs(Fragment,{children:[T&&x({label:p.original,hash:T,variant:"compact"},l),typeof e.getExplorerTxUrl<"u"&&x({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):T&&typeof e.getExplorerTxUrl<"u"&&x({label:p.default,hash:T,explorerUrl:e.getExplorerTxUrl(t)})})(),C=u&&u!==p.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(m,r),children:[C&&N,y,typeof c=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",c]})]})}var va=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 tt({tx:t,className:a,classNames:n}){let{statuses:r}=g(),o=va(r),c="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",i=t.pending?"Pending":t.status,l=i?o[i]:null;if(!l)return jsx("div",{className:cn(c,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsx("span",{className:n?.label,children:t.status??r.unknown})});let{label:p,Icon:s,badgeClasses:e,iconClasses:x}=l;return jsxs("div",{className:cn(c,e,n?.container,a),children:[jsx(s,{className:cn("novatx:h-4 novatx:w-4",x,n?.icon)}),jsx("span",{className:n?.label,children:p})]})}var ya=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Ca=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Lt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:c,adapter:i}){let{actions:l,toast:p}=g(),s=selectAdapterByKey({adapterKey:a.adapter,adapter:i}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===c?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),x=()=>{e&&s.cancelTxAction(a);},m=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:u=O,TransactionKey:N=V,StatusBadge:y=tt,SpeedUpButton:C=ya,CancelButton:T=Ca,TxInfoButton:f=ba}=o?.components??{},d=o?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",d?.container,r),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",d?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",d?.iconWrapper),title:getChainName(setChainId(a.chainId)),children:n??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",d?.contentWrapper),children:[jsx(u,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsx(u,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxs("div",{children:[jsx(N,{adapter:i,tx:a,variant:"toast",className:d?.transactionKey,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",d?.footer),children:[jsx(y,{tx:a,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}}),e?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",d?.actionsContainer),children:[jsx(C,{onClick:m,className:d?.speedUpButton,children:l.speedUp}),jsx(T,{onClick:x,className:d?.cancelButton,children:l.cancel})]}):t&&a.from.toLowerCase()===c?.toLowerCase()&&jsx(f,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Mt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:c,executeTxAction:i,initialTx:l,connectedWalletAddress:p}){let s=l?.lastTxKey?c[l.lastTxKey]:void 0,e=s??l,x=l?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),m=s?.status,u=l?.isInitializing??false,N=s?.pending??false,y=u||N,C=m===TransactionStatus.Success,T=s?.isError||!!l?.errorMessage,f=m===TransactionStatus.Replaced,d=e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,M=!!(T&&e&&l?.actionFunction&&i),K=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),b=()=>{if(!M||!d?.retryTxAction)return;let it={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:l?.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};d.retryTxAction({tx:it,txKey:s?.txKey??"",onClose:a,executeTxAction:i});},h=K&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),w=()=>{h&&d.cancelTxAction(s);},Q=()=>{h&&d.speedUpTxAction(s);},ft=o?.components?.Header,yt=o?.components?.Footer,Ct=o?.components?.StatusVisual,bt=o?.components?.ProgressIndicator,ht=o?.components?.InfoBlock,Nt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsx(Dialog,{open:x,onOpenChange:it=>!it&&a(s?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,r),children:[ft?jsx(ft,{onClose:()=>a(s?.txKey),title:jsx(At,{tx:e,className:W?.headerTitle})}):jsx(Sa,{onClose:()=>a(s?.txKey),title:jsx(At,{tx:e,className:W?.headerTitle}),classNames:W}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Ct?jsx(Ct,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsx(Dt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),bt?jsx(bt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsx(Ot,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),ht?jsx(ht,{tx:e,adapter:t}):jsx(Rt,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Nt?jsx(Nt,{error:s?.errorMessage||l?.errorMessage}):jsx(Kt,{error:s?.errorMessage||l?.errorMessage,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),yt?jsx(yt,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p}):jsx(Ha,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p,classNames:W})]})})})}function At({tx:t,className:a}){return jsx(O,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var Sa=({onClose:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":r.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})},La=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:c,classNames:i})=>{let{trackingModal:l}=g();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",i?.retryButton),children:l.retry}):!n&&!r&&o?jsx("button",{type:"button",onClick:c,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",i?.allTransactionsButton),children:l.allTransactions}):null},Ha=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:c,canReplace:i,isFailed:l,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:x}=g();return jsxs("footer",{className:cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",s?.footer),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",s?.footerActions),children:i&&o&&c&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:o,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",s?.speedUpButton),children:x.speedUp}),jsx("button",{type:"button",onClick:c,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",s?.cancelButton),children:x.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsx(La,{isFailed:l,onRetry:r,isProcessing:n,canReplace:i,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:s}),jsx("button",{type:"button",onClick:t,disabled:n&&!i,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",s?.closeModalButton),children:n&&!i?e.processing:e.close})]})]})};function Kt({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=useCopyToClipboard(),{actions:c,txError:i}=g();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",n?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",n?.icon)}),jsx("span",{children:i.title})]}),jsx("button",{type:"button",onClick:()=>o(t),title:r?i.copied:c.copy,"aria-label":r?i.copied:`${c.copy} error message`,className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:r?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:t})})]}):null}function Va({label:t,value:a,classNames:n}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",n?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function Rt({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:c,hashLabels:i}=g(),l=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!l)return null;let{InfoRow:p=Va}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},x="chainId"in t?t.chainId:t.desiredChainID,m=t.adapter===OrbitAdapter.SOLANA,u=m?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",s?.container,n),children:[jsx(p,{label:o.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(NetworkIcon,{chainId:setChainId(x)})}),jsx("span",{children:getChainName(setChainId(x))})]}),classNames:e}),t.localTimestamp&&jsx(p,{label:o.started,value:Vt.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),m&&jsxs(Fragment,{children:[u?.slot&&jsx(p,{label:o.slot,value:jsx(Y,{hash:u.slot.toString(),explorerUrl:l?.getExplorerUrl?`${l?.getExplorerUrl(`/block/${u.slot}`)}`:void 0}),classNames:e}),(typeof u?.confirmations=="number"||typeof u?.confirmations=="string")&&jsx(p,{label:c.confirmationsLabel,value:u.confirmations,classNames:e}),u?.recentBlockhash&&jsx(p,{label:i.recentBlockhash,value:jsx(Y,{hash:u.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsx("div",{className:cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",s?.separator),children:jsx(V,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var Ya={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 $a({status:t,label:a,isFirst:n=false,classNames:r}){let o=Ya[t],c=r?.statusOverrides?.[t],i=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",o.pulse)});default:return null}};return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",r?.container),children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,r?.line,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",o.border,o.fill,r?.circle,c?.circle),children:i()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]",r?.label,c?.label),children:a})]})}function Ot({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:c=$a,stepClassNames:i}){let{trackingModal:l,statuses:p}=g(),s=m=>{if(m===1)return "completed";if(m===2){if(a||n||r)return "completed";if(t)return "active"}if(m===3){if(a)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=m=>m===1?l.progressIndicator.created:m===2?l.progressIndicator.processing:n?p.failed:r?p.replaced:l.progressIndicator.succeed,x=[{status:s(1),label:e(1),isFirst:true,classNames:i},{status:s(2),label:e(2),classNames:i},{status:s(3),label:e(3),isLast:true,classNames:i}];return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",o),children:x.map((m,u)=>jsx(c,{...m},u))})}var za={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 Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:c}){let i=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:p}=za[i],s=c?.statusOverrides?.[i];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsx(l,{className:cn("novatx:h-16 novatx:w-16",p,c?.icon,s)})})}Vt.extend(oo);var eo=({chainId:t,className:a})=>jsx("div",{className:cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsx(NetworkIcon,{chainId:setChainId(t)})}),no=({timestamp:t,className:a})=>jsx("span",{className:cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Vt.unix(t).fromNow():"..."});function _t({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=eo,Title:c=O,Description:i=O,Timestamp:l=no,StatusBadge:p=tt,TransactionKey:s=V}=r?.components??{},e=r?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",e?.container,n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxs("div",{className:e?.contentWrapper,children:[jsx(c,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsx(l,{timestamp:t.localTimestamp,className:e?.timestamp}),jsx(i,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsx(s,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function ro({title:t,message:a,className:n,classNames:r}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",r?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",r?.message),children:a})]})}function Jt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o}){let{transactionsModal:c}=g(),i=a?selectAllTransactionsByActiveWallet(n,a).sort((x,m)=>(m.localTimestamp??0)-(x.localTimestamp??0)):[],{Placeholder:l=ro,HistoryItem:p=_t}=o?.components??{},s=()=>{if(!a)return jsx(l,{title:c.history.connectWalletTitle,message:c.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(i.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",o?.classNames?.listWrapper),children:i.map(x=>jsx(p,{tx:x,adapter:t,customization:{classNames:e}},x.txKey))})}return jsx(l,{title:c.history.noTransactionsTitle,message:c.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,r),children:[o?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),s()]})}var vo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":r.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})};function Gt({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:c}){let{transactionsModal:i}=g(),l=()=>a(false),p=n?.components?.Header,s=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&l(),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:l}):jsx(vo,{closeModal:l,title:i.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),s?jsx(s,{adapter:r,transactionsPool:c,connectedWalletAddress:o,customization:n?.historyCustomization}):jsx(Jt,{adapter:r,transactionsPool:c,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var fo=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 Zn({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:c,succeedContent:i,failedContent:l,replacedContent:p,resetTimeout:s=2500,className:e,classNames:x,...m}){let{trackedTxButton:u}=g(),[N,y]=useState("idle"),[C,T]=useState(void 0),f=fo(u);useEffect(()=>{y("idle"),T(void 0);},[o]),useEffect(()=>{if(!C)return;let w=r[C];if(w)switch(w.status){case TransactionStatus.Success:y("succeed");break;case TransactionStatus.Replaced:y("replaced");break;case TransactionStatus.Failed:y("failed");break}},[r,C,o]),useEffect(()=>{if(["succeed","failed","replaced"].includes(N)){let w=setTimeout(()=>{y("idle"),T(void 0);},s);return ()=>clearTimeout(w)}},[N,s]);let d=async()=>{y("loading");try{await a(),T(n());}catch(w){console.error("Transaction initiation failed:",w),y("failed");}},M=()=>{switch(N){case "loading":return c??f.loading;case "succeed":return i??f.succeed;case "failed":return l??f.failed;case "replaced":return p??f.replaced;default:return t}},K={idle:"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=x?.[N]??K[N],h=x?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsx("button",{...m,disabled:N!=="idle"||m.disabled,onClick:d,className:cn(h,b,e),children:M()})}var Po={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Ss({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:c,closeTxTrackedModal:i,labels:l,features:p,customization:s,...e}){let[x,m]=useState(false),u=useRef(r),N="nova-transactions",y=useMediaQuery("(max-width: 767px)"),C=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),T=useMemo(()=>deepMerge(Z,l||{}),[l]),f=useCallback(b=>{if(!C.toasts)return;let h=b.pending?"info":Po[b.status]??"info",w=Q=>jsx(Lt,{...Q,tx:b,openTxInfoModal:C.transactionsModal?()=>m(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(b.txKey)?toast.update(b.txKey,{render:w,type:h,containerId:N}):toast(w,{toastId:b.txKey,type:h,closeOnClick:false,containerId:N});},[r,C,s?.toast,t,a]);useEffect(()=>{let b=u.current;Object.values(r).forEach(h=>{let w=b[h.txKey];if(!w&&h.pending){f(h);return}w&&JSON.stringify(w)!==JSON.stringify(h)&&f(h);}),u.current=r;},[r,f]),useEffect(()=>{Object.values(r).forEach(b=>{toast.isActive(b.txKey,N)&&f(b);});},[a,f,r]);let d=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,M=C.toasts&&(!y||!d&&!x),K=useMemo(()=>{let b=s?.toastCloseButton;return b?({closeToast:h})=>jsx(ToastCloseButton,{closeToast:h,...b}):ToastCloseButton},[s?.toastCloseButton]);return jsxs(Pt,{labels:T,children:[M&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:K,containerId:N,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),C.transactionsModal&&jsx(Gt,{isOpen:x,setIsOpen:m,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r}),C.trackingTxModal&&jsx(Mt,{initialTx:o,onClose:i,onOpenAllTransactions:()=>m(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:c,adapter:t,connectedWalletAddress:a})]})}export{Z as a,Pt as b,g as c,Ss as d,Y as e,O as f,V as g,tt as h,Lt as i,Mt as j,Kt as k,Rt as l,Ot as m,Dt as n,_t as o,Jt as p,Gt as q,Zn as r};
|
package/dist/chunk-HWS752GS.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime'),novaCore=require('@tuwaio/nova-core'),pulsarCore=require('@tuwaio/pulsar-core'),reactToastify=require('react-toastify'),solid=require('@heroicons/react/24/solid'),orbitCore=require('@tuwaio/orbit-core'),Vt=require('dayjs'),oo=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Vt__default=/*#__PURE__*/_interopDefault(Vt);var oo__default=/*#__PURE__*/_interopDefault(oo);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 wt=react.createContext(Z),Pt=({labels:t,children:a})=>jsxRuntime.jsx(wt.Provider,{value:t,children:a}),g=()=>react.useContext(wt);function Y({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:c}){let{isCopied:i,copy:l}=novaCore.useCopyToClipboard(),{actions:p,txError:s}=g(),e=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),x=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"},c?.label),m=jsxRuntime.jsx("span",{className:novaCore.cn("novatx:font-mono",c?.hash),children:novaCore.textCenterEllipsis(a,5,5)});return jsxRuntime.jsxs("div",{className:e,children:[t&&jsxRuntime.jsxs("span",{className:x,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:novaCore.cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",c?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[m,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:novaCore.cn("novatx:h-4 novatx:w-4",c?.linkIcon)})]}):jsxRuntime.jsx("span",{className:novaCore.cn("novatx:text-[var(--tuwa-text-primary)]",c?.link),children:m}),jsxRuntime.jsx("button",{type:"button",onClick:()=>l(a),className:novaCore.cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",c?.copyButton),title:i?s.copied:p.copy,"aria-label":i?s.copied:p.copy,children:i?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 kt={[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 O({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:c=false}){let i,l="";if(typeof a=="string")i=a;else if(Array.isArray(a)){let e=kt[t||"default"]??kt.default;i=a[e.index],c&&(l=e.colorClass);}else i=n;return i?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)]",l,o),children:i}):null}function V({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:c,hashLinkClassNames:i,originalHashLinkClassNames:l}){let{hashLabels:p,statuses:s}=g(),e=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let x=(T,f)=>o?o(T):jsxRuntime.jsx(Y,{...T,classNames:f??i}),m=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",u=p[String(t.tracker)],N=u?x({label:u,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,y=(()=>{let T=t.hash,f=t.replacedTxHash;return !T&&!f?null:f?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T&&x({label:p.original,hash:T,variant:"compact"},l),typeof e.getExplorerTxUrl<"u"&&x({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):T&&typeof e.getExplorerTxUrl<"u"&&x({label:p.default,hash:T,explorerUrl:e.getExplorerTxUrl(t)})})(),C=u&&u!==p.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(m,r),children:[C&&N,y,typeof c=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",c]})]})}var va=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 tt({tx:t,className:a,classNames:n}){let{statuses:r}=g(),o=va(r),c="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",i=t.pending?"Pending":t.status,l=i?o[i]:null;if(!l)return jsxRuntime.jsx("div",{className:novaCore.cn(c,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsxRuntime.jsx("span",{className:n?.label,children:t.status??r.unknown})});let{label:p,Icon:s,badgeClasses:e,iconClasses:x}=l;return jsxRuntime.jsxs("div",{className:novaCore.cn(c,e,n?.container,a),children:[jsxRuntime.jsx(s,{className:novaCore.cn("novatx:h-4 novatx:w-4",x,n?.icon)}),jsxRuntime.jsx("span",{className:n?.label,children:p})]})}var ya=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Ca=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Lt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:c,adapter:i}){let{actions:l,toast:p}=g(),s=orbitCore.selectAdapterByKey({adapterKey:a.adapter,adapter:i}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===c?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),x=()=>{e&&s.cancelTxAction(a);},m=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:u=O,TransactionKey:N=V,StatusBadge:y=tt,SpeedUpButton:C=ya,CancelButton:T=Ca,TxInfoButton:f=ba}=o?.components??{},d=o?.classNames;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",d?.container,r),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",d?.header),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:w-[40px] novatx:flex-shrink-0",d?.iconWrapper),title:novaCore.getChainName(orbitCore.setChainId(a.chainId)),children:n??jsxRuntime.jsx(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(a.chainId)})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex-1",d?.contentWrapper),children:[jsxRuntime.jsx(u,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsxRuntime.jsx(u,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(N,{adapter:i,tx:a,variant:"toast",className:d?.transactionKey,hashLinkClassNames:{label:d?.hashLabel,link:d?.hashLink,copyButton:d?.hashCopyButton},originalHashLinkClassNames:{label:d?.originalHashLabel,link:d?.originalHashLink,copyButton:d?.originalHashCopyButton}}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",d?.footer),children:[jsxRuntime.jsx(y,{tx:a,className:d?.statusBadge,classNames:{icon:d?.statusBadgeIcon,label:d?.statusBadgeLabel}}),e?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",d?.actionsContainer),children:[jsxRuntime.jsx(C,{onClick:m,className:d?.speedUpButton,children:l.speedUp}),jsxRuntime.jsx(T,{onClick:x,className:d?.cancelButton,children:l.cancel})]}):t&&a.from.toLowerCase()===c?.toLowerCase()&&jsxRuntime.jsx(f,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Mt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:c,executeTxAction:i,initialTx:l,connectedWalletAddress:p}){let s=l?.lastTxKey?c[l.lastTxKey]:void 0,e=s??l,x=l?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),m=s?.status,u=l?.isInitializing??false,N=s?.pending??false,y=u||N,C=m===pulsarCore.TransactionStatus.Success,T=s?.isError||!!l?.errorMessage,f=m===pulsarCore.TransactionStatus.Replaced,d=e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,M=!!(T&&e&&l?.actionFunction&&i),K=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),b=()=>{if(!M||!d?.retryTxAction)return;let it={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:l?.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};d.retryTxAction({tx:it,txKey:s?.txKey??"",onClose:a,executeTxAction:i});},h=K&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),w=()=>{h&&d.cancelTxAction(s);},Q=()=>{h&&d.speedUpTxAction(s);},ft=o?.components?.Header,yt=o?.components?.Footer,Ct=o?.components?.StatusVisual,bt=o?.components?.ProgressIndicator,ht=o?.components?.InfoBlock,Nt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsxRuntime.jsx(novaCore.Dialog,{open:x,onOpenChange:it=>!it&&a(s?.txKey),children:jsxRuntime.jsx(novaCore.DialogContent,{className:novaCore.cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,r),children:[ft?jsxRuntime.jsx(ft,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(At,{tx:e,className:W?.headerTitle})}):jsxRuntime.jsx(Sa,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(At,{tx:e,className:W?.headerTitle}),classNames:W}),jsxRuntime.jsxs("main",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Ct?jsxRuntime.jsx(Ct,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsxRuntime.jsx(Dt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),bt?jsxRuntime.jsx(bt,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f}):jsxRuntime.jsx(Ot,{isProcessing:y,isSucceed:C,isFailed:T,isReplaced:f,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),ht?jsxRuntime.jsx(ht,{tx:e,adapter:t}):jsxRuntime.jsx(Rt,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Nt?jsxRuntime.jsx(Nt,{error:s?.errorMessage||l?.errorMessage}):jsxRuntime.jsx(Kt,{error:s?.errorMessage||l?.errorMessage,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),yt?jsxRuntime.jsx(yt,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(Ha,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:y,isFailed:T,canReplace:K,onRetry:M?b:void 0,onSpeedUp:h?Q:void 0,onCancel:h?w:void 0,connectedWalletAddress:p,classNames:W})]})})})}function At({tx:t,className:a}){return jsxRuntime.jsx(O,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:novaCore.cn("novatx:text-lg",a)})}var Sa=({onClose:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxRuntime.jsxs(novaCore.DialogHeader,{className:n?.header,children:[jsxRuntime.jsx(novaCore.DialogTitle,{className:n?.headerTitle,children:a}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:()=>t(),"aria-label":r.close,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})},La=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:c,classNames:i})=>{let{trackingModal:l}=g();return t&&a?jsxRuntime.jsx("button",{type:"button",onClick:a,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",i?.retryButton),children:l.retry}):!n&&!r&&o?jsxRuntime.jsx("button",{type:"button",onClick:c,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",i?.allTransactionsButton),children:l.allTransactions}):null},Ha=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:c,canReplace:i,isFailed:l,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:x}=g();return jsxRuntime.jsxs("footer",{className:novaCore.cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",s?.footer),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",s?.footerActions),children:i&&o&&c&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:o,className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",s?.speedUpButton),children:x.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:c,className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",s?.cancelButton),children:x.cancel})]})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsxRuntime.jsx(La,{isFailed:l,onRetry:r,isProcessing:n,canReplace:i,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:s}),jsxRuntime.jsx("button",{type:"button",onClick:t,disabled:n&&!i,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",s?.closeModalButton),children:n&&!i?e.processing:e.close})]})]})};function Kt({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=novaCore.useCopyToClipboard(),{actions:c,txError:i}=g();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",n?.container,a),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsxRuntime.jsx(solid.ExclamationTriangleIcon,{className:novaCore.cn("novatx:h-5 novatx:w-5",n?.icon)}),jsxRuntime.jsx("span",{children:i.title})]}),jsxRuntime.jsx("button",{type:"button",onClick:()=>o(t),title:r?i.copied:c.copy,"aria-label":r?i.copied:`${c.copy} error message`,className:novaCore.cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:r?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:novaCore.cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsxRuntime.jsx("p",{className:novaCore.cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:t})})]}):null}function Va({label:t,value:a,classNames:n}){return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",n?.row),children:[jsxRuntime.jsx("span",{className:novaCore.cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsxRuntime.jsx("span",{className:novaCore.cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function Rt({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:c,hashLabels:i}=g(),l=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!l)return null;let{InfoRow:p=Va}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},x="chainId"in t?t.chainId:t.desiredChainID,m=t.adapter===orbitCore.OrbitAdapter.SOLANA,u=m?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",s?.container,n),children:[jsxRuntime.jsx(p,{label:o.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(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(x)})}),jsxRuntime.jsx("span",{children:novaCore.getChainName(orbitCore.setChainId(x))})]}),classNames:e}),t.localTimestamp&&jsxRuntime.jsx(p,{label:o.started,value:Vt__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),m&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u?.slot&&jsxRuntime.jsx(p,{label:o.slot,value:jsxRuntime.jsx(Y,{hash:u.slot.toString(),explorerUrl:l?.getExplorerUrl?`${l?.getExplorerUrl(`/block/${u.slot}`)}`:void 0}),classNames:e}),(typeof u?.confirmations=="number"||typeof u?.confirmations=="string")&&jsxRuntime.jsx(p,{label:c.confirmationsLabel,value:u.confirmations,classNames:e}),u?.recentBlockhash&&jsxRuntime.jsx(p,{label:i.recentBlockhash,value:jsxRuntime.jsx(Y,{hash:u.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",s?.separator),children:jsxRuntime.jsx(V,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var Ya={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 $a({status:t,label:a,isFirst:n=false,classNames:r}){let o=Ya[t],c=r?.statusOverrides?.[t],i=()=>{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",o.pulse)});default:return null}};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",r?.container),children:[!n&&jsxRuntime.jsx("div",{className:novaCore.cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,r?.line,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",o.border,o.fill,r?.circle,c?.circle),children:i()}),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)]",r?.label,c?.label),children:a})]})}function Ot({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:c=$a,stepClassNames:i}){let{trackingModal:l,statuses:p}=g(),s=m=>{if(m===1)return "completed";if(m===2){if(a||n||r)return "completed";if(t)return "active"}if(m===3){if(a)return "completed";if(n)return "error";if(r)return "replaced";if(t)return "active"}return "inactive"},e=m=>m===1?l.progressIndicator.created:m===2?l.progressIndicator.processing:n?p.failed:r?p.replaced:l.progressIndicator.succeed,x=[{status:s(1),label:e(1),isFirst:true,classNames:i},{status:s(2),label:e(2),classNames:i},{status:s(3),label:e(3),isLast:true,classNames: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",o),children:x.map((m,u)=>jsxRuntime.jsx(c,{...m},u))})}var za={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 Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:c}){let i=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:p}=za[i],s=c?.statusOverrides?.[i];return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsxRuntime.jsx(l,{className:novaCore.cn("novatx:h-16 novatx:w-16",p,c?.icon,s)})})}Vt__default.default.extend(oo__default.default);var eo=({chainId:t,className:a})=>jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsxRuntime.jsx(novaCore.NetworkIcon,{chainId:orbitCore.setChainId(t)})}),no=({timestamp:t,className:a})=>jsxRuntime.jsx("span",{className:novaCore.cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Vt__default.default.unix(t).fromNow():"..."});function _t({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=eo,Title:c=O,Description:i=O,Timestamp:l=no,StatusBadge:p=tt,TransactionKey:s=V}=r?.components??{},e=r?.classNames;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)]",e?.container,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:novaCore.cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsxRuntime.jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxRuntime.jsxs("div",{className:e?.contentWrapper,children:[jsxRuntime.jsx(c,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsxRuntime.jsx(l,{timestamp:t.localTimestamp,className:e?.timestamp}),jsxRuntime.jsx(i,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsxRuntime.jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsxRuntime.jsx(s,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function ro({title:t,message:a,className:n,classNames:r}){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:novaCore.cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",r?.title),children:t}),jsxRuntime.jsx("p",{className:novaCore.cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",r?.message),children:a})]})}function Jt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o}){let{transactionsModal:c}=g(),i=a?pulsarCore.selectAllTransactionsByActiveWallet(n,a).sort((x,m)=>(m.localTimestamp??0)-(x.localTimestamp??0)):[],{Placeholder:l=ro,HistoryItem:p=_t}=o?.components??{},s=()=>{if(!a)return jsxRuntime.jsx(l,{title:c.history.connectWalletTitle,message:c.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(i.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return 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)]",o?.classNames?.listWrapper),children:i.map(x=>jsxRuntime.jsx(p,{tx:x,adapter:t,customization:{classNames:e}},x.txKey))})}return jsxRuntime.jsx(l,{title:c.history.noTransactionsTitle,message:c.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,r),children:[o?.title&&jsxRuntime.jsx("h3",{className:novaCore.cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),s()]})}var vo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=g();return jsxRuntime.jsxs(novaCore.DialogHeader,{className:n?.header,children:[jsxRuntime.jsx(novaCore.DialogTitle,{className:n?.title,children:a}),jsxRuntime.jsx(novaCore.DialogClose,{asChild:true,children:jsxRuntime.jsx("button",{type:"button",onClick:t,"aria-label":r.close,className:novaCore.cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsxRuntime.jsx(novaCore.CloseIcon,{})})})]})};function Gt({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:c}){let{transactionsModal:i}=g(),l=()=>a(false),p=n?.components?.Header,s=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&l(),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:l}):jsxRuntime.jsx(vo,{closeModal:l,title:i.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),s?jsxRuntime.jsx(s,{adapter:r,transactionsPool:c,connectedWalletAddress:o,customization:n?.historyCustomization}):jsxRuntime.jsx(Jt,{adapter:r,transactionsPool:c,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var fo=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 Zn({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:c,succeedContent:i,failedContent:l,replacedContent:p,resetTimeout:s=2500,className:e,classNames:x,...m}){let{trackedTxButton:u}=g(),[N,y]=react.useState("idle"),[C,T]=react.useState(void 0),f=fo(u);react.useEffect(()=>{y("idle"),T(void 0);},[o]),react.useEffect(()=>{if(!C)return;let w=r[C];if(w)switch(w.status){case pulsarCore.TransactionStatus.Success:y("succeed");break;case pulsarCore.TransactionStatus.Replaced:y("replaced");break;case pulsarCore.TransactionStatus.Failed:y("failed");break}},[r,C,o]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(N)){let w=setTimeout(()=>{y("idle"),T(void 0);},s);return ()=>clearTimeout(w)}},[N,s]);let d=async()=>{y("loading");try{await a(),T(n());}catch(w){console.error("Transaction initiation failed:",w),y("failed");}},M=()=>{switch(N){case "loading":return c??f.loading;case "succeed":return i??f.succeed;case "failed":return l??f.failed;case "replaced":return p??f.replaced;default:return t}},K={idle:"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=x?.[N]??K[N],h=x?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsxRuntime.jsx("button",{...m,disabled:N!=="idle"||m.disabled,onClick:d,className:novaCore.cn(h,b,e),children:M()})}var Po={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Ss({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:c,closeTxTrackedModal:i,labels:l,features:p,customization:s,...e}){let[x,m]=react.useState(false),u=react.useRef(r),N="nova-transactions",y=novaCore.useMediaQuery("(max-width: 767px)"),C=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),T=react.useMemo(()=>novaCore.deepMerge(Z,l||{}),[l]),f=react.useCallback(b=>{if(!C.toasts)return;let h=b.pending?"info":Po[b.status]??"info",w=Q=>jsxRuntime.jsx(Lt,{...Q,tx:b,openTxInfoModal:C.transactionsModal?()=>m(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});reactToastify.toast.isActive(b.txKey)?reactToastify.toast.update(b.txKey,{render:w,type:h,containerId:N}):reactToastify.toast(w,{toastId:b.txKey,type:h,closeOnClick:false,containerId:N});},[r,C,s?.toast,t,a]);react.useEffect(()=>{let b=u.current;Object.values(r).forEach(h=>{let w=b[h.txKey];if(!w&&h.pending){f(h);return}w&&JSON.stringify(w)!==JSON.stringify(h)&&f(h);}),u.current=r;},[r,f]),react.useEffect(()=>{Object.values(r).forEach(b=>{reactToastify.toast.isActive(b.txKey,N)&&f(b);});},[a,f,r]);let d=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,M=C.toasts&&(!y||!d&&!x),K=react.useMemo(()=>{let b=s?.toastCloseButton;return b?({closeToast:h})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:h,...b}):novaCore.ToastCloseButton},[s?.toastCloseButton]);return jsxRuntime.jsxs(Pt,{labels:T,children:[M&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:K,containerId:N,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),C.transactionsModal&&jsxRuntime.jsx(Gt,{isOpen:x,setIsOpen:m,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r}),C.trackingTxModal&&jsxRuntime.jsx(Mt,{initialTx:o,onClose:i,onOpenAllTransactions:()=>m(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:c,adapter:t,connectedWalletAddress:a})]})}exports.a=Z;exports.b=Pt;exports.c=g;exports.d=Ss;exports.e=Y;exports.f=O;exports.g=V;exports.h=tt;exports.i=Lt;exports.j=Mt;exports.k=Kt;exports.l=Rt;exports.m=Ot;exports.n=Dt;exports.o=_t;exports.p=Jt;exports.q=Gt;exports.r=Zn;
|