@tuwaio/nova-transactions 0.3.0 → 0.4.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.
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ToastCloseButtonProps, DialogContent } from '@tuwaio/nova-core';
3
- import { TransactionStatus, Transaction, TxAdapter, TransactionPool, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
3
+ import { TransactionStatus, Transaction, TxAdapter, TransactionPool, TxInMemoryPagination, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
4
4
  import { ReactNode, ComponentType, JSX, ComponentPropsWithoutRef } from 'react';
5
5
  import { OrbitAdapter, TuwaErrorState } from '@tuwaio/orbit-core';
6
6
  import { ToastContainerProps, ToastContentProps } from 'react-toastify';
@@ -211,12 +211,14 @@ type NovaTransactionsProviderProps<T extends Transaction> = {
211
211
  transactionsInfoModal?: TransactionsInfoModalCustomization<T>;
212
212
  trackingTxModal?: TrackingTxModalCustomization<T>;
213
213
  };
214
+ /** Pagination state for infinite scroll, forwarded to TransactionsInfoModal and TransactionsHistory. */
215
+ pagination?: TxInMemoryPagination;
214
216
  } & Pick<ITxTrackingStore<T>, 'closeTxTrackedModal' | 'executeTxAction' | 'initialTx'> & Omit<ToastContainerProps, 'containerId'>;
215
217
  /**
216
218
  * The main component for the Nova UI ecosystem. It renders and orchestrates all
217
219
  * UI elements like toasts and modals, and provides the i18n context.
218
220
  */
219
- declare function NovaTransactionsProvider<T extends Transaction>({ adapter, connectedWalletAddress, connectedAdapterType, transactionsPool, initialTx, executeTxAction, closeTxTrackedModal, labels, features, customization, ...toastProps }: NovaTransactionsProviderProps<T>): react_jsx_runtime.JSX.Element;
221
+ declare function NovaTransactionsProvider<T extends Transaction>({ adapter, connectedWalletAddress, connectedAdapterType, transactionsPool, initialTx, executeTxAction, closeTxTrackedModal, labels, features, customization, pagination, ...toastProps }: NovaTransactionsProviderProps<T>): react_jsx_runtime.JSX.Element;
220
222
 
221
223
  type TransactionKeyProps<T extends Transaction> = Pick<NovaTransactionsProviderProps<T>, 'adapter'> & {
222
224
  tx: T;
@@ -634,6 +636,11 @@ type CustomPlaceholderProps = {
634
636
  message: string;
635
637
  className?: string;
636
638
  };
639
+ /** Props exposed to a custom Loader component */
640
+ type TransactionsHistoryLoaderProps = {
641
+ className?: string;
642
+ iconClassName?: string;
643
+ };
637
644
  /**
638
645
  * Customization options for TransactionsHistory component.
639
646
  * Allows styling of all sub-elements including individual transaction items.
@@ -655,6 +662,14 @@ type TransactionsHistoryCustomization<T extends Transaction> = {
655
662
  placeholderTitle?: string;
656
663
  /** Classes for the placeholder message */
657
664
  placeholderMessage?: string;
665
+ /** Classes for the infinite scroll loader container */
666
+ loaderContainer?: string;
667
+ /** Classes for the infinite scroll loader icon (spinner) */
668
+ loaderIcon?: string;
669
+ /** Classes for the error indicator container */
670
+ errorContainer?: string;
671
+ /** Classes for the error indicator icon */
672
+ errorIcon?: string;
658
673
  /** Classes for individual transaction item container */
659
674
  itemContainer?: string;
660
675
  /** Classes for the icon wrapper */
@@ -696,13 +711,17 @@ type TransactionsHistoryCustomization<T extends Transaction> = {
696
711
  Placeholder?: ComponentType<CustomPlaceholderProps>;
697
712
  /** Custom history item component */
698
713
  HistoryItem?: ComponentType<TransactionHistoryItemProps<T>>;
714
+ /** Custom loader component rendered at the bottom during pagination loading */
715
+ Loader?: ComponentType<TransactionsHistoryLoaderProps>;
699
716
  };
700
717
  };
701
718
  type TransactionsHistoryProps<T extends Transaction> = Pick<NovaTransactionsProviderProps<T>, 'adapter' | 'transactionsPool' | 'connectedWalletAddress'> & {
702
719
  className?: string;
703
720
  customization?: TransactionsHistoryCustomization<T>;
721
+ /** Pagination state for infinite scroll. Uses TxInMemoryPagination from @tuwaio/pulsar-core. */
722
+ pagination?: TxInMemoryPagination;
704
723
  };
705
- declare function TransactionsHistory<T extends Transaction>({ adapter, connectedWalletAddress, transactionsPool, className, customization, }: TransactionsHistoryProps<T>): react_jsx_runtime.JSX.Element;
724
+ declare function TransactionsHistory<T extends Transaction>({ adapter, connectedWalletAddress, transactionsPool, className, customization, pagination, }: TransactionsHistoryProps<T>): react_jsx_runtime.JSX.Element;
706
725
 
707
726
  type CustomHeaderProps = {
708
727
  closeModal: () => void;
@@ -732,7 +751,9 @@ type TransactionsInfoModalProps<T extends Transaction> = Pick<NovaTransactionsPr
732
751
  isOpen?: boolean;
733
752
  setIsOpen: (value: boolean) => void;
734
753
  customization?: TransactionsInfoModalCustomization<T>;
754
+ /** Pagination state for infinite scroll, forwarded to TransactionsHistory. */
755
+ pagination?: TxInMemoryPagination;
735
756
  };
736
- declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
757
+ declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, pagination, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
737
758
 
738
- export { type TransactionsHistoryCustomization as A, type TransactionsHistoryProps as B, TransactionsHistory as C, type TransactionsInfoModalCustomization as D, type TransactionsInfoModalProps as E, TransactionsInfoModal as F, type TransactionStatusBadgeProps as G, type HashLinkProps as H, TransactionStatusBadge as I, type NovaTransactionsProviderProps as J, NovaTransactionsProvider as K, type NovaTransactionsLabels as N, type StatusAwareTextProps as S, type ToastTransactionCustomization as T, HashLink as a, StatusAwareText as b, type ToastTransactionProps as c, ToastTransaction as d, type TrackingTxModalCustomization as e, type TrackingTxModalProps as f, TrackingTxModal as g, type TxErrorBlockClassNames as h, type TxErrorBlockProps as i, TxErrorBlock as j, type TxInfoBlockCustomization as k, type TxInfoBlockProps as l, TxInfoBlock as m, type StepStatus as n, type StepClassNames as o, type StepProps as p, type TxProgressIndicatorProps as q, TxProgressIndicator as r, type TxStatusVisualClassNames as s, type TxStatusVisualProps as t, TxStatusVisual as u, type TransactionHistoryItemCustomization as v, type TransactionHistoryItemProps as w, TransactionHistoryItem as x, type TransactionKeyProps as y, TransactionKey as z };
759
+ export { type TransactionsHistoryLoaderProps as A, type TransactionsHistoryCustomization as B, type TransactionsHistoryProps as C, TransactionsHistory as D, type TransactionsInfoModalCustomization as E, type TransactionsInfoModalProps as F, TransactionsInfoModal as G, type HashLinkProps as H, type TransactionStatusBadgeProps as I, TransactionStatusBadge as J, type NovaTransactionsProviderProps as K, NovaTransactionsProvider as L, type NovaTransactionsLabels as N, type StatusAwareTextProps as S, type ToastTransactionCustomization as T, HashLink as a, StatusAwareText as b, type ToastTransactionProps as c, ToastTransaction as d, type TrackingTxModalCustomization as e, type TrackingTxModalProps as f, TrackingTxModal as g, type TxErrorBlockClassNames as h, type TxErrorBlockProps as i, TxErrorBlock as j, type TxInfoBlockCustomization as k, type TxInfoBlockProps as l, TxInfoBlock as m, type StepStatus as n, type StepClassNames as o, type StepProps as p, type TxProgressIndicatorProps as q, TxProgressIndicator as r, type TxStatusVisualClassNames as s, type TxStatusVisualProps as t, TxStatusVisual as u, type TransactionHistoryItemCustomization as v, type TransactionHistoryItemProps as w, TransactionHistoryItem as x, type TransactionKeyProps as y, TransactionKey as z };
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ToastCloseButtonProps, DialogContent } from '@tuwaio/nova-core';
3
- import { TransactionStatus, Transaction, TxAdapter, TransactionPool, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
3
+ import { TransactionStatus, Transaction, TxAdapter, TransactionPool, TxInMemoryPagination, ITxTrackingStore, InitialTransaction } from '@tuwaio/pulsar-core';
4
4
  import { ReactNode, ComponentType, JSX, ComponentPropsWithoutRef } from 'react';
5
5
  import { OrbitAdapter, TuwaErrorState } from '@tuwaio/orbit-core';
6
6
  import { ToastContainerProps, ToastContentProps } from 'react-toastify';
@@ -211,12 +211,14 @@ type NovaTransactionsProviderProps<T extends Transaction> = {
211
211
  transactionsInfoModal?: TransactionsInfoModalCustomization<T>;
212
212
  trackingTxModal?: TrackingTxModalCustomization<T>;
213
213
  };
214
+ /** Pagination state for infinite scroll, forwarded to TransactionsInfoModal and TransactionsHistory. */
215
+ pagination?: TxInMemoryPagination;
214
216
  } & Pick<ITxTrackingStore<T>, 'closeTxTrackedModal' | 'executeTxAction' | 'initialTx'> & Omit<ToastContainerProps, 'containerId'>;
