@tokenflight/swap 0.2.3 → 0.3.0-rc.1

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.
Files changed (41) hide show
  1. package/dist/ReceiveComponent-Cyn4ECRG.js +1 -0
  2. package/dist/ReceiveComponent.module-BGpemTAX.js +1 -0
  3. package/dist/SwapComponent-BwfaI3D9.js +1 -0
  4. package/dist/active-bridge-V8lTJ2Js.js +1 -0
  5. package/dist/bridge-Bq0QUltI.js +1 -0
  6. package/dist/bridge.d.ts +613 -0
  7. package/dist/bridge.js +1 -0
  8. package/dist/custom-elements.d.ts +1 -27
  9. package/dist/defaults-loader-DfcaO9j5.js +1 -0
  10. package/dist/en-US-CU2aSy93.js +1 -0
  11. package/dist/errors-Nd9setTj.js +3 -0
  12. package/dist/iframe-entry.d.ts +21 -0
  13. package/dist/iframe-entry.js +29 -0
  14. package/dist/iframe-receiver-PfhKUIZW.js +1 -0
  15. package/dist/iframe.d.ts +422 -0
  16. package/dist/iframe.js +45 -0
  17. package/dist/ja-JP-BoipV6-j.js +1 -0
  18. package/dist/ko-KR-DyFXZJsF.js +1 -0
  19. package/dist/protocol-CDxgudrl.js +1 -0
  20. package/dist/rank-offers-CR-1NeiW.js +1 -0
  21. package/dist/register-defaults-C_q7CG7x.js +1 -0
  22. package/dist/register-widget-DOzDJD94.js +1 -0
  23. package/dist/shared.module-C-kWMzqW.js +1 -0
  24. package/dist/solid-iWr5Czxc.js +1 -0
  25. package/dist/swap.css +1 -1
  26. package/dist/theme-C9tsVWlo.js +2 -0
  27. package/dist/tokenflight-swap.d.ts +106 -308
  28. package/dist/tokenflight-swap.js +1 -2
  29. package/dist/tokenflight-swap.umd.cjs +5 -4
  30. package/dist/widget-BadYytj9.js +2 -0
  31. package/dist/widget.d.ts +267 -27
  32. package/dist/widget.js +1 -1
  33. package/dist/zh-CN-epCUm9Io.js +1 -0
  34. package/dist/zh-TW-DSEboEJV.js +1 -0
  35. package/package.json +14 -2
  36. package/dist/en-US-DJW-hZLc.js +0 -1
  37. package/dist/ja-JP-BU7auPz-.js +0 -1
  38. package/dist/ko-KR-BIXVqnQ_.js +0 -1
  39. package/dist/register-widget-CXGm8Ih3.js +0 -3
  40. package/dist/zh-CN-RuuHh9p5.js +0 -1
  41. package/dist/zh-TW-Ddf7Ck1N.js +0 -1
