@tuwaio/nova-transactions 0.2.6 → 0.2.7
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 +62 -52
- package/dist/chunk-DKXUN36U.js +1 -0
- package/dist/chunk-HWS752GS.cjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.js +1 -1
- package/package.json +8 -8
- package/dist/chunk-B3JQWEZF.cjs +0 -1
- package/dist/chunk-QZL22XK4.js +0 -1
package/README.md
CHANGED
|
@@ -16,10 +16,10 @@ This package provides the **View Layer** for TUWA's transaction tracking ecosyst
|
|
|
16
16
|
|
|
17
17
|
## ✨ Core Features
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
19
|
+
- **🧩 Pre-built UI Suite:** A set of accessible components including `TrackingTxModal`, `TransactionsInfoModal`, and `ToastTransaction`, all managed internally by the `NovaTransactionsProvider`.
|
|
20
|
+
- **🔌 Plug-and-Play Integration:** Once connected to your Pulsar store, the UI automatically reacts to all transaction state changes.
|
|
21
|
+
- **🌐 Internationalization (custom version of i18n):** Built-in support for multiple languages with easy overrides for all text content via the `labels` prop.
|
|
22
|
+
- **🎨 Highly Customizable:** Styled with `@tuwaio/nova-core` to be easily themed using CSS variables. Almost every sub-component can be replaced with your own implementation via the `customization` prop.
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -28,12 +28,15 @@ This package provides the **View Layer** for TUWA's transaction tracking ecosyst
|
|
|
28
28
|
### Basic Installation
|
|
29
29
|
|
|
30
30
|
Install the main package:
|
|
31
|
+
|
|
31
32
|
```bash
|
|
32
33
|
pnpm add @tuwaio/nova-transactions
|
|
33
34
|
```
|
|
35
|
+
|
|
34
36
|
### Peer Dependencies
|
|
35
37
|
|
|
36
38
|
This package requires several peer dependencies for UI rendering:
|
|
39
|
+
|
|
37
40
|
```bash
|
|
38
41
|
# Core dependencies
|
|
39
42
|
pnpm add @tuwaio/nova-core @tuwaio/pulsar-core @tuwaio/orbit-core
|
|
@@ -52,6 +55,7 @@ pnpm add dayjs clsx tailwind-merge
|
|
|
52
55
|
### Complete Installation (All Packages)
|
|
53
56
|
|
|
54
57
|
For a complete setup with all TUWA packages:
|
|
58
|
+
|
|
55
59
|
```bash
|
|
56
60
|
# Using pnpm (recommended)
|
|
57
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,6 +66,7 @@ npm install @tuwaio/nova-transactions @tuwaio/nova-core @tuwaio/pulsar-core @tuw
|
|
|
62
66
|
# Using yarn
|
|
63
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
|
|
64
68
|
```
|
|
69
|
+
|
|
65
70
|
---
|
|
66
71
|
|
|
67
72
|
## 🚀 Getting Started
|
|
@@ -71,6 +76,7 @@ To use this library, you must render the `<NovaTransactionsProvider />` componen
|
|
|
71
76
|
Here is a complete example of a `src/providers/index.tsx` file that configures the entire system.
|
|
72
77
|
|
|
73
78
|
### 1. Create Transaction Store
|
|
79
|
+
|
|
74
80
|
```tsx
|
|
75
81
|
// src/hooks/txTrackingHooks.tsx
|
|
76
82
|
import { createBoundedUseStore, createPulsarStore } from '@tuwaio/pulsar-core';
|
|
@@ -85,23 +91,24 @@ export enum TxType {
|
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
type ExampleTx = Transaction & {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
type: TxType.example;
|
|
95
|
+
payload: {
|
|
96
|
+
value: number;
|
|
97
|
+
};
|
|
92
98
|
};
|
|
93
99
|
|
|
94
100
|
export type TransactionUnion = ExampleTx;
|
|
95
101
|
|
|
96
102
|
export const usePulsarStore = createBoundedUseStore(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
createPulsarStore<TransactionUnion>({
|
|
104
|
+
name: storageName,
|
|
105
|
+
adapter: evmAdapter(config, appChains),
|
|
106
|
+
}),
|
|
101
107
|
);
|
|
102
108
|
```
|
|
103
109
|
|
|
104
110
|
### 2. Setup Provider Component
|
|
111
|
+
|
|
105
112
|
```tsx
|
|
106
113
|
// src/providers/NovaTransactionsProvider.tsx
|
|
107
114
|
import { NovaTransactionsProvider as NP } from '@tuwaio/nova-transactions/providers';
|
|
@@ -112,32 +119,33 @@ import { useAccount } from 'wagmi';
|
|
|
112
119
|
import { usePulsarStore } from '@/hooks/txTrackingHooks';
|
|
113
120
|
|
|
114
121
|
export function NovaTransactionsProvider() {
|
|
115
|
-
const transactionsPool = usePulsarStore((state) => state.transactionsPool);
|
|
116
|
-
const initialTx = usePulsarStore((state) => state.initialTx);
|
|
117
|
-
const closeTxTrackedModal = usePulsarStore((state) => state.closeTxTrackedModal);
|
|
118
|
-
const handleTransaction = usePulsarStore((state) => state.handleTransaction);
|
|
119
|
-
const initializeTransactionsPool = usePulsarStore((state) => state.initializeTransactionsPool);
|
|
120
|
-
const getAdapter = usePulsarStore((state) => state.getAdapter);
|
|
122
|
+
const transactionsPool = usePulsarStore((state) => state.transactionsPool);
|
|
123
|
+
const initialTx = usePulsarStore((state) => state.initialTx);
|
|
124
|
+
const closeTxTrackedModal = usePulsarStore((state) => state.closeTxTrackedModal);
|
|
125
|
+
const handleTransaction = usePulsarStore((state) => state.handleTransaction);
|
|
126
|
+
const initializeTransactionsPool = usePulsarStore((state) => state.initializeTransactionsPool);
|
|
127
|
+
const getAdapter = usePulsarStore((state) => state.getAdapter);
|
|
121
128
|
|
|
122
|
-
useInitializeTransactionsPool({ initializeTransactionsPool });
|
|
129
|
+
useInitializeTransactionsPool({ initializeTransactionsPool });
|
|
123
130
|
|
|
124
|
-
const { address } = useAccount();
|
|
131
|
+
const { address } = useAccount();
|
|
125
132
|
|
|
126
|
-
return (
|
|
133
|
+
return (
|
|
127
134
|
<NP
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
transactionsPool={transactionsPool}
|
|
136
|
+
initialTx={initialTx}
|
|
137
|
+
closeTxTrackedModal={closeTxTrackedModal}
|
|
138
|
+
handleTransaction={handleTransaction}
|
|
139
|
+
connectedWalletAddress={address}
|
|
140
|
+
connectedAdapterType={TransactionAdapter.EVM}
|
|
141
|
+
adapter={getAdapter()}
|
|
135
142
|
/>
|
|
136
143
|
);
|
|
137
144
|
}
|
|
138
|
-
|
|
139
145
|
```
|
|
146
|
+
|
|
140
147
|
### 3. Integrate into App
|
|
148
|
+
|
|
141
149
|
```tsx
|
|
142
150
|
// src/providers/index.tsx
|
|
143
151
|
import { RainbowKitProvider } from '@rainbow-me/rainbowkit';
|
|
@@ -152,41 +160,43 @@ import { NovaTransactionsProvider } from './NovaTransactionsProvider';
|
|
|
152
160
|
const queryClient = new QueryClient();
|
|
153
161
|
|
|
154
162
|
export function Providers({ children }: { children: ReactNode }) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
return (
|
|
164
|
+
<WagmiProvider config={config}>
|
|
165
|
+
<QueryClientProvider client={queryClient}>
|
|
166
|
+
<RainbowKitProvider>
|
|
167
|
+
<NovaTransactionsProvider />
|
|
168
|
+
{children}
|
|
169
|
+
</RainbowKitProvider>
|
|
170
|
+
</QueryClientProvider>
|
|
171
|
+
</WagmiProvider>
|
|
172
|
+
);
|
|
165
173
|
}
|
|
166
174
|
```
|
|
167
175
|
|
|
168
176
|
## 🎨 Customization
|
|
169
177
|
|
|
170
178
|
You can easily override the default English text by passing a `labels` prop, or replace entire components using the `customization` prop.
|
|
179
|
+
|
|
171
180
|
```tsx
|
|
172
181
|
<NovaTransactionsProvider
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
182
|
+
// 1. Override text labels
|
|
183
|
+
labels={{
|
|
184
|
+
statuses: {
|
|
185
|
+
pending: 'В обработке...',
|
|
186
|
+
success: 'Успешно!',
|
|
187
|
+
failed: 'Ошибка!',
|
|
188
|
+
},
|
|
180
189
|
// ... other keys
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
}
|
|
190
|
+
}}
|
|
191
|
+
customization={{
|
|
192
|
+
components: {
|
|
193
|
+
statusBadge: ({ tx }) => <MyCustomBadge status={tx.status} />,
|
|
194
|
+
},
|
|
195
|
+
}}
|
|
187
196
|
// ... other required props
|
|
188
197
|
/>
|
|
189
198
|
```
|
|
199
|
+
|
|
190
200
|
---
|
|
191
201
|
|
|
192
202
|
## 🤝 Contributing & Support
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -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'),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;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkHWS752GS_cjs=require('./chunk-HWS752GS.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkHWS752GS_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkHWS752GS_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkHWS752GS_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkHWS752GS_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkHWS752GS_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkHWS752GS_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkHWS752GS_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkHWS752GS_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkHWS752GS_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkHWS752GS_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkHWS752GS_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkHWS752GS_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkHWS752GS_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkHWS752GS_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkHWS752GS_cjs.a}});
|
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-DKXUN36U.js';
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkHWS752GS_cjs=require('../chunk-HWS752GS.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkHWS752GS_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkHWS752GS_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkHWS752GS_cjs.c}});
|
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-DKXUN36U.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-transactions",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -69,24 +69,24 @@
|
|
|
69
69
|
"framer-motion": "12.x.x",
|
|
70
70
|
"react": ">=19.2.3",
|
|
71
71
|
"react-toastify": ">=11",
|
|
72
|
-
"@tuwaio/pulsar-core": ">=0.
|
|
72
|
+
"@tuwaio/pulsar-core": ">=0.4",
|
|
73
73
|
"@tuwaio/nova-core": ">=0.2.2",
|
|
74
74
|
"@tuwaio/orbit-core": ">=0.2.1",
|
|
75
75
|
"dayjs": "1.x.x"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@tuwaio/orbit-core": "^0.2.4",
|
|
79
|
-
"@tuwaio/pulsar-core": "^0.
|
|
79
|
+
"@tuwaio/pulsar-core": "^0.4.0",
|
|
80
80
|
"dayjs": "^1.11.19",
|
|
81
|
-
"@web3icons/react": "^4.1.
|
|
82
|
-
"@web3icons/common": "^0.11.
|
|
81
|
+
"@web3icons/react": "^4.1.14",
|
|
82
|
+
"@web3icons/common": "^0.11.43",
|
|
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.
|
|
86
|
+
"@types/react": "^19.2.9",
|
|
87
87
|
"autoprefixer": "^10.4.23",
|
|
88
88
|
"clsx": "^2.1.1",
|
|
89
|
-
"framer-motion": "^12.
|
|
89
|
+
"framer-motion": "^12.29.0",
|
|
90
90
|
"immer": "^11.1.3",
|
|
91
91
|
"postcss": "^8.5.6",
|
|
92
92
|
"postcss-cli": "^11.0.1",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"typescript": "~5.9.3",
|
|
97
97
|
"tailwindcss": "^4.1.18",
|
|
98
98
|
"zustand": "^5.0.10",
|
|
99
|
-
"@tuwaio/nova-core": "^0.2.
|
|
99
|
+
"@tuwaio/nova-core": "^0.2.6"
|
|
100
100
|
},
|
|
101
101
|
"scripts": {
|
|
102
102
|
"build": "tsup && pnpm exec postcss ./src/styles/app.css -o ./dist/index.css"
|
package/dist/chunk-B3JQWEZF.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'),Wt=require('dayjs'),no=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Wt__default=/*#__PURE__*/_interopDefault(Wt);var no__default=/*#__PURE__*/_interopDefault(no);var j={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var ht=react.createContext(j),Nt=({labels:t,children:a})=>jsxRuntime.jsx(ht.Provider,{value:t,children:a}),g=()=>react.useContext(ht);function $({label:t,hash:a,explorerUrl:n,variant:s="default",className:o,classNames:l}){let{isCopied:i,copy:c}=novaCore.useCopyToClipboard(),{actions:p,txError:r}=g(),e=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":s==="default","novatx:text-xs":s==="compact"},o),d=novaCore.cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":s==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":s==="compact"},l?.label),x=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:d,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:[x,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:x}),jsxRuntime.jsx("button",{type:"button",onClick:()=>c(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:i?r.copied:p.copy,"aria-label":i?r.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 wt={[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 R({txStatus:t,source:a,fallback:n,variant:s,className:o,applyColor:l=false}){let i,c="";if(typeof a=="string")i=a;else if(Array.isArray(a)){let e=wt[t||"default"]??wt.default;i=a[e.index],l&&(c=e.colorClass);}else i=n;return i?jsxRuntime.jsx("div",{className:novaCore.cn(s==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",c,o),children:i}):null}function _({tx:t,adapter:a,variant:n="toast",className:s,renderHashLink:o,confirmations:l,hashLinkClassNames:i,originalHashLinkClassNames:c}){let{hashLabels:p,statuses:r}=g(),e=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let d=(C,f)=>o?o(C):jsxRuntime.jsx($,{...C,classNames:f??i}),x=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",u=p[String(t.tracker)],T=u?d({label:u,hash:t.txKey,variant:t.tracker!==pulsarCore.TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===pulsarCore.TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,h=(()=>{let C=t.hash,f=t.replacedTxHash;return !C&&!f?null:f?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[C&&d({label:p.original,hash:C,variant:"compact"},c),typeof e.getExplorerTxUrl<"u"&&d({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):C&&typeof e.getExplorerTxUrl<"u"&&d({label:p.default,hash:C,explorerUrl:e.getExplorerTxUrl(t)})})(),y=u&&u!==p.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(x,s),children:[y&&T,h,typeof l=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[r.confirmationsLabel,": ",l]})]})}var ua=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 at({tx:t,className:a,classNames:n}){let{statuses:s}=g(),o=react.useMemo(()=>ua(s),[s]),l="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",i=t.pending?"Pending":t.status,c=i?o[i]:null;if(!c)return 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??s.unknown})});let{label:p,Icon:r,badgeClasses:e,iconClasses:d}=c;return jsxRuntime.jsxs("div",{className:novaCore.cn(l,e,n?.container,a),children:[jsxRuntime.jsx(r,{className:novaCore.cn("novatx:h-4 novatx:w-4",d,n?.icon)}),jsxRuntime.jsx("span",{className:n?.label,children:p})]})}var 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-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({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}),ha=({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 Bt({openTxInfoModal:t,tx:a,icon:n,className:s,customization:o,connectedWalletAddress:l,adapter:i}){let{actions:c,toast:p}=g(),r=orbitCore.selectAdapterByKey({adapterKey:a.adapter,adapter:i}),e=!!(a.tracker==="ethereum"&&a.pending&&r?.speedUpTxAction&&r?.cancelTxAction&&a.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),d=()=>{e&&r.cancelTxAction(a);},x=()=>{e&&r.speedUpTxAction(a);},{StatusAwareText:u=R,TransactionKey:T=_,StatusBadge:h=at,SpeedUpButton:y=Ca,CancelButton:C=ba,TxInfoButton:f=ha}=o?.components??{},m=o?.classNames;return 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",m?.container,s),children:[jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",m?.header),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:w-[40px] novatx:flex-shrink-0",m?.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",m?.contentWrapper),children:[jsxRuntime.jsx(u,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:m?.title}),jsxRuntime.jsx(u,{txStatus:a.status,source:a.description,variant:"description",className:m?.description})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(T,{adapter:i,tx:a,variant:"toast",className:m?.transactionKey,hashLinkClassNames:{label:m?.hashLabel,link:m?.hashLink,copyButton:m?.hashCopyButton},originalHashLinkClassNames:{label:m?.originalHashLabel,link:m?.originalHashLink,copyButton:m?.originalHashCopyButton}}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",m?.footer),children:[jsxRuntime.jsx(h,{tx:a,className:m?.statusBadge,classNames:{icon:m?.statusBadgeIcon,label:m?.statusBadgeLabel}}),e?jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",m?.actionsContainer),children:[jsxRuntime.jsx(y,{onClick:x,className:m?.speedUpButton,children:c.speedUp}),jsxRuntime.jsx(C,{onClick:d,className:m?.cancelButton,children:c.cancel})]}):t&&!!l&&jsxRuntime.jsx(f,{onClick:t,className:m?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Ht({adapter:t,onClose:a,onOpenAllTransactions:n,className:s,customization:o,transactionsPool:l,executeTxAction:i,initialTx:c,connectedWalletAddress:p}){let r=react.useMemo(()=>c?.lastTxKey?l[c.lastTxKey]:void 0,[l,c]),e=r??c,d=c?.withTrackedModal&&!r||(r?.isTrackedModalOpen??false),{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}=react.useMemo(()=>{let F=r?.status,Qt=c?.isInitializing??false,Zt=r?.pending??false;return {isProcessing:Qt||Zt,isSucceed:F===pulsarCore.TransactionStatus.Success,isFailed:r?.isError||!!c?.errorMessage,isReplaced:F===pulsarCore.TransactionStatus.Replaced}},[r,c]),y=react.useMemo(()=>e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),C=!!(T&&e&&c?.actionFunction&&i),f=!!(y?.speedUpTxAction&&y?.cancelTxAction&&r?.pending&&r.tracker==="ethereum"),m=()=>{if(!C||!y?.retryTxAction)return;let F={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:c?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};y.retryTxAction({tx:F,txKey:r?.txKey??"",onClose:a,executeTxAction:i});},B=f&&r&&["metamask"].includes(r?.connectorType.split(":")[1]),U=()=>{B&&y.cancelTxAction(r);},b=()=>{B&&y.speedUpTxAction(r);},w=o?.components?.Header,N=o?.components?.Footer,Z=o?.components?.StatusVisual,yt=o?.components?.ProgressIndicator,Ct=o?.components?.InfoBlock,bt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsxRuntime.jsx(novaCore.Dialog,{open:d,onOpenChange:F=>!F&&a(r?.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,s),children:[w?jsxRuntime.jsx(w,{onClose:()=>a(r?.txKey),title:jsxRuntime.jsx(Lt,{tx:e,className:W?.headerTitle})}):jsxRuntime.jsx(La,{onClose:()=>a(r?.txKey),title:jsxRuntime.jsx(Lt,{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:[Z?jsxRuntime.jsx(Z,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsxRuntime.jsx(Rt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),yt?jsxRuntime.jsx(yt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsxRuntime.jsx(Kt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),Ct?jsxRuntime.jsx(Ct,{tx:e,adapter:t}):jsxRuntime.jsx(At,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),bt?jsxRuntime.jsx(bt,{error:r?.errorMessage||c?.errorMessage}):jsxRuntime.jsx(Mt,{error:r?.errorMessage||c?.errorMessage,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),N?jsxRuntime.jsx(N,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(Ma,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p,classNames:W})]})})})}function Lt({tx:t,className:a}){return jsxRuntime.jsx(R,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:novaCore.cn("novatx:text-lg",a)})}var La=({onClose:t,title:a,classNames:n})=>{let{actions:s}=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":s.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,{})})})]})},Ha=({isFailed:t,onRetry:a,isProcessing:n,canReplace:s,connectedWalletAddress:o,onOpenAllTransactions:l,classNames:i})=>{let{trackingModal:c}=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:c.retry}):!n&&!s&&o?jsxRuntime.jsx("button",{type:"button",onClick:l,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:c.allTransactions}):null},Ma=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:s,onSpeedUp:o,onCancel:l,canReplace:i,isFailed:c,connectedWalletAddress:p,classNames:r})=>{let{trackingModal:e,actions:d}=g();return 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",r?.footer),children:[jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-4",r?.footerActions),children:i&&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",r?.speedUpButton),children:d.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",r?.cancelButton),children:d.cancel})]})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",r?.footerButtons),children:[jsxRuntime.jsx(Ha,{isFailed:c,onRetry:s,isProcessing:n,canReplace:i,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:r}),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",r?.closeModalButton),children:n&&!i?e.processing:e.close})]})]})};function Mt({error:t,className:a,classNames:n}){let{isCopied:s,copy:o}=novaCore.useCopyToClipboard(),{actions:l,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:s?i.copied:l.copy,"aria-label":s?i.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:s?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 _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",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 At({tx:t,adapter:a,className:n,customization:s}){let{txInfo:o,statuses:l,hashLabels:i}=g(),c=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!c)return null;let{InfoRow:p=_a}=s?.components??{},r=s?.classNames,e={row:r?.row,label:r?.rowLabel,value:r?.rowValue},d="chainId"in t?t.chainId:t.desiredChainID,x=t.adapter===orbitCore.OrbitAdapter.SOLANA,u=x?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",r?.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(d)})}),jsxRuntime.jsx("span",{children:novaCore.getChainName(orbitCore.setChainId(d))})]}),classNames:e}),t.localTimestamp&&jsxRuntime.jsx(p,{label:o.started,value:Wt__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),x&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u?.slot&&jsxRuntime.jsx(p,{label:o.slot,value:jsxRuntime.jsx($,{hash:u.slot.toString(),explorerUrl:c?.getExplorerUrl?`${c?.getExplorerUrl(`/block/${u.slot}`)}`:void 0}),classNames:e}),(typeof u?.confirmations=="number"||typeof u?.confirmations=="string")&&jsxRuntime.jsx(p,{label:l.confirmationsLabel,value:u.confirmations,classNames:e}),u?.recentBlockhash&&jsxRuntime.jsx(p,{label:i.recentBlockhash,value:jsxRuntime.jsx($,{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",r?.separator),children:jsxRuntime.jsx(_,{tx:t,adapter:a,variant:"history",renderHashLink:s?.components?.transactionKey,hashLinkClassNames:r?.hashLink,originalHashLinkClassNames:r?.originalHashLink})})]})}var qa={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Qa({status:t,label:a,isFirst:n=false,classNames:s}){let o=qa[t],l=s?.statusOverrides?.[t],i=()=>{switch(t){case "completed":return 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",s?.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,s?.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,s?.circle,l?.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)]",s?.label,l?.label),children:a})]})}function Kt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,StepComponent:l=Qa,stepClassNames:i}){let{trackingModal:c,statuses:p}=g(),r=react.useMemo(()=>{let e=x=>{if(x===1)return "completed";if(x===2){if(a||n||s)return "completed";if(t)return "active"}if(x===3){if(a)return "completed";if(n)return "error";if(s)return "replaced";if(t)return "active"}return "inactive"},d=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?p.failed:s?p.replaced:c.progressIndicator.succeed;return [{status:e(1),label:d(1),isFirst:true,classNames:i},{status:e(2),label:d(2),classNames:i},{status:e(3),label:d(3),isLast:true,classNames:i}]},[t,a,n,s,c,p,i]);return 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:r.map((e,d)=>jsxRuntime.jsx(l,{...e},d))})}var ao={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 Rt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,iconClassNames:l}){let i=a&&"succeed"||n&&"failed"||s&&"replaced"||t&&"processing"||"initializing",{Icon:c,className:p}=ao[i],r=l?.statusOverrides?.[i];return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsxRuntime.jsx(c,{className:novaCore.cn("novatx:h-16 novatx:w-16",p,l?.icon,r)})})}Wt__default.default.extend(no__default.default);var so=({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)})}),ro=({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?Wt__default.default.unix(t).fromNow():"..."});function Ft({tx:t,adapter:a,className:n,customization:s}){let{Icon:o=so,Title:l=R,Description:i=R,Timestamp:c=ro,StatusBadge:p=at,TransactionKey:r=_}=s?.components??{},e=s?.classNames;return 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(c,{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(r,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function lo({title:t,message:a,className:n,classNames:s}){return 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)]",s?.title),children:t}),jsxRuntime.jsx("p",{className:novaCore.cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",s?.message),children:a})]})}function Vt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:s,customization:o}){let{transactionsModal:l}=g(),i=react.useMemo(()=>a?pulsarCore.selectAllTransactionsByActiveWallet(n,a).sort((d,x)=>(x.localTimestamp??0)-(d.localTimestamp??0)):[],[n,a]),{Placeholder:c=lo,HistoryItem:p=Ft}=o?.components??{},r=()=>{if(!a)return jsxRuntime.jsx(c,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(i.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return 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(d=>jsxRuntime.jsx(p,{tx:d,adapter:t,customization:{classNames:e}},d.txKey))})}return jsxRuntime.jsx(c,{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,s),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}),r()]})}var To=({closeModal:t,title:a,classNames:n})=>{let{actions:s}=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":s.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 Jt({isOpen:t,setIsOpen:a,customization:n,adapter:s,connectedWalletAddress:o,transactionsPool:l}){let{transactionsModal:i}=g(),c=()=>a(false),p=n?.components?.Header,r=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:e=>!e&&c(),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:c}):jsxRuntime.jsx(To,{closeModal:c,title:i.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),r?jsxRuntime.jsx(r,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization}):jsxRuntime.jsx(Vt,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var ho=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 ps({children:t,action:a,getLastTxKey:n,transactionsPool:s,walletAddress:o,loadingContent:l,succeedContent:i,failedContent:c,replacedContent:p,resetTimeout:r=2500,className:e,classNames:d,...x}){let{trackedTxButton:u}=g(),[T,h]=react.useState("idle"),[y,C]=react.useState(void 0),f=react.useMemo(()=>ho(u),[u]);react.useEffect(()=>{h("idle"),C(void 0);},[o]),react.useEffect(()=>{if(!y)return;let N=s[y];if(N)switch(N.status){case pulsarCore.TransactionStatus.Success:h("succeed");break;case pulsarCore.TransactionStatus.Replaced:h("replaced");break;case pulsarCore.TransactionStatus.Failed:h("failed");break}},[s,y,o]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(T)){let N=setTimeout(()=>{h("idle"),C(void 0);},r);return ()=>clearTimeout(N)}},[T,r]);let m=async()=>{h("loading");try{await a(),C(n());}catch(N){console.error("Transaction initiation failed:",N),h("failed");}},B=()=>{switch(T){case "loading":return l??f.loading;case "succeed":return i??f.succeed;case "failed":return c??f.failed;case "replaced":return p??f.replaced;default:return t}},U={idle:"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=d?.[T]??U[T],w=d?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsxRuntime.jsx("button",{...x,disabled:T!=="idle"||x.disabled,onClick:m,className:novaCore.cn(w,b,e),children:B()})}var So={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Vs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s,initialTx:o,executeTxAction:l,closeTxTrackedModal:i,labels:c,features:p,customization:r,...e}){let[d,x]=react.useState(false),u=react.useRef(s),T="nova-transactions",h=novaCore.useMediaQuery("(max-width: 767px)"),y=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),C=react.useMemo(()=>novaCore.deepMerge(j,c||{}),[c]),f=react.useCallback(b=>{if(!y.toasts)return;let w=b.pending?"info":So[b.status]??"info",N=Z=>jsxRuntime.jsx(Bt,{...Z,tx:b,openTxInfoModal:y.transactionsModal?()=>x(true):void 0,customization:r?.toast,adapter:t,connectedWalletAddress:a});reactToastify.toast.isActive(b.txKey)?reactToastify.toast.update(b.txKey,{render:N,type:w,containerId:T}):reactToastify.toast(N,{toastId:b.txKey,type:w,closeOnClick:false,containerId:T});},[s,y,r?.toast,t,a]);react.useEffect(()=>{let b=u.current;Object.values(s).forEach(w=>{let N=b[w.txKey];if(!N&&w.pending){f(w);return}N&&JSON.stringify(N)!==JSON.stringify(w)&&f(w);}),u.current=s;},[s,f]),react.useEffect(()=>{Object.values(s).forEach(b=>{reactToastify.toast.isActive(b.txKey,T)&&f(b);});},[a,f,s]);let m=!!o?.withTrackedModal&&s[o?.lastTxKey??""]?.isTrackedModalOpen,B=y.toasts&&(!h||!m&&!d),U=react.useMemo(()=>{let b=r?.toastCloseButton;return b?({closeToast:w})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:w,...b}):novaCore.ToastCloseButton},[r?.toastCloseButton]);return jsxRuntime.jsxs(Nt,{labels:C,children:[B&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:U,containerId:T,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),y.transactionsModal&&jsxRuntime.jsx(Jt,{isOpen:d,setIsOpen:x,customization:r?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s}),y.trackingTxModal&&jsxRuntime.jsx(Ht,{initialTx:o,onClose:i,onOpenAllTransactions:()=>x(true),transactionsPool:s,customization:r?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:a})]})}exports.a=j;exports.b=Nt;exports.c=g;exports.d=Vs;exports.e=$;exports.f=R;exports.g=_;exports.h=at;exports.i=Bt;exports.j=Ht;exports.k=Mt;exports.l=At;exports.m=Kt;exports.n=Rt;exports.o=Ft;exports.p=Vt;exports.q=Jt;exports.r=ps;
|
package/dist/chunk-QZL22XK4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,getChainName,NetworkIcon,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import Wt from'dayjs';import no from'dayjs/plugin/relativeTime';var j={transactionsModal:{history:{title:"Transactions History",connectWalletTitle:"Connect Wallet",connectWalletMessage:"Please connect your wallet to see your past activity.",noTransactionsTitle:"No Transactions Yet",noTransactionsMessage:"Once you interact with the app, your transaction history will appear here."}},toast:{openTransactionsInfo:"Open transactions"},statuses:{pending:"Pending",success:"Success",failed:"Failed",reverted:"Reverted",replaced:"Replaced",unknown:"Unknown",confirmationsLabel:"Confirmations"},hashLabels:{gelato:"Gelato Task ID",safe:"Safe Tx Hash",original:"Original Tx Hash",replaced:"Replaced Tx Hash",default:"Tx Hash",recentBlockhash:"Recent Blockhash",solana:"Signature"},txInfo:{started:"Started",network:"Network",slot:"Slot"},txError:{title:"Error",copied:"Copied!"},trackingModal:{title:"Transaction Overview",processing:"Processing...",close:"Close",allTransactions:"All transactions",retry:"Retry",progressIndicator:{created:"Created",processing:"Processing",succeed:"Succeed"}},trackedTxButton:{loading:"Processing...",succeed:"Success",failed:"Failed",replaced:"Replaced"},actions:{copy:"Copy address",viewOnExplorer:"View on explorer",close:"Close",cancel:"Cancel",speedUp:"Speed up"}};var ht=createContext(j),Nt=({labels:t,children:a})=>jsx(ht.Provider,{value:t,children:a}),g=()=>useContext(ht);function $({label:t,hash:a,explorerUrl:n,variant:s="default",className:o,classNames:l}){let{isCopied:i,copy:c}=useCopyToClipboard(),{actions:p,txError:r}=g(),e=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":s==="default","novatx:text-xs":s==="compact"},o),d=cn("novatx:pr-1",{"novatx:font-bold novatx:text-[var(--tuwa-text-primary)]":s==="default","novatx:font-medium novatx:text-[var(--tuwa-text-secondary)]":s==="compact"},l?.label),x=jsx("span",{className:cn("novatx:font-mono",l?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:e,children:[t&&jsxs("span",{className:d,children:[t,":"]}),jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-x-2",children:[n?jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:cn("novatx:flex novatx:items-center novatx:gap-x-1 novatx:text-[var(--tuwa-text-accent)] novatx:transition-colors novatx:hover:underline",l?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[x,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",l?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",l?.link),children:x}),jsx("button",{type:"button",onClick:()=>c(a),className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:text-[var(--tuwa-text-secondary)]",l?.copyButton),title:i?r.copied:p.copy,"aria-label":i?r.copied:p.copy,children:i?jsx(CheckIcon,{className:"novatx:h-4 novatx:w-4 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-4 novatx:w-4"})})]})]})}var wt={[TransactionStatus.Success]:{index:1,colorClass:"novatx:text-[var(--tuwa-success-text)]"},[TransactionStatus.Failed]:{index:2,colorClass:"novatx:text-[var(--tuwa-error-text)]"},[TransactionStatus.Replaced]:{index:3,colorClass:"novatx:text-[var(--tuwa-text-secondary)]"},default:{index:0,colorClass:"novatx:text-[var(--tuwa-text-primary)]"}};function R({txStatus:t,source:a,fallback:n,variant:s,className:o,applyColor:l=false}){let i,c="";if(typeof a=="string")i=a;else if(Array.isArray(a)){let e=wt[t||"default"]??wt.default;i=a[e.index],l&&(c=e.colorClass);}else i=n;return i?jsx("div",{className:cn(s==="title"?"novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:mt-1 novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",c,o),children:i}):null}function _({tx:t,adapter:a,variant:n="toast",className:s,renderHashLink:o,confirmations:l,hashLinkClassNames:i,originalHashLinkClassNames:c}){let{hashLabels:p,statuses:r}=g(),e=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let d=(C,f)=>o?o(C):jsx($,{...C,classNames:f??i}),x=n==="toast"?"novatx:mt-2 novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2 novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-2":"novatx:flex novatx:w-full novatx:flex-col novatx:gap-y-2",u=p[String(t.tracker)],T=u?d({label:u,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,h=(()=>{let C=t.hash,f=t.replacedTxHash;return !C&&!f?null:f?jsxs(Fragment,{children:[C&&d({label:p.original,hash:C,variant:"compact"},c),typeof e.getExplorerTxUrl<"u"&&d({label:p.replaced,hash:f,explorerUrl:e.getExplorerTxUrl(t)})]}):C&&typeof e.getExplorerTxUrl<"u"&&d({label:p.default,hash:C,explorerUrl:e.getExplorerTxUrl(t)})})(),y=u&&u!==p.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(x,s),children:[y&&T,h,typeof l=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[r.confirmationsLabel,": ",l]})]})}var ua=t=>({Pending:{label:t.pending,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[TransactionStatus.Success]:{label:t.success,Icon:CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[TransactionStatus.Failed]:{label:t.failed,Icon:XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[TransactionStatus.Replaced]:{label:t.replaced,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function at({tx:t,className:a,classNames:n}){let{statuses:s}=g(),o=useMemo(()=>ua(s),[s]),l="novatx:inline-flex novatx:items-center novatx:gap-x-1.5 novatx:rounded-full novatx:px-2 novatx:py-1 novatx:text-xs novatx:font-medium",i=t.pending?"Pending":t.status,c=i?o[i]:null;if(!c)return jsx("div",{className:cn(l,"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",n?.container,a),children:jsx("span",{className:n?.label,children:t.status??s.unknown})});let{label:p,Icon:r,badgeClasses:e,iconClasses:d}=c;return jsxs("div",{className:cn(l,e,n?.container,a),children:[jsx(r,{className:cn("novatx:h-4 novatx:w-4",d,n?.icon)}),jsx("span",{className:n?.label,children:p})]})}var Ca=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ha=({onClick:t,children:a,className:n})=>jsx("button",{className:n||"novatx:cursor-pointer novatx:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-3 novatx:py-1 novatx:text-xs novatx:font-bold novatx:text-[var(--tuwa-text-on-accent)] novatx:shadow-lg novatx:transition-all novatx:duration-200 novatx:ease-in-out novatx:hover:shadow-xl novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)] novatx:active:scale-95",onClick:t,type:"button",children:a});function Bt({openTxInfoModal:t,tx:a,icon:n,className:s,customization:o,connectedWalletAddress:l,adapter:i}){let{actions:c,toast:p}=g(),r=selectAdapterByKey({adapterKey:a.adapter,adapter:i}),e=!!(a.tracker==="ethereum"&&a.pending&&r?.speedUpTxAction&&r?.cancelTxAction&&a.from.toLowerCase()===l?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),d=()=>{e&&r.cancelTxAction(a);},x=()=>{e&&r.speedUpTxAction(a);},{StatusAwareText:u=R,TransactionKey:T=_,StatusBadge:h=at,SpeedUpButton:y=Ca,CancelButton:C=ba,TxInfoButton:f=ha}=o?.components??{},m=o?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:w-full novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:bg-[var(--tuwa-bg-primary)] novatx:p-4 novatx:shadow-md",m?.container,s),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",m?.header),children:[jsx("div",{className:cn("novatx:w-[40px] novatx:flex-shrink-0",m?.iconWrapper),title:getChainName(setChainId(a.chainId)),children:n??jsx(NetworkIcon,{chainId:setChainId(a.chainId)})}),jsxs("div",{className:cn("novatx:flex-1",m?.contentWrapper),children:[jsx(u,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:m?.title}),jsx(u,{txStatus:a.status,source:a.description,variant:"description",className:m?.description})]})]}),jsxs("div",{children:[jsx(T,{adapter:i,tx:a,variant:"toast",className:m?.transactionKey,hashLinkClassNames:{label:m?.hashLabel,link:m?.hashLink,copyButton:m?.hashCopyButton},originalHashLinkClassNames:{label:m?.originalHashLabel,link:m?.originalHashLink,copyButton:m?.originalHashCopyButton}}),jsxs("div",{className:cn("novatx:mt-3 novatx:flex novatx:items-center novatx:justify-between",m?.footer),children:[jsx(h,{tx:a,className:m?.statusBadge,classNames:{icon:m?.statusBadgeIcon,label:m?.statusBadgeLabel}}),e?jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",m?.actionsContainer),children:[jsx(y,{onClick:x,className:m?.speedUpButton,children:c.speedUp}),jsx(C,{onClick:d,className:m?.cancelButton,children:c.cancel})]}):t&&!!l&&jsx(f,{onClick:t,className:m?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Ht({adapter:t,onClose:a,onOpenAllTransactions:n,className:s,customization:o,transactionsPool:l,executeTxAction:i,initialTx:c,connectedWalletAddress:p}){let r=useMemo(()=>c?.lastTxKey?l[c.lastTxKey]:void 0,[l,c]),e=r??c,d=c?.withTrackedModal&&!r||(r?.isTrackedModalOpen??false),{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}=useMemo(()=>{let F=r?.status,Qt=c?.isInitializing??false,Zt=r?.pending??false;return {isProcessing:Qt||Zt,isSucceed:F===TransactionStatus.Success,isFailed:r?.isError||!!c?.errorMessage,isReplaced:F===TransactionStatus.Replaced}},[r,c]),y=useMemo(()=>e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,[e,t]),C=!!(T&&e&&c?.actionFunction&&i),f=!!(y?.speedUpTxAction&&y?.cancelTxAction&&r?.pending&&r.tracker==="ethereum"),m=()=>{if(!C||!y?.retryTxAction)return;let F={adapter:e.adapter,type:e.type,desiredChainID:"desiredChainID"in e?e.desiredChainID:e.chainId,actionFunction:c?.actionFunction,title:e.title,description:e.description,payload:e.payload,rpcUrl:"rpcUrl"in e?e?.rpcUrl:"desiredChainID"in e?e.desiredChainID:e.chainId.split(":")[1],withTrackedModal:"withTrackedModal"in e?e.withTrackedModal:false};y.retryTxAction({tx:F,txKey:r?.txKey??"",onClose:a,executeTxAction:i});},B=f&&r&&["metamask"].includes(r?.connectorType.split(":")[1]),U=()=>{B&&y.cancelTxAction(r);},b=()=>{B&&y.speedUpTxAction(r);},w=o?.components?.Header,N=o?.components?.Footer,Z=o?.components?.StatusVisual,yt=o?.components?.ProgressIndicator,Ct=o?.components?.InfoBlock,bt=o?.components?.ErrorBlock;if(!e)return null;let W=o?.classNames;return jsx(Dialog,{open:d,onOpenChange:F=>!F&&a(r?.txKey),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-md",o?.modalProps?.className),...o?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:flex novatx:w-full novatx:flex-col",W?.container,s),children:[w?jsx(w,{onClose:()=>a(r?.txKey),title:jsx(Lt,{tx:e,className:W?.headerTitle})}):jsx(La,{onClose:()=>a(r?.txKey),title:jsx(Lt,{tx:e,className:W?.headerTitle}),classNames:W}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",W?.main),children:[Z?jsx(Z,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsx(Rt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),yt?jsx(yt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h}):jsx(Kt,{isProcessing:x,isSucceed:u,isFailed:T,isReplaced:h,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),Ct?jsx(Ct,{tx:e,adapter:t}):jsx(At,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),bt?jsx(bt,{error:r?.errorMessage||c?.errorMessage}):jsx(Mt,{error:r?.errorMessage||c?.errorMessage,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),N?jsx(N,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p}):jsx(Ma,{onClose:()=>a(r?.txKey),onOpenAllTransactions:n,isProcessing:x,isFailed:T,canReplace:f,onRetry:C?m:void 0,onSpeedUp:B?b:void 0,onCancel:B?U:void 0,connectedWalletAddress:p,classNames:W})]})})})}function Lt({tx:t,className:a}){return jsx(R,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var La=({onClose:t,title:a,classNames:n})=>{let{actions:s}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.headerTitle,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:()=>t(),"aria-label":s.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})},Ha=({isFailed:t,onRetry:a,isProcessing:n,canReplace:s,connectedWalletAddress:o,onOpenAllTransactions:l,classNames:i})=>{let{trackingModal:c}=g();return t&&a?jsx("button",{type:"button",onClick:a,className:cn("novatx:cursor-pointer novatx:rounded-t-md novatx:sm:rounded-md novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-on-accent)] novatx:transition-opacity novatx:hover:from-[var(--tuwa-button-gradient-from-hover)] novatx:hover:to-[var(--tuwa-button-gradient-to-hover)]",i?.retryButton),children:c.retry}):!n&&!s&&o?jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)]",i?.allTransactionsButton),children:c.allTransactions}):null},Ma=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:s,onSpeedUp:o,onCancel:l,canReplace:i,isFailed:c,connectedWalletAddress:p,classNames:r})=>{let{trackingModal:e,actions:d}=g();return jsxs("footer",{className:cn("novatx:flex novatx:w-full novatx:items-center novatx:justify-between novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:p-4",r?.footer),children:[jsx("div",{className:cn("novatx:flex novatx:items-center novatx:gap-4",r?.footerActions),children:i&&o&&l&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:o,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",r?.speedUpButton),children:d.speedUp}),jsx("button",{type:"button",onClick:l,className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",r?.cancelButton),children:d.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",r?.footerButtons),children:[jsx(Ha,{isFailed:c,onRetry:s,isProcessing:n,canReplace:i,connectedWalletAddress:p,onOpenAllTransactions:a,classNames:r}),jsx("button",{type:"button",onClick:t,disabled:n&&!i,className:cn("novatx:cursor-pointer novatx:rounded-md novatx:bg-[var(--tuwa-bg-muted)] novatx:px-4 novatx:py-2 novatx:text-sm novatx:font-semibold novatx:text-[var(--tuwa-text-primary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-border-primary)] novatx:disabled:cursor-not-allowed novatx:disabled:opacity-50",r?.closeModalButton),children:n&&!i?e.processing:e.close})]})]})};function Mt({error:t,className:a,classNames:n}){let{isCopied:s,copy:o}=useCopyToClipboard(),{actions:l,txError:i}=g();return t?jsxs("div",{className:cn("novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-error-icon)]/30 novatx:bg-[var(--tuwa-error-bg)] novatx:p-3 novatx:text-sm",n?.container,a),children:[jsxs("div",{className:cn("novatx:mb-2 novatx:flex novatx:items-center novatx:justify-between",n?.header),children:[jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-2 novatx:font-bold novatx:text-[var(--tuwa-error-icon)]",n?.title),children:[jsx(ExclamationTriangleIcon,{className:cn("novatx:h-5 novatx:w-5",n?.icon)}),jsx("span",{children:i.title})]}),jsx("button",{type:"button",onClick:()=>o(t),title:s?i.copied:l.copy,"aria-label":s?i.copied:`${l.copy} error message`,className:cn("novatx:cursor-pointer novatx:text-[var(--tuwa-error-icon)]/50 novatx:transition-colors novatx:hover:text-[var(--tuwa-error-icon)]",n?.copyButton),children:s?jsx(CheckIcon,{className:"novatx:h-5 novatx:w-5 novatx:text-[var(--tuwa-success-icon)]"}):jsx(DocumentDuplicateIcon,{className:"novatx:h-5 novatx:w-5"})})]}),jsx("div",{className:cn("novatx:max-h-24 novatx:overflow-y-auto novatx:rounded novatx:bg-[var(--tuwa-bg-primary)] novatx:p-2",n?.messageContainer),children:jsx("p",{className:cn("novatx:font-mono novatx:text-xs novatx:text-[var(--tuwa-error-text)] novatx:break-all",n?.messageText),children:t})})]}):null}function _a({label:t,value:a,classNames:n}){return jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:justify-between novatx:text-sm",n?.row),children:[jsx("span",{className:cn("novatx:text-[var(--tuwa-text-secondary)]",n?.label),children:t}),jsx("span",{className:cn("novatx:font-medium novatx:text-[var(--tuwa-text-primary)]",n?.value),children:a})]})}function At({tx:t,adapter:a,className:n,customization:s}){let{txInfo:o,statuses:l,hashLabels:i}=g(),c=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!c)return null;let{InfoRow:p=_a}=s?.components??{},r=s?.classNames,e={row:r?.row,label:r?.rowLabel,value:r?.rowValue},d="chainId"in t?t.chainId:t.desiredChainID,x=t.adapter===OrbitAdapter.SOLANA,u=x?t:void 0;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-3 novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)] novatx:p-3",r?.container,n),children:[jsx(p,{label:o.network,value:jsxs("div",{className:"novatx:flex novatx:items-center novatx:justify-end novatx:gap-2",children:[jsx("div",{className:"novatx:h-4 novatx:w-4",children:jsx(NetworkIcon,{chainId:setChainId(d)})}),jsx("span",{children:getChainName(setChainId(d))})]}),classNames:e}),t.localTimestamp&&jsx(p,{label:o.started,value:Wt.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),x&&jsxs(Fragment,{children:[u?.slot&&jsx(p,{label:o.slot,value:jsx($,{hash:u.slot.toString(),explorerUrl:c?.getExplorerUrl?`${c?.getExplorerUrl(`/block/${u.slot}`)}`:void 0}),classNames:e}),(typeof u?.confirmations=="number"||typeof u?.confirmations=="string")&&jsx(p,{label:l.confirmationsLabel,value:u.confirmations,classNames:e}),u?.recentBlockhash&&jsx(p,{label:i.recentBlockhash,value:jsx($,{hash:u.recentBlockhash}),classNames:e})]}),"txKey"in t&&t.txKey&&jsx("div",{className:cn("novatx:border-t novatx:border-[var(--tuwa-border-primary)] novatx:pt-3",r?.separator),children:jsx(_,{tx:t,adapter:a,variant:"history",renderHashLink:s?.components?.transactionKey,hashLinkClassNames:r?.hashLink,originalHashLinkClassNames:r?.originalHashLink})})]})}var qa={completed:{line:"novatx:bg-[var(--tuwa-success-icon)]",border:"novatx:border-[var(--tuwa-success-icon)]",fill:"novatx:bg-[var(--tuwa-success-icon)]"},error:{line:"novatx:bg-[var(--tuwa-error-icon)]",border:"novatx:border-[var(--tuwa-error-icon)]",fill:"novatx:bg-[var(--tuwa-error-icon)]"},replaced:{line:"novatx:bg-[var(--tuwa-info-icon)]",border:"novatx:border-[var(--tuwa-info-icon)]",fill:"novatx:bg-[var(--tuwa-info-icon)]"},active:{line:"novatx:bg-[var(--tuwa-pending-icon)]",border:"novatx:border-[var(--tuwa-pending-icon)]",fill:"novatx:bg-transparent",pulse:"novatx:bg-[var(--tuwa-pending-icon)]"},inactive:{line:"novatx:bg-[var(--tuwa-border-primary)]",border:"novatx:border-[var(--tuwa-border-primary)]",fill:"novatx:bg-transparent"}};function Qa({status:t,label:a,isFirst:n=false,classNames:s}){let o=qa[t],l=s?.statusOverrides?.[t],i=()=>{switch(t){case "completed":return jsx(CheckIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "error":return jsx(ExclamationTriangleIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "replaced":return jsx(ArrowPathIcon,{className:"novatx:h-3 novatx:w-3 novatx:text-white"});case "active":return jsx("div",{className:cn("novatx:h-2 novatx:w-2 novatx:animate-pulse novatx:rounded-full",o.pulse)});default:return null}};return jsxs("div",{className:cn("novatx:relative novatx:flex novatx:min-w-[80px] novatx:flex-1 novatx:flex-col novatx:items-center",s?.container),children:[!n&&jsx("div",{className:cn("novatx:absolute novatx:right-1/2 novatx:top-[10px] novatx:h-0.5 novatx:w-full",o.line,s?.line,l?.line)}),jsx("div",{className:cn("novatx:relative novatx:z-10 novatx:flex novatx:h-5 novatx:w-5 novatx:items-center novatx:justify-center novatx:rounded-full novatx:border-2",o.border,o.fill,s?.circle,l?.circle),children:i()}),jsx("span",{className:cn("novatx:mt-2 novatx:text-center novatx:text-xs",t!=="inactive"?"novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]":"novatx:text-[var(--tuwa-text-secondary)]",s?.label,l?.label),children:a})]})}function Kt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,StepComponent:l=Qa,stepClassNames:i}){let{trackingModal:c,statuses:p}=g(),r=useMemo(()=>{let e=x=>{if(x===1)return "completed";if(x===2){if(a||n||s)return "completed";if(t)return "active"}if(x===3){if(a)return "completed";if(n)return "error";if(s)return "replaced";if(t)return "active"}return "inactive"},d=x=>x===1?c.progressIndicator.created:x===2?c.progressIndicator.processing:n?p.failed:s?p.replaced:c.progressIndicator.succeed;return [{status:e(1),label:d(1),isFirst:true,classNames:i},{status:e(2),label:d(2),classNames:i},{status:e(3),label:d(3),isLast:true,classNames:i}]},[t,a,n,s,c,p,i]);return jsx("div",{className:cn("novatx:flex novatx:w-full novatx:items-start novatx:px-4 novatx:pt-2 novatx:pb-1",o),children:r.map((e,d)=>jsx(l,{...e},d))})}var ao={succeed:{Icon:CheckCircleIcon,className:"novatx:text-[var(--tuwa-success-icon)]"},failed:{Icon:ExclamationCircleIcon,className:"novatx:text-[var(--tuwa-error-icon)]"},replaced:{Icon:ArrowPathIcon,className:"novatx:text-[var(--tuwa-info-icon)]"},processing:{Icon:ArrowPathIcon,className:"novatx:animate-spin novatx:text-[var(--tuwa-text-accent)]"},initializing:{Icon:ClockIcon,className:"novatx:animate-pulse novatx:text-[var(--tuwa-pending-icon)]"}};function Rt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:s,className:o,iconClassNames:l}){let i=a&&"succeed"||n&&"failed"||s&&"replaced"||t&&"processing"||"initializing",{Icon:c,className:p}=ao[i],r=l?.statusOverrides?.[i];return jsx("div",{className:cn("novatx:flex novatx:justify-center novatx:py-4",o),children:jsx(c,{className:cn("novatx:h-16 novatx:w-16",p,l?.icon,r)})})}Wt.extend(no);var so=({chainId:t,className:a})=>jsx("div",{className:cn("novatx:h-8 novatx:w-8 novatx:text-[var(--tuwa-text-secondary)]",a),children:jsx(NetworkIcon,{chainId:setChainId(t)})}),ro=({timestamp:t,className:a})=>jsx("span",{className:cn("novatx:mb-1 novatx:block novatx:text-xs novatx:text-[var(--tuwa-text-secondary)]",a),children:t?Wt.unix(t).fromNow():"..."});function Ft({tx:t,adapter:a,className:n,customization:s}){let{Icon:o=so,Title:l=R,Description:i=R,Timestamp:c=ro,StatusBadge:p=at,TransactionKey:r=_}=s?.components??{},e=s?.classNames;return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-2 novatx:border-b novatx:border-[var(--tuwa-border-secondary)] novatx:p-3 novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-secondary)]",e?.container,n),children:[jsxs("div",{className:"novatx:flex novatx:items-start novatx:justify-between",children:[jsxs("div",{className:"novatx:flex novatx:items-center novatx:gap-4",children:[jsx("div",{className:cn("novatx:flex novatx:h-10 novatx:w-10 novatx:flex-shrink-0 novatx:items-center novatx:justify-center novatx:rounded-full novatx:bg-[var(--tuwa-bg-muted)]",e?.iconWrapper),children:jsx(o,{chainId:t.chainId,className:e?.icon})}),jsxs("div",{className:e?.contentWrapper,children:[jsx(l,{txStatus:t.status,source:t.title,fallback:t.type,variant:"title",applyColor:true,className:e?.title}),jsx(c,{timestamp:t.localTimestamp,className:e?.timestamp}),jsx(i,{txStatus:t.status,source:t.description,variant:"description",className:e?.description})]})]}),jsx(p,{tx:t,className:e?.statusBadge,classNames:{icon:e?.statusBadgeIcon,label:e?.statusBadgeLabel}})]}),jsx(r,{tx:t,adapter:a,variant:"history",className:e?.txKeyContainer,hashLinkClassNames:{label:e?.hashLabel,link:e?.hashLink,copyButton:e?.hashCopyButton},originalHashLinkClassNames:{label:e?.originalHashLabel,link:e?.originalHashLink,copyButton:e?.originalHashCopyButton}})]})}function lo({title:t,message:a,className:n,classNames:s}){return jsxs("div",{className:cn("novatx:rounded-lg novatx:bg-[var(--tuwa-bg-muted)] novatx:p-8 novatx:text-center",n),children:[jsx("h4",{className:cn("novatx:font-semibold novatx:text-[var(--tuwa-text-primary)]",s?.title),children:t}),jsx("p",{className:cn("novatx:mt-1 novatx:text-sm novatx:text-[var(--tuwa-text-secondary)]",s?.message),children:a})]})}function Vt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:s,customization:o}){let{transactionsModal:l}=g(),i=useMemo(()=>a?selectAllTransactionsByActiveWallet(n,a).sort((d,x)=>(x.localTimestamp??0)-(d.localTimestamp??0)):[],[n,a]),{Placeholder:c=lo,HistoryItem:p=Ft}=o?.components??{},r=()=>{if(!a)return jsx(c,{title:l.history.connectWalletTitle,message:l.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(i.length>0){let e={container:o?.classNames?.itemContainer,iconWrapper:o?.classNames?.itemIconWrapper,icon:o?.classNames?.itemIcon,contentWrapper:o?.classNames?.itemContentWrapper,title:o?.classNames?.itemTitle,timestamp:o?.classNames?.itemTimestamp,description:o?.classNames?.itemDescription,statusBadge:o?.classNames?.itemStatusBadge,statusBadgeIcon:o?.classNames?.itemStatusBadgeIcon,statusBadgeLabel:o?.classNames?.itemStatusBadgeLabel,txKeyContainer:o?.classNames?.itemTxKeyContainer,hashLabel:o?.classNames?.itemHashLabel,hashLink:o?.classNames?.itemHashLink,hashCopyButton:o?.classNames?.itemHashCopyButton,originalHashLabel:o?.classNames?.itemOriginalHashLabel,originalHashLink:o?.classNames?.itemOriginalHashLink,originalHashCopyButton:o?.classNames?.itemOriginalHashCopyButton};return jsx("div",{className:cn("NovaCustomScroll novatx:max-h-[400px] novatx:overflow-y-auto novatx:rounded-lg novatx:border novatx:border-[var(--tuwa-border-primary)] novatx:bg-[var(--tuwa-bg-primary)]",o?.classNames?.listWrapper),children:i.map(d=>jsx(p,{tx:d,adapter:t,customization:{classNames:e}},d.txKey))})}return jsx(c,{title:l.history.noTransactionsTitle,message:l.history.noTransactionsMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}})};return jsxs("div",{className:cn("novatx:flex novatx:flex-col novatx:gap-y-3",o?.classNames?.container,s),children:[o?.title&&jsx("h3",{className:cn("novatx:text-lg novatx:font-bold novatx:text-[var(--tuwa-text-primary)]",o?.classNames?.titleText),children:o?.title}),r()]})}var To=({closeModal:t,title:a,classNames:n})=>{let{actions:s}=g();return jsxs(DialogHeader,{className:n?.header,children:[jsx(DialogTitle,{className:n?.title,children:a}),jsx(DialogClose,{asChild:true,children:jsx("button",{type:"button",onClick:t,"aria-label":s.close,className:cn("novatx:cursor-pointer novatx:rounded-full novatx:p-1 novatx:text-[var(--tuwa-text-tertiary)] novatx:transition-colors novatx:hover:bg-[var(--tuwa-bg-muted)] novatx:hover:text-[var(--tuwa-text-primary)]",n?.closeButton),children:jsx(CloseIcon,{})})})]})};function Jt({isOpen:t,setIsOpen:a,customization:n,adapter:s,connectedWalletAddress:o,transactionsPool:l}){let{transactionsModal:i}=g(),c=()=>a(false),p=n?.components?.Header,r=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:e=>!e&&c(),children:jsx(DialogContent,{className:cn("novatx:w-full novatx:sm:max-w-2xl",n?.modalProps?.className),...n?.modalProps,children:jsxs("div",{className:cn("novatx:relative novatx:max-h-[95dvh] novatx:w-full novatx:flex novatx:flex-col",n?.classNames?.contentWrapper),children:[p?jsx(p,{closeModal:c}):jsx(To,{closeModal:c,title:i.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),r?jsx(r,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization}):jsx(Vt,{adapter:s,transactionsPool:l,connectedWalletAddress:o,customization:n?.historyCustomization})]})})})}var ho=t=>({replaced:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.replaced})]}),loading:jsxs(Fragment,{children:[jsx(ArrowPathIcon,{className:"novatx:h-4 novatx:w-4 novatx:animate-spin"}),jsx("span",{children:t.loading})]}),succeed:jsxs(Fragment,{children:[jsx(CheckCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.succeed})]}),failed:jsxs(Fragment,{children:[jsx(ExclamationCircleIcon,{className:"novatx:h-4 novatx:w-4"}),jsx("span",{children:t.failed})]})});function ps({children:t,action:a,getLastTxKey:n,transactionsPool:s,walletAddress:o,loadingContent:l,succeedContent:i,failedContent:c,replacedContent:p,resetTimeout:r=2500,className:e,classNames:d,...x}){let{trackedTxButton:u}=g(),[T,h]=useState("idle"),[y,C]=useState(void 0),f=useMemo(()=>ho(u),[u]);useEffect(()=>{h("idle"),C(void 0);},[o]),useEffect(()=>{if(!y)return;let N=s[y];if(N)switch(N.status){case TransactionStatus.Success:h("succeed");break;case TransactionStatus.Replaced:h("replaced");break;case TransactionStatus.Failed:h("failed");break}},[s,y,o]),useEffect(()=>{if(["succeed","failed","replaced"].includes(T)){let N=setTimeout(()=>{h("idle"),C(void 0);},r);return ()=>clearTimeout(N)}},[T,r]);let m=async()=>{h("loading");try{await a(),C(n());}catch(N){console.error("Transaction initiation failed:",N),h("failed");}},B=()=>{switch(T){case "loading":return l??f.loading;case "succeed":return i??f.succeed;case "failed":return c??f.failed;case "replaced":return p??f.replaced;default:return t}},U={idle:"novatx:bg-gradient-to-r novatx:from-[var(--tuwa-button-gradient-from)] novatx:to-[var(--tuwa-button-gradient-to)] novatx:text-[var(--tuwa-text-on-accent)] novatx:hover:opacity-90",loading:"novatx:bg-gray-400 novatx:text-white",replaced:"novatx:bg-gray-500 novatx:text-white",succeed:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",failed:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]"},b=d?.[T]??U[T],w=d?.base??"novatx:flex novatx:cursor-pointer novatx:items-center novatx:justify-center novatx:gap-1.5 novatx:rounded-md novatx:px-3 novatx:py-1.5 novatx:text-sm novatx:font-medium novatx:transition-all novatx:duration-200 novatx:disabled:cursor-not-allowed novatx:disabled:opacity-70";return jsx("button",{...x,disabled:T!=="idle"||x.disabled,onClick:m,className:cn(w,b,e),children:B()})}var So={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Vs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s,initialTx:o,executeTxAction:l,closeTxTrackedModal:i,labels:c,features:p,customization:r,...e}){let[d,x]=useState(false),u=useRef(s),T="nova-transactions",h=useMediaQuery("(max-width: 767px)"),y=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),C=useMemo(()=>deepMerge(j,c||{}),[c]),f=useCallback(b=>{if(!y.toasts)return;let w=b.pending?"info":So[b.status]??"info",N=Z=>jsx(Bt,{...Z,tx:b,openTxInfoModal:y.transactionsModal?()=>x(true):void 0,customization:r?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(b.txKey)?toast.update(b.txKey,{render:N,type:w,containerId:T}):toast(N,{toastId:b.txKey,type:w,closeOnClick:false,containerId:T});},[s,y,r?.toast,t,a]);useEffect(()=>{let b=u.current;Object.values(s).forEach(w=>{let N=b[w.txKey];if(!N&&w.pending){f(w);return}N&&JSON.stringify(N)!==JSON.stringify(w)&&f(w);}),u.current=s;},[s,f]),useEffect(()=>{Object.values(s).forEach(b=>{toast.isActive(b.txKey,T)&&f(b);});},[a,f,s]);let m=!!o?.withTrackedModal&&s[o?.lastTxKey??""]?.isTrackedModalOpen,B=y.toasts&&(!h||!m&&!d),U=useMemo(()=>{let b=r?.toastCloseButton;return b?({closeToast:w})=>jsx(ToastCloseButton,{closeToast:w,...b}):ToastCloseButton},[r?.toastCloseButton]);return jsxs(Nt,{labels:C,children:[B&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:U,containerId:T,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...e}),y.transactionsModal&&jsx(Jt,{isOpen:d,setIsOpen:x,customization:r?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:s}),y.trackingTxModal&&jsx(Ht,{initialTx:o,onClose:i,onOpenAllTransactions:()=>x(true),transactionsPool:s,customization:r?.trackingTxModal,executeTxAction:l,adapter:t,connectedWalletAddress:a})]})}export{j as a,Nt as b,g as c,Vs as d,$ as e,R as f,_ as g,at as h,Bt as i,Ht as j,Mt as k,At as l,Kt as m,Rt as n,Ft as o,Vt as p,Jt as q,ps as r};
|