215
217
  /**
216
218
  * The main component for the Nova UI ecosystem. It renders and orchestrates all
217
219
  * UI elements like toasts and modals, and provides the i18n context.
218
220
  */
219
- declare function NovaTransactionsProvider<T extends Transaction>({ adapter, connectedWalletAddress, connectedAdapterType, transactionsPool, initialTx, executeTxAction, closeTxTrackedModal, labels, features, customization, ...toastProps }: NovaTransactionsProviderProps<T>): react_jsx_runtime.JSX.Element;
221
+ declare function NovaTransactionsProvider<T extends Transaction>({ adapter, connectedWalletAddress, connectedAdapterType, transactionsPool, initialTx, executeTxAction, closeTxTrackedModal, labels, features, customization, pagination, ...toastProps }: NovaTransactionsProviderProps<T>): react_jsx_runtime.JSX.Element;
220
222
 
221
223
  type TransactionKeyProps<T extends Transaction> = Pick<NovaTransactionsProviderProps<T>, 'adapter'> & {
222
224
  tx: T;
@@ -634,6 +636,11 @@ type CustomPlaceholderProps = {
634
636
  message: string;
635
637
  className?: string;
636
638
  };
639
+ /** Props exposed to a custom Loader component */
640
+ type TransactionsHistoryLoaderProps = {
641
+ className?: string;
642
+ iconClassName?: string;
643
+ };
637
644
  /**
638
645
  * Customization options for TransactionsHistory component.
639
646
  * Allows styling of all sub-elements including individual transaction items.
@@ -655,6 +662,14 @@ type TransactionsHistoryCustomization<T extends Transaction> = {
655
662
  placeholderTitle?: string;
656
663
  /** Classes for the placeholder message */
657
664
  placeholderMessage?: string;
665
+ /** Classes for the infinite scroll loader container */
666
+ loaderContainer?: string;
667
+ /** Classes for the infinite scroll loader icon (spinner) */
668
+ loaderIcon?: string;
669
+ /** Classes for the error indicator container */
670
+ errorContainer?: string;
671
+ /** Classes for the error indicator icon */
672
+ errorIcon?: string;
658
673
  /** Classes for individual transaction item container */
659
674
  itemContainer?: string;
660
675
  /** Classes for the icon wrapper */
@@ -696,13 +711,17 @@ type TransactionsHistoryCustomization<T extends Transaction> = {
696
711
  Placeholder?: ComponentType<CustomPlaceholderProps>;
697
712
  /** Custom history item component */
698
713
  HistoryItem?: ComponentType<TransactionHistoryItemProps<T>>;
714
+ /** Custom loader component rendered at the bottom during pagination loading */
715
+ Loader?: ComponentType<TransactionsHistoryLoaderProps>;
699
716
  };
700
717
  };
701
718
  type TransactionsHistoryProps<T extends Transaction> = Pick<NovaTransactionsProviderProps<T>, 'adapter' | 'transactionsPool' | 'connectedWalletAddress'> & {
702
719
  className?: string;
703
720
  customization?: TransactionsHistoryCustomization<T>;
721
+ /** Pagination state for infinite scroll. Uses TxInMemoryPagination from @tuwaio/pulsar-core. */
722
+ pagination?: TxInMemoryPagination;
704
723
  };
705
- declare function TransactionsHistory<T extends Transaction>({ adapter, connectedWalletAddress, transactionsPool, className, customization, }: TransactionsHistoryProps<T>): react_jsx_runtime.JSX.Element;
724
+ declare function TransactionsHistory<T extends Transaction>({ adapter, connectedWalletAddress, transactionsPool, className, customization, pagination, }: TransactionsHistoryProps<T>): react_jsx_runtime.JSX.Element;
706
725
 
707
726
  type CustomHeaderProps = {
708
727
  closeModal: () => void;
@@ -732,7 +751,9 @@ type TransactionsInfoModalProps<T extends Transaction> = Pick<NovaTransactionsPr
732
751
  isOpen?: boolean;
733
752
  setIsOpen: (value: boolean) => void;
734
753
  customization?: TransactionsInfoModalCustomization<T>;
754
+ /** Pagination state for infinite scroll, forwarded to TransactionsHistory. */
755
+ pagination?: TxInMemoryPagination;
735
756
  };
736
- declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
757
+ declare function TransactionsInfoModal<T extends Transaction>({ isOpen, setIsOpen, customization, adapter, connectedWalletAddress, transactionsPool, pagination, }: TransactionsInfoModalProps<T>): react_jsx_runtime.JSX.Element;
737
758
 
