@tuwaio/nova-transactions 0.2.7 → 0.3.0

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