accesly 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -59,6 +59,16 @@ interface SendPaymentParams {
59
59
  /** Asset issuer address. Required when assetCode is not "XLM". */
60
60
  assetIssuer?: string;
61
61
  }
62
+ /** A single asset hop in a DEX swap path */
63
+ interface SwapPathAsset {
64
+ code: string;
65
+ issuer: string | null;
66
+ }
67
+ /** Estimate returned by /api/wallet/swap-estimate */
68
+ interface SwapEstimate {
69
+ destinationAmount: string;
70
+ path: SwapPathAsset[];
71
+ }
62
72
  /** Parameters for swapping assets via the Stellar DEX */
63
73
  interface SwapParams {
64
74
  /** Asset to sell: "XLM" | "USDC" | "EURC" */
@@ -69,6 +79,8 @@ interface SwapParams {
69
79
  amount: string;
70
80
  /** Minimum amount to receive (slippage protection) */
71
81
  minReceive: string;
82
+ /** Intermediate DEX path from estimateSwap. Omit to let the backend find it. */
83
+ path?: SwapPathAsset[];
72
84
  }
73
85
  /** Result from signing a transaction */
74
86
  interface SignResult {
@@ -97,6 +109,8 @@ interface AcceslyContextType {
97
109
  sendPayment: (params: SendPaymentParams) => Promise<{
98
110
  txHash: string;
99
111
  }>;
112
+ /** Get a swap estimate (exchange rate + DEX path) without executing */
113
+ estimateSwap: (fromAsset: string, toAsset: string, amount: string) => Promise<SwapEstimate>;
100
114
  /** Swap assets using the Stellar DEX */
101
115
  swap: (params: SwapParams) => Promise<{
102
116
  txHash: string;
@@ -134,6 +148,21 @@ declare function AcceslyProvider({ children, ...config }: AcceslyConfig & {
134
148
  */
135
149
  declare function ConnectButton(): react_jsx_runtime.JSX.Element;
136
150
 
151
+ /**
152
+ * SwapModal.tsx - Swap between XLM, USDC, and EURC using the Stellar DEX.
153
+ *
154
+ * Uses the useAccesly hook for estimateSwap and swap — no props beyond callbacks.
155
+ *
156
+ * Usage:
157
+ * import { SwapModal } from 'accesly';
158
+ * <SwapModal onClose={() => setOpen(false)} onSuccess={() => refresh()} />
159
+ */
160
+ interface SwapModalProps {
161
+ onClose: () => void;
162
+ onSuccess?: () => void;
163
+ }
164
+ declare function SwapModal({ onClose, onSuccess }: SwapModalProps): react_jsx_runtime.JSX.Element;
165
+
137
166
  /**
138
167
  * useAccesly.ts - Public hook for accessing wallet state and actions.
139
168
  *
@@ -145,4 +174,4 @@ declare function ConnectButton(): react_jsx_runtime.JSX.Element;
145
174
 
146
175
  declare function useAccesly(): AcceslyContextType;
147
176
 
148
- export { type AcceslyConfig, type AcceslyContextType, AcceslyProvider, type AssetBalance, ConnectButton, type SendPaymentParams, type SignResult, type SwapParams, type TransactionRecord, type WalletInfo, useAccesly };
177
+ export { type AcceslyConfig, type AcceslyContextType, AcceslyProvider, type AssetBalance, ConnectButton, type SendPaymentParams, type SignResult, type SwapEstimate, SwapModal, type SwapParams, type SwapPathAsset, type TransactionRecord, type WalletInfo, useAccesly };
package/dist/index.d.ts CHANGED
@@ -59,6 +59,16 @@ interface SendPaymentParams {
59
59
  /** Asset issuer address. Required when assetCode is not "XLM". */
60
60
  assetIssuer?: string;
61
61
  }
62
+ /** A single asset hop in a DEX swap path */
63
+ interface SwapPathAsset {
64
+ code: string;
65
+ issuer: string | null;
66
+ }
67
+ /** Estimate returned by /api/wallet/swap-estimate */
68
+ interface SwapEstimate {
69
+ destinationAmount: string;
70
+ path: SwapPathAsset[];
71
+ }
62
72
  /** Parameters for swapping assets via the Stellar DEX */
63
73
  interface SwapParams {
64
74
  /** Asset to sell: "XLM" | "USDC" | "EURC" */
@@ -69,6 +79,8 @@ interface SwapParams {
69
79
  amount: string;
70
80
  /** Minimum amount to receive (slippage protection) */
71
81
  minReceive: string;
82
+ /** Intermediate DEX path from estimateSwap. Omit to let the backend find it. */
83
+ path?: SwapPathAsset[];
72
84
  }
73
85
  /** Result from signing a transaction */
74
86
  interface SignResult {
@@ -97,6 +109,8 @@ interface AcceslyContextType {
97
109
  sendPayment: (params: SendPaymentParams) => Promise<{
98
110
  txHash: string;
99
111
  }>;
112
+ /** Get a swap estimate (exchange rate + DEX path) without executing */
113
+ estimateSwap: (fromAsset: string, toAsset: string, amount: string) => Promise<SwapEstimate>;
100
114
  /** Swap assets using the Stellar DEX */
101
115
  swap: (params: SwapParams) => Promise<{
102
116
  txHash: string;
@@ -134,6 +148,21 @@ declare function AcceslyProvider({ children, ...config }: AcceslyConfig & {
134
148
  */
135
149
  declare function ConnectButton(): react_jsx_runtime.JSX.Element;
136
150
 
151
+ /**
152
+ * SwapModal.tsx - Swap between XLM, USDC, and EURC using the Stellar DEX.
153
+ *
154
+ * Uses the useAccesly hook for estimateSwap and swap — no props beyond callbacks.
155
+ *
156
+ * Usage:
157
+ * import { SwapModal } from 'accesly';
158
+ * <SwapModal onClose={() => setOpen(false)} onSuccess={() => refresh()} />
159
+ */
160
+ interface SwapModalProps {
161
+ onClose: () => void;
162
+ onSuccess?: () => void;
163
+ }
164
+ declare function SwapModal({ onClose, onSuccess }: SwapModalProps): react_jsx_runtime.JSX.Element;
165
+
137
166
  /**
138
167
  * useAccesly.ts - Public hook for accessing wallet state and actions.
139
168
  *
@@ -145,4 +174,4 @@ declare function ConnectButton(): react_jsx_runtime.JSX.Element;
145
174
 
146
175
  declare function useAccesly(): AcceslyContextType;
147
176
 
148
- export { type AcceslyConfig, type AcceslyContextType, AcceslyProvider, type AssetBalance, ConnectButton, type SendPaymentParams, type SignResult, type SwapParams, type TransactionRecord, type WalletInfo, useAccesly };
177
+ export { type AcceslyConfig, type AcceslyContextType, AcceslyProvider, type AssetBalance, ConnectButton, type SendPaymentParams, type SignResult, type SwapEstimate, SwapModal, type SwapParams, type SwapPathAsset, type TransactionRecord, type WalletInfo, useAccesly };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- 'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var pe="accesly_auth",Je="https://accesly.vercel.app",E=class extends Error{constructor(n,s){super(n),this.name="AcceslyApiError",this.status=s;}},ne=class{constructor(n,s){this.appId=n,this.baseUrl=s||Je;}setTokens(n){localStorage.setItem(pe,JSON.stringify(n));}getTokens(){let n=localStorage.getItem(pe);if(!n)return null;try{return JSON.parse(n)}catch{return null}}clearTokens(){localStorage.removeItem(pe);}hasSession(){return this.getTokens()!==null}async request(n,s={},r=true){let y=this.getTokens(),S={"Content-Type":"application/json","x-accesly-key":this.appId,...y?{Authorization:`Bearer ${y.accessToken}`}:{}},m=await fetch(`${this.baseUrl}${n}`,{...s,headers:{...S,...s.headers}});if(m.status===401&&r&&y?.refreshToken){if(await this.refreshToken(y.refreshToken))return this.request(n,s,false);throw this.clearTokens(),new Error("Session expired. Please reconnect.")}if(!m.ok){let h=await m.json().catch(()=>({}));throw new E(h.error||h.details||`Request failed: ${m.status}`,m.status)}return m.json()}async refreshToken(n){try{let s=await fetch(`${this.baseUrl}/api/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})});if(!s.ok)return !1;let r=await s.json(),y=this.getTokens();return y&&this.setTokens({...y,accessToken:r.accessToken,refreshToken:r.refreshToken,expiresAt:r.expiresAt}),!0}catch{return false}}async getWalletInfo(){return this.request("/api/wallet/info")}async createWallet(){return this.request("/api/wallet/create",{method:"POST"})}async getBalance(){return this.request("/api/wallet/balance")}async sendPayment(n){let s={destination:n.destination,amount:n.amount};return n.memo&&(s.memo=n.memo),n.assetCode&&n.assetCode!=="XLM"&&(s.asset_code=n.assetCode,n.assetIssuer&&(s.asset_issuer=n.assetIssuer)),this.request("/api/wallet/send",{method:"POST",body:JSON.stringify(s)})}async swap(n){return this.request("/api/wallet/swap",{method:"POST",body:JSON.stringify({from_asset:n.fromAsset,to_asset:n.toAsset,amount:n.amount,min_receive:n.minReceive})})}async getTransactions(n=20){return this.request(`/api/wallet/transactions?limit=${n}`)}async rotateKeys(){return this.request("/api/wallet/rotate",{method:"POST"})}async signTransaction(n){return this.request("/api/wallet/sign",{method:"POST",body:JSON.stringify({xdr:n,submit:false})})}async signAndSubmit(n){return this.request("/api/wallet/sign",{method:"POST",body:JSON.stringify({xdr:n,submit:true})})}};function Te(c,n){return new Promise((s,r)=>{let y=window.screenX+(window.innerWidth-450)/2,S=window.screenY+(window.innerHeight-600)/2,m=window.open(`${c}/auth/popup?appId=${n}`,"accesly-auth",`width=450,height=600,left=${y},top=${S},toolbar=no,menubar=no`);if(!m){r(new Error("Failed to open popup. Please allow popups for this site."));return}function h(C){C.origin.includes(new URL(c).host)&&(C.data?.type==="accesly-auth-success"&&(b(),s(C.data.payload)),C.data?.type==="accesly-auth-error"&&(b(),r(new Error(C.data.error||"Authentication failed"))));}let P=setInterval(()=>{m.closed&&(b(),r(new Error("Authentication cancelled")));},500);function b(){window.removeEventListener("message",h),clearInterval(P);}window.addEventListener("message",h);})}var ue=react.createContext(null),Ze="https://accesly.vercel.app";function et({children:c,...n}){let s=n.baseUrl||Ze,r=react.useMemo(()=>new ne(n.appId,s),[n.appId,s]),[y,S]=react.useState(null),[m,h]=react.useState(null),[P,b]=react.useState([]),[C,f]=react.useState(true),[H,W]=react.useState(false),[k,v]=react.useState(null);react.useEffect(()=>{r.hasSession()?L():f(false);},[r]),react.useEffect(()=>{if(!y)return;D();let l=setInterval(D,15e3);return ()=>clearInterval(l)},[y]);async function L(){v(null);try{let l=await r.getWalletInfo();S(l.wallet),n.onConnect?.(l.wallet);}catch(l){if(l instanceof E&&l.status===404){await R();return}l instanceof E&&l.status===401&&(r.clearTokens(),S(null)),v(l.message);}finally{f(false);}}async function R(){W(true),v(null);try{await r.createWallet();let l=await r.getWalletInfo();S(l.wallet),n.onConnect?.(l.wallet);}catch(l){v(l.message);}finally{W(false),f(false);}}async function D(){try{let l=await r.getBalance(),I=l.balances.find(x=>x.asset==="native");h(I?.balance||"0");let Y=l.balances.filter(x=>x.asset!=="native").map(x=>{let[Q,Z]=x.asset.split(":");return {code:Q,issuer:Z,balance:x.balance}});b(Y);}catch{}}let j=react.useCallback(async()=>{v(null);try{let l=await Te(s,n.appId);r.setTokens(l),f(!0),await L();}catch(l){l.message!=="Authentication cancelled"&&v(l.message);}},[s,n.appId,r]),X=react.useCallback(()=>{r.clearTokens(),S(null),h(null),b([]),v(null),n.onDisconnect?.();},[r,n.onDisconnect]),M=react.useCallback(async l=>r.sendPayment(l),[r]),ae=react.useCallback(async l=>r.swap(l),[r]),O=react.useCallback(async()=>r.rotateKeys(),[r]),K=react.useCallback(async(l=20)=>(await r.getTransactions(l)).transactions,[r]),_=react.useCallback(async()=>{await D();},[r]),N=react.useCallback(async()=>{await L();},[r]),J=react.useCallback(async l=>r.signTransaction(l),[r]),V=react.useCallback(async l=>r.signAndSubmit(l),[r]),F={loading:C,creating:H,wallet:y,balance:m,assetBalances:P,error:k,connect:j,disconnect:X,sendPayment:M,swap:ae,rotateKeys:O,getTransactions:K,refreshBalance:_,refreshWallet:N,signTransaction:J,signAndSubmit:V};return jsxRuntime.jsx(ue.Provider,{value:F,children:c})}function G(){let c=react.useContext(ue);if(!c)throw new Error('useAccesly must be used within an <AcceslyProvider>. Wrap your app with <AcceslyProvider appId="acc_xxxxx">.');return c}function Be({onClose:c,onConnect:n}){return jsxRuntime.jsx("div",{style:B.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:B.modal,onClick:s=>s.stopPropagation(),children:[jsxRuntime.jsx("button",{onClick:c,style:B.closeBtn,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsxRuntime.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),jsxRuntime.jsx("div",{style:B.iconWrapper,children:jsxRuntime.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"#667eea",strokeWidth:"1.5",children:[jsxRuntime.jsx("path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2.5"}),jsxRuntime.jsx("path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"})]})}),jsxRuntime.jsx("h2",{style:B.title,children:"Connect to Accesly"}),jsxRuntime.jsx("p",{style:B.subtitle,children:"Choose how you want to connect"}),jsxRuntime.jsxs("button",{onClick:n,style:B.googleBtn,children:[jsxRuntime.jsxs("svg",{style:B.googleIcon,viewBox:"0 0 24 24",children:[jsxRuntime.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),jsxRuntime.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),jsxRuntime.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),jsxRuntime.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),"Continue with Google"]}),jsxRuntime.jsx("p",{style:B.footer,children:"Powered by Accesly"})]})})}var B={overlay:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:99999,padding:"1rem",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},modal:{position:"relative",backgroundColor:"#141428",borderRadius:"20px",border:"1px solid #2a2a4a",padding:"2rem",width:"100%",maxWidth:"380px",textAlign:"center"},closeBtn:{position:"absolute",top:"1rem",right:"1rem",background:"none",border:"none",color:"#64748b",cursor:"pointer",padding:"4px"},iconWrapper:{width:"56px",height:"56px",borderRadius:"16px",backgroundColor:"rgba(102, 126, 234, 0.1)",border:"1px solid rgba(102, 126, 234, 0.2)",display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto 1rem"},title:{fontSize:"1.3rem",fontWeight:700,color:"#e2e8f0",margin:"0 0 0.25rem"},subtitle:{color:"#64748b",fontSize:"0.85rem",margin:"0 0 1.5rem"},googleBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.75rem",padding:"0.85rem 1.5rem",backgroundColor:"#1a1a2e",color:"#e2e8f0",border:"1px solid #2a2a4a",borderRadius:"12px",fontSize:"0.95rem",fontWeight:500,cursor:"pointer",width:"100%",marginBottom:"1.25rem"},googleIcon:{width:"20px",height:"20px",flexShrink:0},footer:{color:"#475569",fontSize:"0.7rem",margin:0}};var ye=["XLM","USDC","EURC"];function Pe({onClose:c}){let{wallet:n,balance:s,assetBalances:r,disconnect:y,sendPayment:S,swap:m,rotateKeys:h,getTransactions:P,refreshBalance:b,refreshWallet:C}=G(),[f,H]=react.useState("wallet"),[W,k]=react.useState("main"),[v,L]=react.useState(""),[R,D]=react.useState(""),[j,X]=react.useState(""),[M,ae]=react.useState("XLM"),[O,K]=react.useState(false),[_,N]=react.useState(null),[J,V]=react.useState(null),[F,l]=react.useState("USDC"),[I,Y]=react.useState("EURC"),[x,Q]=react.useState(""),[Z,Re]=react.useState("1"),[re,fe]=react.useState(false),[se,ge]=react.useState(null),[he,ie]=react.useState(null),[le,We]=react.useState([]),[Le,be]=react.useState(false),[De,Me]=react.useState(0),[ce,ve]=react.useState(false),[xe,we]=react.useState(null),[ee,Se]=react.useState(null);if(react.useEffect(()=>{if(f!=="activity")return;Ce();let a=setInterval(Ce,15e3);return ()=>clearInterval(a)},[f,De]),!n)return null;async function Ce(){be(true);try{let a=await P(20);We(a);}catch{}finally{be(false);}}async function Fe(){if(!(!v||!R)){K(true),V(null);try{let a=await S({destination:v,amount:R,memo:j||void 0,assetCode:M!=="XLM"?M:void 0});N(a.txHash),b(),Me(i=>i+1);}catch(a){V(a.message);}finally{K(false);}}}function ze(){N(null),L(""),D(""),X(""),V(null),k("main");}async function Ee(){if(x){fe(true),ie(null);try{let a=(parseFloat(x)*(1-parseFloat(Z)/100)).toFixed(7),i=await m({fromAsset:F,toAsset:I,amount:x,minReceive:a});ge(i.txHash),b();}catch(a){ie(a.message);}finally{fe(false);}}}function Ue(){ge(null),Q(""),ie(null),k("main");}async function $e(){if(confirm("This will generate a new keypair and update your contract. Continue?")){ve(true),we(null);try{await h(),await C();}catch(a){we(a.message);}finally{ve(false);}}}function He(){y(),c();}function te(a,i=6,u=6){return a.length<=i+u+3?a:`${a.slice(0,i)}...${a.slice(-u)}`}async function ke(a,i){await navigator.clipboard.writeText(a),Se(i),setTimeout(()=>Se(null),1500);}function Oe(a){let i=Math.floor((Date.now()-new Date(a).getTime())/1e3);return i<60?"just now":i<3600?`${Math.floor(i/60)}m ago`:i<86400?`${Math.floor(i/3600)}h ago`:i<172800?"yesterday":`${Math.floor(i/86400)}d ago`}let _e=s?parseFloat(s).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}):"---",Ve=at(n.stellarAddress),Ge=[{key:"wallet",label:"Wallet"},{key:"activity",label:"Activity"},{key:"account",label:"Account"},{key:"security",label:"Security"}];return jsxRuntime.jsx("div",{style:t.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:t.panel,onClick:a=>a.stopPropagation(),children:[jsxRuntime.jsxs("div",{style:t.header,children:[jsxRuntime.jsx("button",{onClick:c,style:t.closeBtn,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsxRuntime.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),jsxRuntime.jsx("div",{style:{...t.identicon,backgroundColor:Ve}}),jsxRuntime.jsx("p",{style:t.headerAddr,children:te(n.stellarAddress,8,8)}),jsxRuntime.jsxs("p",{style:t.headerBalance,children:[_e," ",jsxRuntime.jsx("span",{style:t.headerCurrency,children:"XLM"})]})]}),jsxRuntime.jsx("div",{style:t.tabBar,children:Ge.map(a=>jsxRuntime.jsx("button",{onClick:()=>{H(a.key),k("main");},style:{...t.tab,...f===a.key?t.tabActive:{}},children:a.label},a.key))}),jsxRuntime.jsxs("div",{style:t.content,children:[f==="wallet"&&qe(),f==="activity"&&je(),f==="account"&&Xe(),f==="security"&&Ke()]})]})});function qe(){if(_)return jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"10"}),jsxRuntime.jsx("polyline",{points:"8 12 11 15 16 9"})]}),jsxRuntime.jsx("p",{style:{color:"#34d399",fontWeight:600,margin:"0.5rem 0"},children:"Payment Sent"}),jsxRuntime.jsxs("p",{style:{color:"#64748b",fontSize:"0.75rem",fontFamily:"monospace"},children:[_.slice(0,12),"...",_.slice(-12)]}),jsxRuntime.jsx("button",{onClick:ze,style:t.primaryBtn,children:"Done"})]});if(W==="send")return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>k("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Destination"}),jsxRuntime.jsx("input",{type:"text",placeholder:"G...",value:v,onChange:u=>L(u.target.value),maxLength:56,style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Asset"}),jsxRuntime.jsxs("select",{value:M,onChange:u=>ae(u.target.value),style:t.formInput,children:[jsxRuntime.jsx("option",{value:"XLM",children:"XLM \u2014 Stellar Lumens"}),jsxRuntime.jsx("option",{value:"USDC",children:"USDC \u2014 USD Coin"}),jsxRuntime.jsx("option",{value:"EURC",children:"EURC \u2014 Euro Coin"})]})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsxs("label",{style:t.formLabel,children:["Amount (",M,")"]}),jsxRuntime.jsx("input",{type:"number",placeholder:"0.00",value:R,onChange:u=>D(u.target.value),min:"0.0000001",step:"any",style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Memo (optional)"}),jsxRuntime.jsx("input",{type:"text",placeholder:"What is this for?",value:j,onChange:u=>X(u.target.value),maxLength:28,style:t.formInput})]}),J&&jsxRuntime.jsx("p",{style:t.error,children:J}),jsxRuntime.jsx("button",{onClick:Fe,disabled:O||!v||!R,style:{...t.primaryBtn,opacity:O||!v||!R?.5:1},children:O?"Sending...":"Send Payment"})]});if(W==="receive")return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>k("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsx("div",{style:t.receiveIconBig,children:jsxRuntime.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]})}),jsxRuntime.jsx("p",{style:{color:"#e2e8f0",fontWeight:600,fontSize:"1rem",margin:0},children:"Receive XLM"}),jsxRuntime.jsx("p",{style:{color:"#64748b",fontSize:"0.8rem",margin:0,textAlign:"center"},children:"Share your Stellar address to receive payments"}),jsxRuntime.jsx("div",{style:t.addressBox,children:jsxRuntime.jsx("span",{style:t.addressText,children:n.stellarAddress})}),jsxRuntime.jsx("button",{onClick:()=>ke(n.stellarAddress,"receive"),style:t.primaryBtn,children:ee==="receive"?"Copied!":"Copy Address"})]})]});if(W==="swap"){if(se)return jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"10"}),jsxRuntime.jsx("polyline",{points:"8 12 11 15 16 9"})]}),jsxRuntime.jsx("p",{style:{color:"#34d399",fontWeight:600,margin:"0.5rem 0"},children:"Swap Complete"}),jsxRuntime.jsxs("p",{style:{color:"#64748b",fontSize:"0.75rem",fontFamily:"monospace"},children:[se.slice(0,12),"...",se.slice(-12)]}),jsxRuntime.jsx("button",{onClick:Ue,style:t.primaryBtn,children:"Done"})]});let u=ye.filter(d=>d!==F);return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>k("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"From"}),jsxRuntime.jsx("select",{value:F,onChange:d=>{let z=d.target.value;l(z),z===I&&Y(ye.find(de=>de!==z));},style:t.formInput,children:ye.filter(d=>d!==I).map(d=>jsxRuntime.jsx("option",{value:d,children:d},d))})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Amount"}),jsxRuntime.jsx("input",{type:"number",placeholder:"0.00",value:x,onChange:d=>Q(d.target.value),min:"0.0000001",step:"any",style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"To"}),jsxRuntime.jsx("select",{value:I,onChange:d=>Y(d.target.value),style:t.formInput,children:u.map(d=>jsxRuntime.jsx("option",{value:d,children:d},d))})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Max Slippage (%)"}),jsxRuntime.jsx("input",{type:"number",placeholder:"1",value:Z,onChange:d=>Re(d.target.value),min:"0.01",max:"50",step:"0.1",style:t.formInput})]}),he&&jsxRuntime.jsx("p",{style:t.error,children:he}),jsxRuntime.jsx("button",{onClick:Ee,disabled:re||!x,style:{...t.primaryBtn,opacity:re||!x?.5:1},children:re?"Swapping...":`Swap ${F} \u2192 ${I}`})]})}let a={USDC:"#2775ca",EURC:"#3c7fc0"},i=["USDC","EURC"];return jsxRuntime.jsxs("div",{style:t.walletTab,children:[jsxRuntime.jsxs("div",{style:t.actionRow,children:[jsxRuntime.jsxs("button",{onClick:()=>k("send"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:t.actionIcon,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),jsxRuntime.jsx("polyline",{points:"5 12 12 5 19 12"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Send"})]}),jsxRuntime.jsxs("button",{onClick:()=>k("receive"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:{...t.actionIcon,...t.actionIconReceive},children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Receive"})]}),jsxRuntime.jsxs("button",{onClick:()=>k("swap"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:{...t.actionIcon,...t.actionIconSwap},children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("polyline",{points:"17 1 21 5 17 9"}),jsxRuntime.jsx("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),jsxRuntime.jsx("polyline",{points:"7 23 3 19 7 15"}),jsxRuntime.jsx("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Swap"})]})]}),jsxRuntime.jsx("div",{style:t.assetList,children:i.map(u=>{let d=r.find(Ne=>Ne.code===u),z=d?parseFloat(d.balance):0,de=z===0;return jsxRuntime.jsxs("div",{style:t.assetCard,children:[jsxRuntime.jsx("div",{style:{...t.assetDot,backgroundColor:a[u]||"#667eea"}}),jsxRuntime.jsxs("div",{style:t.assetInfo,children:[jsxRuntime.jsx("span",{style:t.assetCode,children:u}),de&&jsxRuntime.jsxs("span",{style:t.assetHint,children:["Want ",u,"? Use ",jsxRuntime.jsx("strong",{children:"Swap"})," to exchange your XLM."]})]}),jsxRuntime.jsx("span",{style:t.assetBalance,children:z.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})})]},u)})})]})}function je(){return Le&&le.length===0?jsxRuntime.jsx("p",{style:t.emptyText,children:"Loading transactions..."}):le.length===0?jsxRuntime.jsx("p",{style:t.emptyText,children:"No transactions yet"}):jsxRuntime.jsx("div",{style:t.txList,children:le.map(a=>{let i=a.type==="swap",u=i?"rgba(251, 191, 36, 0.15)":a.type==="received"?"rgba(52, 211, 153, 0.15)":"rgba(248, 113, 113, 0.15)",d=i?"#fbbf24":a.type==="received"?"#34d399":"#f87171";return jsxRuntime.jsxs("div",{style:t.txRow,children:[jsxRuntime.jsx("div",{style:{...t.txIcon,backgroundColor:u},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:d,strokeWidth:"2.5",children:i?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("polyline",{points:"17 1 21 5 17 9"}),jsxRuntime.jsx("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),jsxRuntime.jsx("polyline",{points:"7 23 3 19 7 15"}),jsxRuntime.jsx("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]}):a.type==="received"?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),jsxRuntime.jsx("polyline",{points:"5 12 12 5 19 12"})]})})}),jsxRuntime.jsxs("div",{style:t.txDetails,children:[jsxRuntime.jsx("span",{style:t.txType,children:i?"Swap":a.type==="received"?"Received":"Sent"}),jsxRuntime.jsx("span",{style:t.txCounterparty,children:i?`${a.fromAsset} \u2192 ${a.asset}`:(a.type==="received"?"from ":"to ")+te(a.counterparty)})]}),jsxRuntime.jsxs("div",{style:t.txAmountCol,children:[jsxRuntime.jsx("span",{style:{...t.txAmount,color:d},children:i?`${parseFloat(a.fromAmount).toLocaleString("en-US",{maximumFractionDigits:4})} \u2192 ${parseFloat(a.amount).toLocaleString("en-US",{maximumFractionDigits:4})}`:`${a.type==="received"?"+":"-"}${parseFloat(a.amount).toLocaleString("en-US",{maximumFractionDigits:2})} ${a.asset}`}),jsxRuntime.jsx("span",{style:t.txTime,children:Oe(a.createdAt)})]})]},a.id)})})}function Xe(){let a=[{label:"Email",value:n.email,key:"email"},{label:"Contract ID",value:n.contractId,key:"contract",copy:true},{label:"Stellar Address",value:n.stellarAddress,key:"stellar",copy:true},{label:"Public Key",value:n.publicKey,key:"pubkey",copy:true},{label:"Created",value:new Date(n.createdAt).toLocaleDateString(),key:"created"}];return jsxRuntime.jsx("div",{style:t.fieldList,children:a.map(i=>jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:i.label}),i.copy?jsxRuntime.jsx("button",{onClick:()=>ke(i.value,i.key),style:{...t.copyBtn,color:ee===i.key?"#34d399":"#a5b4fc",borderColor:ee===i.key?"#34d399":"#2a2a4a"},children:ee===i.key?"Copied!":te(i.value,8,8)}):jsxRuntime.jsx("span",{style:t.fieldValue,children:i.value})]},i.key))})}function Ke(){return jsxRuntime.jsxs("div",{style:t.securityTab,children:[jsxRuntime.jsxs("div",{style:t.fieldList,children:[jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Recovery"}),jsxRuntime.jsx("span",{style:{...t.fieldValue,color:"#34d399"},children:"Protected"})]}),jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Method"}),jsxRuntime.jsxs("span",{style:t.fieldValue,children:["Google (",n.email,")"]})]}),n.recoverySigners&&n.recoverySigners.length>0&&jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Signer"}),jsxRuntime.jsx("span",{style:t.fieldValue,children:te(n.recoverySigners[0].publicKey)})]})]}),xe&&jsxRuntime.jsx("p",{style:t.error,children:xe}),jsxRuntime.jsxs("button",{onClick:$e,disabled:ce,style:{...t.rotateBtn,opacity:ce?.5:1},children:[jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M21 2v6h-6"}),jsxRuntime.jsx("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),jsxRuntime.jsx("path",{d:"M3 22v-6h6"}),jsxRuntime.jsx("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]}),ce?"Rotating...":"Rotate Keys"]}),jsxRuntime.jsxs("button",{onClick:He,style:t.disconnectBtn,children:[jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),jsxRuntime.jsx("polyline",{points:"16 17 21 12 16 7"}),jsxRuntime.jsx("line",{x1:"21",y1:"12",x2:"9",y2:"12"})]}),"Disconnect"]})]})}}function at(c){let n=0;for(let s=0;s<c.length;s++)n=c.charCodeAt(s)+((n<<5)-n);return `hsl(${Math.abs(n)%360}, 65%, 55%)`}var t={overlay:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:99999,padding:"1rem",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},panel:{backgroundColor:"#0f0f1e",borderRadius:"20px",border:"1px solid #2a2a4a",width:"100%",maxWidth:"420px",maxHeight:"85vh",display:"flex",flexDirection:"column",overflow:"hidden"},header:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",padding:"1.5rem 1.5rem 1rem",background:"linear-gradient(180deg, #1a1a3a 0%, #0f0f1e 100%)"},closeBtn:{position:"absolute",top:"1rem",right:"1rem",background:"none",border:"none",color:"#64748b",cursor:"pointer",padding:"4px"},identicon:{width:"48px",height:"48px",borderRadius:"50%",marginBottom:"0.5rem"},headerAddr:{fontFamily:"monospace",fontSize:"0.8rem",color:"#8b8ba7",margin:"0 0 0.25rem"},headerBalance:{fontSize:"1.75rem",fontWeight:700,color:"#ffffff",margin:0},headerCurrency:{fontSize:"0.85rem",fontWeight:500,color:"#8b8ba7"},tabBar:{display:"flex",borderBottom:"1px solid #2a2a4a",padding:"0 0.5rem"},tab:{flex:1,padding:"0.75rem 0.5rem",background:"none",border:"none",borderBottomWidth:"2px",borderBottomStyle:"solid",borderBottomColor:"transparent",color:"#64748b",fontSize:"0.8rem",fontWeight:500,cursor:"pointer",transition:"color 0.2s, border-color 0.2s",borderRadius:0},tabActive:{color:"#e2e8f0",borderBottomColor:"#667eea"},content:{flex:1,overflowY:"auto",padding:"1rem 1.25rem 1.25rem"},walletTab:{display:"flex",flexDirection:"column",gap:"1rem"},actionRow:{display:"flex",gap:"1rem",justifyContent:"center"},actionBtn:{display:"flex",flexDirection:"column",alignItems:"center",gap:"0.5rem",padding:"1.25rem 1.5rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"16px",cursor:"pointer",transition:"border-color 0.2s",flex:1},actionIcon:{width:"44px",height:"44px",borderRadius:"50%",backgroundColor:"rgba(102, 126, 234, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",color:"#667eea"},actionIconReceive:{backgroundColor:"rgba(52, 211, 153, 0.15)",color:"#34d399"},actionIconSwap:{backgroundColor:"rgba(251, 191, 36, 0.15)",color:"#fbbf24"},assetList:{display:"flex",flexDirection:"column",gap:"0.5rem"},assetCard:{display:"flex",alignItems:"center",gap:"0.65rem",padding:"0.65rem 0.85rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"12px"},assetDot:{width:"10px",height:"10px",borderRadius:"50%",flexShrink:0},assetInfo:{display:"flex",flexDirection:"column",flex:1},assetCode:{color:"#e2e8f0",fontSize:"0.85rem",fontWeight:600},assetHint:{color:"#64748b",fontSize:"0.68rem",marginTop:"1px"},assetBalance:{color:"#a5b4fc",fontSize:"0.85rem",fontWeight:500,fontFamily:"monospace"},actionLabel:{fontSize:"0.85rem",fontWeight:500,color:"#e2e8f0"},subView:{display:"flex",flexDirection:"column",gap:"0.75rem"},backBtn:{display:"flex",alignItems:"center",gap:"0.25rem",background:"none",border:"none",color:"#8b8ba7",fontSize:"0.8rem",cursor:"pointer",padding:"0 0 0.25rem",width:"fit-content"},formGroup:{display:"flex",flexDirection:"column",gap:"0.3rem"},formLabel:{color:"#8b8ba7",fontSize:"0.75rem",fontWeight:500},formInput:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"8px",padding:"0.65rem 0.75rem",color:"#e2e8f0",fontSize:"0.9rem",outline:"none",width:"100%",boxSizing:"border-box",fontFamily:"inherit"},primaryBtn:{backgroundColor:"#667eea",color:"#fff",border:"none",borderRadius:"10px",padding:"0.75rem",fontSize:"0.95rem",fontWeight:600,cursor:"pointer",width:"100%",marginTop:"0.25rem"},error:{color:"#f87171",fontSize:"0.8rem",margin:0,padding:"0.4rem 0.6rem",backgroundColor:"rgba(248, 113, 113, 0.1)",borderRadius:"6px"},centeredCol:{display:"flex",flexDirection:"column",alignItems:"center",gap:"0.5rem",padding:"1rem 0"},receiveIconBig:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"rgba(52, 211, 153, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"0.25rem"},addressBox:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"8px",padding:"0.75rem",width:"100%",marginTop:"0.5rem"},addressText:{fontFamily:"monospace",fontSize:"0.7rem",color:"#a5b4fc",wordBreak:"break-all",lineHeight:1.5},txList:{display:"flex",flexDirection:"column"},txRow:{display:"flex",alignItems:"center",gap:"0.75rem",padding:"0.65rem 0",borderBottom:"1px solid #1a1a2e"},txIcon:{width:"36px",height:"36px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},txDetails:{display:"flex",flexDirection:"column",flex:1,minWidth:0},txType:{color:"#e2e8f0",fontSize:"0.85rem",fontWeight:500},txCounterparty:{color:"#64748b",fontSize:"0.7rem",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},txAmountCol:{display:"flex",flexDirection:"column",alignItems:"flex-end",flexShrink:0},txAmount:{fontSize:"0.85rem",fontWeight:600},txTime:{color:"#64748b",fontSize:"0.65rem"},emptyText:{color:"#64748b",fontSize:"0.85rem",textAlign:"center",padding:"2rem 0"},fieldList:{display:"flex",flexDirection:"column"},field:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.6rem 0",borderBottom:"1px solid #1a1a2e"},fieldLabel:{color:"#8b8ba7",fontSize:"0.8rem"},fieldValue:{color:"#e2e8f0",fontSize:"0.8rem",fontWeight:500},copyBtn:{background:"none",border:"1px solid #2a2a4a",color:"#a5b4fc",padding:"0.2rem 0.5rem",borderRadius:"4px",fontSize:"0.72rem",fontFamily:"monospace",cursor:"pointer",transition:"color 0.2s, border-color 0.2s"},securityTab:{display:"flex",flexDirection:"column",gap:"1rem"},rotateBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",width:"100%",padding:"0.65rem",backgroundColor:"transparent",color:"#f59e0b",border:"1px solid rgba(245, 158, 11, 0.3)",borderRadius:"10px",fontSize:"0.85rem",fontWeight:600,cursor:"pointer"},disconnectBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",width:"100%",padding:"0.65rem",backgroundColor:"transparent",color:"#f87171",border:"1px solid rgba(248, 113, 113, 0.2)",borderRadius:"10px",fontSize:"0.85rem",fontWeight:500,cursor:"pointer"}};function rt(){let{wallet:c,balance:n,loading:s,creating:r,connect:y}=G(),[S,m]=react.useState(false),[h,P]=react.useState(false);if(s)return jsxRuntime.jsx("div",{style:T.pillLoading,children:jsxRuntime.jsx("div",{style:T.spinner})});if(!c)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{onClick:()=>m(true),style:r?T.pill:T.connectBtn,disabled:r,children:r?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{style:T.spinnerSmall}),jsxRuntime.jsx("span",{style:T.pillText,children:"Creating wallet..."})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2.5"}),jsxRuntime.jsx("path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"})]}),"Connect Wallet"]})}),S&&jsxRuntime.jsx(Be,{onClose:()=>m(false),onConnect:async()=>{m(false),await y();}})]});let b=c.stellarAddress,C=`${b.slice(0,4)}...${b.slice(-4)}`,f=n?`${parseFloat(n).toFixed(2)} XLM`:"--- XLM",H=st(b);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("button",{onClick:()=>P(true),style:T.pill,children:[jsxRuntime.jsx("div",{style:{...T.identicon,backgroundColor:H}}),jsxRuntime.jsx("span",{style:T.pillAddr,children:C}),jsxRuntime.jsx("span",{style:T.divider}),jsxRuntime.jsx("span",{style:T.pillBalance,children:f})]}),h&&jsxRuntime.jsx(Pe,{onClose:()=>P(false)})]})}function st(c){let n=0;for(let s=0;s<c.length;s++)n=c.charCodeAt(s)+((n<<5)-n);return `hsl(${Math.abs(n)%360}, 65%, 55%)`}var T={connectBtn:{display:"flex",alignItems:"center",gap:"0.6rem",padding:"0.85rem 1.75rem",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",color:"#fff",border:"none",borderRadius:"12px",fontSize:"1rem",fontWeight:600,cursor:"pointer",transition:"transform 0.15s, box-shadow 0.15s",boxShadow:"0 4px 15px rgba(102, 126, 234, 0.4)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},pill:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.5rem 0.85rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"50px",cursor:"pointer",transition:"border-color 0.2s, box-shadow 0.2s",color:"#e2e8f0",fontSize:"0.85rem",fontWeight:500,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},pillLoading:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.5rem 1.5rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"50px",height:"42px"},identicon:{width:"24px",height:"24px",borderRadius:"50%",flexShrink:0},pillAddr:{fontFamily:"monospace",fontSize:"0.8rem",color:"#e2e8f0"},divider:{width:"1px",height:"16px",backgroundColor:"#3a3a5a"},pillBalance:{fontSize:"0.8rem",color:"#8b8ba7",fontWeight:500},pillText:{fontSize:"0.8rem",color:"#8b8ba7"},spinner:{width:"20px",height:"20px",border:"2px solid #2a2a4a",borderTop:"2px solid #667eea",borderRadius:"50%",animation:"accesly-spin 1s linear infinite"},spinnerSmall:{width:"16px",height:"16px",border:"2px solid #2a2a4a",borderTop:"2px solid #667eea",borderRadius:"50%",animation:"accesly-spin 1s linear infinite",flexShrink:0}};if(typeof document<"u"){let c="accesly-keyframes";if(!document.getElementById(c)){let n=document.createElement("style");n.id=c,n.textContent=`
1
+ 'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var ge="accesly_auth",tt="https://accesly.vercel.app",ee=class extends Error{constructor(n,i){super(n),this.name="AcceslyApiError",this.status=i;}},ie=class{constructor(n,i){this.appId=n,this.baseUrl=i||tt;}setTokens(n){localStorage.setItem(ge,JSON.stringify(n));}getTokens(){let n=localStorage.getItem(ge);if(!n)return null;try{return JSON.parse(n)}catch{return null}}clearTokens(){localStorage.removeItem(ge);}hasSession(){return this.getTokens()!==null}async request(n,i={},r=true){let m=this.getTokens(),k={"Content-Type":"application/json","x-accesly-key":this.appId,...m?{Authorization:`Bearer ${m.accessToken}`}:{}},u=await fetch(`${this.baseUrl}${n}`,{...i,headers:{...k,...i.headers}});if(u.status===401&&r&&m?.refreshToken){if(await this.refreshToken(m.refreshToken))return this.request(n,i,false);throw this.clearTokens(),new Error("Session expired. Please reconnect.")}if(!u.ok){let b=await u.json().catch(()=>({}));throw new ee(b.error||b.details||`Request failed: ${u.status}`,u.status)}return u.json()}async refreshToken(n){try{let i=await fetch(`${this.baseUrl}/api/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})});if(!i.ok)return !1;let r=await i.json(),m=this.getTokens();return m&&this.setTokens({...m,accessToken:r.accessToken,refreshToken:r.refreshToken,expiresAt:r.expiresAt}),!0}catch{return false}}async getWalletInfo(){return this.request("/api/wallet/info")}async createWallet(){return this.request("/api/wallet/create",{method:"POST"})}async getBalance(){return this.request("/api/wallet/balance")}async sendPayment(n){let i={destination:n.destination,amount:n.amount};return n.memo&&(i.memo=n.memo),n.assetCode&&n.assetCode!=="XLM"&&(i.asset_code=n.assetCode,n.assetIssuer&&(i.asset_issuer=n.assetIssuer)),this.request("/api/wallet/send",{method:"POST",body:JSON.stringify(i)})}async estimateSwap(n,i,r){return this.request(`/api/wallet/swap-estimate?from_asset=${n}&to_asset=${i}&amount=${r}`)}async swap(n){let i={from_asset:n.fromAsset,to_asset:n.toAsset,amount:n.amount,min_receive:n.minReceive};return n.path&&(i.path=n.path),this.request("/api/wallet/swap",{method:"POST",body:JSON.stringify(i)})}async getTransactions(n=20){return this.request(`/api/wallet/transactions?limit=${n}`)}async rotateKeys(){return this.request("/api/wallet/rotate",{method:"POST"})}async signTransaction(n){return this.request("/api/wallet/sign",{method:"POST",body:JSON.stringify({xdr:n,submit:false})})}async signAndSubmit(n){return this.request("/api/wallet/sign",{method:"POST",body:JSON.stringify({xdr:n,submit:true})})}};function Ie(c,n){return new Promise((i,r)=>{let m=window.screenX+(window.innerWidth-450)/2,k=window.screenY+(window.innerHeight-600)/2,u=window.open(`${c}/auth/popup?appId=${n}`,"accesly-auth",`width=450,height=600,left=${m},top=${k},toolbar=no,menubar=no`);if(!u){r(new Error("Failed to open popup. Please allow popups for this site."));return}function b(A){A.origin.includes(new URL(c).host)&&(A.data?.type==="accesly-auth-success"&&(x(),i(A.data.payload)),A.data?.type==="accesly-auth-error"&&(x(),r(new Error(A.data.error||"Authentication failed"))));}let v=setInterval(()=>{u.closed&&(x(),r(new Error("Authentication cancelled")));},500);function x(){window.removeEventListener("message",b),clearInterval(v);}window.addEventListener("message",b);})}var he=react.createContext(null),at="https://accesly.vercel.app";function st({children:c,...n}){let i=n.baseUrl||at,r=react.useMemo(()=>new ie(n.appId,i),[n.appId,i]),[m,k]=react.useState(null),[u,b]=react.useState(null),[v,x]=react.useState([]),[A,w]=react.useState(true),[B,M]=react.useState(false),[h,S]=react.useState(null);react.useEffect(()=>{r.hasSession()?L():w(false);},[r]),react.useEffect(()=>{if(!m)return;U();let o=setInterval(U,15e3);return ()=>clearInterval(o)},[m]);async function L(){S(null);try{let o=await r.getWalletInfo();k(o.wallet),n.onConnect?.(o.wallet);}catch(o){if(o instanceof ee&&o.status===404){await I();return}o instanceof ee&&o.status===401&&(r.clearTokens(),k(null)),S(o.message);}finally{w(false);}}async function I(){M(true),S(null);try{await r.createWallet();let o=await r.getWalletInfo();k(o.wallet),n.onConnect?.(o.wallet);}catch(o){S(o.message);}finally{M(false),w(false);}}async function U(){try{let o=await r.getBalance(),T=o.balances.find(H=>H.asset==="native");b(T?.balance||"0");let F=o.balances.filter(H=>H.asset!=="native").map(H=>{let[ae,ce]=H.asset.split(":");return {code:ae,issuer:ce,balance:H.balance}});x(F);}catch{}}let V=react.useCallback(async()=>{S(null);try{let o=await Ie(i,n.appId);r.setTokens(o),w(!0),await L();}catch(o){o.message!=="Authentication cancelled"&&S(o.message);}},[i,n.appId,r]),j=react.useCallback(()=>{r.clearTokens(),k(null),b(null),x([]),S(null),n.onDisconnect?.();},[r,n.onDisconnect]),$=react.useCallback(async o=>r.sendPayment(o),[r]),G=react.useCallback(async(o,T,F)=>r.estimateSwap(o,T,F),[r]),q=react.useCallback(async o=>r.swap(o),[r]),D=react.useCallback(async()=>r.rotateKeys(),[r]),X=react.useCallback(async(o=20)=>(await r.getTransactions(o)).transactions,[r]),N=react.useCallback(async()=>{await U();},[r]),Y=react.useCallback(async()=>{await L();},[r]),K=react.useCallback(async o=>r.signTransaction(o),[r]),_=react.useCallback(async o=>r.signAndSubmit(o),[r]),Q={loading:A,creating:B,wallet:m,balance:u,assetBalances:v,error:h,connect:V,disconnect:j,sendPayment:$,estimateSwap:G,swap:q,rotateKeys:D,getTransactions:X,refreshBalance:N,refreshWallet:Y,signTransaction:K,signAndSubmit:_};return jsxRuntime.jsx(he.Provider,{value:Q,children:c})}function J(){let c=react.useContext(he);if(!c)throw new Error('useAccesly must be used within an <AcceslyProvider>. Wrap your app with <AcceslyProvider appId="acc_xxxxx">.');return c}function Ee({onClose:c,onConnect:n}){return jsxRuntime.jsx("div",{style:O.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:O.modal,onClick:i=>i.stopPropagation(),children:[jsxRuntime.jsx("button",{onClick:c,style:O.closeBtn,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsxRuntime.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),jsxRuntime.jsx("div",{style:O.iconWrapper,children:jsxRuntime.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"#667eea",strokeWidth:"1.5",children:[jsxRuntime.jsx("path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2.5"}),jsxRuntime.jsx("path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"})]})}),jsxRuntime.jsx("h2",{style:O.title,children:"Connect to Accesly"}),jsxRuntime.jsx("p",{style:O.subtitle,children:"Choose how you want to connect"}),jsxRuntime.jsxs("button",{onClick:n,style:O.googleBtn,children:[jsxRuntime.jsxs("svg",{style:O.googleIcon,viewBox:"0 0 24 24",children:[jsxRuntime.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),jsxRuntime.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),jsxRuntime.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),jsxRuntime.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),"Continue with Google"]}),jsxRuntime.jsx("p",{style:O.footer,children:"Powered by Accesly"})]})})}var O={overlay:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:99999,padding:"1rem",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},modal:{position:"relative",backgroundColor:"#141428",borderRadius:"20px",border:"1px solid #2a2a4a",padding:"2rem",width:"100%",maxWidth:"380px",textAlign:"center"},closeBtn:{position:"absolute",top:"1rem",right:"1rem",background:"none",border:"none",color:"#64748b",cursor:"pointer",padding:"4px"},iconWrapper:{width:"56px",height:"56px",borderRadius:"16px",backgroundColor:"rgba(102, 126, 234, 0.1)",border:"1px solid rgba(102, 126, 234, 0.2)",display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto 1rem"},title:{fontSize:"1.3rem",fontWeight:700,color:"#e2e8f0",margin:"0 0 0.25rem"},subtitle:{color:"#64748b",fontSize:"0.85rem",margin:"0 0 1.5rem"},googleBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.75rem",padding:"0.85rem 1.5rem",backgroundColor:"#1a1a2e",color:"#e2e8f0",border:"1px solid #2a2a4a",borderRadius:"12px",fontSize:"0.95rem",fontWeight:500,cursor:"pointer",width:"100%",marginBottom:"1.25rem"},googleIcon:{width:"20px",height:"20px",flexShrink:0},footer:{color:"#475569",fontSize:"0.7rem",margin:0}};var be=["XLM","USDC","EURC"];function Me({onClose:c}){let{wallet:n,balance:i,assetBalances:r,disconnect:m,sendPayment:k,swap:u,rotateKeys:b,getTransactions:v,refreshBalance:x,refreshWallet:A}=J(),[w,B]=react.useState("wallet"),[M,h]=react.useState("main"),[S,L]=react.useState(""),[I,U]=react.useState(""),[V,j]=react.useState(""),[$,G]=react.useState("XLM"),[q,D]=react.useState(false),[X,N]=react.useState(null),[Y,K]=react.useState(null),[_,Q]=react.useState("USDC"),[o,T]=react.useState("EURC"),[F,H]=react.useState(""),[ae,ce]=react.useState("1"),[de,xe]=react.useState(false),[pe,we]=react.useState(null),[Se,ue]=react.useState(null),[me,Fe]=react.useState([]),[ze,Ce]=react.useState(false),[Ue,$e]=react.useState(0),[ye,ke]=react.useState(false),[Ae,Te]=react.useState(null),[se,Be]=react.useState(null);if(react.useEffect(()=>{if(w!=="activity")return;Re();let s=setInterval(Re,15e3);return ()=>clearInterval(s)},[w,Ue]),!n)return null;async function Re(){Ce(true);try{let s=await v(20);Fe(s);}catch{}finally{Ce(false);}}async function He(){if(!(!S||!I)){D(true),K(null);try{let s=await k({destination:S,amount:I,memo:V||void 0,assetCode:$!=="XLM"?$:void 0});N(s.txHash),x(),$e(l=>l+1);}catch(s){K(s.message);}finally{D(false);}}}function Oe(){N(null),L(""),U(""),j(""),K(null),h("main");}async function _e(){if(F){xe(true),ue(null);try{let s=(parseFloat(F)*(1-parseFloat(ae)/100)).toFixed(7),l=await u({fromAsset:_,toAsset:o,amount:F,minReceive:s});we(l.txHash),x();}catch(s){ue(s.message);}finally{xe(false);}}}function Ve(){we(null),H(""),ue(null),h("main");}async function je(){if(confirm("This will generate a new keypair and update your contract. Continue?")){ke(true),Te(null);try{await b(),await A();}catch(s){Te(s.message);}finally{ke(false);}}}function Ge(){m(),c();}function re(s,l=6,g=6){return s.length<=l+g+3?s:`${s.slice(0,l)}...${s.slice(-g)}`}async function Pe(s,l){await navigator.clipboard.writeText(s),Be(l),setTimeout(()=>Be(null),1500);}function qe(s){let l=Math.floor((Date.now()-new Date(s).getTime())/1e3);return l<60?"just now":l<3600?`${Math.floor(l/60)}m ago`:l<86400?`${Math.floor(l/3600)}h ago`:l<172800?"yesterday":`${Math.floor(l/86400)}d ago`}let Xe=i?parseFloat(i).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}):"---",Ne=ct(n.stellarAddress),Ke=[{key:"wallet",label:"Wallet"},{key:"activity",label:"Activity"},{key:"account",label:"Account"},{key:"security",label:"Security"}];return jsxRuntime.jsx("div",{style:t.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:t.panel,onClick:s=>s.stopPropagation(),children:[jsxRuntime.jsxs("div",{style:t.header,children:[jsxRuntime.jsx("button",{onClick:c,style:t.closeBtn,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsxRuntime.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),jsxRuntime.jsx("div",{style:{...t.identicon,backgroundColor:Ne}}),jsxRuntime.jsx("p",{style:t.headerAddr,children:re(n.stellarAddress,8,8)}),jsxRuntime.jsxs("p",{style:t.headerBalance,children:[Xe," ",jsxRuntime.jsx("span",{style:t.headerCurrency,children:"XLM"})]})]}),jsxRuntime.jsx("div",{style:t.tabBar,children:Ke.map(s=>jsxRuntime.jsx("button",{onClick:()=>{B(s.key),h("main");},style:{...t.tab,...w===s.key?t.tabActive:{}},children:s.label},s.key))}),jsxRuntime.jsxs("div",{style:t.content,children:[w==="wallet"&&Je(),w==="activity"&&Ye(),w==="account"&&Qe(),w==="security"&&Ze()]})]})});function Je(){if(X)return jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"10"}),jsxRuntime.jsx("polyline",{points:"8 12 11 15 16 9"})]}),jsxRuntime.jsx("p",{style:{color:"#34d399",fontWeight:600,margin:"0.5rem 0"},children:"Payment Sent"}),jsxRuntime.jsxs("p",{style:{color:"#64748b",fontSize:"0.75rem",fontFamily:"monospace"},children:[X.slice(0,12),"...",X.slice(-12)]}),jsxRuntime.jsx("button",{onClick:Oe,style:t.primaryBtn,children:"Done"})]});if(M==="send")return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>h("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Destination"}),jsxRuntime.jsx("input",{type:"text",placeholder:"G...",value:S,onChange:g=>L(g.target.value),maxLength:56,style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Asset"}),jsxRuntime.jsxs("select",{value:$,onChange:g=>G(g.target.value),style:t.formInput,children:[jsxRuntime.jsx("option",{value:"XLM",children:"XLM \u2014 Stellar Lumens"}),jsxRuntime.jsx("option",{value:"USDC",children:"USDC \u2014 USD Coin"}),jsxRuntime.jsx("option",{value:"EURC",children:"EURC \u2014 Euro Coin"})]})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsxs("label",{style:t.formLabel,children:["Amount (",$,")"]}),jsxRuntime.jsx("input",{type:"number",placeholder:"0.00",value:I,onChange:g=>U(g.target.value),min:"0.0000001",step:"any",style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Memo (optional)"}),jsxRuntime.jsx("input",{type:"text",placeholder:"What is this for?",value:V,onChange:g=>j(g.target.value),maxLength:28,style:t.formInput})]}),Y&&jsxRuntime.jsx("p",{style:t.error,children:Y}),jsxRuntime.jsx("button",{onClick:He,disabled:q||!S||!I,style:{...t.primaryBtn,opacity:q||!S||!I?.5:1},children:q?"Sending...":"Send Payment"})]});if(M==="receive")return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>h("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsx("div",{style:t.receiveIconBig,children:jsxRuntime.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]})}),jsxRuntime.jsx("p",{style:{color:"#e2e8f0",fontWeight:600,fontSize:"1rem",margin:0},children:"Receive XLM"}),jsxRuntime.jsx("p",{style:{color:"#64748b",fontSize:"0.8rem",margin:0,textAlign:"center"},children:"Share your Stellar address to receive payments"}),jsxRuntime.jsx("div",{style:t.addressBox,children:jsxRuntime.jsx("span",{style:t.addressText,children:n.stellarAddress})}),jsxRuntime.jsx("button",{onClick:()=>Pe(n.stellarAddress,"receive"),style:t.primaryBtn,children:se==="receive"?"Copied!":"Copy Address"})]})]});if(M==="swap"){if(pe)return jsxRuntime.jsxs("div",{style:t.centeredCol,children:[jsxRuntime.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"10"}),jsxRuntime.jsx("polyline",{points:"8 12 11 15 16 9"})]}),jsxRuntime.jsx("p",{style:{color:"#34d399",fontWeight:600,margin:"0.5rem 0"},children:"Swap Complete"}),jsxRuntime.jsxs("p",{style:{color:"#64748b",fontSize:"0.75rem",fontFamily:"monospace"},children:[pe.slice(0,12),"...",pe.slice(-12)]}),jsxRuntime.jsx("button",{onClick:Ve,style:t.primaryBtn,children:"Done"})]});let g=be.filter(y=>y!==_);return jsxRuntime.jsxs("div",{style:t.subView,children:[jsxRuntime.jsxs("button",{onClick:()=>h("main"),style:t.backBtn,children:[jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:jsxRuntime.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back"]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"From"}),jsxRuntime.jsx("select",{value:_,onChange:y=>{let Z=y.target.value;Q(Z),Z===o&&T(be.find(fe=>fe!==Z));},style:t.formInput,children:be.filter(y=>y!==o).map(y=>jsxRuntime.jsx("option",{value:y,children:y},y))})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Amount"}),jsxRuntime.jsx("input",{type:"number",placeholder:"0.00",value:F,onChange:y=>H(y.target.value),min:"0.0000001",step:"any",style:t.formInput})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"To"}),jsxRuntime.jsx("select",{value:o,onChange:y=>T(y.target.value),style:t.formInput,children:g.map(y=>jsxRuntime.jsx("option",{value:y,children:y},y))})]}),jsxRuntime.jsxs("div",{style:t.formGroup,children:[jsxRuntime.jsx("label",{style:t.formLabel,children:"Max Slippage (%)"}),jsxRuntime.jsx("input",{type:"number",placeholder:"1",value:ae,onChange:y=>ce(y.target.value),min:"0.01",max:"50",step:"0.1",style:t.formInput})]}),Se&&jsxRuntime.jsx("p",{style:t.error,children:Se}),jsxRuntime.jsx("button",{onClick:_e,disabled:de||!F,style:{...t.primaryBtn,opacity:de||!F?.5:1},children:de?"Swapping...":`Swap ${_} \u2192 ${o}`})]})}let s={USDC:"#2775ca",EURC:"#3c7fc0"},l=["USDC","EURC"];return jsxRuntime.jsxs("div",{style:t.walletTab,children:[jsxRuntime.jsxs("div",{style:t.actionRow,children:[jsxRuntime.jsxs("button",{onClick:()=>h("send"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:t.actionIcon,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),jsxRuntime.jsx("polyline",{points:"5 12 12 5 19 12"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Send"})]}),jsxRuntime.jsxs("button",{onClick:()=>h("receive"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:{...t.actionIcon,...t.actionIconReceive},children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Receive"})]}),jsxRuntime.jsxs("button",{onClick:()=>h("swap"),style:t.actionBtn,children:[jsxRuntime.jsx("div",{style:{...t.actionIcon,...t.actionIconSwap},children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[jsxRuntime.jsx("polyline",{points:"17 1 21 5 17 9"}),jsxRuntime.jsx("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),jsxRuntime.jsx("polyline",{points:"7 23 3 19 7 15"}),jsxRuntime.jsx("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]})}),jsxRuntime.jsx("span",{style:t.actionLabel,children:"Swap"})]})]}),jsxRuntime.jsx("div",{style:t.assetList,children:l.map(g=>{let y=r.find(et=>et.code===g),Z=y?parseFloat(y.balance):0,fe=Z===0;return jsxRuntime.jsxs("div",{style:t.assetCard,children:[jsxRuntime.jsx("div",{style:{...t.assetDot,backgroundColor:s[g]||"#667eea"}}),jsxRuntime.jsxs("div",{style:t.assetInfo,children:[jsxRuntime.jsx("span",{style:t.assetCode,children:g}),fe&&jsxRuntime.jsxs("span",{style:t.assetHint,children:["Want ",g,"? Use ",jsxRuntime.jsx("strong",{children:"Swap"})," to exchange your XLM."]})]}),jsxRuntime.jsx("span",{style:t.assetBalance,children:Z.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})})]},g)})})]})}function Ye(){return ze&&me.length===0?jsxRuntime.jsx("p",{style:t.emptyText,children:"Loading transactions..."}):me.length===0?jsxRuntime.jsx("p",{style:t.emptyText,children:"No transactions yet"}):jsxRuntime.jsx("div",{style:t.txList,children:me.map(s=>{let l=s.type==="swap",g=l?"rgba(251, 191, 36, 0.15)":s.type==="received"?"rgba(52, 211, 153, 0.15)":"rgba(248, 113, 113, 0.15)",y=l?"#fbbf24":s.type==="received"?"#34d399":"#f87171";return jsxRuntime.jsxs("div",{style:t.txRow,children:[jsxRuntime.jsx("div",{style:{...t.txIcon,backgroundColor:g},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:y,strokeWidth:"2.5",children:l?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("polyline",{points:"17 1 21 5 17 9"}),jsxRuntime.jsx("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),jsxRuntime.jsx("polyline",{points:"7 23 3 19 7 15"}),jsxRuntime.jsx("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]}):s.type==="received"?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),jsxRuntime.jsx("polyline",{points:"19 12 12 19 5 12"})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),jsxRuntime.jsx("polyline",{points:"5 12 12 5 19 12"})]})})}),jsxRuntime.jsxs("div",{style:t.txDetails,children:[jsxRuntime.jsx("span",{style:t.txType,children:l?"Swap":s.type==="received"?"Received":"Sent"}),jsxRuntime.jsx("span",{style:t.txCounterparty,children:l?`${s.fromAsset} \u2192 ${s.asset}`:(s.type==="received"?"from ":"to ")+re(s.counterparty)})]}),jsxRuntime.jsxs("div",{style:t.txAmountCol,children:[jsxRuntime.jsx("span",{style:{...t.txAmount,color:y},children:l?`${parseFloat(s.fromAmount).toLocaleString("en-US",{maximumFractionDigits:4})} \u2192 ${parseFloat(s.amount).toLocaleString("en-US",{maximumFractionDigits:4})}`:`${s.type==="received"?"+":"-"}${parseFloat(s.amount).toLocaleString("en-US",{maximumFractionDigits:2})} ${s.asset}`}),jsxRuntime.jsx("span",{style:t.txTime,children:qe(s.createdAt)})]})]},s.id)})})}function Qe(){let s=[{label:"Email",value:n.email,key:"email"},{label:"Contract ID",value:n.contractId,key:"contract",copy:true},{label:"Stellar Address",value:n.stellarAddress,key:"stellar",copy:true},{label:"Public Key",value:n.publicKey,key:"pubkey",copy:true},{label:"Created",value:new Date(n.createdAt).toLocaleDateString(),key:"created"}];return jsxRuntime.jsx("div",{style:t.fieldList,children:s.map(l=>jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:l.label}),l.copy?jsxRuntime.jsx("button",{onClick:()=>Pe(l.value,l.key),style:{...t.copyBtn,color:se===l.key?"#34d399":"#a5b4fc",borderColor:se===l.key?"#34d399":"#2a2a4a"},children:se===l.key?"Copied!":re(l.value,8,8)}):jsxRuntime.jsx("span",{style:t.fieldValue,children:l.value})]},l.key))})}function Ze(){return jsxRuntime.jsxs("div",{style:t.securityTab,children:[jsxRuntime.jsxs("div",{style:t.fieldList,children:[jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Recovery"}),jsxRuntime.jsx("span",{style:{...t.fieldValue,color:"#34d399"},children:"Protected"})]}),jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Method"}),jsxRuntime.jsxs("span",{style:t.fieldValue,children:["Google (",n.email,")"]})]}),n.recoverySigners&&n.recoverySigners.length>0&&jsxRuntime.jsxs("div",{style:t.field,children:[jsxRuntime.jsx("span",{style:t.fieldLabel,children:"Signer"}),jsxRuntime.jsx("span",{style:t.fieldValue,children:re(n.recoverySigners[0].publicKey)})]})]}),Ae&&jsxRuntime.jsx("p",{style:t.error,children:Ae}),jsxRuntime.jsxs("button",{onClick:je,disabled:ye,style:{...t.rotateBtn,opacity:ye?.5:1},children:[jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M21 2v6h-6"}),jsxRuntime.jsx("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),jsxRuntime.jsx("path",{d:"M3 22v-6h6"}),jsxRuntime.jsx("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]}),ye?"Rotating...":"Rotate Keys"]}),jsxRuntime.jsxs("button",{onClick:Ge,style:t.disconnectBtn,children:[jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),jsxRuntime.jsx("polyline",{points:"16 17 21 12 16 7"}),jsxRuntime.jsx("line",{x1:"21",y1:"12",x2:"9",y2:"12"})]}),"Disconnect"]})]})}}function ct(c){let n=0;for(let i=0;i<c.length;i++)n=c.charCodeAt(i)+((n<<5)-n);return `hsl(${Math.abs(n)%360}, 65%, 55%)`}var t={overlay:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:99999,padding:"1rem",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},panel:{backgroundColor:"#0f0f1e",borderRadius:"20px",border:"1px solid #2a2a4a",width:"100%",maxWidth:"420px",maxHeight:"85vh",display:"flex",flexDirection:"column",overflow:"hidden"},header:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",padding:"1.5rem 1.5rem 1rem",background:"linear-gradient(180deg, #1a1a3a 0%, #0f0f1e 100%)"},closeBtn:{position:"absolute",top:"1rem",right:"1rem",background:"none",border:"none",color:"#64748b",cursor:"pointer",padding:"4px"},identicon:{width:"48px",height:"48px",borderRadius:"50%",marginBottom:"0.5rem"},headerAddr:{fontFamily:"monospace",fontSize:"0.8rem",color:"#8b8ba7",margin:"0 0 0.25rem"},headerBalance:{fontSize:"1.75rem",fontWeight:700,color:"#ffffff",margin:0},headerCurrency:{fontSize:"0.85rem",fontWeight:500,color:"#8b8ba7"},tabBar:{display:"flex",borderBottom:"1px solid #2a2a4a",padding:"0 0.5rem"},tab:{flex:1,padding:"0.75rem 0.5rem",background:"none",border:"none",borderBottomWidth:"2px",borderBottomStyle:"solid",borderBottomColor:"transparent",color:"#64748b",fontSize:"0.8rem",fontWeight:500,cursor:"pointer",transition:"color 0.2s, border-color 0.2s",borderRadius:0},tabActive:{color:"#e2e8f0",borderBottomColor:"#667eea"},content:{flex:1,overflowY:"auto",padding:"1rem 1.25rem 1.25rem"},walletTab:{display:"flex",flexDirection:"column",gap:"1rem"},actionRow:{display:"flex",gap:"1rem",justifyContent:"center"},actionBtn:{display:"flex",flexDirection:"column",alignItems:"center",gap:"0.5rem",padding:"1.25rem 1.5rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"16px",cursor:"pointer",transition:"border-color 0.2s",flex:1},actionIcon:{width:"44px",height:"44px",borderRadius:"50%",backgroundColor:"rgba(102, 126, 234, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",color:"#667eea"},actionIconReceive:{backgroundColor:"rgba(52, 211, 153, 0.15)",color:"#34d399"},actionIconSwap:{backgroundColor:"rgba(251, 191, 36, 0.15)",color:"#fbbf24"},assetList:{display:"flex",flexDirection:"column",gap:"0.5rem"},assetCard:{display:"flex",alignItems:"center",gap:"0.65rem",padding:"0.65rem 0.85rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"12px"},assetDot:{width:"10px",height:"10px",borderRadius:"50%",flexShrink:0},assetInfo:{display:"flex",flexDirection:"column",flex:1},assetCode:{color:"#e2e8f0",fontSize:"0.85rem",fontWeight:600},assetHint:{color:"#64748b",fontSize:"0.68rem",marginTop:"1px"},assetBalance:{color:"#a5b4fc",fontSize:"0.85rem",fontWeight:500,fontFamily:"monospace"},actionLabel:{fontSize:"0.85rem",fontWeight:500,color:"#e2e8f0"},subView:{display:"flex",flexDirection:"column",gap:"0.75rem"},backBtn:{display:"flex",alignItems:"center",gap:"0.25rem",background:"none",border:"none",color:"#8b8ba7",fontSize:"0.8rem",cursor:"pointer",padding:"0 0 0.25rem",width:"fit-content"},formGroup:{display:"flex",flexDirection:"column",gap:"0.3rem"},formLabel:{color:"#8b8ba7",fontSize:"0.75rem",fontWeight:500},formInput:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"8px",padding:"0.65rem 0.75rem",color:"#e2e8f0",fontSize:"0.9rem",outline:"none",width:"100%",boxSizing:"border-box",fontFamily:"inherit"},primaryBtn:{backgroundColor:"#667eea",color:"#fff",border:"none",borderRadius:"10px",padding:"0.75rem",fontSize:"0.95rem",fontWeight:600,cursor:"pointer",width:"100%",marginTop:"0.25rem"},error:{color:"#f87171",fontSize:"0.8rem",margin:0,padding:"0.4rem 0.6rem",backgroundColor:"rgba(248, 113, 113, 0.1)",borderRadius:"6px"},centeredCol:{display:"flex",flexDirection:"column",alignItems:"center",gap:"0.5rem",padding:"1rem 0"},receiveIconBig:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"rgba(52, 211, 153, 0.15)",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"0.25rem"},addressBox:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"8px",padding:"0.75rem",width:"100%",marginTop:"0.5rem"},addressText:{fontFamily:"monospace",fontSize:"0.7rem",color:"#a5b4fc",wordBreak:"break-all",lineHeight:1.5},txList:{display:"flex",flexDirection:"column"},txRow:{display:"flex",alignItems:"center",gap:"0.75rem",padding:"0.65rem 0",borderBottom:"1px solid #1a1a2e"},txIcon:{width:"36px",height:"36px",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},txDetails:{display:"flex",flexDirection:"column",flex:1,minWidth:0},txType:{color:"#e2e8f0",fontSize:"0.85rem",fontWeight:500},txCounterparty:{color:"#64748b",fontSize:"0.7rem",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},txAmountCol:{display:"flex",flexDirection:"column",alignItems:"flex-end",flexShrink:0},txAmount:{fontSize:"0.85rem",fontWeight:600},txTime:{color:"#64748b",fontSize:"0.65rem"},emptyText:{color:"#64748b",fontSize:"0.85rem",textAlign:"center",padding:"2rem 0"},fieldList:{display:"flex",flexDirection:"column"},field:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.6rem 0",borderBottom:"1px solid #1a1a2e"},fieldLabel:{color:"#8b8ba7",fontSize:"0.8rem"},fieldValue:{color:"#e2e8f0",fontSize:"0.8rem",fontWeight:500},copyBtn:{background:"none",border:"1px solid #2a2a4a",color:"#a5b4fc",padding:"0.2rem 0.5rem",borderRadius:"4px",fontSize:"0.72rem",fontFamily:"monospace",cursor:"pointer",transition:"color 0.2s, border-color 0.2s"},securityTab:{display:"flex",flexDirection:"column",gap:"1rem"},rotateBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",width:"100%",padding:"0.65rem",backgroundColor:"transparent",color:"#f59e0b",border:"1px solid rgba(245, 158, 11, 0.3)",borderRadius:"10px",fontSize:"0.85rem",fontWeight:600,cursor:"pointer"},disconnectBtn:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",width:"100%",padding:"0.65rem",backgroundColor:"transparent",color:"#f87171",border:"1px solid rgba(248, 113, 113, 0.2)",borderRadius:"10px",fontSize:"0.85rem",fontWeight:500,cursor:"pointer"}};function dt(){let{wallet:c,balance:n,loading:i,creating:r,connect:m}=J(),[k,u]=react.useState(false),[b,v]=react.useState(false);if(i)return jsxRuntime.jsx("div",{style:E.pillLoading,children:jsxRuntime.jsx("div",{style:E.spinner})});if(!c)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{onClick:()=>u(true),style:r?E.pill:E.connectBtn,disabled:r,children:r?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{style:E.spinnerSmall}),jsxRuntime.jsx("span",{style:E.pillText,children:"Creating wallet..."})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2.5"}),jsxRuntime.jsx("path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"})]}),"Connect Wallet"]})}),k&&jsxRuntime.jsx(Ee,{onClose:()=>u(false),onConnect:async()=>{u(false),await m();}})]});let x=c.stellarAddress,A=`${x.slice(0,4)}...${x.slice(-4)}`,w=n?`${parseFloat(n).toFixed(2)} XLM`:"--- XLM",B=pt(x);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("button",{onClick:()=>v(true),style:E.pill,children:[jsxRuntime.jsx("div",{style:{...E.identicon,backgroundColor:B}}),jsxRuntime.jsx("span",{style:E.pillAddr,children:A}),jsxRuntime.jsx("span",{style:E.divider}),jsxRuntime.jsx("span",{style:E.pillBalance,children:w})]}),b&&jsxRuntime.jsx(Me,{onClose:()=>v(false)})]})}function pt(c){let n=0;for(let i=0;i<c.length;i++)n=c.charCodeAt(i)+((n<<5)-n);return `hsl(${Math.abs(n)%360}, 65%, 55%)`}var E={connectBtn:{display:"flex",alignItems:"center",gap:"0.6rem",padding:"0.85rem 1.75rem",background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",color:"#fff",border:"none",borderRadius:"12px",fontSize:"1rem",fontWeight:600,cursor:"pointer",transition:"transform 0.15s, box-shadow 0.15s",boxShadow:"0 4px 15px rgba(102, 126, 234, 0.4)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},pill:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.5rem 0.85rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"50px",cursor:"pointer",transition:"border-color 0.2s, box-shadow 0.2s",color:"#e2e8f0",fontSize:"0.85rem",fontWeight:500,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},pillLoading:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.5rem 1.5rem",backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"50px",height:"42px"},identicon:{width:"24px",height:"24px",borderRadius:"50%",flexShrink:0},pillAddr:{fontFamily:"monospace",fontSize:"0.8rem",color:"#e2e8f0"},divider:{width:"1px",height:"16px",backgroundColor:"#3a3a5a"},pillBalance:{fontSize:"0.8rem",color:"#8b8ba7",fontWeight:500},pillText:{fontSize:"0.8rem",color:"#8b8ba7"},spinner:{width:"20px",height:"20px",border:"2px solid #2a2a4a",borderTop:"2px solid #667eea",borderRadius:"50%",animation:"accesly-spin 1s linear infinite"},spinnerSmall:{width:"16px",height:"16px",border:"2px solid #2a2a4a",borderTop:"2px solid #667eea",borderRadius:"50%",animation:"accesly-spin 1s linear infinite",flexShrink:0}};var De=["XLM","USDC","EURC"];function yt({onClose:c,onSuccess:n}){let{estimateSwap:i,swap:r}=J(),[m,k]=react.useState("XLM"),[u,b]=react.useState("USDC"),[v,x]=react.useState(""),[A,w]=react.useState("1"),[B,M]=react.useState(null),[h,S]=react.useState(false),[L,I]=react.useState(null),[U,V]=react.useState(false),[j,$]=react.useState(null),[G,q]=react.useState(null),D=react.useRef(null);react.useEffect(()=>{M(null),I(null);let o=parseFloat(v);if(!(!v||isNaN(o)||o<=0||m===u))return S(true),D.current&&clearTimeout(D.current),D.current=setTimeout(async()=>{try{let T=await i(m,u,v);M(T);}catch(T){I(T.message||"Could not get estimate");}finally{S(false);}},600),()=>{D.current&&clearTimeout(D.current);}},[v,m,u]);function X(){k(u),b(m),x(""),M(null),I(null);}function N(){if(!B)return "0.0000001";let o=parseFloat(B.destinationAmount)*(1-parseFloat(A||"1")/100);return Math.max(o,1e-7).toFixed(7)}async function Y(o){if(o.preventDefault(),!!B){V(true),$(null);try{let T=await r({fromAsset:m,toAsset:u,amount:v,minReceive:N(),path:B.path});q(T.txHash),n?.();}catch(T){$(T.message||"Swap failed");}finally{V(false);}}}if(G)return jsxRuntime.jsx("div",{style:d.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:d.modal,onClick:o=>o.stopPropagation(),children:[jsxRuntime.jsx("div",{style:d.successIcon,children:jsxRuntime.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"#34d399",strokeWidth:"2",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"10"}),jsxRuntime.jsx("polyline",{points:"8 12 11 15 16 9"})]})}),jsxRuntime.jsx("h2",{style:d.successTitle,children:"Swap Complete"}),jsxRuntime.jsxs("p",{style:d.successHash,children:[G.slice(0,12),"...",G.slice(-12)]}),jsxRuntime.jsx("button",{onClick:c,style:d.primaryBtn,children:"Done"})]})});let K=De.filter(o=>o!==m),_=De.filter(o=>o!==u),Q=!!B&&!h&&!U;return jsxRuntime.jsx("div",{style:d.overlay,onClick:c,children:jsxRuntime.jsxs("div",{style:d.modal,onClick:o=>o.stopPropagation(),children:[jsxRuntime.jsxs("div",{style:d.header,children:[jsxRuntime.jsx("h2",{style:d.title,children:"Swap"}),jsxRuntime.jsx("button",{onClick:c,style:d.closeBtn,children:jsxRuntime.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsxRuntime.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),jsxRuntime.jsxs("form",{onSubmit:Y,style:d.form,children:[jsxRuntime.jsxs("div",{style:d.group,children:[jsxRuntime.jsx("label",{style:d.label,children:"From"}),jsxRuntime.jsxs("div",{style:d.row,children:[jsxRuntime.jsx("select",{value:m,onChange:o=>k(o.target.value),style:{...d.input,width:"130px",flexShrink:0},children:_.map(o=>jsxRuntime.jsx("option",{value:o,children:o},o))}),jsxRuntime.jsx("input",{type:"number",placeholder:"0.00",value:v,onChange:o=>x(o.target.value),required:true,min:"0.0000001",step:"any",style:{...d.input,flex:1}})]})]}),jsxRuntime.jsx("div",{style:d.flipRow,children:jsxRuntime.jsx("button",{type:"button",onClick:X,style:d.flipBtn,title:"Flip assets",children:jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsxRuntime.jsx("polyline",{points:"17 1 21 5 17 9"}),jsxRuntime.jsx("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),jsxRuntime.jsx("polyline",{points:"7 23 3 19 7 15"}),jsxRuntime.jsx("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]})})}),jsxRuntime.jsxs("div",{style:d.group,children:[jsxRuntime.jsx("label",{style:d.label,children:"To"}),jsxRuntime.jsx("select",{value:u,onChange:o=>b(o.target.value),style:d.input,children:K.map(o=>jsxRuntime.jsx("option",{value:o,children:o},o))})]}),jsxRuntime.jsxs("div",{style:d.estimateBox,children:[h&&jsxRuntime.jsx("p",{style:d.estimateText,children:"Fetching rate..."}),!h&&B&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("p",{style:d.estimateAmount,children:["\u2248 ",parseFloat(B.destinationAmount).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:6})," ",u]}),jsxRuntime.jsxs("p",{style:d.estimateMin,children:["Min received: ",N()," ",u," (after ",A,"% slippage)"]})]}),!h&&L&&jsxRuntime.jsx("p",{style:d.estimateError,children:L}),!h&&!B&&!L&&v&&jsxRuntime.jsx("p",{style:d.estimateText,children:"Enter an amount to see the rate"})]}),jsxRuntime.jsxs("div",{style:d.group,children:[jsxRuntime.jsx("label",{style:d.label,children:"Max Slippage (%)"}),jsxRuntime.jsx("input",{type:"number",value:A,onChange:o=>w(o.target.value),min:"0.1",max:"50",step:"0.1",style:d.input})]}),j&&jsxRuntime.jsx("p",{style:d.error,children:j}),jsxRuntime.jsx("button",{type:"submit",disabled:!Q,style:{...d.primaryBtn,opacity:Q?1:.45},children:U?"Swapping...":h?"Getting rate...":`Swap ${m} \u2192 ${u}`})]})]})})}var d={overlay:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3,padding:"1rem"},modal:{backgroundColor:"#141428",borderRadius:"16px",border:"1px solid #2a2a4a",padding:"1.75rem",width:"100%",maxWidth:"420px"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.25rem"},title:{fontSize:"1.25rem",fontWeight:600,color:"#e2e8f0",margin:0},closeBtn:{background:"none",border:"none",color:"#64748b",cursor:"pointer",padding:"4px"},form:{display:"flex",flexDirection:"column",gap:"0.85rem"},group:{display:"flex",flexDirection:"column",gap:"0.3rem"},label:{color:"#8b8ba7",fontSize:"0.78rem",fontWeight:500},row:{display:"flex",gap:"0.5rem"},input:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"8px",padding:"0.65rem 0.75rem",color:"#e2e8f0",fontSize:"0.9rem",outline:"none",width:"100%",boxSizing:"border-box"},flipRow:{display:"flex",justifyContent:"center",margin:"-0.1rem 0"},flipBtn:{background:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"50%",width:"34px",height:"34px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",color:"#667eea"},estimateBox:{backgroundColor:"#1a1a2e",border:"1px solid #2a2a4a",borderRadius:"10px",padding:"0.75rem 1rem",minHeight:"54px",display:"flex",flexDirection:"column",justifyContent:"center",gap:"0.2rem"},estimateText:{color:"#64748b",fontSize:"0.82rem",margin:0,textAlign:"center"},estimateAmount:{color:"#e2e8f0",fontSize:"1.1rem",fontWeight:700,margin:0},estimateMin:{color:"#64748b",fontSize:"0.75rem",margin:0},estimateError:{color:"#f87171",fontSize:"0.82rem",margin:0},error:{color:"#f87171",fontSize:"0.85rem",margin:0,padding:"0.45rem 0.65rem",backgroundColor:"rgba(248,113,113,0.1)",borderRadius:"6px"},primaryBtn:{backgroundColor:"#667eea",color:"#fff",border:"none",borderRadius:"10px",padding:"0.8rem",fontSize:"1rem",fontWeight:600,cursor:"pointer",width:"100%"},successIcon:{display:"flex",justifyContent:"center",marginBottom:"1rem"},successTitle:{color:"#34d399",fontSize:"1.25rem",fontWeight:600,textAlign:"center",margin:"0 0 0.5rem"},successHash:{color:"#64748b",fontSize:"0.8rem",fontFamily:"monospace",textAlign:"center",marginBottom:"1.5rem"}};if(typeof document<"u"){let c="accesly-keyframes";if(!document.getElementById(c)){let n=document.createElement("style");n.id=c,n.textContent=`
2
2
  @keyframes accesly-spin {
3
3
  to { transform: rotate(360deg); }
4
4
  }
5
- `,document.head.appendChild(n);}}exports.AcceslyProvider=et;exports.ConnectButton=rt;exports.useAccesly=G;//# sourceMappingURL=index.js.map
5
+ `,document.head.appendChild(n);}}exports.AcceslyProvider=st;exports.ConnectButton=dt;exports.SwapModal=yt;exports.useAccesly=J;//# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map