738
- export { type TransactionsHistoryCustomization as A, type TransactionsHistoryProps as B, TransactionsHistory as C, type TransactionsInfoModalCustomization as D, type TransactionsInfoModalProps as E, TransactionsInfoModal as F, type TransactionStatusBadgeProps as G, type HashLinkProps as H, TransactionStatusBadge as I, type NovaTransactionsProviderProps as J, NovaTransactionsProvider as K, type NovaTransactionsLabels as N, type StatusAwareTextProps as S, type ToastTransactionCustomization as T, HashLink as a, StatusAwareText as b, type ToastTransactionProps as c, ToastTransaction as d, type TrackingTxModalCustomization as e, type TrackingTxModalProps as f, TrackingTxModal as g, type TxErrorBlockClassNames as h, type TxErrorBlockProps as i, TxErrorBlock as j, type TxInfoBlockCustomization as k, type TxInfoBlockProps as l, TxInfoBlock as m, type StepStatus as n, type StepClassNames as o, type StepProps as p, type TxProgressIndicatorProps as q, TxProgressIndicator as r, type TxStatusVisualClassNames as s, type TxStatusVisualProps as t, TxStatusVisual as u, type TransactionHistoryItemCustomization as v, type TransactionHistoryItemProps as w, TransactionHistoryItem as x, type TransactionKeyProps as y, TransactionKey as z };
759
+ export { type TransactionsHistoryLoaderProps as A, type TransactionsHistoryCustomization as B, type TransactionsHistoryProps as C, TransactionsHistory as D, type TransactionsInfoModalCustomization as E, type TransactionsInfoModalProps as F, TransactionsInfoModal as G, type HashLinkProps as H, type TransactionStatusBadgeProps as I, TransactionStatusBadge as J, type NovaTransactionsProviderProps as K, NovaTransactionsProvider as L, type NovaTransactionsLabels as N, type StatusAwareTextProps as S, type ToastTransactionCustomization as T, HashLink as a, StatusAwareText as b, type ToastTransactionProps as c, ToastTransaction as d, type TrackingTxModalCustomization as e, type TrackingTxModalProps as f, TrackingTxModal as g, type TxErrorBlockClassNames as h, type TxErrorBlockProps as i, TxErrorBlock as j, type TxInfoBlockCustomization as k, type TxInfoBlockProps as l, TxInfoBlock as m, type StepStatus as n, type StepClassNames as o, type StepProps as p, type TxProgressIndicatorProps as q, TxProgressIndicator as r, type TxStatusVisualClassNames as s, type TxStatusVisualProps as t, TxStatusVisual as u, type TransactionHistoryItemCustomization as v, type TransactionHistoryItemProps as w, TransactionHistoryItem as x, type TransactionKeyProps as y, TransactionKey as z };
@@ -0,0 +1,2 @@
1
+ import {createContext,useContext,useMemo,useRef,useState,useEffect,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 Jt from'dayjs';import so from'dayjs/plugin/relativeTime';var Q={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 kt=createContext(Q),It=({labels:t,children:a})=>jsx(kt.Provider,{value:t,children:a}),y=()=>useContext(kt);function $({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:i}){let{isCopied:c,copy:l}=useCopyToClipboard(),{actions:p,txError:s}=y(),e=cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),v=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"},i?.label),u=jsx("span",{className:cn("novatx:font-mono",i?.hash),children:textCenterEllipsis(a,5,5)});return jsxs("div",{className:e,children:[t&&jsxs("span",{className:v,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",i?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[u,jsx(ArrowTopRightOnSquareIcon,{className:cn("novatx:h-4 novatx:w-4",i?.linkIcon)})]}):jsx("span",{className:cn("novatx:text-[var(--tuwa-text-primary)]",i?.link),children:u}),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)]",i?.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 Bt={[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 D({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:i=false}){let c,l="";if(typeof a=="string")c=a;else if(Array.isArray(a)){let e=Bt[t||"default"]??Bt.default;c=a[e.index],i&&(l=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)]",l,o),children:c}):null}function J({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:i,hashLinkClassNames:c,originalHashLinkClassNames:l}){let{hashLabels:p,statuses:s}=y(),e=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let v=(x,m)=>o?o(x):jsx($,{...x,classNames:m??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",T=p[String(t.tracker)],b=T?v({label:T,hash:t.txKey,variant:t.tracker!==TransactionTracker.Solana?"compact":"default",explorerUrl:e.getExplorerTxUrl&&t.tracker===TransactionTracker.Solana?e?.getExplorerTxUrl(t):void 0}):null,f=(()=>{let x=t.hash,m=t.replacedTxHash;return !x&&!m?null:m?jsxs(Fragment,{children:[x&&v({label:p.original,hash:x,variant:"compact"},l),typeof e.getExplorerTxUrl<"u"&&v({label:p.replaced,hash:m,explorerUrl:e.getExplorerTxUrl(t)})]}):x&&typeof e.getExplorerTxUrl<"u"&&v({label:p.default,hash:x,explorerUrl:e.getExplorerTxUrl(t)})})(),N=T&&T!==p.default&&t.txKey!==t.hash;return jsxs("div",{className:cn(u,r),children:[N&&b,f,typeof i=="number"&&jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",i]})]})}var ga=t=>({Pending:{label:t.pending,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[TransactionStatus.Success]:{label:t.success,Icon:CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[TransactionStatus.Failed]:{label:t.failed,Icon:XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[TransactionStatus.Replaced]:{label:t.replaced,Icon:ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function at({tx:t,className:a,classNames:n}){let{statuses:r}=y(),o=ga(r),i="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,l=c?o[c]:null;if(!l)return jsx("div",{className:cn(i,"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:v}=l;return jsxs("div",{className:cn(i,e,n?.container,a),children:[jsx(s,{className:cn("novatx:h-4 novatx:w-4",v,n?.icon)}),jsx("span",{className:n?.label,children:p})]})}var ha=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsx("button",{onClick:t,type:"button",className:cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Na=({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 Mt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:i,adapter:c}){let{actions:l,toast:p}=y(),s=selectAdapterByKey({adapterKey:a.adapter,adapter:c}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===i?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),v=()=>{e&&s.cancelTxAction(a);},u=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:T=D,TransactionKey:b=J,StatusBadge:f=at,SpeedUpButton:N=ha,CancelButton:x=ba,TxInfoButton:m=Na}=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(T,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsx(T,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxs("div",{children:[jsx(b,{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(f,{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(N,{onClick:u,className:d?.speedUpButton,children:l.speedUp}),jsx(x,{onClick:v,className:d?.cancelButton,children:l.cancel})]}):t&&a.from.toLowerCase()===i?.toLowerCase()&&jsx(m,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Kt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:i,executeTxAction:c,initialTx:l,connectedWalletAddress:p}){let s=l?.lastTxKey?i[l.lastTxKey]:void 0,e=s??l,v=l?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),u=s?.status,T=l?.isInitializing??false,b=s?.pending??false,f=T||b,N=u===TransactionStatus.Success,x=s?.isError||!!l?.error,m=u===TransactionStatus.Replaced,d=e?selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,B=!!(x&&e&&l?.actionFunction&&c),O=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),W=()=>{if(!B||!d?.retryTxAction)return;let ct={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:ct,txKey:s?.txKey??"",onClose:a,executeTxAction:c});},C=O&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),h=()=>{C&&d.cancelTxAction(s);},M=()=>{C&&d.speedUpTxAction(s);},q=o?.components?.Header,ht=o?.components?.Footer,bt=o?.components?.StatusVisual,Nt=o?.components?.ProgressIndicator,wt=o?.components?.InfoBlock,Pt=o?.components?.ErrorBlock;if(!e)return null;let V=o?.classNames;return jsx(Dialog,{open:v,onOpenChange:ct=>!ct&&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",V?.container,r),children:[q?jsx(q,{onClose:()=>a(s?.txKey),title:jsx(Rt,{tx:e,className:V?.headerTitle})}):jsx(Ha,{onClose:()=>a(s?.txKey),title:jsx(Rt,{tx:e,className:V?.headerTitle}),classNames:V}),jsxs("main",{className:cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",V?.main),children:[bt?jsx(bt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m}):jsx(Ut,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),Nt?jsx(Nt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m}):jsx(Dt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),wt?jsx(wt,{tx:e,adapter:t}):jsx(Et,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Pt?jsx(Pt,{error:s?.error||l?.error}):jsx(Ot,{error:s?.error||l?.error,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),ht?jsx(ht,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:x,canReplace:O,onRetry:B?W:void 0,onSpeedUp:C?M:void 0,onCancel:C?h:void 0,connectedWalletAddress:p}):jsx(Aa,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:x,canReplace:O,onRetry:B?W:void 0,onSpeedUp:C?M:void 0,onCancel:C?h:void 0,connectedWalletAddress:p,classNames:V})]})})})}function Rt({tx:t,className:a}){return jsx(D,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:cn("novatx:text-lg",a)})}var Ha=({onClose:t,title:a,classNames:n})=>{let{actions:r}=y();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,{})})})]})},Ma=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:i,classNames:c})=>{let{trackingModal:l}=y();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:l.retry}):!n&&!r&&o?jsx("button",{type:"button",onClick:i,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:l.allTransactions}):null},Aa=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:i,canReplace:c,isFailed:l,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:v}=y();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&&i&&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:v.speedUp}),jsx("button",{type:"button",onClick:i,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:v.cancel})]})}),jsxs("div",{className:cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsx(Ma,{isFailed:l,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 Ot({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=useCopyToClipboard(),{actions:i,txError:c}=y(),{displayMessage:l,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||!l?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:i.copy,"aria-label":r?c.copied:`${i.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:l})})]})}function Xa({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 Et({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:i,hashLabels:c}=y(),l=selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!l)return null;let{InfoRow:p=Xa}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},v="chainId"in t?t.chainId:t.desiredChainID,u=t.adapter===OrbitAdapter.SOLANA,T=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(v)})}),jsx("span",{children:getChainName(setChainId(v)).name})]}),classNames:e}),t.localTimestamp&&jsx(p,{label:o.started,value:Jt.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),u&&jsxs(Fragment,{children:[T?.slot&&jsx(p,{label:o.slot,value:jsx($,{hash:T.slot.toString(),explorerUrl:l?.getExplorerUrl?`${l?.getExplorerUrl(`/block/${T.slot}`)}`:void 0}),classNames:e}),T?.recentBlockhash&&jsx(p,{label:c.recentBlockhash,value:jsx($,{hash:T.recentBlockhash}),classNames:e})]}),"confirmations"in t&&(typeof t?.confirmations=="number"||typeof t?.confirmations=="string")&&jsx(p,{label:i.confirmationsLabel,value:t.confirmations,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(J,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var ja={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=ja[t],i=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,i?.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,i?.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,i?.label),children:a})]})}function Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:i=qa,stepClassNames:c}){let{trackingModal:l,statuses:p}=y(),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?l.progressIndicator.created:u===2?l.progressIndicator.processing:n?p.failed:r?p.replaced:l.progressIndicator.succeed,v=[{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:v.map((u,T)=>jsx(i,{...u},T))})}var oo={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 Ut({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:i}){let c=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:p}=oo[c],s=i?.statusOverrides?.[c];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,i?.icon,s)})})}Jt.extend(so);var ro=({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)})}),io=({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?Jt.unix(t).fromNow():"..."});function Xt({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=ro,Title:i=D,Description:c=D,Timestamp:l=io,StatusBadge:p=at,TransactionKey:s=J}=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(i,{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(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}})]})}var xo=2500;function vo({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-4",t),role:"status","aria-live":"polite",children:jsx("div",{className:cn("novatx:h-5 novatx:w-5 novatx:animate-spin novatx:rounded-full novatx:border-2 novatx:border-[var(--tuwa-text-secondary)] novatx:border-t-transparent",a)})})}function uo({className:t,iconClassName:a}){return jsx("div",{className:cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-3 novatx:animate-[novatx-fade-out_0.4s_ease-out_2s_forwards]",t),role:"alert","aria-live":"assertive",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:cn("novatx:h-5 novatx:w-5 novatx:text-red-500",a),children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z",clipRule:"evenodd"})})})}function mo({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 Yt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o,pagination:i}){let{transactionsModal:c}=y(),l=useRef(null),p=useRef(false),[s,e]=useState(false),v=useRef(void 0),u=a?selectAllTransactionsByActiveWallet(n,a).sort((d,B)=>(B.localTimestamp??0)-(d.localTimestamp??0)):[];useEffect(()=>{let m=i?.isError??false,d=p.current;if(p.current=m,m&&!d){let B=setTimeout(()=>e(true),0);return v.current=setTimeout(()=>e(false),xo),()=>{clearTimeout(B),clearTimeout(v.current);}}},[i?.isError]);let T=useCallback(m=>{m[0]?.isIntersecting&&i?.hasMore&&!i?.isLoading&&a&&i.fetchNextPage(a);},[i,a]);useEffect(()=>{if(!i?.hasMore||!l.current)return;let m=new IntersectionObserver(T,{threshold:.1});return m.observe(l.current),()=>m.disconnect()},[i?.hasMore,T]);let{Placeholder:b=mo,HistoryItem:f=Xt,Loader:N=vo}=o?.components??{},x=()=>{if(!a)return jsx(b,{title:c.history.connectWalletTitle,message:c.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(u.length>0){let m={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 jsxs("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:[u.map(d=>jsx(f,{tx:d,adapter:t,customization:{classNames:m}},d.txKey)),i?.hasMore&&jsx("div",{ref:l,className:"novatx:h-px","aria-hidden":"true"}),i?.isLoading&&jsx(N,{className:o?.classNames?.loaderContainer,iconClassName:o?.classNames?.loaderIcon}),s&&jsx(uo,{className:o?.classNames?.errorContainer,iconClassName:o?.classNames?.errorIcon})]})}return jsx(b,{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}),x()]})}var bo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=y();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 $t({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:i,pagination:c}){let{transactionsModal:l}=y(),p=()=>a(false),s=n?.components?.Header,e=n?.components?.History;return jsx(Dialog,{open:t,onOpenChange:v=>!v&&p(),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:[s?jsx(s,{closeModal:p}):jsx(bo,{closeModal:p,title:l.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),e?jsx(e,{adapter:r,transactionsPool:i,connectedWalletAddress:o,customization:n?.historyCustomization,pagination:c}):jsx(Yt,{adapter:r,transactionsPool:i,connectedWalletAddress:o,customization:n?.historyCustomization,pagination:c})]})})})}var ko=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 ls({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:i,succeedContent:c,failedContent:l,replacedContent:p,resetTimeout:s=2500,className:e,classNames:v,...u}){let{trackedTxButton:T}=y(),[b,f]=useState("idle"),[N,x]=useState(void 0),m=ko(T);useEffect(()=>{f("idle"),x(void 0);},[o]),useEffect(()=>{if(!N)return;let h=r[N];if(h)switch(h.status){case TransactionStatus.Success:f("succeed");break;case TransactionStatus.Replaced:f("replaced");break;case TransactionStatus.Failed:f("failed");break}},[r,N,o]),useEffect(()=>{if(["succeed","failed","replaced"].includes(b)){let h=setTimeout(()=>{f("idle"),x(void 0);},s);return ()=>clearTimeout(h)}},[b,s]);let d=async()=>{f("loading");try{await a(),x(n());}catch(h){console.error("Transaction initiation failed:",h),f("failed");}},B=()=>{switch(b){case "loading":return i??m.loading;case "succeed":return c??m.succeed;case "failed":return l??m.failed;case "replaced":return p??m.replaced;default:return t}},O={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)]"},W=v?.[b]??O[b],C=v?.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:b!=="idle"||u.disabled,onClick:d,className:cn(C,W,e),children:B()})}var Ao={[TransactionStatus.Success]:"success",[TransactionStatus.Failed]:"error",[TransactionStatus.Replaced]:"info"};function Vs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:i,closeTxTrackedModal:c,labels:l,features:p,customization:s,pagination:e,...v}){let[u,T]=useState(false),b=useRef(r),f="nova-transactions",N=useMediaQuery("(max-width: 767px)"),x=useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),m=useMemo(()=>deepMerge(Q,l||{}),[l]),d=useCallback(C=>{if(!x.toasts)return;let h=C.pending?"info":Ao[C.status]??"info",M=q=>jsx(Mt,{...q,tx:C,openTxInfoModal:x.transactionsModal?()=>T(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});toast.isActive(C.txKey)?toast.update(C.txKey,{render:M,type:h,containerId:f}):toast(M,{toastId:C.txKey,type:h,closeOnClick:false,containerId:f});},[r,x,s?.toast,t,a]);useEffect(()=>{let C=b.current;Object.values(r).forEach(h=>{let M=C[h.txKey];if(!M&&h.pending){d(h);return}M&&JSON.stringify(M)!==JSON.stringify(h)&&d(h);}),b.current=r;},[r,d]),useEffect(()=>{Object.values(r).forEach(C=>{toast.isActive(C.txKey,f)&&d(C);});},[a,d,r]);let B=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,O=x.toasts&&(!N||!B&&!u),W=useMemo(()=>{let C=s?.toastCloseButton;return C?({closeToast:h})=>jsx(ToastCloseButton,{closeToast:h,...C}):ToastCloseButton},[s?.toastCloseButton]);return jsxs(It,{labels:m,children:[O&&jsx(ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:W,containerId:f,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...v}),x.transactionsModal&&jsx($t,{isOpen:u,setIsOpen:T,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,pagination:e}),x.trackingTxModal&&jsx(Kt,{initialTx:o,onClose:c,onOpenAllTransactions:()=>T(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:i,adapter:t,connectedWalletAddress:a})]})}
2
+ export{Q as a,It as b,y as c,Vs as d,$ as e,D as f,J as g,at as h,Mt as i,Kt as j,Ot as k,Et as l,Dt as m,Ut as n,Xt as o,Yt as p,$t as q,ls as r};
@@ -0,0 +1,2 @@
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'),Jt=require('dayjs'),so=require('dayjs/plugin/relativeTime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Jt__default=/*#__PURE__*/_interopDefault(Jt);var so__default=/*#__PURE__*/_interopDefault(so);var Q={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 kt=react.createContext(Q),It=({labels:t,children:a})=>jsxRuntime.jsx(kt.Provider,{value:t,children:a}),y=()=>react.useContext(kt);function $({label:t,hash:a,explorerUrl:n,variant:r="default",className:o,classNames:i}){let{isCopied:c,copy:l}=novaCore.useCopyToClipboard(),{actions:p,txError:s}=y(),e=novaCore.cn("novatx:flex novatx:items-center novatx:justify-between",{"novatx:text-sm":r==="default","novatx:text-xs":r==="compact"},o),v=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"},i?.label),u=jsxRuntime.jsx("span",{className:novaCore.cn("novatx:font-mono",i?.hash),children:novaCore.textCenterEllipsis(a,5,5)});return jsxRuntime.jsxs("div",{className:e,children:[t&&jsxRuntime.jsxs("span",{className:v,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",i?.link),title:p.viewOnExplorer,"aria-label":p.viewOnExplorer,children:[u,jsxRuntime.jsx(solid.ArrowTopRightOnSquareIcon,{className:novaCore.cn("novatx:h-4 novatx:w-4",i?.linkIcon)})]}):jsxRuntime.jsx("span",{className:novaCore.cn("novatx:text-[var(--tuwa-text-primary)]",i?.link),children:u}),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)]",i?.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 Bt={[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 D({txStatus:t,source:a,fallback:n,variant:r,className:o,applyColor:i=false}){let c,l="";if(typeof a=="string")c=a;else if(Array.isArray(a)){let e=Bt[t||"default"]??Bt.default;c=a[e.index],i&&(l=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)]",l,o),children:c}):null}function J({tx:t,adapter:a,variant:n="toast",className:r,renderHashLink:o,confirmations:i,hashLinkClassNames:c,originalHashLinkClassNames:l}){let{hashLabels:p,statuses:s}=y(),e=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!e)return null;let v=(x,m)=>o?o(x):jsxRuntime.jsx($,{...x,classNames:m??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",T=p[String(t.tracker)],b=T?v({label:T,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,f=(()=>{let x=t.hash,m=t.replacedTxHash;return !x&&!m?null:m?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[x&&v({label:p.original,hash:x,variant:"compact"},l),typeof e.getExplorerTxUrl<"u"&&v({label:p.replaced,hash:m,explorerUrl:e.getExplorerTxUrl(t)})]}):x&&typeof e.getExplorerTxUrl<"u"&&v({label:p.default,hash:x,explorerUrl:e.getExplorerTxUrl(t)})})(),N=T&&T!==p.default&&t.txKey!==t.hash;return jsxRuntime.jsxs("div",{className:novaCore.cn(u,r),children:[N&&b,f,typeof i=="number"&&jsxRuntime.jsxs("p",{className:"novatx:text-xs novatx:text-[var(--tuwa-text-tertiary)]",children:[s.confirmationsLabel,": ",i]})]})}var ga=t=>({Pending:{label:t.pending,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-pending-bg)] novatx:text-[var(--tuwa-pending-text)]",iconClasses:"novatx:animate-spin novatx:text-[var(--tuwa-pending-icon)]"},[pulsarCore.TransactionStatus.Success]:{label:t.success,Icon:solid.CheckCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-success-bg)] novatx:text-[var(--tuwa-success-text)]",iconClasses:"novatx:text-[var(--tuwa-success-icon)]"},[pulsarCore.TransactionStatus.Failed]:{label:t.failed,Icon:solid.XCircleIcon,badgeClasses:"novatx:bg-[var(--tuwa-error-bg)] novatx:text-[var(--tuwa-error-text)]",iconClasses:"novatx:text-[var(--tuwa-error-icon)]"},[pulsarCore.TransactionStatus.Replaced]:{label:t.replaced,Icon:solid.ArrowPathIcon,badgeClasses:"novatx:bg-[var(--tuwa-info-bg)] novatx:text-[var(--tuwa-info-text)]",iconClasses:"novatx:text-[var(--tuwa-info-icon)]"}});function at({tx:t,className:a,classNames:n}){let{statuses:r}=y(),o=ga(r),i="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,l=c?o[c]:null;if(!l)return jsxRuntime.jsx("div",{className:novaCore.cn(i,"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:v}=l;return jsxRuntime.jsxs("div",{className:novaCore.cn(i,e,n?.container,a),children:[jsxRuntime.jsx(s,{className:novaCore.cn("novatx:h-4 novatx:w-4",v,n?.icon)}),jsxRuntime.jsx("span",{className:n?.label,children:p})]})}var ha=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-accent)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),ba=({onClick:t,children:a,className:n})=>jsxRuntime.jsx("button",{onClick:t,type:"button",className:novaCore.cn("novatx:cursor-pointer novatx:text-sm novatx:font-medium novatx:text-[var(--tuwa-text-secondary)] novatx:transition-opacity novatx:hover:opacity-80",n),children:a}),Na=({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 Mt({openTxInfoModal:t,tx:a,icon:n,className:r,customization:o,connectedWalletAddress:i,adapter:c}){let{actions:l,toast:p}=y(),s=orbitCore.selectAdapterByKey({adapterKey:a.adapter,adapter:c}),e=!!(a.tracker==="ethereum"&&a.pending&&s?.speedUpTxAction&&s?.cancelTxAction&&a.from.toLowerCase()===i?.toLowerCase()&&["metamask"].includes(a.connectorType.split(":")[1])),v=()=>{e&&s.cancelTxAction(a);},u=()=>{e&&s.speedUpTxAction(a);},{StatusAwareText:T=D,TransactionKey:b=J,StatusBadge:f=at,SpeedUpButton:N=ha,CancelButton:x=ba,TxInfoButton:m=Na}=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(T,{txStatus:a.status,source:a.title,fallback:a.type,variant:"title",applyColor:true,className:d?.title}),jsxRuntime.jsx(T,{txStatus:a.status,source:a.description,variant:"description",className:d?.description})]})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(b,{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(f,{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(N,{onClick:u,className:d?.speedUpButton,children:l.speedUp}),jsxRuntime.jsx(x,{onClick:v,className:d?.cancelButton,children:l.cancel})]}):t&&a.from.toLowerCase()===i?.toLowerCase()&&jsxRuntime.jsx(m,{onClick:t,className:d?.txInfoButton,children:p.openTransactionsInfo})]})]})]})}function Kt({adapter:t,onClose:a,onOpenAllTransactions:n,className:r,customization:o,transactionsPool:i,executeTxAction:c,initialTx:l,connectedWalletAddress:p}){let s=l?.lastTxKey?i[l.lastTxKey]:void 0,e=s??l,v=l?.withTrackedModal&&!s||(s?.isTrackedModalOpen??false),u=s?.status,T=l?.isInitializing??false,b=s?.pending??false,f=T||b,N=u===pulsarCore.TransactionStatus.Success,x=s?.isError||!!l?.error,m=u===pulsarCore.TransactionStatus.Replaced,d=e?orbitCore.selectAdapterByKey({adapterKey:e.adapter,adapter:t}):void 0,B=!!(x&&e&&l?.actionFunction&&c),O=!!(d?.speedUpTxAction&&d?.cancelTxAction&&s?.pending&&s.tracker==="ethereum"),W=()=>{if(!B||!d?.retryTxAction)return;let ct={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:ct,txKey:s?.txKey??"",onClose:a,executeTxAction:c});},C=O&&s&&["metamask"].includes(s?.connectorType.split(":")[1]),h=()=>{C&&d.cancelTxAction(s);},M=()=>{C&&d.speedUpTxAction(s);},q=o?.components?.Header,ht=o?.components?.Footer,bt=o?.components?.StatusVisual,Nt=o?.components?.ProgressIndicator,wt=o?.components?.InfoBlock,Pt=o?.components?.ErrorBlock;if(!e)return null;let V=o?.classNames;return jsxRuntime.jsx(novaCore.Dialog,{open:v,onOpenChange:ct=>!ct&&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",V?.container,r),children:[q?jsxRuntime.jsx(q,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(Rt,{tx:e,className:V?.headerTitle})}):jsxRuntime.jsx(Ha,{onClose:()=>a(s?.txKey),title:jsxRuntime.jsx(Rt,{tx:e,className:V?.headerTitle}),classNames:V}),jsxRuntime.jsxs("main",{className:novaCore.cn("novatx:flex novatx:flex-col novatx:gap-4 novatx:p-4",V?.main),children:[bt?jsxRuntime.jsx(bt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m}):jsxRuntime.jsx(Ut,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m,className:o?.statusVisualCustomization?.className,iconClassNames:o?.statusVisualCustomization?.iconClassNames}),Nt?jsxRuntime.jsx(Nt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m}):jsxRuntime.jsx(Dt,{isProcessing:f,isSucceed:N,isFailed:x,isReplaced:m,className:o?.progressIndicatorCustomization?.className,stepClassNames:o?.progressIndicatorCustomization?.stepClassNames}),wt?jsxRuntime.jsx(wt,{tx:e,adapter:t}):jsxRuntime.jsx(Et,{tx:e,adapter:t,customization:o?.infoBlockCustomization}),Pt?jsxRuntime.jsx(Pt,{error:s?.error||l?.error}):jsxRuntime.jsx(Ot,{error:s?.error||l?.error,className:o?.errorBlockCustomization?.className,classNames:o?.errorBlockCustomization?.classNames})]}),ht?jsxRuntime.jsx(ht,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:x,canReplace:O,onRetry:B?W:void 0,onSpeedUp:C?M:void 0,onCancel:C?h:void 0,connectedWalletAddress:p}):jsxRuntime.jsx(Aa,{onClose:()=>a(s?.txKey),onOpenAllTransactions:n,isProcessing:f,isFailed:x,canReplace:O,onRetry:B?W:void 0,onSpeedUp:C?M:void 0,onCancel:C?h:void 0,connectedWalletAddress:p,classNames:V})]})})})}function Rt({tx:t,className:a}){return jsxRuntime.jsx(D,{txStatus:"status"in t?t.status:void 0,source:t.title,fallback:t.type,variant:"title",className:novaCore.cn("novatx:text-lg",a)})}var Ha=({onClose:t,title:a,classNames:n})=>{let{actions:r}=y();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,{})})})]})},Ma=({isFailed:t,onRetry:a,isProcessing:n,canReplace:r,connectedWalletAddress:o,onOpenAllTransactions:i,classNames:c})=>{let{trackingModal:l}=y();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:l.retry}):!n&&!r&&o?jsxRuntime.jsx("button",{type:"button",onClick:i,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:l.allTransactions}):null},Aa=({onClose:t,onOpenAllTransactions:a,isProcessing:n,onRetry:r,onSpeedUp:o,onCancel:i,canReplace:c,isFailed:l,connectedWalletAddress:p,classNames:s})=>{let{trackingModal:e,actions:v}=y();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&&i&&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:v.speedUp}),jsxRuntime.jsx("button",{type:"button",onClick:i,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:v.cancel})]})}),jsxRuntime.jsxs("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:gap-3",s?.footerButtons),children:[jsxRuntime.jsx(Ma,{isFailed:l,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 Ot({error:t,className:a,classNames:n}){let{isCopied:r,copy:o}=novaCore.useCopyToClipboard(),{actions:i,txError:c}=y(),{displayMessage:l,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||!l?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:i.copy,"aria-label":r?c.copied:`${i.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:l})})]})}function Xa({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 Et({tx:t,adapter:a,className:n,customization:r}){let{txInfo:o,statuses:i,hashLabels:c}=y(),l=orbitCore.selectAdapterByKey({adapterKey:t.adapter,adapter:a});if(!l)return null;let{InfoRow:p=Xa}=r?.components??{},s=r?.classNames,e={row:s?.row,label:s?.rowLabel,value:s?.rowValue},v="chainId"in t?t.chainId:t.desiredChainID,u=t.adapter===orbitCore.OrbitAdapter.SOLANA,T=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(v)})}),jsxRuntime.jsx("span",{children:novaCore.getChainName(orbitCore.setChainId(v)).name})]}),classNames:e}),t.localTimestamp&&jsxRuntime.jsx(p,{label:o.started,value:Jt__default.default.unix(t.localTimestamp).format("MMM D, HH:mm:ss"),classNames:e}),u&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T?.slot&&jsxRuntime.jsx(p,{label:o.slot,value:jsxRuntime.jsx($,{hash:T.slot.toString(),explorerUrl:l?.getExplorerUrl?`${l?.getExplorerUrl(`/block/${T.slot}`)}`:void 0}),classNames:e}),T?.recentBlockhash&&jsxRuntime.jsx(p,{label:c.recentBlockhash,value:jsxRuntime.jsx($,{hash:T.recentBlockhash}),classNames:e})]}),"confirmations"in t&&(typeof t?.confirmations=="number"||typeof t?.confirmations=="string")&&jsxRuntime.jsx(p,{label:i.confirmationsLabel,value:t.confirmations,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(J,{tx:t,adapter:a,variant:"history",renderHashLink:r?.components?.transactionKey,hashLinkClassNames:s?.hashLink,originalHashLinkClassNames:s?.originalHashLink})})]})}var ja={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=ja[t],i=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,i?.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,i?.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,i?.label),children:a})]})}function Dt({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,StepComponent:i=qa,stepClassNames:c}){let{trackingModal:l,statuses:p}=y(),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?l.progressIndicator.created:u===2?l.progressIndicator.processing:n?p.failed:r?p.replaced:l.progressIndicator.succeed,v=[{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:v.map((u,T)=>jsxRuntime.jsx(i,{...u},T))})}var oo={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 Ut({isProcessing:t,isSucceed:a,isFailed:n,isReplaced:r,className:o,iconClassNames:i}){let c=a&&"succeed"||n&&"failed"||r&&"replaced"||t&&"processing"||"initializing",{Icon:l,className:p}=oo[c],s=i?.statusOverrides?.[c];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,i?.icon,s)})})}Jt__default.default.extend(so__default.default);var ro=({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)})}),io=({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?Jt__default.default.unix(t).fromNow():"..."});function Xt({tx:t,adapter:a,className:n,customization:r}){let{Icon:o=ro,Title:i=D,Description:c=D,Timestamp:l=io,StatusBadge:p=at,TransactionKey:s=J}=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(i,{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(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}})]})}var xo=2500;function vo({className:t,iconClassName:a}){return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-4",t),role:"status","aria-live":"polite",children:jsxRuntime.jsx("div",{className:novaCore.cn("novatx:h-5 novatx:w-5 novatx:animate-spin novatx:rounded-full novatx:border-2 novatx:border-[var(--tuwa-text-secondary)] novatx:border-t-transparent",a)})})}function uo({className:t,iconClassName:a}){return jsxRuntime.jsx("div",{className:novaCore.cn("novatx:flex novatx:items-center novatx:justify-center novatx:py-3 novatx:animate-[novatx-fade-out_0.4s_ease-out_2s_forwards]",t),role:"alert","aria-live":"assertive",children:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:novaCore.cn("novatx:h-5 novatx:w-5 novatx:text-red-500",a),children:jsxRuntime.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z",clipRule:"evenodd"})})})}function mo({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 Yt({adapter:t,connectedWalletAddress:a,transactionsPool:n,className:r,customization:o,pagination:i}){let{transactionsModal:c}=y(),l=react.useRef(null),p=react.useRef(false),[s,e]=react.useState(false),v=react.useRef(void 0),u=a?pulsarCore.selectAllTransactionsByActiveWallet(n,a).sort((d,B)=>(B.localTimestamp??0)-(d.localTimestamp??0)):[];react.useEffect(()=>{let m=i?.isError??false,d=p.current;if(p.current=m,m&&!d){let B=setTimeout(()=>e(true),0);return v.current=setTimeout(()=>e(false),xo),()=>{clearTimeout(B),clearTimeout(v.current);}}},[i?.isError]);let T=react.useCallback(m=>{m[0]?.isIntersecting&&i?.hasMore&&!i?.isLoading&&a&&i.fetchNextPage(a);},[i,a]);react.useEffect(()=>{if(!i?.hasMore||!l.current)return;let m=new IntersectionObserver(T,{threshold:.1});return m.observe(l.current),()=>m.disconnect()},[i?.hasMore,T]);let{Placeholder:b=mo,HistoryItem:f=Xt,Loader:N=vo}=o?.components??{},x=()=>{if(!a)return jsxRuntime.jsx(b,{title:c.history.connectWalletTitle,message:c.history.connectWalletMessage,className:o?.classNames?.placeholderContainer,classNames:{title:o?.classNames?.placeholderTitle,message:o?.classNames?.placeholderMessage}});if(u.length>0){let m={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.jsxs("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:[u.map(d=>jsxRuntime.jsx(f,{tx:d,adapter:t,customization:{classNames:m}},d.txKey)),i?.hasMore&&jsxRuntime.jsx("div",{ref:l,className:"novatx:h-px","aria-hidden":"true"}),i?.isLoading&&jsxRuntime.jsx(N,{className:o?.classNames?.loaderContainer,iconClassName:o?.classNames?.loaderIcon}),s&&jsxRuntime.jsx(uo,{className:o?.classNames?.errorContainer,iconClassName:o?.classNames?.errorIcon})]})}return jsxRuntime.jsx(b,{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}),x()]})}var bo=({closeModal:t,title:a,classNames:n})=>{let{actions:r}=y();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 $t({isOpen:t,setIsOpen:a,customization:n,adapter:r,connectedWalletAddress:o,transactionsPool:i,pagination:c}){let{transactionsModal:l}=y(),p=()=>a(false),s=n?.components?.Header,e=n?.components?.History;return jsxRuntime.jsx(novaCore.Dialog,{open:t,onOpenChange:v=>!v&&p(),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:[s?jsxRuntime.jsx(s,{closeModal:p}):jsxRuntime.jsx(bo,{closeModal:p,title:l.history.title,classNames:{header:n?.classNames?.header,title:n?.classNames?.headerTitle,closeButton:n?.classNames?.closeButton}}),e?jsxRuntime.jsx(e,{adapter:r,transactionsPool:i,connectedWalletAddress:o,customization:n?.historyCustomization,pagination:c}):jsxRuntime.jsx(Yt,{adapter:r,transactionsPool:i,connectedWalletAddress:o,customization:n?.historyCustomization,pagination:c})]})})})}var ko=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 ls({children:t,action:a,getLastTxKey:n,transactionsPool:r,walletAddress:o,loadingContent:i,succeedContent:c,failedContent:l,replacedContent:p,resetTimeout:s=2500,className:e,classNames:v,...u}){let{trackedTxButton:T}=y(),[b,f]=react.useState("idle"),[N,x]=react.useState(void 0),m=ko(T);react.useEffect(()=>{f("idle"),x(void 0);},[o]),react.useEffect(()=>{if(!N)return;let h=r[N];if(h)switch(h.status){case pulsarCore.TransactionStatus.Success:f("succeed");break;case pulsarCore.TransactionStatus.Replaced:f("replaced");break;case pulsarCore.TransactionStatus.Failed:f("failed");break}},[r,N,o]),react.useEffect(()=>{if(["succeed","failed","replaced"].includes(b)){let h=setTimeout(()=>{f("idle"),x(void 0);},s);return ()=>clearTimeout(h)}},[b,s]);let d=async()=>{f("loading");try{await a(),x(n());}catch(h){console.error("Transaction initiation failed:",h),f("failed");}},B=()=>{switch(b){case "loading":return i??m.loading;case "succeed":return c??m.succeed;case "failed":return l??m.failed;case "replaced":return p??m.replaced;default:return t}},O={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)]"},W=v?.[b]??O[b],C=v?.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:b!=="idle"||u.disabled,onClick:d,className:novaCore.cn(C,W,e),children:B()})}var Ao={[pulsarCore.TransactionStatus.Success]:"success",[pulsarCore.TransactionStatus.Failed]:"error",[pulsarCore.TransactionStatus.Replaced]:"info"};function Vs({adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,initialTx:o,executeTxAction:i,closeTxTrackedModal:c,labels:l,features:p,customization:s,pagination:e,...v}){let[u,T]=react.useState(false),b=react.useRef(r),f="nova-transactions",N=novaCore.useMediaQuery("(max-width: 767px)"),x=react.useMemo(()=>({toasts:p?.toasts??true,transactionsModal:p?.transactionsModal??true,trackingTxModal:p?.trackingTxModal??true}),[p]),m=react.useMemo(()=>novaCore.deepMerge(Q,l||{}),[l]),d=react.useCallback(C=>{if(!x.toasts)return;let h=C.pending?"info":Ao[C.status]??"info",M=q=>jsxRuntime.jsx(Mt,{...q,tx:C,openTxInfoModal:x.transactionsModal?()=>T(true):void 0,customization:s?.toast,adapter:t,connectedWalletAddress:a});reactToastify.toast.isActive(C.txKey)?reactToastify.toast.update(C.txKey,{render:M,type:h,containerId:f}):reactToastify.toast(M,{toastId:C.txKey,type:h,closeOnClick:false,containerId:f});},[r,x,s?.toast,t,a]);react.useEffect(()=>{let C=b.current;Object.values(r).forEach(h=>{let M=C[h.txKey];if(!M&&h.pending){d(h);return}M&&JSON.stringify(M)!==JSON.stringify(h)&&d(h);}),b.current=r;},[r,d]),react.useEffect(()=>{Object.values(r).forEach(C=>{reactToastify.toast.isActive(C.txKey,f)&&d(C);});},[a,d,r]);let B=!!o?.withTrackedModal&&r[o?.lastTxKey??""]?.isTrackedModalOpen,O=x.toasts&&(!N||!B&&!u),W=react.useMemo(()=>{let C=s?.toastCloseButton;return C?({closeToast:h})=>jsxRuntime.jsx(novaCore.ToastCloseButton,{closeToast:h,...C}):novaCore.ToastCloseButton},[s?.toastCloseButton]);return jsxRuntime.jsxs(It,{labels:m,children:[O&&jsxRuntime.jsx(reactToastify.ToastContainer,{position:"bottom-right",stacked:true,autoClose:false,hideProgressBar:true,closeOnClick:false,icon:false,closeButton:W,containerId:f,toastClassName:"novatx:!p-0 novatx:!bg-transparent novatx:!shadow-none novatx:!min-h-0",...v}),x.transactionsModal&&jsxRuntime.jsx($t,{isOpen:u,setIsOpen:T,customization:s?.transactionsInfoModal,adapter:t,connectedWalletAddress:a,connectedAdapterType:n,transactionsPool:r,pagination:e}),x.trackingTxModal&&jsxRuntime.jsx(Kt,{initialTx:o,onClose:c,onOpenAllTransactions:()=>T(true),transactionsPool:r,customization:s?.trackingTxModal,executeTxAction:i,adapter:t,connectedWalletAddress:a})]})}
2
+ exports.a=Q;exports.b=It;exports.c=y;exports.d=Vs;exports.e=$;exports.f=D;exports.g=J;exports.h=at;exports.i=Mt;exports.j=Kt;exports.k=Ot;exports.l=Et;exports.m=Dt;exports.n=Ut;exports.o=Xt;exports.p=Yt;exports.q=$t;exports.r=ls;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
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}});
1
+ 'use strict';var chunkIEFOVIBR_cjs=require('./chunk-IEFOVIBR.cjs');Object.defineProperty(exports,"HashLink",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.e}});Object.defineProperty(exports,"StatusAwareText",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.f}});Object.defineProperty(exports,"ToastTransaction",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.i}});Object.defineProperty(exports,"TrackingTxModal",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.j}});Object.defineProperty(exports,"TransactionHistoryItem",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.o}});Object.defineProperty(exports,"TransactionKey",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.g}});Object.defineProperty(exports,"TransactionStatusBadge",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.h}});Object.defineProperty(exports,"TransactionsHistory",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.p}});Object.defineProperty(exports,"TransactionsInfoModal",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.q}});Object.defineProperty(exports,"TxActionButton",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.r}});Object.defineProperty(exports,"TxErrorBlock",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.k}});Object.defineProperty(exports,"TxInfoBlock",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.l}});Object.defineProperty(exports,"TxProgressIndicator",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.m}});Object.defineProperty(exports,"TxStatusVisual",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.n}});Object.defineProperty(exports,"defaultLabels",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.a}});
package/dist/index.css CHANGED
@@ -1,10 +1,11 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
5
5
  :root, :host {
6
6
  --novatx-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
7
7
  monospace;
8
+ --novatx-color-red-500: oklch(63.7% 0.237 25.331);
8
9
  --novatx-color-gray-400: oklch(70.7% 0.022 261.325);
9
10
  --novatx-color-gray-500: oklch(55.1% 0.027 264.364);
10
11
  --novatx-color-white: #fff;
@@ -38,7 +39,7 @@
38
39
  top: 10px;
39
40
  }