@@ -0,0 +1,2 @@
1
+ import{C as e,a as t,b as n,c as r,h as i,m as a,o,p as s,u as c,v as l}from"./solid-iWr5Czxc.js";import{a as u,c as d,d as f,h as p,l as m,s as h,t as g}from"./shared.module-C-kWMzqW.js";var _=p(`<div part=container data-widget-shell=boot><div part=accent-line></div><div style=display:flex;flex-direction:column;gap:14px;padding:20px><div style=width:132px;height:26px></div><div style=width:100%;height:196px;border-radius:20px></div><div style=width:100%;height:96px;border-radius:20px></div><div style=width:100%;height:60px;border-radius:16px>`),v=p(`<div data-widget-root=stable style=display:flex;width:100%>`),y=null,b=null,x=null,S=null;function C(){return x?Promise.resolve(x):(y??(y=import(`./SwapComponent-BwfaI3D9.js`).then(e=>(x=e.SwapComponent,x))),y)}function w(){return S?Promise.resolve(S):(b??(b=import(`./ReceiveComponent-Cyn4ECRG.js`).then(e=>(S=e.ReceiveComponent,S))),b)}function T(e){return`${g.container}${e.noBackground?` ${g.noBg}`:``}${e.noBorder?` ${g.noBorder}`:``}`}function E(e){return(()=>{var t=_(),n=t.firstChild,r=n.nextSibling.firstChild,a=r.nextSibling,o=a.nextSibling,s=o.nextSibling;return i(i=>{var c=T(e),l=g.accentLine,u=g.skeleton,d=g.skeleton,f=g.skeleton,p=g.skeleton;return c!==i.e&&h(t,i.e=c),l!==i.t&&h(n,i.t=l),u!==i.a&&h(r,i.a=u),d!==i.o&&h(a,i.o=d),f!==i.i&&h(o,i.i=f),p!==i.n&&h(s,i.n=p),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),t})()}function D(p){let[h,g]=l(!1),[_,y]=l(null),[b,T]=l(x),[D,O]=l(S),k=a(()=>p.config.tradeType===`EXACT_OUTPUT`?`receive`:`swap`),A=e=>{if(e===`swap`){b()||C().then(e=>T(()=>e));return}D()||w().then(e=>O(()=>e))},j=e=>{y(e),h()||g(!0),A(e===`swap`?`receive`:`swap`)};s(()=>{A(k())});let M=a(()=>{let e=k();return!h()||e===`swap`&&b()||e===`receive`&&D()?e:_()??e}),N=a(()=>M()===`swap`?!!b():!!D()),P=a(()=>{let e=p.config,t=Array.isArray(e.toToken)?e.toToken:void 0,n=t?void 0:e.toToken;return{apiEndpoint:e.apiEndpoint,fiatApiEndpoint:e.fiatApiEndpoint,theme:e.theme,locale:e.locale,customColors:e.customColors,titleText:e.titleText,titleImageUrl:e.titleImageUrl,hideTitle:e.hideTitle,hidePoweredBy:e.hidePoweredBy,hideProvider:e.hideProvider,quoteCard:e.quoteCard,noBackground:e.noBackground,noBorder:e.noBorder,fromToken:e.fromToken,toToken:n,tradeType:e.tradeType,amount:e.amount,recipient:e.recipient,recipientEditable:e.recipientEditable,refundTo:e.refundTo,referrer:e.referrer,referrerFeeBps:e.referrerFeeBps,methods:e.methods,defaultPayMethod:e.defaultPayMethod,fiatCurrency:e.fiatCurrency,fromTokens:e.fromTokens,toTokens:t??e.toTokens,lockFromToken:e.lockFromToken,lockToToken:e.lockToToken}}),F=a(()=>{let e=p.config,t=Array.isArray(e.toToken)?e.toToken[0]:e.toToken;return{apiEndpoint:e.apiEndpoint,fiatApiEndpoint:e.fiatApiEndpoint,theme:e.theme,locale:e.locale,customColors:e.customColors,titleText:e.titleText,titleImageUrl:e.titleImageUrl,hideTitle:e.hideTitle,hidePoweredBy:e.hidePoweredBy,hideProvider:e.hideProvider,quoteCard:e.quoteCard,noBackground:e.noBackground,noBorder:e.noBorder,...t&&{target:t},icon:e.icon,amount:e.amount??``,fromToken:e.fromToken,recipient:e.recipient,recipientEditable:e.recipientEditable,refundTo:e.refundTo,referrer:e.referrer,referrerFeeBps:e.referrerFeeBps,amountEditable:!e.amount,methods:e.methods?.map(e=>e===`crypto`?`crypto`:`card`),fiatCurrency:e.fiatCurrency,fromTokens:e.fromTokens,toTokens:e.toTokens}}),I=t=>(e(()=>j(`swap`)),c(u,n({get component(){return b()}},t))),L=t=>(e(()=>j(`receive`)),c(u,n({get component(){return D()}},t)));return(()=>{var e=v();return d(e,c(o,{get when(){return N()},get fallback(){return c(E,{get noBackground(){return p.config.noBackground},get noBorder(){return p.config.noBorder}})},get children(){return c(r,{get children(){return[c(t,{get when(){return m(()=>M()===`receive`)()&&!!D()},get children(){return c(L,{get config(){return F()},get walletAdapter(){return p.walletAdapter},get callbacks(){return p.callbacks}})}}),c(t,{get when(){return m(()=>M()===`swap`)()&&!!b()},get children(){return c(I,{get config(){return P()},get walletAdapter(){return p.walletAdapter},get callbacks(){return p.callbacks}})}})]}})}})),i(()=>f(e,`data-widget-bootstrapped`,h()?`ready`:`pending`)),e})()}var O=[`.tf-2de115{border-radius:var(--tf-button-radius);box-sizing:border-box;background:linear-gradient(135deg, var(--tf-primary), color-mix(in srgb, var(--tf-primary) 80%, #000));width:100%;min-height:48px;color:var(--tf-text-on-primary);font-weight:600;font-size:var(--tf-font-xl);cursor:pointer;box-shadow:0 4px 16px var(--tf-primary-glow);letter-spacing:-.01em;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-button-radius);border:none;padding:14px 0;transition:opacity .15s,background .15s,border-color .15s}.tf-2de115:hover{opacity:.95}.tf-2de115:active{opacity:.9}.tf-0d518f{opacity:.6}.tf-47dc2a{background:var(--tf-primary);cursor:wait;opacity:.85}.tf-44b8f1{border-radius:var(--tf-button-radius);border:1px solid var(--tf-primary);box-sizing:border-box;background:var(--tf-primary-light);width:100%;min-height:48px;color:var(--tf-primary);font-weight:600;font-size:var(--tf-font-xl);cursor:pointer;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-button-radius);padding:14px 0;transition:background .15s,border-color .15s,color .15s}.tf-44b8f1:hover{background:color-mix(in srgb, var(--tf-primary-light) 78%, var(--tf-bg) 22%);border-color:color-mix(in srgb, var(--tf-primary) 72%, var(--tf-border) 28%)}.tf-44b8f1:active{background:color-mix(in srgb, var(--tf-primary-light) 55%, var(--tf-primary) 45%);color:var(--tf-text-on-primary)}.tf-04fe16{border-radius:var(--tf-button-radius);border:1.5px dashed var(--tf-primary);box-sizing:border-box;background:var(--tf-primary-light);width:100%;min-height:48px;color:var(--tf-primary);font-weight:600;font-size:var(--tf-font-xl);cursor:pointer;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-button-radius);padding:14px 0;transition:background .15s,border-color .15s,color .15s;animation:2s ease-in-out infinite tf-d53743}.tf-04fe16:hover{background:color-mix(in srgb, var(--tf-primary-light) 72%, var(--tf-bg) 28%);border-color:color-mix(in srgb, var(--tf-primary) 76%, var(--tf-border) 24%)}.tf-04fe16:active{background:color-mix(in srgb, var(--tf-primary-light) 48%, var(--tf-primary) 52%);color:var(--tf-text-on-primary);border-color:var(--tf-primary)}.tf-65cf23{border-radius:var(--tf-button-radius);box-sizing:border-box;text-align:center;background:var(--tf-success-bg);width:100%;min-height:48px;color:var(--tf-success);font-weight:600;font-size:var(--tf-font-xl);border:none;justify-content:center;align-items:center;gap:8px;padding:14px 0;display:flex}.tf-2f0314{border-radius:var(--tf-button-radius);box-sizing:border-box;text-align:center;background:var(--tf-error-bg);width:100%;min-height:48px;color:var(--tf-error);font-weight:600;font-size:var(--tf-font-xl);cursor:pointer;--tf-focus-radius:var(--tf-button-radius);border:none;justify-content:center;align-items:center;gap:8px;padding:14px 0;transition:opacity .15s,background .15s,border-color .15s;display:flex}.tf-2f0314:hover{opacity:.85}.tf-2f0314:active{opacity:.78}.tf-20b1ac{justify-content:center;align-items:center;gap:8px;display:flex}.tf-e6dae0{border:2px solid #ffffff4d;border-top-color:var(--tf-text-on-primary,#fff);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite tf-8a3bc2;display:inline-block}.tf-90e712{width:14px;height:14px}@keyframes tf-8a3bc2{to{transform:rotate(360deg)}}`,`.tf-25b7d0{flex:1;align-items:center;min-width:0;margin:-6px -8px;padding:6px 8px;display:flex}.tf-59b76a{font-size:var(--tf-font-amount);letter-spacing:-.02em;color:var(--tf-text);font-weight:700;line-height:100%;font-family:var(--tf-font-family);text-align:left;--tf-focus-width:0px;background:0 0;border:none;outline:none;width:100%;min-width:0}.tf-59b76a::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tf-59b76a::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tf-59b76a{-moz-appearance:textfield}.tf-59b76a::placeholder,.tf-a859d8{color:var(--tf-text-tertiary)}`,`@keyframes tf-c1e2f1{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translateY(-6px)}}@keyframes tf-c41d8a{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translate(0,0)}}.tf-e6f4f9{flex-direction:column;flex:1;display:flex;position:relative}.tf-02c58b{z-index:1;pointer-events:none;width:100%;animation:.14s cubic-bezier(.22,1,.36,1) both tf-c1e2f1;position:absolute;top:0;left:0}.tf-8975d9{animation:.14s cubic-bezier(.22,1,.36,1) both tf-c41d8a}.tf-94ab07{flex-direction:column;flex:1;display:flex}@media (prefers-reduced-motion:reduce){.tf-02c58b,.tf-8975d9{opacity:1;animation:none;transform:none}}`,`.tf-bdf976{z-index:50;border-radius:var(--tf-radius);border:1px solid var(--tf-border);background:var(--tf-bg);min-width:200px;max-height:300px;box-shadow:var(--tf-shadow-lg);flex-direction:column;margin-top:6px;animation:.15s both tf-c88647;display:flex;position:absolute;top:100%;right:0}.tf-0d4452{padding:8px 8px 4px}.tf-e3ab31{border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border-light);background:var(--tf-input-bg);--tf-focus-radius:var(--tf-radius-sm);align-items:center;gap:10px;width:100%;padding:0;transition:border-color .15s,background .15s;display:flex}.tf-27ed8b{border-color:var(--tf-primary);background:var(--tf-bg)}.tf-f16f0c{width:14px;height:14px;color:var(--tf-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;margin-left:10px;line-height:1;display:flex}.tf-f16f0c svg{display:block}.tf-7e8f39{border-radius:var(--tf-radius-sm);width:100%;color:var(--tf-text);font-size:var(--tf-font-sm);font-family:var(--tf-font-family);box-sizing:border-box;--tf-focus-width:0px;background:0 0;border:none;outline:none;padding:8px 10px 8px 0}.tf-7e8f39::placeholder{color:var(--tf-text-tertiary)}.tf-7e8f39:focus{outline:none}.tf-7b9980{overscroll-behavior:contain;scrollbar-width:none;flex:1;padding:4px;overflow-y:auto}.tf-7b9980::-webkit-scrollbar{display:none}.tf-6a97ad{border-radius:var(--tf-radius-sm);width:100%;color:var(--tf-text);font-size:var(--tf-font-sm);cursor:pointer;font-weight:500;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius-sm);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;transition:background .1s,border-color .15s,color .15s;display:flex}.tf-6a97ad:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-6a97ad:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-c939b4{background:var(--tf-primary-light);color:var(--tf-primary)}.tf-1e672b{text-align:center;flex-shrink:0;width:22px;font-size:16px;line-height:1}.tf-63111f{min-width:32px;font-weight:600}.tf-5c9e1e{color:var(--tf-text-tertiary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:400;overflow:hidden}.tf-cabaa6{color:var(--tf-primary);flex-shrink:0}.tf-efb45d{text-align:center;color:var(--tf-text-tertiary);font-size:var(--tf-font-sm);padding:16px}`,`.tf-062e26{flex:1;align-items:baseline;min-width:0;margin:-6px -8px;padding:6px 8px;display:flex}.tf-8f452a{font-size:var(--tf-font-amount);color:var(--tf-text-tertiary);flex-shrink:0;margin-right:2px;font-weight:700;line-height:1}.tf-1a6365{font-size:var(--tf-font-amount);letter-spacing:-.02em;font-weight:700;font-family:var(--tf-font-family);width:100%;min-width:0;color:var(--tf-text);text-align:left;--tf-focus-width:0px;background:0 0;border:none;outline:none;line-height:1}.tf-1a6365::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tf-1a6365::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tf-1a6365{-moz-appearance:textfield}.tf-1a6365::placeholder{color:var(--tf-text-tertiary)}.tf-991c0d{background:var(--tf-surface);border-radius:var(--tf-radius-sm);box-sizing:border-box;border:1px solid var(--tf-border);cursor:pointer;height:36px;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius-sm);flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;transition:background .15s,border-color .15s,color .15s;display:flex;position:relative}.tf-991c0d:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-991c0d:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-a9a7d7{cursor:default;pointer-events:none}.tf-a9a7d7:hover{background:var(--tf-surface);border-color:var(--tf-border)}.tf-991c0d:focus-within{outline:var(--tf-focus-ring-width) solid var(--tf-focus-ring-color);outline-offset:var(--tf-focus-ring-offset)}.tf-dc8a7b{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600}.tf-4bb83d{opacity:0;cursor:pointer;-webkit-appearance:none;appearance:none;border:none;width:100%;height:100%;position:absolute;top:0;left:0}.tf-19de08{font-size:var(--tf-font-amount);color:var(--tf-text);letter-spacing:-.02em;flex:1;min-width:0;font-weight:700;line-height:1}.tf-2ee659{color:var(--tf-text-tertiary)}.tf-cbd017{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary)}.tf-36561c{color:var(--tf-error)}.tf-f78710{margin:10px 20px 0}.tf-b584f9{background:var(--tf-surface);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius-lg);padding:14px 16px;animation:.25s both tf-7df115}.tf-d8fd5c{background:var(--tf-surface);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius-lg);margin:12px 20px 0;padding:14px 16px;animation:.25s both tf-7df115}.tf-96a148{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tf-4337e5{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);font-weight:500}.tf-1bf9bf{border-radius:var(--tf-radius-sm);background:var(--tf-success-bg);color:var(--tf-success);letter-spacing:.5px;text-transform:uppercase;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.tf-2e8f34{font-size:var(--tf-font-lg);color:var(--tf-text);margin-bottom:8px;font-weight:700}.tf-2fa202{justify-content:space-between;align-items:baseline;display:flex}.tf-45bc49{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600;font-family:var(--tf-font-family-mono)}.tf-fdf611{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary)}.tf-0e3026{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);margin-top:8px}.tf-fb4397{margin:6px 20px 0;overflow:hidden}.tf-2db646{background:color-mix(in srgb, var(--tf-primary) 6%, transparent);border:1px solid color-mix(in srgb, var(--tf-primary) 12%, transparent);border-radius:var(--tf-radius-sm);flex-direction:column;gap:10px;margin:10px 0 0;padding:14px 16px;animation:.25s both tf-7df115;display:flex}.tf-c78adb{font-size:var(--tf-font-sm);color:var(--tf-text-secondary);text-align:center;font-weight:500}.tf-b84c90{cursor:pointer;color:var(--tf-text-tertiary);opacity:.6;align-items:center;transition:opacity .15s;display:inline-flex}.tf-b84c90:hover{opacity:1}.tf-bb0779{background:var(--tf-bg-elevated,var(--tf-bg));border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);width:240px;color:var(--tf-text-secondary);font-size:var(--tf-font-sm,12px);text-align:center;z-index:10;pointer-events:none;padding:8px 10px;font-weight:400;line-height:1.45;animation:.15s tf-4bb2f7;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000040}.tf-306e03{justify-content:center;align-items:center;gap:6px;display:flex}.tf-5602d3{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.tf-78593f{justify-content:center;align-items:center;display:flex;position:relative}.tf-5527d4{background:var(--tf-surface);border:1px solid var(--tf-border);width:28px;height:28px;font-size:var(--tf-font-md);color:var(--tf-text);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.tf-0e800e{background:color-mix(in srgb, var(--tf-success) 15%, transparent);width:28px;height:28px;color:var(--tf-success);border-radius:50%;justify-content:center;align-items:center;display:flex}.tf-ade349{color:var(--tf-text-tertiary);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:64px;font-size:10px;font-weight:500;overflow:hidden}.tf-ba22f3{color:var(--tf-text-tertiary);flex-shrink:0;margin-top:-16px}.tf-64436e{justify-content:center;margin-top:4px;padding:4px 20px;display:flex}.tf-df7635{border-radius:var(--tf-radius-xl);border:1px solid var(--tf-border-light);background:var(--tf-surface);min-height:22px;color:var(--tf-primary);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--tf-font-family);align-items:center;gap:5px;padding:1px 7px 1px 4px;transition:background .15s,border-color .15s;display:inline-flex}.tf-df7635:hover{background:var(--tf-surface-hover);border-color:var(--tf-primary)}.tf-aae089{align-items:center;display:flex}.tf-b211ea{border:1px solid var(--tf-surface);background:var(--tf-input-bg);object-fit:contain;width:16px;height:16px;color:var(--tf-text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:8px;font-weight:700;display:flex;overflow:hidden}.tf-b211ea+.tf-b211ea{margin-left:-5px}.tf-b211ea img{object-fit:contain;width:100%;height:100%}.tf-985f7c{white-space:nowrap}.tf-57794c{color:var(--tf-text-tertiary);line-height:1}.tf-e99a74{flex-direction:column;gap:6px;margin:6px 20px 0;animation:.2s both tf-7df115;display:flex}.tf-839279{background:var(--tf-surface);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius);cursor:pointer;font-family:var(--tf-font-family);justify-content:space-between;align-items:center;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.tf-839279:hover{border-color:var(--tf-border);background:var(--tf-surface-hover)}.tf-b68773{border-color:var(--tf-primary);background:color-mix(in srgb, var(--tf-primary) 6%, var(--tf-surface))}.tf-845c61{font-size:var(--tf-font-sm);align-items:center;gap:4px;font-weight:500;display:inline-flex}.tf-a514cb{color:var(--tf-success)}.tf-35e95b{color:var(--tf-warning)}.tf-57fdcd{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);align-items:center;gap:6px;display:flex}.tf-e10cfb{object-fit:contain;border-radius:4px;width:16px;height:16px}.tf-4386a3{justify-content:center;align-items:center;margin:10px 20px 0;display:flex}.tf-96a3b0{background:var(--tf-error-alpha,#ef44440f);border:1px solid var(--tf-error-bg);border-radius:var(--tf-radius-sm);text-align:center;width:100%;padding:14px;animation:.25s both tf-7df115}.tf-539af2{font-size:var(--tf-font-md);color:var(--tf-error);margin-bottom:12px}.tf-002628{background:var(--tf-error-alpha,#ef44440f);border:1px solid var(--tf-error-bg);border-radius:var(--tf-radius-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;padding:20px 16px;animation:.25s both tf-7df115;display:flex;overflow-y:auto}.tf-8ddccf{color:var(--tf-error);opacity:.8;flex-shrink:0}.tf-0ebcc2{font-size:var(--tf-font-lg);color:var(--tf-error);font-weight:600}.tf-c6db08{font-size:var(--tf-font-sm);color:var(--tf-text-secondary);max-width:280px;line-height:1.5}.tf-4f9afa{border-radius:var(--tf-radius);background:var(--tf-bg-secondary);width:100%;color:var(--tf-text);font-size:var(--tf-font-lg);cursor:pointer;border:1px solid var(--tf-border);font-weight:600;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius);padding:12px;transition:background .2s,border-color .15s,color .15s,opacity .2s}.tf-4f9afa:hover{opacity:.92;background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border);transform:none}.tf-4f9afa:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border);transform:none}.tf-3e82ef{padding:12px 20px 0}@keyframes tf-a108b2{0%,to{opacity:1}50%{opacity:.4}}.tf-2f01a5{border-radius:var(--tf-radius-xs);animation:1.5s ease-in-out infinite tf-a108b2;overflow:hidden;background:var(--tf-skeleton)!important;color:#0000!important}`,`.tf-e03a33{flex-direction:column;gap:8px;margin:4px 20px 12px;display:flex}.tf-5cea64{background:var(--tf-input-bg);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius);color:var(--tf-text);font-size:var(--tf-font-base);cursor:pointer;--tf-focus-radius:var(--tf-radius);align-items:center;gap:14px;padding:14px 16px;font-family:inherit;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-5cea64:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border);transform:none}.tf-5cea64:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border);transform:none}.tf-0bf905{border-radius:var(--tf-radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tf-8afb90{background:linear-gradient(225deg, color-mix(in srgb, var(--tf-primary) 10%, transparent), color-mix(in srgb, var(--tf-primary) 3%, transparent));border:1px solid color-mix(in srgb, var(--tf-primary) 19%, transparent);color:var(--tf-primary)}.tf-26f3d0{background:linear-gradient(225deg, color-mix(in srgb, var(--tf-success) 10%, transparent), color-mix(in srgb, var(--tf-success) 3%, transparent));border:1px solid color-mix(in srgb, var(--tf-success) 19%, transparent);color:var(--tf-success)}.tf-fc3e4b{background:color-mix(in srgb, var(--tf-text-tertiary) 15%, transparent);color:var(--tf-text-tertiary)}.tf-0243c8{text-align:left;flex-direction:column;flex:1;gap:2px;display:flex}.tf-73c789{font-size:var(--tf-font-md);color:var(--tf-text);font-weight:600}.tf-abb887{font-size:var(--tf-font-xs);color:var(--tf-text-tertiary);font-weight:400}.tf-c0eba2{color:var(--tf-text-tertiary);align-items:center;display:flex}.tf-6b0b60{opacity:.55;cursor:not-allowed;pointer-events:none}.tf-2f823e{border:1px solid var(--tf-border);color:var(--tf-text-tertiary);background:0 0;border-radius:999px;align-items:center;width:-moz-fit-content;width:fit-content;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}`,`.tf-84a801{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;--tf-method-page-duration:.14s;--tf-method-page-ease:cubic-bezier(.22, 1, .36, 1);flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:visible;transform:translate(0,0)}.tf-e7e208{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.tf-618488{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;min-width:0}.tf-b570b1{z-index:1;position:relative}.tf-0368d3{z-index:2;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.tf-a9dce3{opacity:1;transform:translate(0)}.tf-e1790c,.tf-358422{pointer-events:auto;overflow:hidden}.tf-3f6f75,.tf-ff524b{pointer-events:none;overflow:hidden}.tf-e1790c{animation:tf-b3a3cd var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-3f6f75{animation:tf-ac50f5 var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-358422{animation:tf-91c244 var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-ff524b{animation:tf-166a40 var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-03b3cc{animation:tf-b3a3cd var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-11d878{animation:tf-ac50f5 var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-3d2e8a{animation:tf-91c244 var(--tf-method-page-duration) var(--tf-method-page-ease) both}.tf-3c9c76{animation:tf-166a40 var(--tf-method-page-duration) var(--tf-method-page-ease) both}@keyframes tf-b3a3cd{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0,0)}}@keyframes tf-ac50f5{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(-14px)}}@keyframes tf-91c244{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0,0)}}@keyframes tf-166a40{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(14px)}}@media (prefers-reduced-motion:reduce){.tf-e1790c,.tf-3f6f75,.tf-358422,.tf-ff524b,.tf-03b3cc,.tf-11d878,.tf-3d2e8a,.tf-3c9c76{opacity:1;animation:none;transform:none}}`,`@keyframes tf-d36961{to{transform:rotate(360deg)}}@keyframes tf-3cfd5b{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.tf-5835df{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-width:0;min-height:100%;padding:24px 20px 16px;animation:.3s both tf-e061c9;display:flex;overflow:hidden}.tf-9322ae{border-bottom:1px solid var(--tf-border-light);justify-content:center;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:20px;display:flex}.tf-7d5519{flex:1;justify-content:flex-start;align-items:center;min-width:0;display:flex}.tf-0b8d30{justify-content:flex-end}.tf-bfbd0b{align-items:center;gap:8px;min-width:0;display:flex}.tf-7e8fdf{flex-shrink:0;width:32px;height:32px;position:relative}.tf-37f3cf{background:var(--tf-bg);border:1.5px solid var(--tf-bg);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-2px}.tf-9401fd{flex-direction:column;min-width:0;display:flex;overflow:hidden}.tf-832fae{font-family:var(--tf-font-family-mono);font-weight:600;font-size:var(--tf-font-lg);color:var(--tf-text);white-space:nowrap;line-height:1.2}.tf-b557fc{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);font-weight:500;line-height:1.2}.tf-2b42d5{background:var(--tf-primary-light);border:1px solid color-mix(in srgb, var(--tf-primary) 30%, transparent);width:32px;height:32px;font-size:var(--tf-font-lg);color:var(--tf-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.tf-5953e8{color:var(--tf-text-tertiary);flex-shrink:0}.tf-a168c7{text-align:center;font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);justify-content:center;align-items:center;gap:6px;padding-bottom:16px;display:flex}.tf-062404{object-fit:contain;border-radius:4px;width:16px;height:16px}.tf-26af4c{flex-direction:column;flex:1;display:flex}.tf-4b9be7{gap:12px;display:flex}.tf-036db2{width:28px;height:28px;font-size:var(--tf-font-base);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.tf-09b7bb{background:var(--tf-success-bg);color:var(--tf-success);animation:.4s tf-3cfd5b}.tf-aef7e0{background:var(--tf-primary-light)}.tf-5c628c{background:var(--tf-input-bg);color:var(--tf-text-tertiary);border:1px solid var(--tf-border-light)}.tf-a5abdf{background:var(--tf-error-bg);color:var(--tf-error)}.tf-9efe7c{border:2px solid var(--tf-primary-light);border-top-color:var(--tf-primary);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite tf-d36961}.tf-5c7806{border-color:color-mix(in srgb, var(--tf-error) 20%, transparent);border-top-color:var(--tf-error)}.tf-185719{flex:1;min-width:0;padding-bottom:20px;position:relative}.tf-185719:before{content:"";background:var(--tf-border-light);width:2px;position:absolute;top:28px;bottom:0;left:-26px}.tf-4b9be7:last-child .tf-185719:before{display:none}.tf-4b9be7:last-child .tf-185719{padding-bottom:4px}.tf-84527b .tf-185719:before{background:var(--tf-success)}.tf-417d35 .tf-185719:before{background:var(--tf-error)}.tf-aad7e9{font-size:var(--tf-font-md);color:var(--tf-text);font-weight:600;line-height:28px}.tf-8de1c6 .tf-aad7e9{color:var(--tf-text-tertiary)}.tf-417d35 .tf-aad7e9{color:var(--tf-error)}.tf-bcb46a{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);word-break:break-word;overflow-wrap:break-word;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.tf-16cfdc .tf-bcb46a{color:var(--tf-primary)}.tf-0aa291{font-size:var(--tf-font-sm);color:var(--tf-primary);align-items:center;gap:3px;text-decoration:none;transition:opacity .15s;display:inline-flex}.tf-0aa291:hover{opacity:.7}.tf-234e31{border-radius:var(--tf-radius);background:var(--tf-error-alpha,#ef44440f);border:1px solid var(--tf-error-bg);text-align:center;margin-top:auto;padding:16px}.tf-adb588{font-size:var(--tf-font-md);color:var(--tf-text-secondary);margin-bottom:12px;line-height:1.5}.tf-11fa21{font-size:var(--tf-font-base);color:var(--tf-primary);align-items:center;gap:4px;margin-bottom:12px;text-decoration:none;transition:opacity .15s;display:inline-flex}.tf-11fa21:hover{opacity:.7}.tf-4f7573{border-radius:var(--tf-radius);background:linear-gradient(135deg, var(--tf-success), color-mix(in srgb, var(--tf-success) 80%, #000));width:100%;color:var(--tf-text-on-primary);font-size:var(--tf-font-lg);cursor:pointer;--tf-focus-radius:var(--tf-radius);border:none;padding:12px;font-weight:600;transition:opacity .2s,background .15s,border-color .15s}.tf-4f7573:hover{opacity:.94}.tf-4f7573:active{opacity:.88}.tf-c918a2{text-align:center;margin-top:auto;padding-top:16px}.tf-ad7aab{visibility:hidden;pointer-events:none}.tf-603d2e{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);margin-bottom:8px}.tf-1e22cb{border-radius:var(--tf-radius);background:var(--tf-bg-secondary);width:100%;color:var(--tf-text);font-size:var(--tf-font-lg);cursor:pointer;border:1px solid var(--tf-border);--tf-focus-radius:var(--tf-radius);padding:12px;font-weight:600;transition:opacity .2s,background .15s,border-color .15s}.tf-1e22cb:hover{opacity:.92;background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-1e22cb:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}`,`.tf-28b876{border-radius:var(--tf-radius-xl);background:var(--tf-bg);border:1px solid var(--tf-border);width:100%;max-width:400px;box-shadow:var(--tf-shadow-lg);font-family:var(--tf-font-family);color:var(--tf-text);flex-direction:column;height:100%;display:flex;overflow:hidden}.tf-2aa545{flex-shrink:0;padding:18px 20px 14px}.tf-bcba74{justify-content:space-between;align-items:center;display:flex}.tf-a974e8{font-size:var(--tf-font-xl);font-weight:600}.tf-14447c{align-items:center;gap:10px;display:flex}.tf-527e42{border-radius:var(--tf-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--tf-text-tertiary);background:var(--tf-input-bg);font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius-sm);border:none;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-527e42:hover{background:var(--tf-control-hover-bg)}.tf-527e42:active{background:var(--tf-control-active-bg)}.tf-a5a3ce{background:var(--tf-border);flex-shrink:0;height:1px;margin:0 20px}.tf-211bfe{flex:1;min-height:0;padding:6px 8px;overflow-y:auto}.tf-fd33c1{border-radius:var(--tf-radius);cursor:pointer;width:100%;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;padding:12px;transition:background .1s;display:flex}.tf-fd33c1:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-fd33c1:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-a0382b{background:var(--tf-primary-light);border-color:var(--tf-primary)}.tf-a0382b:hover{background:var(--tf-primary-light)}.tf-2aece4{align-items:center;gap:12px;display:flex}.tf-949870{border-radius:var(--tf-radius-xs);object-fit:contain;flex-shrink:0;width:32px;height:32px}.tf-13e09e{border-radius:var(--tf-radius-xs);background:var(--tf-input-bg);width:32px;height:32px;font-size:var(--tf-font-lg);color:var(--tf-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.tf-2387c4{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.tf-74069b{font-size:var(--tf-font-lg);color:var(--tf-text);align-items:center;gap:8px;font-weight:600;display:flex}.tf-113a28{letter-spacing:.03em;text-transform:uppercase;color:var(--tf-primary);background:var(--tf-primary-light);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2}.tf-69fe0b{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary)}.tf-cb2799{align-items:center;gap:8px;display:flex}.tf-d4ce76{font-size:var(--tf-font-md);color:var(--tf-text-secondary);font-weight:500;font-family:var(--tf-font-family-mono);text-align:right}.tf-b3b747{color:var(--tf-primary);flex-shrink:0}`,`.tf-216412{align-items:center;gap:4px;display:inline-flex}.tf-40ee76{cursor:pointer;border-radius:4px;margin:-2px -4px;padding:2px 4px;transition:background .15s}.tf-40ee76:hover{background:var(--tf-surface-hover)}.tf-52dc68{flex-shrink:0}.tf-25c5c8{animation:.8s linear infinite tf-27c522}@keyframes tf-27c522{to{transform:rotate(360deg)}}.tf-fd32be{font-size:var(--tf-font-sm);color:var(--tf-text-secondary);min-width:20px}`,`.tf-1019c2{background:var(--tf-bg-secondary);border-radius:var(--tf-radius-lg);border:1px solid var(--tf-border-light);min-height:80px;font-size:var(--tf-font-base);color:var(--tf-text-secondary);box-sizing:border-box;flex-direction:column;justify-content:center;gap:8px;margin:12px 20px 0;padding:14px;animation:.25s both tf-42889f;display:flex}.tf-4922f1{justify-content:space-between;align-items:center;gap:16px;line-height:1.35;display:flex}.tf-57f45f{font-family:var(--tf-font-family-mono);font-size:var(--tf-font-sm);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;min-width:0}.tf-d74ccc{justify-content:space-between;align-items:center;display:flex}.tf-92e7a8{width:68px;height:14px}.tf-d20f50{width:56px}.tf-a9a96f{width:150px;height:14px}.tf-0134eb{width:126px}.tf-91635c{width:80px}.tf-ca1291{cursor:pointer;border-bottom:1px solid var(--tf-border-light);margin-bottom:10px;transition:opacity .15s}.tf-ca1291:hover{opacity:.7}.tf-ca1291 .tf-57f45f{align-items:center;gap:4px;display:inline-flex}.tf-ca1291 .tf-57f45f svg{opacity:.35;flex-shrink:0;transition:opacity .15s}.tf-ca1291:hover .tf-57f45f svg{opacity:.7}.tf-a249b3 .tf-recipient-placeholder{color:var(--tf-error)}.tf-adeddd{border:1px dashed var(--tf-primary);border-radius:var(--tf-radius);margin-bottom:10px;padding:8px 12px;animation:2s ease-in-out infinite tf-d990e5}.tf-adeddd .tf-recipient-placeholder{color:var(--tf-primary);font-style:normal}`,`.tf-9b71d6{box-sizing:border-box;justify-content:space-between;align-items:center;gap:7px;height:65px;padding:0 20px;display:flex}.tf-4c9136{padding:0 20px 10px}.tf-febe61{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);text-align:left;box-sizing:border-box;height:22px;font-weight:500}.tf-b8cb88{cursor:pointer;color:var(--tf-text-tertiary);height:36px;font-family:var(--tf-font-family);font-size:var(--tf-font-sm);border-radius:var(--tf-radius-sm);--tf-focus-radius:var(--tf-radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:0 8px;font-weight:500;transition:color .15s,background .15s,border-color .15s;display:flex}.tf-b8cb88:hover{color:var(--tf-text-secondary);background:var(--tf-control-hover-bg)}.tf-b8cb88:active{color:var(--tf-text);background:var(--tf-control-active-bg)}.tf-bf5d6c{pointer-events:none}.tf-0d09cf{animation:.3s both tf-398c5c;display:inline-flex}@keyframes tf-398c5c{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.tf-2368bf{animation:.3s both tf-86d030;display:inline}@keyframes tf-86d030{0%{transform:translate(-20px)}to{transform:translate(0)}}.tf-b31fd2{animation:.25s reverse both tf-398c5c;display:inline-flex}.tf-f55867{animation:.25s reverse both tf-86d030;display:inline}.tf-a27aab{background:var(--tf-input-bg);border-radius:var(--tf-radius);border:1px solid var(--tf-border-light);box-sizing:border-box;flex-direction:column;gap:8px;padding:12px 14px 14px;display:flex}.tf-d62361{align-items:center;gap:10px;height:48px;display:flex}.tf-f0b3f5{flex-shrink:0;position:relative}.tf-7a6fbc{width:12px;height:12px;position:absolute;bottom:-1px;right:-1px}.tf-e9e9a1{font-size:var(--tf-font-amount-sm);letter-spacing:-.02em;font-weight:700}.tf-f3baad{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600;line-height:20px}.tf-0131e4{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);font-family:var(--tf-font-family-mono);margin-left:auto}.tf-e8980b{font-size:var(--tf-font-amount-sm);letter-spacing:-.02em;font-weight:700;font-family:var(--tf-font-family);width:80px;min-width:0;color:var(--tf-text);text-align:left;--tf-focus-width:0px;background:0 0;border:none;outline:none;line-height:1}.tf-3d3253{justify-content:flex-end;align-items:center;margin:-6px -8px;padding:6px 8px;display:flex}.tf-e8980b::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tf-e8980b::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tf-e8980b{-moz-appearance:textfield}.tf-e8980b::placeholder{color:var(--tf-text-tertiary)}.tf-81181d{border-radius:var(--tf-radius);border:1px solid var(--tf-border-light);background:var(--tf-input-bg);cursor:pointer;width:100%;height:56px;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius);align-items:center;padding:0 14px;transition:background .15s,border-color .15s,color .15s;display:flex;transform:none!important}.tf-81181d:hover{border-color:var(--tf-control-hover-border);background:var(--tf-control-hover-bg);transform:none!important}.tf-81181d:active{border-color:var(--tf-control-active-border);background:var(--tf-control-active-bg);transform:none!important}.tf-a274dd{align-items:center;gap:9px;display:flex}.tf-0039f9{position:relative}.tf-2ee752{background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:50%;justify-content:center;align-items:center;width:11px;height:11px;display:flex;position:absolute;bottom:-1px;right:-1px}.tf-96714d{text-align:left;flex-direction:column;gap:1px;line-height:1.2;display:flex}.tf-619747{align-items:center;gap:5px;display:flex}.tf-cd221a{font-size:var(--tf-font-base);color:var(--tf-text);font-weight:600}.tf-2c683f{font-size:var(--tf-font-2xs);background:var(--tf-success-bg);color:var(--tf-success);border-radius:3px;padding:1px 4px;font-weight:700}.tf-c839a0{font-size:var(--tf-font-xs);color:var(--tf-text-tertiary)}.tf-0b0d52{text-align:right;flex-direction:column;gap:1px;margin-left:auto;margin-right:8px;line-height:1.2;display:flex}.tf-19df0d{font-size:var(--tf-font-lg);font-weight:500;font-family:var(--tf-font-family-mono);color:var(--tf-text);letter-spacing:-.02em}.tf-c7d33a{font-size:var(--tf-font-xs);color:var(--tf-text-tertiary);font-family:var(--tf-font-family-mono)}.tf-e51789{color:var(--tf-text-tertiary);flex-shrink:0;align-items:center;transition:transform .2s;display:flex}.tf-8a3107{border-radius:4px;width:60px;height:16px}.tf-e255df{border-radius:var(--tf-radius);border:1px solid var(--tf-border-light);background:var(--tf-input-bg);cursor:default;pointer-events:none;align-items:center;padding:11px 14px;display:flex}.tf-fb2771{border-radius:50%;width:32px;height:32px}.tf-1b1e61{flex-direction:column;gap:6px;margin-left:9px;display:flex}.tf-18dcca{height:10px}.tf-a5c85b{width:52px}.tf-12a725{width:40px}.tf-df9ebb{flex-direction:column;align-items:flex-end;gap:6px;margin-left:auto;display:flex}.tf-3547fa{width:60px}.tf-a46696{width:44px}.tf-1d40de{background:var(--tf-surface);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius);flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:180px;padding:14px 16px;display:flex}.tf-5d25d7{font-size:var(--tf-font-md);color:var(--tf-text-secondary);font-weight:600}`,`.tf-636daf{background:var(--tf-bg);border-radius:var(--tf-radius-xl) var(--tf-radius-xl) 0 0;flex-direction:column;width:100%;height:300px;animation:.3s cubic-bezier(.32,.72,0,1) both tf-6933ac;display:flex;overflow:hidden;box-shadow:0 -4px 24px #00000026}@keyframes tf-6933ac{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes tf-cc2d20{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.tf-75c7ef{animation:.2s both tf-cc2d20}.tf-fddfab{border-bottom:1px solid var(--tf-border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.tf-970eb9{font-size:var(--tf-font-2xl);color:var(--tf-text);font-weight:600}.tf-de123a{cursor:pointer;color:var(--tf-text-secondary);border-radius:var(--tf-radius-xs);--tf-focus-radius:var(--tf-radius-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-de123a:hover{background:var(--tf-control-hover-bg)}.tf-de123a:active{background:var(--tf-control-active-bg)}.tf-0445e3{flex-direction:column;flex:1;gap:8px;padding:16px 20px;display:flex}.tf-9a65ec{background:var(--tf-input-bg);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius);width:100%;min-height:80px;font-size:var(--tf-font-lg);font-family:var(--tf-font-family-mono);color:var(--tf-text);resize:none;--tf-focus-radius:var(--tf-radius);box-sizing:border-box;outline:none;padding:12px 14px;transition:border-color .2s,background .15s}.tf-9a65ec::placeholder{color:var(--tf-text-tertiary)}.tf-9a65ec:focus{border-color:var(--tf-primary);background:var(--tf-bg)}.tf-c5ea21{border-color:var(--tf-error);--tf-focus-color:var(--tf-error)}.tf-c5ea21:focus{border-color:var(--tf-error);background:var(--tf-bg)}.tf-9d4bba{font-size:var(--tf-font-base);color:var(--tf-error);padding:0 2px}.tf-cb9b60{padding:16px 20px 20px}.tf-2cba65{width:100%}.tf-2cba65:disabled{opacity:.5;cursor:not-allowed}`,`@keyframes tf-6887ec{0%{opacity:.6}to{opacity:1}}.tf-ba406b{align-items:baseline;transition:opacity .15s;display:inline-flex}.tf-9d81a4{opacity:.85;font-size:.7em;line-height:1}.tf-7977ef{cursor:help}`,`@keyframes tf-07c947{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tf-82d3cb.tf-82d3cb{min-height:0}.tf-cfe0c3{box-sizing:border-box;min-width:0;padding-bottom:var(--tf-swap-method-footer-space,54px);--tf-swap-method-footer-space:54px;flex-direction:column;flex:1;display:flex;position:relative}.tf-b72702{--tf-swap-method-footer-space:20px}.tf-07315d{height:var(--tf-swap-compact-method-frame-height,346px);min-height:var(--tf-swap-compact-method-frame-height,346px)}.tf-6007ab.tf-6007ab{left:0;right:0;z-index:2;pointer-events:auto;margin-top:0;padding-top:0;position:absolute;bottom:0}.tf-c6b5c1.tf-c6b5c1{will-change:height;transition:height .14s cubic-bezier(.22,1,.36,1),background .25s,border-color .25s,box-shadow .25s;overflow:clip}@media (prefers-reduced-motion:reduce){.tf-c6b5c1.tf-c6b5c1{will-change:auto;transition:none;height:auto!important}}.tf-dc5721{box-sizing:border-box;justify-content:space-between;align-items:center;height:65px;padding:0 20px;display:flex}.tf-68123c{--tf-header-brand-push:34px;--tf-header-nav-duration:.14s;--tf-header-nav-ease:cubic-bezier(.22, 1, .36, 1);flex:1;align-items:center;min-width:0;height:36px;display:flex;position:relative}.tf-fa624c{z-index:2;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.tf-b22fc1{min-width:0;max-width:100%;transition:transform var(--tf-header-nav-duration) var(--tf-header-nav-ease);will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;align-items:center;gap:7px;display:flex;transform:translate(0,0)}.tf-3b140c,.tf-006721{transform:translate3d(var(--tf-header-brand-push), 0, 0)}.tf-ef99e5,.tf-8b0d84{transform:translate(0,0)}.tf-532d07{object-fit:contain;flex-shrink:0;width:auto;max-width:88px;height:22px}.tf-aede09{max-width:144px}.tf-b7936a{font-size:var(--tf-font-xl);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;display:inline-block;overflow:hidden}.tf-30630d{display:none}.tf-883305{color:#216bff}.tf-20deb0{display:inline-flex}.tf-b321a9{animation:tf-4baf86 var(--tf-header-nav-duration) var(--tf-header-nav-ease) both}.tf-e70f0f{animation:tf-4baf86 var(--tf-header-nav-duration) var(--tf-header-nav-ease) reverse both}@keyframes tf-4baf86{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0,0)}}@media (prefers-reduced-motion:reduce){.tf-b22fc1{transition:none}.tf-b321a9,.tf-e70f0f{animation-duration:1ms}}.tf-bc1b05{font-size:var(--tf-font-sm);align-items:center;gap:5px;padding:12px 20px 0;display:flex}.tf-bc1b05+.tf-98d625{padding-top:10px}.tf-dd09ea{cursor:pointer;font-family:var(--tf-font-family);font-size:var(--tf-font-sm);color:var(--tf-primary);--tf-focus-radius:var(--tf-radius-xs);background:0 0;border:none;padding:0;font-weight:500;transition:opacity .15s,background .15s}.tf-dd09ea:hover{opacity:.8}.tf-018710{color:var(--tf-text-tertiary);font-weight:400}.tf-21456c{color:var(--tf-text-secondary);font-weight:500}.tf-6da3db{cursor:pointer;border-radius:var(--tf-radius-sm);--tf-focus-radius:var(--tf-radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.tf-6da3db:hover{background:var(--tf-control-hover-bg)}.tf-6da3db:active{background:var(--tf-control-active-bg)}.tf-d25568{background:var(--tf-primary);width:8px;height:8px;box-shadow:0 0 8px var(--tf-primary-glow);border-radius:50%}.tf-16ce7d{background:var(--tf-success);box-shadow:0 0 8px var(--tf-success)}.tf-11bb1d{font-size:var(--tf-font-base);color:var(--tf-text-secondary);font-family:var(--tf-font-family-mono)}.tf-98d625,.tf-8b7743{padding:0 20px}.tf-fdf8be{margin-top:6px}.tf-677ece{background:var(--tf-input-bg);border-radius:var(--tf-radius-lg);border:1px solid var(--tf-border-light);padding:14px 16px;transition:border-color .2s,background .25s,box-shadow .2s}.tf-635915{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tf-b8a04a{align-items:center;gap:8px;display:inline-flex}.tf-0d1ef8{font-size:var(--tf-font-base);color:var(--tf-text-tertiary);text-align:left;font-weight:500}.tf-d04a4e{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);font-family:var(--tf-font-family-mono)}.tf-d7140f{justify-content:space-between;align-items:center;display:flex}.tf-dcd620{background:var(--tf-surface);box-sizing:border-box;border:1px solid var(--tf-border);cursor:pointer;height:36px;font-family:var(--tf-font-family);--tf-focus-radius:999px;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:6px 12px 6px 8px;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-dcd620:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border);transform:none}.tf-dcd620:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border);transform:none}.tf-6859a9{cursor:default;pointer-events:none}.tf-6859a9:hover{background:var(--tf-surface);border-color:var(--tf-border)}.tf-e25a5c{padding:0 12px}.tf-038cf1{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600}.tf-33c9cb{font-size:var(--tf-font-md);color:var(--tf-primary);font-weight:600}.tf-b1e4a6{font-size:var(--tf-font-xs);color:var(--tf-text-tertiary);align-items:center;display:inline-flex}.tf-d168ae{min-height:16px;font-size:var(--tf-font-base);justify-content:space-between;align-items:center;margin-top:6px;line-height:100%;display:flex}.tf-b2b098{justify-content:space-between;align-items:center;height:16px;margin-top:6px;display:flex}.tf-c85ee2{justify-content:flex-end;align-items:center;gap:6px;min-height:20px;display:inline-flex}.tf-9c686b{border:1px solid var(--tf-border-light);background:var(--tf-surface);width:20px;height:20px;color:var(--tf-text-tertiary);cursor:pointer;font-family:var(--tf-font-family);--tf-focus-radius:999px;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.tf-9c686b:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border);color:var(--tf-primary)}.tf-9c686b:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-92acfd{min-height:16px;font-size:var(--tf-font-base);color:var(--tf-text-tertiary);line-height:100%;display:inline-block}.tf-bd2f5c{visibility:hidden}.tf-5f8805{font-size:var(--tf-font-sm);color:var(--tf-primary);background:var(--tf-primary-light);border-radius:var(--tf-radius-xs);cursor:pointer;font-weight:600;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius-xs);border:none;padding:2px 8px;transition:background .15s,border-color .15s,opacity .15s}.tf-5f8805:hover{opacity:.92;background:color-mix(in srgb, var(--tf-primary-light) 78%, var(--tf-bg) 22%)}.tf-5f8805:active{background:color-mix(in srgb, var(--tf-primary-light) 60%, var(--tf-primary) 40%)}.tf-af41ab{z-index:2;justify-content:center;margin:-6px 0;display:flex;position:relative}.tf-18c3f4{-webkit-appearance:none;appearance:none;border-radius:var(--tf-radius-sm);background:var(--tf-surface);border:3px solid var(--tf-bg);cursor:pointer;width:36px;height:36px;font-size:var(--tf-font-lg);color:var(--tf-text-secondary);--tf-focus-radius:var(--tf-radius-sm);justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex;box-shadow:0 2px 8px #0000000f}.tf-18c3f4:hover{color:var(--tf-primary);background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-18c3f4:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-194ce7{cursor:default;color:var(--tf-text-tertiary)}.tf-194ce7:hover{color:var(--tf-text-tertiary);background:var(--tf-surface);border-color:var(--tf-bg);transform:none}.tf-194ce7:active{transform:none}.tf-85dacd{background:var(--tf-input-bg);border-radius:var(--tf-radius-lg);border:1px solid var(--tf-border-light);transition:border-color .2s,background .25s,box-shadow .2s}.tf-8a93b8{padding:14px 16px}.tf-ae3eb4{background:var(--tf-border-light);height:1px;margin:0 16px;position:relative}.tf-93effc{-webkit-appearance:none;appearance:none;background:var(--tf-input-bg);border:1px solid var(--tf-border-light);cursor:pointer;width:28px;height:28px;color:var(--tf-text-secondary);--tf-focus-radius:999px;z-index:1;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,color .15s,border-color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-50%)}.tf-93effc:hover{color:var(--tf-primary);background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-93effc:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-cede4f{cursor:default;color:var(--tf-text-tertiary)}.tf-cede4f:hover{color:var(--tf-text-tertiary);border-color:var(--tf-border-light);transform:translate(-50%)translateY(-50%)}.tf-cede4f:active{transform:translate(-50%)translateY(-50%)}.tf-a04b23{flex-shrink:0;position:relative}.tf-57762e{position:absolute;bottom:-2px;right:-2px}.tf-e71ca8{box-sizing:border-box;background:var(--tf-bg-secondary);border-radius:var(--tf-radius-lg);border:1px solid var(--tf-border-light);justify-content:center;align-items:center;min-height:80px;margin:12px 20px 0;display:flex}.tf-629a62{box-sizing:border-box;border-radius:var(--tf-radius);background:var(--tf-bg-secondary);border:1px solid var(--tf-border-light);min-height:30px;color:var(--tf-text-secondary);font-size:var(--tf-font-sm);justify-content:center;align-items:center;margin:8px 20px 0;padding:7px 10px;font-weight:500;display:flex}.tf-553778{box-sizing:border-box;justify-content:center;align-items:center;gap:12px;min-height:80px;margin:12px 20px 0;display:flex}.tf-35d309{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:165px;margin:12px 20px 0;display:flex}.tf-22e039{box-sizing:border-box;background:color-mix(in srgb, var(--tf-error-bg) 30%, var(--tf-bg-secondary));border:1px solid color-mix(in srgb, var(--tf-error) 24%, var(--tf-border-light));border-radius:var(--tf-radius-lg);height:80px;color:var(--tf-text-secondary);flex-direction:column;gap:8px;margin:12px 20px 0;padding:12px 14px;animation:.25s both tf-c949b7;display:flex;overflow:hidden}.tf-bd8f19{height:177px;margin-top:10px}.tf-031455{height:auto;min-height:0;max-height:100%;margin:0}.tf-d4f50e{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;display:flex}.tf-ff191d{min-width:0;color:var(--tf-error);font-size:var(--tf-font-sm);align-items:center;gap:6px;font-weight:600;display:inline-flex}.tf-ff191d svg{flex-shrink:0}.tf-7896a2{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.tf-06b419{border:1px solid var(--tf-border-light);background:var(--tf-surface);color:var(--tf-text-secondary);font-family:var(--tf-font-family);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.tf-06b419:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border);color:var(--tf-text)}.tf-06b419:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-27f120,.tf-27f120:hover,.tf-27f120:active{background:color-mix(in srgb, var(--tf-success) 16%, var(--tf-surface));border-color:color-mix(in srgb, var(--tf-success) 42%, var(--tf-border-light));color:var(--tf-success)}.tf-06b419{--tf-focus-radius:999px;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.tf-afe150{overscroll-behavior:contain;min-height:0;color:var(--tf-text-secondary);font-size:var(--tf-font-sm);white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;flex:1;line-height:1.45;overflow-y:auto}.tf-7cc04d{flex-shrink:0;min-height:44px}.tf-031455 .tf-7cc04d{border-radius:var(--tf-radius-lg);min-height:40px;font-size:var(--tf-font-md);letter-spacing:0;box-shadow:none;padding:10px 14px}@keyframes tf-8df567{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes tf-31af8d{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.tf-02277a{background:var(--tf-bg);border-radius:var(--tf-radius-xl) var(--tf-radius-xl) 0 0;border-top:1px solid color-mix(in srgb, var(--tf-border-light) 80%, transparent);width:100%;max-height:min(64%,320px);font-family:var(--tf-font-family);color:var(--tf-text);flex-direction:column;animation:.2s cubic-bezier(.32,.72,0,1) both tf-8df567;display:flex;overflow:hidden;box-shadow:0 -10px 28px #00000024}.tf-2f833b{animation:.16s both tf-31af8d}.tf-1d8ba0{border-bottom:1px solid color-mix(in srgb, var(--tf-border-light) 62%, transparent);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px 10px;display:flex}.tf-c7692c{font-size:var(--tf-font-lg);color:var(--tf-text);letter-spacing:.01em;font-weight:600}.tf-ef62af{border-radius:var(--tf-radius-sm);background:var(--tf-input-bg);width:28px;height:28px;color:var(--tf-text-tertiary);cursor:pointer;--tf-focus-radius:var(--tf-radius-sm);border:none;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-ef62af:hover{background:var(--tf-control-hover-bg);color:var(--tf-text-secondary)}.tf-9344d0{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding:12px 20px 18px;overflow-y:auto}.tf-7f2566{background:color-mix(in srgb, var(--tf-bg-secondary) 86%, var(--tf-bg));border:1px solid color-mix(in srgb, var(--tf-border-light) 86%, transparent);border-radius:var(--tf-radius-lg);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.tf-ecadd3{font-size:var(--tf-font-base);color:var(--tf-text-secondary);justify-content:space-between;align-items:center;gap:16px;line-height:1.35;display:flex}.tf-6250fa{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:68%;color:var(--tf-text);font-family:var(--tf-font-family-mono);font-size:var(--tf-font-sm);font-variant-numeric:tabular-nums;text-align:right;overflow:hidden}.tf-936478{height:36px;font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);align-items:center;padding:0 20px;font-weight:500;display:flex}.tf-e1d634{opacity:.55;cursor:not-allowed;pointer-events:none}.tf-8ad819{background:color-mix(in srgb, var(--tf-text-tertiary) 15%, transparent);color:var(--tf-text-tertiary)}.tf-5be26a{border:1px solid var(--tf-border);color:var(--tf-text-tertiary);background:0 0;border-radius:999px;align-items:center;width:-moz-fit-content;width:fit-content;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}`,`.tf-9b9575{z-index:10;background:#00000038;align-items:flex-end;animation:.2s both tf-9e8870;display:flex;position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;overflow:hidden}@keyframes tf-9e8870{0%{opacity:0}to{opacity:1}}@keyframes tf-d98d4b{0%{opacity:1}to{opacity:0}}@keyframes tf-c66348{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes tf-d911c1{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.tf-140273{border-radius:var(--tf-radius-xl) var(--tf-radius-xl) 0 0;background:var(--tf-bg);width:100%;font-family:var(--tf-font-family);color:var(--tf-text);flex-direction:column;height:calc(100% - 45px);animation:.3s cubic-bezier(.32,.72,0,1) both tf-c66348;display:flex;overflow:hidden;box-shadow:0 -4px 24px #00000026}.tf-fce59b{box-shadow:none}.tf-72e47b{pointer-events:none;animation:.12s linear both tf-d98d4b}.tf-b9a357{animation:.2s both tf-d911c1}.tf-d0a7ad{flex-direction:column;flex:1;min-height:0;display:flex}.tf-45030f{flex-shrink:0;padding:18px 20px 0}.tf-ce0622{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.tf-0c1692{font-size:var(--tf-font-xl);font-weight:600}.tf-64aa3f{border-radius:var(--tf-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--tf-text-tertiary);font-size:var(--tf-font-2xl);background:var(--tf-input-bg);font-weight:300;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius-sm);border:none;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-64aa3f:hover{background:var(--tf-control-hover-bg)}.tf-64aa3f:active{background:var(--tf-control-active-bg)}.tf-9819ca{background:var(--tf-input-bg);border-radius:var(--tf-radius);border:1px solid var(--tf-border-light);--tf-focus-radius:var(--tf-radius);align-items:center;gap:10px;padding:0;transition:border-color .15s,background .15s;display:flex}.tf-9819ca.tf-d9fcd6{border-color:var(--tf-primary);background:var(--tf-bg)}.tf-4ad0e7{width:14px;height:14px;color:var(--tf-text-tertiary);font-size:var(--tf-font-lg);flex-shrink:0;justify-content:center;align-items:center;margin-left:14px;line-height:1;display:flex}.tf-4ad0e7 svg{display:block}.tf-9ea859{box-sizing:border-box;font-size:var(--tf-font-lg);color:var(--tf-text);font-family:var(--tf-font-family);--tf-focus-width:0px;background:0 0;border:none;outline:none;flex:1;padding:10px 14px 10px 0;line-height:1.2;transition:border-color .15s}.tf-a91427{border-radius:var(--tf-radius-xs);flex:1;height:16px;margin:10px 14px 10px 0}.tf-9ea859:focus{outline:none}.tf-9ea859::placeholder{color:var(--tf-text-tertiary)}.tf-25e112{margin-top:12px;padding-bottom:14px;gap:4px;margin-inline-start:-20px;margin-inline-end:-20px;padding-inline-start:20px;padding-inline-end:20px;scroll-padding-inline:20px;display:flex;overflow-x:auto}.tf-478cb9{box-sizing:border-box;border-radius:var(--tf-radius-sm);height:32px;font-size:var(--tf-font-sm);cursor:pointer;white-space:nowrap;font-weight:500;font-family:var(--tf-font-family);background:var(--tf-input-bg);color:var(--tf-text-secondary);--tf-focus-radius:var(--tf-radius-sm);border:none;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;transition:background .15s,border-color .15s,color .15s;display:flex}.tf-478cb9:hover{background:var(--tf-control-hover-bg)}.tf-478cb9:active{background:var(--tf-control-active-bg)}.tf-478cb9.tf-125be5{background:var(--tf-primary-light);color:var(--tf-primary);outline:1px solid var(--tf-primary);outline-offset:-1px}.tf-bb4fb1{border-radius:var(--tf-radius-sm);flex-shrink:0;height:32px}.tf-ad5703{background:var(--tf-border);flex-shrink:0;height:1px;margin:0 20px}.tf-de9986{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:6px 8px 16px;overflow-y:auto}.tf-f4a673+.tf-f4a673{margin-top:8px}.tf-f61a2d{color:var(--tf-text-tertiary);font-size:var(--tf-font-sm);letter-spacing:.02em;padding:10px 12px 6px;font-weight:600}.tf-5f7716,.tf-7ac0fe{flex-direction:column;display:flex}.tf-c6ef08{border-radius:var(--tf-radius);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.tf-3643cf{align-items:center;gap:12px;display:flex}.tf-9b3d59{border-radius:50%;width:36px;height:36px}.tf-a4cc17{flex-direction:column;gap:6px;display:flex}.tf-7f1baf{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.tf-9171a2{height:10px}.tf-9171a2.tf-71ea5d{width:88px}.tf-9171a2.tf-dfb33a{width:64px}.tf-9171a2.tf-43fbf4{width:56px}.tf-9171a2.tf-61ca3c{width:44px}.tf-512365{border-radius:var(--tf-radius);cursor:pointer;width:100%;font-family:var(--tf-font-family);--tf-focus-radius:var(--tf-radius);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;padding:10px 12px;transition:background .1s,border-color .15s,color .15s;display:flex}.tf-512365:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-512365:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-512365.tf-9f601f{background:var(--tf-primary-light)}.tf-a0b0d9{align-items:center;gap:12px;display:flex}.tf-1e7a62{position:relative}.tf-67f18a{background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:50%;justify-content:center;align-items:center;width:13px;height:13px;display:flex;position:absolute;bottom:-1px;right:-1px}.tf-cd76b9{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.tf-189814{align-items:center;gap:5px;display:flex}.tf-8f4efd{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600;line-height:20px}.tf-6d4840{font-size:var(--tf-font-2xs);background:var(--tf-success-bg);color:var(--tf-success);letter-spacing:.03em;border-radius:3px;padding:1px 4px;font-weight:700}.tf-51bf2b{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);line-height:16px}.tf-87740a{text-align:right}.tf-43fbf4{color:var(--tf-text);font-size:var(--tf-font-md);font-weight:500;font-family:var(--tf-font-family-mono)}.tf-43fbf4.tf-2ee375{color:var(--tf-text-tertiary)}.tf-61ca3c{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);font-family:var(--tf-font-family-mono)}.tf-0afeec{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;min-height:0;padding:32px 32px 24px;display:flex}.tf-ea8b28{background:var(--tf-primary-light);width:64px;height:64px;color:var(--tf-text-tertiary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.tf-74f38a{font-size:var(--tf-font-lg);color:var(--tf-text);font-weight:600}.tf-d9b5e6{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary);text-align:center;max-width:280px;line-height:1.5}.tf-635e96{background:var(--tf-primary-light);color:var(--tf-primary);font-size:var(--tf-font-sm);font-weight:600;font-family:var(--tf-font-family);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:6px;margin-top:4px;padding:10px 20px;transition:background .15s;display:flex}.tf-635e96:hover{background:var(--tf-primary-alpha)}`,`@keyframes tf-36c468{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes tf-dc4326{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes tf-13e6cd{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes tf-2b6de5{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes tf-5b8ef8{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tf-e98a9a{box-sizing:border-box;flex-direction:column;flex:1;align-items:center;width:100%;min-width:0;padding:28px 20px 24px;display:flex}.tf-1f9019{background:linear-gradient(145deg, var(--tf-success), color-mix(in srgb, var(--tf-success) 80%, white));width:64px;height:64px;box-shadow:0 2px 8px color-mix(in srgb, var(--tf-success) 30%, transparent), 0 8px 32px color-mix(in srgb, var(--tf-success) 20%, transparent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;padding:2px;animation:.5s cubic-bezier(.34,1.56,.64,1) both tf-36c468;display:flex;position:relative}.tf-1f9019:before{content:"";border:2px solid var(--tf-success);pointer-events:none;border-radius:50%;animation:3s ease-out infinite tf-13e6cd;position:absolute;top:-2px;bottom:-2px;left:-2px;right:-2px}.tf-fd4d56{background:var(--tf-bg);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.tf-d3c8df{color:var(--tf-success);display:flex}.tf-d3c8df svg{stroke-dasharray:24;stroke-dashoffset:24px;animation:.4s .35s forwards tf-dc4326}.tf-9e3a66{font-size:var(--tf-font-heading);color:var(--tf-text);letter-spacing:-.01em;margin-bottom:4px;font-weight:700}.tf-db06d4{font-size:var(--tf-font-md);color:var(--tf-text-secondary);margin-bottom:20px}.tf-c9a5e1{border-radius:var(--tf-radius-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--tf-success) 8%, transparent), color-mix(in srgb, var(--tf-success) 4%, transparent));border:1px solid color-mix(in srgb, var(--tf-success) 15%, transparent);flex-direction:column;align-items:center;gap:6px;width:100%;margin-bottom:16px;padding:20px;animation:.4s .2s both tf-2b6de5;display:flex;position:relative;overflow:hidden}.tf-c9a5e1:after{content:"";background:radial-gradient(ellipse at center, color-mix(in srgb, var(--tf-success) 12%, transparent), transparent 70%);pointer-events:none;width:60%;height:40px;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.tf-7b3b5b{width:40px;height:40px;margin-bottom:4px;animation:.3s .1s both tf-5b8ef8;position:relative}.tf-651299{background:var(--tf-bg);border:1.5px solid color-mix(in srgb, var(--tf-success) 15%, transparent);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-2px}.tf-f52291{font-size:var(--tf-font-amount-lg);color:var(--tf-text);font-weight:700;font-family:var(--tf-font-family-mono);letter-spacing:-.02em;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px;animation:.3s .2s both tf-5b8ef8;display:flex}.tf-8cfc86{font-size:var(--tf-font-lg);color:var(--tf-text-secondary);font-weight:500;animation:.3s .25s both tf-5b8ef8}.tf-5f768d{font-size:var(--tf-font-sm);font-weight:500;font-family:var(--tf-font-family);color:var(--tf-text-tertiary);letter-spacing:0;animation:.3s .3s both tf-5b8ef8}.tf-75f592{width:100%;margin-bottom:16px}.tf-73910d{background:var(--tf-input-bg);border:1px solid var(--tf-border-light);border-radius:var(--tf-radius-sm);cursor:pointer;width:100%;font-size:var(--tf-font-base);color:var(--tf-text-secondary);font-weight:500;font-family:var(--tf-font-family);justify-content:space-between;align-items:center;padding:10px 14px;transition:background .15s;display:flex}.tf-73910d:hover{background:var(--tf-bg-secondary)}.tf-ae94a0{border-radius:var(--tf-radius-sm) var(--tf-radius-sm) 0 0}.tf-1afb0a{color:var(--tf-text-tertiary);justify-content:center;align-items:center;transition:transform .2s;display:flex}.tf-7737cf{transform:rotate(180deg)}.tf-92a530{border:1px solid var(--tf-border-light);border-radius:0 0 var(--tf-radius-sm) var(--tf-radius-sm);background:var(--tf-input-bg);border-top:none;padding:8px 14px 12px;animation:.15s both tf-5b8ef8}.tf-6e8c3e{font-size:var(--tf-font-sm);justify-content:space-between;align-items:center;padding:5px 0;display:flex}.tf-4b5396{color:var(--tf-text-tertiary);font-weight:500}.tf-63cca1{color:var(--tf-text-secondary);font-family:var(--tf-font-family-mono);font-size:var(--tf-font-sm);align-items:center;gap:4px;display:flex}.tf-18c122{color:var(--tf-primary);font-size:var(--tf-font-sm);font-family:var(--tf-font-family-mono);align-items:center;gap:3px;text-decoration:none;transition:opacity .15s;display:inline-flex}.tf-18c122:hover{opacity:.7}.tf-d7e813{border-radius:var(--tf-radius-lg);background:var(--tf-primary);width:100%;color:var(--tf-text-on-primary);font-weight:600;font-size:var(--tf-font-xl);cursor:pointer;font-family:var(--tf-font-family);box-shadow:0 4px 16px color-mix(in srgb, var(--tf-primary) 25%, transparent);--tf-focus-radius:var(--tf-radius-lg);border:none;margin-top:auto;padding:14px 0;transition:opacity .15s,background .15s,border-color .15s}.tf-d7e813:hover{opacity:.95}.tf-d7e813:active{opacity:.9}`,`.tf-c63ac0{color:var(--tf-text-on-primary);font-weight:700;font-family:var(--tf-font-family);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tf-59aca7{object-fit:cover;border-radius:50%;width:100%;height:100%}.tf-dbfbb3{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tf-f89395{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.tf-cdfe94{justify-content:center;align-items:center;gap:6px;margin:0 20px;padding:0 0 14px;text-decoration:none;display:flex}.tf-7c0c36{font-size:var(--tf-font-sm);color:var(--tf-text-tertiary)}.tf-26d5ea{font-size:var(--tf-font-base);line-height:1}.tf-8b1e15{font-size:var(--tf-font-sm);letter-spacing:.02em;color:var(--tf-text-secondary);font-weight:600}.tf-3852e5{color:#216bff}.tf-b35860{color:var(--tf-primary)}`,`@keyframes tf-80a677{to{transform:rotate(360deg)}}@keyframes tf-d97ff2{0%,to{opacity:1}50%{opacity:.4}}@keyframes tf-c3558b{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tf-89a83e{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes tf-ca9155{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes tf-d2dbc4{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes tf-83b1f2{0%{opacity:.5;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes tf-54b7e7{0%,to{border-color:var(--tf-primary)}50%{border-color:var(--tf-primary-light)}}@keyframes tf-194f18{to{transform:rotate(360deg)}}@keyframes tf-cdef4a{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes tf-fd8795{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-4px)rotate(8deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:host{color:var(--tf-text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tf-font-family:"DM Sans", sans-serif;--tf-font-family-mono:"JetBrains Mono", monospace;--tf-font-size:16px;--tf-line-height:1.5;font-family:var(--tf-font-family);font-size:var(--tf-font-size);line-height:var(--tf-line-height);--tf-font-2xs:10px;--tf-font-xs:11px;--tf-font-sm:12px;--tf-font-base:13px;--tf-font-md:14px;--tf-font-lg:15px;--tf-font-xl:16px;--tf-font-2xl:17px;--tf-font-heading:20px;--tf-font-amount:28px;--tf-font-amount-lg:24px;--tf-font-amount-sm:22px;display:block}button:focus-visible{outline:var(--tf-focus-width,var(--tf-focus-ring-width)) solid var(--tf-focus-color,var(--tf-focus-ring-color));outline-offset:var(--tf-focus-offset,var(--tf-focus-ring-offset));border-radius:var(--tf-focus-radius,var(--tf-radius-sm));box-shadow:none}a:focus-visible{outline:var(--tf-focus-width,var(--tf-focus-ring-width)) solid var(--tf-focus-color,var(--tf-focus-ring-color));outline-offset:var(--tf-focus-offset,var(--tf-focus-ring-offset));border-radius:var(--tf-focus-radius,var(--tf-radius-sm));box-shadow:none}summary:focus-visible{outline:var(--tf-focus-width,var(--tf-focus-ring-width)) solid var(--tf-focus-color,var(--tf-focus-ring-color));outline-offset:var(--tf-focus-offset,var(--tf-focus-ring-offset));border-radius:var(--tf-focus-radius,var(--tf-radius-sm));box-shadow:none}[role=button]:focus-visible{outline:var(--tf-focus-width,var(--tf-focus-ring-width)) solid var(--tf-focus-color,var(--tf-focus-ring-color));outline-offset:var(--tf-focus-offset,var(--tf-focus-ring-offset));border-radius:var(--tf-focus-radius,var(--tf-radius-sm));box-shadow:none}input:focus-visible{box-shadow:none;outline:none}select:focus-visible{box-shadow:none;outline:none}textarea:focus-visible{box-shadow:none;outline:none}button,a,input,select,textarea,summary,[role=button]{-webkit-tap-highlight-color:transparent}@supports selector(:focus-visible){button:focus,a:focus,input:focus,select:focus,textarea:focus,summary:focus,[role=button]:focus{box-shadow:none;outline:none}}`,`@keyframes tf-90e981{0%,to{opacity:1}50%{opacity:.4}}.tf-1ac2ef{border-radius:var(--tf-radius-xs);background:var(--tf-skeleton);animation:1.5s ease-in-out infinite tf-90e981}.tf-68a980{border-radius:var(--tf-radius-xl);z-index:10;background:#0009;align-items:flex-end;animation:.2s both tf-ed0355;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}@keyframes tf-9cad3e{0%{opacity:1}to{opacity:0}}.tf-0c7f16{pointer-events:none;animation:.2s both tf-9cad3e}.tf-e7b9c7{width:100%;min-height:500px;max-width:var(--tf-widget-max-width,400px);min-width:min(var(--tf-widget-min-width,300px), 100%);border-radius:var(--tf-radius-xl);background:var(--tf-bg);border:1px solid var(--tf-border);box-shadow:var(--tf-shadow-lg);font-family:var(--tf-font-family);color:var(--tf-text);flex-direction:column;transition:background .25s,border-color .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.tf-b4f391{background:0 0}.tf-118b57{box-shadow:none;border:none}.tf-118b57 .tf-07225e{display:none}.tf-07225e{background:linear-gradient(90deg, transparent, var(--tf-primary), transparent);opacity:.6;height:2px}.tf-d01dff{padding:12px 20px 0;animation:.3s .1s both tf-ed0355}.tf-5bb68c{padding:12px 20px 0}.tf-37ddcc{margin-top:auto;padding-top:22px}.tf-d256dd{height:32px}.tf-04e1e2{background:var(--tf-bg-secondary);border-radius:var(--tf-radius-lg);border:1px solid var(--tf-border-light);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:120px;margin:12px 20px 0;padding:14px;animation:.25s both tf-b61e63;display:flex}.tf-d01908{color:var(--tf-text-tertiary);opacity:.4}.tf-1cc72b{font-size:var(--tf-font-base);color:var(--tf-text-secondary)}.tf-480f1a{text-align:center;padding:0 20px 16px}.tf-480f1a a{font-size:var(--tf-font-base);color:var(--tf-primary);font-family:var(--tf-font-family-mono);text-decoration:none}.tf-bc7950{text-align:center;margin-top:8px;margin-bottom:10px}.tf-bc7950 a{font-size:var(--tf-font-sm);color:var(--tf-primary);font-family:var(--tf-font-family-mono);text-decoration:none}.tf-d9b7b4{background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:var(--tf-radius-xs);cursor:pointer;font-size:var(--tf-font-sm);font-family:var(--tf-font-family-mono);color:var(--tf-text-secondary);--tf-focus-radius:var(--tf-radius-xs);align-items:center;gap:4px;padding:2px 8px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.tf-d9b7b4:hover{background:var(--tf-control-hover-bg);border-color:var(--tf-control-hover-border)}.tf-d9b7b4 svg{opacity:.4;transition:opacity .15s}.tf-d9b7b4:hover svg{opacity:.7}.tf-d9b7b4:active{background:var(--tf-control-active-bg);border-color:var(--tf-control-active-border)}.tf-9398ea{border-style:dashed;border-color:var(--tf-primary)}.tf-9398ea .tf-2d9323{color:var(--tf-primary);font-style:italic;font-family:var(--tf-font-family)}.tf-4567e1{cursor:default;opacity:.8}.tf-4567e1:hover{background:var(--tf-surface)}.tf-58881e{color:var(--tf-text-tertiary);font-style:italic}.tf-c7b4d2{justify-content:center;align-items:center;display:flex}.tf-771a48{flex-direction:column;display:flex}.tf-e2b7ba{align-items:center;display:flex}.tf-6f7fab{justify-content:space-between;align-items:center;display:flex}.tf-b15cde{animation:.2s both tf-ed0355}.tf-52678c{flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.tf-25f74d{background:linear-gradient(180deg, color-mix(in srgb, var(--tf-primary) 12%, transparent) 0%, color-mix(in srgb, var(--tf-primary) 3%, transparent) 100%);width:40px;height:40px;color:var(--tf-primary);border-radius:50%;justify-content:center;align-items:center;display:flex}.tf-b385cd{color:var(--tf-text-secondary);font-size:13px;font-weight:600}.tf-dc46f6{color:var(--tf-text-tertiary);font-size:11px}.tf-55c652{opacity:.6}.tf-2ad189{font-family:var(--tf-font-family-mono);color:var(--tf-text);font-weight:600}.tf-192a37{background:var(--tf-border-light);flex-shrink:0;width:100%;height:1px;margin-top:10px}.tf-44389f{vertical-align:middle;border-radius:4px;margin-right:6px}.tf-58158c{background:color-mix(in srgb, var(--tf-surface) 60%, var(--tf-bg));border-radius:var(--tf-radius-sm);gap:2px;padding:3px;display:flex}.tf-6f8fbb{border-radius:var(--tf-radius-sm);color:color-mix(in srgb, var(--tf-text-tertiary) 65%, transparent);font-size:var(--tf-font-sm);cursor:pointer;font-weight:500;font-family:var(--tf-font-family);background:0 0;border:none;padding:5px 14px;transition:background .15s,color .15s,box-shadow .15s}.tf-6f8fbb:hover{color:var(--tf-text-secondary)}.tf-2a2ad5{background:var(--tf-surface);color:var(--tf-text);font-weight:600;box-shadow:0 1px 3px #00000026}`].join(`
2
+ `);export{D as n,O as t};
package/dist/widget.d.ts CHANGED
@@ -1,7 +1,23 @@
1
- import { QuoteResponse } from '@tokenflight/api';
1
+ import { FiatJumpRoute } from '@tokenflight/api';
2
+ import { FiatOrderRequest } from '@tokenflight/api';
3
+ import { FiatOrderResponse } from '@tokenflight/api';
4
+ import { FiatOrderStatus } from '@tokenflight/api';
5
+ import { FiatPaymentMethod } from '@tokenflight/api';
6
+ import { FiatProviderInfo } from '@tokenflight/api';
7
+ import { FiatProvidersResponse } from '@tokenflight/api';
8
+ import { FiatQuoteItem } from '@tokenflight/api';
9
+ import { FiatQuoteRequest } from '@tokenflight/api';
10
+ import { FiatQuoteResponse } from '@tokenflight/api';
11
+ import { FiatQuotesResponse } from '@tokenflight/api';
12
+ import { FiatStatusResponse } from '@tokenflight/api';
13
+ import { HyperstreamApi } from '@tokenflight/api';
14
+ import { SwapStrategy } from '@tokenflight/api';
15
+ import { TERMINAL_FIAT_STATUSES } from '@tokenflight/api';
16
+ import { TERMINAL_ORDER_STATUSES } from '@tokenflight/api';
17
+ import { TokenFlightError } from '@tokenflight/api';
2
18
 
3
19
  /** Amount change data */
4
- declare interface AmountChangedData {
20
+ export declare interface AmountChangedData {
5
21
  amount: string;
6
22
  direction: "from" | "to";
7
23
  }
@@ -12,9 +28,24 @@ declare interface AmountChangedData {
12
28
  */
13
29
  declare type BooleanAttribute = boolean | "true" | "false" | "1" | "0" | "yes" | "no" | "";
14
30
 
15
- /** Callback interfaces for widget events */
31
+ /**
32
+ * Callback interfaces for widget events.
33
+ *
34
+ * **Crypto outcome routing** (mutually exclusive — pick the channel that matches
35
+ * the active flow):
36
+ * - `EXACT_INPUT` (`<tokenflight-widget trade-type="EXACT_INPUT">` / default,
37
+ * "spend exactly N of X") → fires `onSwapSuccess` / `onSwapError`
38
+ * - `EXACT_OUTPUT` (`<tokenflight-widget trade-type="EXACT_OUTPUT">`,
39
+ * "receive exactly N of Y") → fires `onDepositSuccess` / `onDepositError`
40
+ *
41
+ * **Fiat (card) outcomes** route through the same `onSwap*` / `onDeposit*`
42
+ * channels for errors (matched to the host flow) and through
43
+ * `onFiatOrderCreated` / `onFiatOrderCompleted` for fiat-specific lifecycle.
44
+ */
16
45
  export declare interface Callbacks {
46
+ /** EXACT_INPUT crypto success. */
17
47
  onSwapSuccess?(data: SwapSuccessData): void;
48
+ /** EXACT_INPUT errors (crypto execution + card flow when in EXACT_INPUT mode). */
18
49
  onSwapError?(data: SwapErrorData): void;
19
50
  onWalletConnected?(data: WalletConnectedData): void;
20
51
  onQuoteReceived?(data: QuoteResponse): void;
@@ -34,14 +65,18 @@ export declare interface Callbacks {
34
65
  status: string;
35
66
  txHash?: string;
36
67
  }): void;
37
- /** Called when a deposit completes successfully */
68
+ /** EXACT_OUTPUT crypto success. */
38
69
  onDepositSuccess?(data: SwapSuccessData): void;
39
- /** Called when a deposit fails */
70
+ /** EXACT_OUTPUT errors (crypto execution + card flow when in EXACT_OUTPUT mode). */
40
71
  onDepositError?(data: SwapErrorData): void;
41
72
  }
42
73
 
74
+ export declare type ChainInfo = HyperstreamApi.Chain;
75
+
43
76
  /** Chain type for multi-chain support */
44
- declare type ChainType = "evm" | "solana";
77
+ export declare type ChainType = "evm" | "solana";
78
+
79
+ export declare type ContractCallDeposit = HyperstreamApi.ContractCallDeposit;
45
80
 
46
81
  /**
47
82
  * Custom color overrides — keys are CSS variable names.
@@ -58,14 +93,89 @@ declare type ChainType = "evm" | "solana";
58
93
  */
59
94
  export declare type CustomColors = Partial<Record<TfCssVar, string>> & Record<string, string>;
60
95
 
96
+ export declare type DepositApproval = HyperstreamApi.Approval;
97
+
98
+ export declare type DepositBuildResponse = HyperstreamApi.Deposit;
99
+
100
+ export declare type EIP1193RequestApproval = HyperstreamApi.EIP1193RequestApproval;
101
+
102
+ /**
103
+ * Swap-side error codes for failures that originate inside the widget
104
+ * itself (config validation, wallet interaction, transaction signing).
105
+ * Merged with the API codes from `@tokenflight/api` into a unified
106
+ * `ErrorCode` constant so callers only see one enum.
107
+ */
108
+ export declare const ErrorCode: {
109
+ readonly INVALID_CONFIG: "TF1001";
110
+ readonly INVALID_TOKEN_IDENTIFIER: "TF1002";
111
+ readonly INVALID_AMOUNT: "TF1003";
112
+ readonly WALLET_CONNECTION_FAILED: "TF2002";
113
+ readonly WALLET_ACTION_FAILED: "TF2003";
114
+ readonly TRANSACTION_FAILED: "TF4001";
115
+ readonly ELEMENT_NOT_FOUND: "TF5001";
116
+ readonly API_REQUEST_FAILED: "TF3001";
117
+ readonly API_TIMEOUT: "TF3002";
118
+ readonly API_INVALID_RESPONSE: "TF3003";
119
+ readonly QUOTE_FAILED: "TF3004";
120
+ readonly QUOTE_EXPIRED: "TF3005";
121
+ readonly DEPOSIT_BUILD_FAILED: "TF3006";
122
+ readonly DEPOSIT_SUBMIT_FAILED: "TF3007";
123
+ readonly ORDER_FAILED: "TF3008";
124
+ readonly API_ABORTED: "TF3009";
125
+ readonly FIAT_QUOTE_FAILED: "TF6001";
126
+ readonly FIAT_ORDER_FAILED: "TF6002";
127
+ readonly FIAT_STATUS_FAILED: "TF6003";
128
+ readonly FIAT_PROVIDER_ERROR: "TF6004";
129
+ readonly FIAT_AMOUNT_OUT_OF_RANGE: "TF6005";
130
+ readonly FIAT_POPUP_BLOCKED: "TF6006";
131
+ readonly FIAT_CHECKOUT_UNAVAILABLE: "TF6007";
132
+ };
133
+
134
+ export declare type ErrorCode = typeof ErrorCode[keyof typeof ErrorCode];
135
+
61
136
  /** EVM wallet action via EIP-1193 */
62
- declare interface EvmWalletAction {
137
+ export declare interface EvmWalletAction {
63
138
  type: "eip1193_request";
64
139
  chainId: number;
65
140
  method: string;
66
141
  params: unknown[];
67
142
  }
68
143
 
144
+ export declare type ExactOutMethod = HyperstreamApi.ExactOutMethod;
145
+
146
+ /** Execution-only phases for the async build→wallet→submit→track→success flow */
147
+ export declare type ExecPhase = "building" | "awaiting-wallet" | "submitting" | "tracking" | "success";
148
+
149
+ /** Execution-only phases for the fiat flow */
150
+ export declare type FiatExecPhase = "creating-order" | "awaiting-payment" | "tracking" | "success";
151
+
152
+ export { FiatJumpRoute }
153
+
154
+ export { FiatOrderRequest }
155
+
156
+ export { FiatOrderResponse }
157
+
158
+ export { FiatOrderStatus }
159
+
160
+ export { FiatPaymentMethod }
161
+
162
+ /** UI phases for the fiat flow (derived from signals + queries) */
163
+ export declare type FiatPhase = "idle" | "quoting" | "quoted" | "creating-order" | "awaiting-payment" | "tracking" | "success" | "error";
164
+
165
+ export { FiatProviderInfo }
166
+
167
+ export { FiatProvidersResponse }
168
+
169
+ export { FiatQuoteItem }
170
+
171
+ export { FiatQuoteRequest }
172
+
173
+ export { FiatQuoteResponse }
174
+
175
+ export { FiatQuotesResponse }
176
+
177
+ export { FiatStatusResponse }
178
+
69
179
  declare interface ImperativeWidgetOptions<TConfig> {
70
180
  container: string | HTMLElement;
71
181
  config: TConfig;
@@ -105,6 +215,52 @@ export declare interface IWalletAdapter {
105
215
  off(event: WalletEventType, handler: (event: WalletEvent) => void): void;
106
216
  }
107
217
 
218
+ export declare type OnChainTx = HyperstreamApi.OnChainTx;
219
+
220
+ export declare type OrderListResponse = HyperstreamApi.GetOrderResponse;
221
+
222
+ export declare type OrderResponse = HyperstreamApi.Order;
223
+
224
+ export declare type OrderStatus = HyperstreamApi.OrderStatus;
225
+
226
+ export declare type OrderTimestamps = HyperstreamApi.OrderTimestamps;
227
+
228
+ export declare type OrderTransactions = HyperstreamApi.OrderTransactions;
229
+
230
+ /** Quote detail card display mode. */
231
+ export declare type QuoteCardVisibility = "hidden" | "visible";
232
+
233
+ export declare type QuoteRequest = HyperstreamApi.QuoteRequest;
234
+
235
+ export declare type QuoteResponse = HyperstreamApi.GetQuotesResponse;
236
+
237
+ export declare type QuoteRoute = HyperstreamApi.Route;
238
+
239
+ /** Receive component mode: crypto-only, fiat-only, or both */
240
+ export declare type ReceiveMode = "crypto" | "fiat" | "all";
241
+
242
+ /**
243
+ * Non-derivable state for the Receive (EXACT_OUTPUT) flow inside
244
+ * `<tokenflight-widget>`.
245
+ *
246
+ * Derivable values (phase, selectedQuote, paymentTokens) are computed in
247
+ * ReceiveComponent from payTokenQuotes + loadingQuotes + these signals.
248
+ */
249
+ export declare interface ReceiveState {
250
+ targetToken: ResolvedToken | null;
251
+ targetAmount: string;
252
+ /** Set before execution starts for TransactionComplete display */
253
+ fromToken: ResolvedToken | null;
254
+ /** Recipient address for cross-chain swaps */
255
+ recipient: string | null;
256
+ walletAddress: string | null;
257
+ /** Current execution phase, or null when idle/quoting/quoted */
258
+ execPhase: ExecPhase | null;
259
+ order: OrderResponse | null;
260
+ error: string | null;
261
+ errorCode: string | null;
262
+ }
263
+
108
264
  export declare interface RegisterElementsOptions {
109
265
  walletAdapter?: IWalletAdapter;
110
266
  callbacks?: Callbacks;
@@ -145,23 +301,42 @@ export declare interface RegisterElementsOptions {
145
301
 
146
302
  export declare function registerWidgetElement(options?: RegisterElementsOptions): void;
147
303
 
304
+ /** Resolved token with full metadata for local display state */
305
+ export declare interface ResolvedToken {
306
+ chainId: number;
307
+ address: string;
308
+ symbol?: string;
309
+ name?: string;
310
+ decimals?: number;
311
+ logoURI?: string;
312
+ priceUsd?: number;
313
+ }
314
+
315
+ export declare type RouteQuote = HyperstreamApi.Quote;
316
+
317
+ export declare type RouteTag = HyperstreamApi.RouteTag;
318
+
319
+ export declare type SolanaApproval = HyperstreamApi.SolanaApproval;
320
+
148
321
  /** Solana sign and send transaction action */
149
- declare interface SolanaSignAndSendAction {
322
+ export declare interface SolanaSignAndSendAction {
150
323
  type: "solana_signAndSendTransaction";
151
324
  transaction: string;
152
325
  }
153
326
 
154
327
  /** Solana sign transaction action */
155
- declare interface SolanaSignTransactionAction {
328
+ export declare interface SolanaSignTransactionAction {
156
329
  type: "solana_signTransaction";
157
330
  transaction: string;
158
331
  }
159
332
 
333
+ export declare type SubmitDepositResponse = HyperstreamApi.SubmitDepositResponse;
334
+
160
335
  /** Supported locale identifiers. Accepts any string for forward-compat; known values get bundled translations. */
161
336
  export declare type SupportedLocale = "en-US" | "zh-CN" | "zh-TW" | "ja-JP" | "ko-KR" | (string & {});
162
337
 
163
338
  /** Data emitted on swap error */
164
- declare interface SwapErrorData {
339
+ export declare interface SwapErrorData {
165
340
  code: string;
166
341
  message: string;
167
342
  details?: unknown;
@@ -170,8 +345,33 @@ declare interface SwapErrorData {
170
345
  /** Payment methods available in swap widget */
171
346
  export declare type SwapPayMethod = "crypto" | "card";
172
347
 
348
+ /** Swap flow phases */
349
+ export declare type SwapPhase = "idle" | "quoting" | "quoted" | "building" | "awaiting-wallet" | "submitting" | "tracking" | "success" | "error";
350
+
351
+ /**
352
+ * Non-derivable state for `<tokenflight-swap>`.
353
+ *
354
+ * Derivable values (routes, quoteId, selectedRouteId, outputAmount, phase)
355
+ * are computed in SwapComponent from TanStack Query + these signals.
356
+ */
357
+ export declare interface SwapState {
358
+ fromToken: ResolvedToken | null;
359
+ toToken: ResolvedToken | null;
360
+ inputAmount: string;
361
+ /** Recipient address for cross-chain swaps */
362
+ recipient: string | null;
363
+ walletAddress: string | null;
364
+ /** Current execution phase, or null when idle/quoting/quoted */
365
+ execPhase: ExecPhase | null;
366
+ order: OrderResponse | null;
367
+ error: string | null;
368
+ errorCode: string | null;
369
+ }
370
+
371
+ export { SwapStrategy }
372
+
173
373
  /** Data emitted on swap success */
174
- declare interface SwapSuccessData {
374
+ export declare interface SwapSuccessData {
175
375
  orderId: string;
176
376
  fromToken: string;
177
377
  toToken: string;
@@ -180,8 +380,9 @@ declare interface SwapSuccessData {
180
380
  txHash: string;
181
381
  }
182
382
 
183
- /** @deprecated Use `SwapPayMethod` instead. */
184
- declare type SwapV2PayMethod = SwapPayMethod;
383
+ export { TERMINAL_FIAT_STATUSES }
384
+
385
+ export { TERMINAL_ORDER_STATUSES }
185
386
 
186
387
  /**
187
388
  * Override specific UI labels without switching locale. Use for white-label
@@ -193,7 +394,7 @@ declare type SwapV2PayMethod = SwapPayMethod;
193
394
  * Keys are semantic (not i18n message IDs) so they remain stable across widget
194
395
  * versions and don't leak internal implementation details.
195
396
  */
196
- declare interface TextOverrides {
397
+ export declare interface TextOverrides {
197
398
  /** Label above the source/from token panel. Default: "You pay" */
198
399
  youPay?: string;
199
400
  /** Label above the destination/to token panel. Default: "You receive" */
@@ -233,16 +434,18 @@ declare interface TextOverrides {
233
434
  }
234
435
 
235
436
  /** All first-party CSS custom properties exposed for theming. */
236
- declare type TfCssVar = "--tf-bg" | "--tf-bg-secondary" | "--tf-bg-elevated" | "--tf-surface" | "--tf-surface-hover" | "--tf-input-bg" | "--tf-glass" | "--tf-text" | "--tf-text-secondary" | "--tf-text-tertiary" | "--tf-text-on-primary" | "--tf-border" | "--tf-border-light" | "--tf-primary" | "--tf-primary-alpha" | "--tf-primary-light" | "--tf-primary-glow" | "--tf-success" | "--tf-success-bg" | "--tf-error" | "--tf-error-bg" | "--tf-error-alpha" | "--tf-warning" | "--tf-warning-bg" | "--tf-shadow" | "--tf-shadow-lg" | "--tf-skeleton" | "--tf-radius-xs" | "--tf-radius-sm" | "--tf-radius" | "--tf-radius-lg" | "--tf-radius-xl" | "--tf-button-radius" | "--tf-widget-max-width" | "--tf-font-family" | "--tf-font-family-mono" | "--tf-font-size" | "--tf-line-height";
437
+ declare type TfCssVar = "--tf-bg" | "--tf-bg-secondary" | "--tf-bg-elevated" | "--tf-surface" | "--tf-surface-hover" | "--tf-input-bg" | "--tf-glass" | "--tf-text" | "--tf-text-secondary" | "--tf-text-tertiary" | "--tf-text-on-primary" | "--tf-border" | "--tf-border-light" | "--tf-primary" | "--tf-primary-alpha" | "--tf-primary-light" | "--tf-primary-glow" | "--tf-success" | "--tf-success-bg" | "--tf-error" | "--tf-error-bg" | "--tf-error-alpha" | "--tf-warning" | "--tf-warning-bg" | "--tf-shadow" | "--tf-shadow-lg" | "--tf-skeleton" | "--tf-radius-xs" | "--tf-radius-sm" | "--tf-radius" | "--tf-radius-lg" | "--tf-radius-xl" | "--tf-button-radius" | "--tf-widget-max-width" | "--tf-font-family" | "--tf-font-family-mono" | "--tf-font-size" | "--tf-line-height" | "--tf-font-sm" | "--tf-font-base" | "--tf-font-md" | "--tf-font-lg" | "--tf-font-xl" | "--tf-font-heading" | "--tf-font-amount" | "--tf-font-amount-lg" | "--tf-font-amount-sm";
237
438
 
238
439
  /** Visual theme mode. */
239
440
  export declare type Theme = "light" | "dark" | "auto";
240
441
 
442
+ export declare type TokenExtensions = HyperstreamApi.TokenExtensions;
443
+
241
444
  /** Shared configuration fields for both widgets */
242
- declare interface TokenFlightConfigBase {
445
+ export declare interface TokenFlightConfigBase {
243
446
  /** HyperStream API endpoint */
244
447
  apiEndpoint?: string;
245
- /** Fiat on-ramp API endpoint (default: https://fiat-preview.hyperstream.dev) */
448
+ /** Fiat on-ramp API endpoint (default: https://fiat.hyperstream.dev) */
246
449
  fiatApiEndpoint?: string;
247
450
  /** Visual theme */
248
451
  theme?: Theme;
@@ -260,6 +463,8 @@ declare interface TokenFlightConfigBase {
260
463
  hidePoweredBy?: boolean;
261
464
  /** Hide the "via {provider}" badge on the order tracking page */
262
465
  hideProvider?: boolean;
466
+ /** Quote card display mode. EXACT_INPUT Swap defaults to "hidden". */
467
+ quoteCard?: QuoteCardVisibility;
263
468
  /** Remove container background (transparent) */
264
469
  noBackground?: boolean;
265
470
  /** Remove container border and shadow */
@@ -276,6 +481,27 @@ declare interface TokenFlightConfigBase {
276
481
  referrerFeeBps?: number;
277
482
  }
278
483
 
484
+ export { TokenFlightError }
485
+
486
+ /** Attributes accepted by `<tokenflight-fiat>`. */
487
+ export declare interface TokenFlightFiatAttributes {
488
+ "api-endpoint"?: string;
489
+ target?: string;
490
+ recipient?: string;
491
+ "fiat-currency"?: string;
492
+ "title-text"?: string;
493
+ "title-image"?: string;
494
+ theme?: Theme;
495
+ locale?: SupportedLocale;
496
+ "csp-nonce"?: string;
497
+ icon?: string;
498
+ "hide-title"?: BooleanAttribute;
499
+ "hide-powered-by"?: BooleanAttribute;
500
+ "hide-provider"?: BooleanAttribute;
501
+ "no-background"?: BooleanAttribute;
502
+ "no-border"?: BooleanAttribute;
503
+ }
504
+
279
505
  export declare const TokenFlightWidget: {
280
506
  new (options: ImperativeWidgetOptions<TokenFlightWidgetConfig>): {
281
507
  #dispose: (() => void) | null;
@@ -303,6 +529,8 @@ export declare interface TokenFlightWidgetAttributes {
303
529
  "trade-type"?: string;
304
530
  amount?: string;
305
531
  recipient?: string;
532
+ "recipient-editable"?: BooleanAttribute;
533
+ "refund-to"?: string;
306
534
  icon?: string;
307
535
  "lock-from-token"?: BooleanAttribute;
308
536
  "lock-to-token"?: BooleanAttribute;
@@ -311,6 +539,7 @@ export declare interface TokenFlightWidgetAttributes {
311
539
  "default-pay-method"?: "crypto" | "card";
312
540
  "from-tokens"?: string;
313
541
  "to-tokens"?: string;
542
+ "rpc-overrides"?: string;
314
543
  "title-text"?: string;
315
544
  "title-image"?: string;
316
545
  theme?: Theme;
@@ -319,6 +548,7 @@ export declare interface TokenFlightWidgetAttributes {
319
548
  "hide-title"?: BooleanAttribute;
320
549
  "hide-powered-by"?: BooleanAttribute;
321
550
  "hide-provider"?: BooleanAttribute;
551
+ "quote-card"?: "hidden" | "visible";
322
552
  "no-background"?: BooleanAttribute;
323
553
  "no-border"?: BooleanAttribute;
324
554
  "referrer"?: string;
@@ -345,9 +575,9 @@ export declare interface TokenFlightWidgetConfig extends TokenFlightConfigBase {
345
575
  /** Address the filler should refund to if the fill fails (sent as `refundTo` on quote requests). */
346
576
  refundTo?: string;
347
577
  /** Payment methods to offer (default: ["crypto"]) */
348
- methods?: SwapV2PayMethod[];
578
+ methods?: SwapPayMethod[];
349
579
  /** Default active pay method tab (default: "crypto") */
350
- defaultPayMethod?: SwapV2PayMethod;
580
+ defaultPayMethod?: SwapPayMethod;
351
581
  /** Fiat currency code for card payments (default: "USD") */
352
582
  fiatCurrency?: string;
353
583
  /** Whitelist of allowed source tokens (CAIP-10) */
@@ -375,19 +605,29 @@ export declare interface TokenFlightWidgetOptions {
375
605
  * - CAIP-10 string: "eip155:1:0x..."
376
606
  * - JSON string: '{"chainId":1,"address":"0x..."}'
377
607
  */
378
- declare type TokenIdentifier = string | TokenTarget;
608
+ export declare type TokenIdentifier = string | TokenTarget;
609
+
610
+ export declare type TokenInfo = HyperstreamApi.Token;
611
+
612
+ export declare type TokenListResponse = HyperstreamApi.GetTokensResponse;
613
+
614
+ export declare type TokenMeta = HyperstreamApi.TokenMeta;
615
+
616
+ export declare type TokenSearchResponse = HyperstreamApi.TokenSearchResponse;
379
617
 
380
618
  /** Token target as chain + address pair */
381
- declare interface TokenTarget {
619
+ export declare interface TokenTarget {
382
620
  chainId: number;
383
621
  address: string;
384
622
  }
385
623
 
624
+ export declare type TradeType = HyperstreamApi.TradeType;
625
+
386
626
  /** Union of all wallet action types */
387
- declare type WalletAction = EvmWalletAction | SolanaSignTransactionAction | SolanaSignAndSendAction;
627
+ export declare type WalletAction = EvmWalletAction | SolanaSignTransactionAction | SolanaSignAndSendAction;
388
628
 
389
629
  /** Result of executing a wallet action */
390
- declare interface WalletActionResult {
630
+ export declare interface WalletActionResult {
391
631
  success: boolean;
392
632
  data?: unknown;
393
633
  error?: string;
@@ -395,21 +635,21 @@ declare interface WalletActionResult {
395
635
  }
396
636
 
397
637
  /** Wallet action types */
398
- declare type WalletActionType = "eip1193_request" | "solana_signTransaction" | "solana_signAndSendTransaction";
638
+ export declare type WalletActionType = "eip1193_request" | "solana_signTransaction" | "solana_signAndSendTransaction";
399
639
 
400
640
  /** Data emitted when wallet is connected */
401
- declare interface WalletConnectedData {
641
+ export declare interface WalletConnectedData {
402
642
  address: string;
403
643
  chainType: string;
404
644
  }
405
645
 
406
646
  /** Wallet event payload */
407
- declare interface WalletEvent {
647
+ export declare interface WalletEvent {
408
648
  type: WalletEventType;
409
649
  data?: unknown;
410
650
  }
411
651
 
412
652
  /** Wallet event types */
413
- declare type WalletEventType = "connect" | "disconnect" | "chainChanged" | "accountsChanged";
653
+ export declare type WalletEventType = "connect" | "disconnect" | "chainChanged" | "accountsChanged";
414
654
 
415
655
  export { }
package/dist/widget.js CHANGED
@@ -1 +1 @@
1
- import{r as e,t}from"./register-widget-CXGm8Ih3.js";export{e as TokenFlightWidget,t as registerWidgetElement};
1
+ import{a as e,c as t,r as n,t as r}from"./errors-Nd9setTj.js";import"./shared.module-C-kWMzqW.js";import{n as i,t as a}from"./register-widget-DOzDJD94.js";import"./widget-BadYytj9.js";export{r as ErrorCode,n as TERMINAL_FIAT_STATUSES,e as TERMINAL_ORDER_STATUSES,t as TokenFlightError,i as TokenFlightWidget,a as registerWidgetElement};