40
41
  .novatx\:right-1\/2 {
41
- right: calc(1/2 * 100%);
42
+ right: calc(1 / 2 * 100%);
42
43
  }
43
44
  .novatx\:z-10 {
44
45
  z-index: 10;
@@ -91,6 +92,9 @@
91
92
  .novatx\:h-16 {
92
93
  height: calc(var(--novatx-spacing) * 16);
93
94
  }
95
+ .novatx\:h-px {
96
+ height: 1px;
97
+ }
94
98
  .novatx\:max-h-24 {
95
99
  max-height: calc(var(--novatx-spacing) * 24);
96
100
  }
@@ -139,6 +143,9 @@
139
143
  .novatx\:flex-shrink-0 {
140
144
  flex-shrink: 0;
141
145
  }
146
+ .novatx\:animate-\[novatx-fade-out_0\.4s_ease-out_2s_forwards\] {
147
+ animation: novatx-fade-out 0.4s ease-out 2s forwards;
148
+ }
142
149
  .novatx\:animate-pulse {
143
150
  animation: var(--novatx-animate-pulse);
144
151
  }
@@ -252,6 +259,12 @@
252
259
  .novatx\:border-\[var\(--tuwa-success-icon\)\] {
253
260
  border-color: var(--tuwa-success-icon);
254
261
  }
262
+ .novatx\:border-\[var\(--tuwa-text-secondary\)\] {
263
+ border-color: var(--tuwa-text-secondary);
264
+ }
265
+ .novatx\:border-t-transparent {
266
+ border-top-color: transparent;
267
+ }
255
268
  .novatx\:\!bg-transparent {
256
269
  background-color: transparent !important;
257
270
  }
@@ -348,6 +361,9 @@
348
361
  .novatx\:py-2 {
349
362
  padding-block: calc(var(--novatx-spacing) * 2);
350
363
  }
364
+ .novatx\:py-3 {
365
+ padding-block: calc(var(--novatx-spacing) * 3);
366
+ }
351
367
  .novatx\:py-4 {
352
368
  padding-block: calc(var(--novatx-spacing) * 4);
353
369
  }
@@ -441,6 +457,9 @@
441
457
  .novatx\:text-\[var\(--tuwa-text-tertiary\)\] {
442
458
  color: var(--tuwa-text-tertiary);
443
459
  }
460
+ .novatx\:text-red-500 {
461
+ color: var(--novatx-color-red-500);
462
+ }
444
463
  .novatx\:text-white {
445
464
  color: var(--novatx-color-white);
446
465
  }
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
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';
1
+ import { N as NovaTransactionsLabels } from './TransactionsInfoModal-QOEXpTDM.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, J as TransactionStatusBadge, I as TransactionStatusBadgeProps, D as TransactionsHistory, B as TransactionsHistoryCustomization, A as TransactionsHistoryLoaderProps, C as TransactionsHistoryProps, G as TransactionsInfoModal, E as TransactionsInfoModalCustomization, F 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-QOEXpTDM.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-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';
1
+ import { N as NovaTransactionsLabels } from './TransactionsInfoModal-QOEXpTDM.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, J as TransactionStatusBadge, I as TransactionStatusBadgeProps, D as TransactionsHistory, B as TransactionsHistoryCustomization, A as TransactionsHistoryLoaderProps, C as TransactionsHistoryProps, G as TransactionsInfoModal, E as TransactionsInfoModalCustomization, F 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-QOEXpTDM.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-PUSPAQGZ.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-5X6M2VT6.js';
@@ -1 +1 @@
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
+ 'use strict';var chunkIEFOVIBR_cjs=require('../chunk-IEFOVIBR.cjs');Object.defineProperty(exports,"NovaTransactionsLabelsProvider",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.b}});Object.defineProperty(exports,"NovaTransactionsProvider",{enumerable:true,get:function(){return chunkIEFOVIBR_cjs.d}});Object.defineProperty(exports,"useLabels",{enumerable:true,get:function(){return chunkIEFOVIBR_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-D7eykTZp.cjs';
4
- export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-D7eykTZp.cjs';
3
+ import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-QOEXpTDM.cjs';
4
+ export { L as NovaTransactionsProvider, K as NovaTransactionsProviderProps } from '../TransactionsInfoModal-QOEXpTDM.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-D7eykTZp.js';
4
- export { K as NovaTransactionsProvider, J as NovaTransactionsProviderProps } from '../TransactionsInfoModal-D7eykTZp.js';
3
+ import { N as NovaTransactionsLabels } from '../TransactionsInfoModal-QOEXpTDM.js';
4
+ export { L as NovaTransactionsProvider, K as NovaTransactionsProviderProps } from '../TransactionsInfoModal-QOEXpTDM.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-PUSPAQGZ.js';
1
+ export{b as NovaTransactionsLabelsProvider,d as NovaTransactionsProvider,c as useLabels}from'../chunk-5X6M2VT6.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/nova-transactions",
3
- "version": "0.3.0",
3
+ "version": "0.4.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.5",
72
+ "@tuwaio/pulsar-core": ">=0.6",
73
73
  "@tuwaio/nova-core": ">=0.3",
74
- "@tuwaio/orbit-core": ">=0.2.7",
74
+ "@tuwaio/orbit-core": ">=0.2.8",
75
75
  "dayjs": "1.x.x"
76
76
  },
77
77
  "devDependencies": {
78
- "@tuwaio/orbit-core": "^0.2.7",
79
- "@tuwaio/pulsar-core": "^0.5.0",
80
- "dayjs": "^1.11.19",
81
- "@web3icons/react": "^4.1.16",
82
- "@web3icons/common": "^0.11.45",
78
+ "@tuwaio/orbit-core": "^0.2.8",
79
+ "@tuwaio/pulsar-core": "^0.6.0",
80
+ "dayjs": "^1.11.20",
81
+ "@web3icons/react": "^4.1.17",
82
+ "@web3icons/common": "^0.11.46",
83
83
  "@heroicons/react": "^2.2.0",
84
84
  "@radix-ui/react-dialog": "^1.1.15",
85
- "@tailwindcss/postcss": "^4.1.18",
86
- "@types/react": "^19.2.10",
87
- "autoprefixer": "^10.4.24",
85
+ "@tailwindcss/postcss": "^4.2.4",
86
+ "@types/react": "^19.2.14",
87
+ "autoprefixer": "^10.5.0",
88
88
  "clsx": "^2.1.1",
89
- "framer-motion": "^12.29.2",
90
- "immer": "^11.1.3",
91
- "postcss": "^8.5.6",
89
+ "framer-motion": "^12.38.0",
90
+ "immer": "^11.1.4",
91
+ "postcss": "^8.5.12",
92
92
  "postcss-cli": "^11.0.1",
93
- "react": "^19.2.4",
94
- "react-toastify": "^11.0.5",
93
+ "react": "^19.2.5",
94
+ "react-toastify": "^11.1.0",
95
95
  "tsup": "^8.5.1",
96
- "typescript": "~5.9.3",
97
- "tailwindcss": "^4.1.18",
98
- "zustand": "^5.0.11",
99
- "@tuwaio/nova-core": "^0.3.0"
96
+ "typescript": "~6.0.3",
97
+ "tailwindcss": "^4.2.4",
98
+ "zustand": "^5.0.12",
99
+ "@tuwaio/nova-core": "^0.4.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
- '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;
@@ -1 +0,0 @@
1
- import {createContext,useContext,useMemo,useState,useEffect,useRef,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useCopyToClipboard,cn,textCenterEllipsis,getChainName,NetworkIcon,Dialog,DialogContent,DialogHeader,DialogTitle,DialogClose,CloseIcon,useMediaQuery,deepMerge,ToastCloseButton}from'@tuwaio/nova-core';import {TransactionStatus,TransactionTracker,selectAllTransactionsByActiveWallet}from'@tuwaio/pulsar-core';import {toast,ToastContainer}from'react-toastify';import {ArrowTopRightOnSquareIcon,CheckIcon,DocumentDuplicateIcon,ArrowPathIcon,XCircleIcon,CheckCircleIcon,ExclamationTriangleIcon,ClockIcon,ExclamationCircleIcon}from'@heroicons/react/24/solid';import {selectAdapterByKey,setChainId,OrbitAdapter}from'@tuwaio/orbit-core';import 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};