@nexus-cross/dapp-ui 1.4.0-beta.3 → 1.4.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var lm=Object.create;var mi=Object.defineProperty;var cm=Object.getOwnPropertyDescriptor;var dm=Object.getOwnPropertyNames;var pm=Object.getPrototypeOf,um=Object.prototype.hasOwnProperty;var fm=(e,t)=>{for(var r in t)mi(e,r,{get:t[r],enumerable:!0})},Tl=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dm(t))!um.call(e,o)&&o!==r&&mi(e,o,{get:()=>t[o],enumerable:!(n=cm(t,o))||n.enumerable});return e};var V=(e,t,r)=>(r=e!=null?lm(pm(e)):{},Tl(t||!e||!e.__esModule?mi(r,"default",{value:e,enumerable:!0}):r,e)),mm=e=>Tl(mi({},"__esModule",{value:!0}),e);var bw={};fm(bw,{APPLE_ICON:()=>oi,AppLauncher:()=>rs,AppLauncherContent:()=>is,AppLauncherTrigger:()=>ns,BINANCE_ICON:()=>ri,BridgeFlow:()=>Yo,CHAINS_CONFIG_FILE:()=>Co,CONNECTOR_REGISTRY:()=>Lo,CROSSX_ICON:()=>ei,ConnectButton:()=>Vs,ConnectorId:()=>Si,DEFAULT_SKILLS_HREF:()=>qs,DEFAULT_TRUSTED_FACTORIES:()=>qn,DappUiErrorBoundary:()=>Mo,GOOGLE_ICON:()=>ni,METAMASK_ICON:()=>ti,PORTFOLIO_SECTIONS:()=>Qo,RelayApiError:()=>Tr,RelayDeposit:()=>nl,RelayHistory:()=>sl,RelayRecovery:()=>pl,SOCIAL_REGISTRY:()=>ga,SendFlow:()=>Fo,SkillsButton:()=>Ys,StatusTracker:()=>gl,TOKEN_STATS_QUERY_KEY:()=>Ui,USER_BALANCE_QUERY_KEY:()=>Oi,WALLET_REGISTRY:()=>ma,WalletConnectModal:()=>Qs,WalletInfo:()=>Gn,WalletPortfolio:()=>Bs,WalletPortfolioBody:()=>zn,announceAppLauncherUsage:()=>bi,captureDappUiException:()=>Io,createRelayClient:()=>Ft,getChainDisplay:()=>Al,getDappUiSentryScope:()=>To,initDappUiSentry:()=>no,normalizeFailureReason:()=>dr,resolveEnvironment:()=>Xe,setDappUiAnalyticsUser:()=>Tn,trackDappUiEvent:()=>Eo,trackDappUiFunnel:()=>Pe,useChainDisplay:()=>to,useChainsConfig:()=>Ll,useGlobalMenu:()=>Ao,useRelayConfig:()=>ul,useRelayOrders:()=>fn,useRelayRecovery:()=>fl,useTokenBalance:()=>on,useTokenStats:()=>an,useWalletDetect:()=>Xo});module.exports=mm(bw);var gm={};function Il(e){try{return gm.env?.[e]}catch{return}}function Ml(e){if(!(typeof process>"u"))return process.env?.[e]}function Xe(e){if(e)return El(e);let t=Il("VITE_CROSSX_ENVIRONMENT")??Il("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??Ml("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??Ml("CROSSX_ENVIRONMENT");return El(t)}function El(e){switch(e?.toLowerCase()){case"dev":case"development":return"dev";case"stage":case"staging":case"stg":return"stage";default:return"production"}}var _r=V(require("react"),1),hm={dev:"https://stg-contents.crosstoken.io/frontend/common/app-launcher",stage:"https://stg-contents.crosstoken.io/frontend/common/app-launcher",production:"https://contents.crosstoken.io/frontend/common/app-launcher"},bm=3e3;function Dr(e,t){if(e!=null)return typeof e=="object"&&!Array.isArray(e)&&("dev"in e||"stage"in e||"production"in e)?e[t]:e}var Xa=new Map;function Nn(e,t){let r=`${hm[t]}/${e}`,n=Xa.get(r);return n||(n=(async()=>{let o=new AbortController,i=setTimeout(()=>o.abort(),bm);try{let a=await fetch(r,{cache:"no-store",signal:o.signal});return a.ok?await a.json():null}catch{return null}finally{clearTimeout(i)}})().then(o=>(o===null&&Xa.delete(r),o)),Xa.set(r,n)),n}function wm(e){return typeof e=="string"&&e.startsWith("https://")}async function Te(e,t){let r=await Nn("endpoints.json",t),n=Dr(r?.apis?.[e],t);if(!wm(n))throw new Error(`[remote-config] endpoints.json missing or invalid api base: ${e} (${t})`);return n}function gi(e,t){let r=Dr(e?.relay?.forwarderFactories,t),n=[r?.standingForwarderFactory,r?.depositorForwarderFactory].filter(o=>typeof o=="string");return n.length>0?n:void 0}var Co="chains.json";async function Al(e,t){return(await Nn(Co,t))?.chains?.[String(e)]??{}}function to(e,t){let[r,n]=_r.useState({});return _r.useEffect(()=>{if(e==null){n({});return}let o=!0;return Nn(Co,t).then(i=>{o&&n(i?.chains?.[String(e)]??{})}),()=>{o=!1}},[e,t]),r}function Ll(e){let[t,r]=_r.useState({});return _r.useEffect(()=>{let n=!0;return Nn(Co,e).then(o=>{n&&r(o?.chains??{})}),()=>{n=!1}},[e]),t}function Pr(e,t,r){let[n,o]=_r.useState(void 0),i=_r.useRef(r);return i.current=r,_r.useEffect(()=>{let a=!0;return Nn(e,t).then(s=>{if(!a)return;let l=i.current(s);l!==void 0&&o(l)}),()=>{a=!1}},[e,t]),n}var No="1.4.0-beta.3";var hi="__nexusCrossAppLauncherRuntime";function ym(){if(typeof window>"u")return null;let e=window;return e[hi]??(e[hi]={mode:"dapp-ui"}),e[hi]}function xm(e){if(e.scheduled)return;e.scheduled=!0;let t=()=>{if(e.scheduled=!1,e.loggedMode!==e.mode){if(e.mode==="connect-kit-react"){let r=e.connectKitVersion??"unknown";console.info(`[CROSSx App Launcher] connect-kit-react v${r} \uCD08\uAE30\uD654 \uC644\uB8CC (dapp-ui v${No}, \uC0AC\uC6A9 \uBAA8\uB4DC: connect-kit)`)}else console.info(`[CROSSx App Launcher] dapp-ui v${No} \uCD08\uAE30\uD654 \uC644\uB8CC (\uC0AC\uC6A9 \uBAA8\uB4DC: dapp-ui only)`);e.loggedMode=e.mode}};typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t)}function bi(e){let t=ym();t&&(e?.mode==="connect-kit-react"?t.mode="connect-kit-react":t.mode||(t.mode="dapp-ui"),e?.connectKitVersion&&(t.connectKitVersion=e.connectKitVersion),xm(t))}var Gr=require("@sentry/react");var vm="https://5c82aeb32da33b5a0a14b7c5393992ca@o4511668907081728.ingest.de.sentry.io/4511705324126289",km=`dapp-ui@${No}`,ro=null,Dl=.1;function Pl(){return Dl}function Rm(e){switch(e){case"dev":return"dev";case"stage":return"stg";default:return"prod"}}function no(e){if(ro)return ro;if(typeof window>"u")return null;let t=Rm(Xe(e?.environment));typeof e?.analyticsSampleRate=="number"&&(Dl=Math.min(1,Math.max(0,e.analyticsSampleRate)));let r=new Gr.BrowserClient({dsn:e?.dsn??vm,transport:Gr.makeFetchTransport,stackParser:Gr.defaultStackParser,integrations:[(0,Gr.linkedErrorsIntegration)()],environment:t,release:km,enabled:e?.enabled??t==="prod"}),n=new Gr.Scope;return n.setClient(r),n.setTags({package:"dapp-ui",framework:"react",source:"dapp-ui"}),r.init(),ro=n,ro}function To(){return ro}function Io(e,t){let r=ro??no();if(r)return r.captureException(e,t?{captureContext:{extra:t}}:void 0)}var Bl=require("react");var Mo=class extends Bl.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(r,n){Io(r,{componentStack:n.componentStack??void 0,boundary:this.props.name??"dapp-ui"})}render(){return this.state.hasError?this.props.fallback??null:this.props.children}};function Me(...e){return e.filter(Boolean).join(" ")}var Sm=/CROSSx|ONE\s?wallet|ONE\s?pocket/i;function Fl(){return typeof window>"u"?!1:Sm.test(window.navigator.userAgent)}var Ol="__nexus_dapp_ui_uid",Ja=null;function Cm(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Array.from({length:32},()=>Math.floor(Math.random()*16).toString(16)).join("")}function $a(){if(Ja)return Ja;let e=null;try{e=window.localStorage.getItem(Ol)}catch{}if(!e||!e.startsWith("anon_")){e=`anon_${Cm()}`;try{window.localStorage.setItem(Ol,e)}catch{}}return Ja=e,e}async function zl(e){if(typeof crypto>"u"||!crypto.subtle)return null;try{let t=new TextEncoder().encode(e.trim().toLowerCase()),r=await crypto.subtle.digest("SHA-256",t);return`wallet_${Array.from(new Uint8Array(r),o=>o.toString(16).padStart(2,"0")).join("").slice(0,16)}`}catch{return null}}function Nm(){let e=window.navigator.userAgent;return/ipad|tablet|(android(?!.*mobile))/i.test(e)?"tablet":/mobile|iphone|ipod|android/i.test(e)?"mobile":"desktop"}function Wl(){return{host:window.location.hostname,device_type:Nm(),is_cross_inapp:String(Fl())}}var Ul=!1;function es(){if(typeof window>"u")return null;let e=To()??no();return e?(Ul||(Ul=!0,e.setUser({id:$a()})),e):null}function _l(){return Math.random()>=Pl()}var jl=0;function Tn(e){let t=es();if(!t)return;let r=++jl;if(!e){t.setUser({id:$a()});return}zl(e).then(n=>{n&&r===jl&&t.setUser({id:n})})}function Eo(e,t,r){let n=es();!n||_l()||n.captureMessage(`ui: ${e}_${t}`,"info",{captureContext:{tags:{...Wl(),feature:e,action:t,...r}}})}function Pe(e,t,r){let n=es();if(!n||_l())return;let o=r?.status??"success";n.captureMessage(`funnel: ${e}_${t}`,"info",{captureContext:{tags:{...Wl(),flow:e,funnel_step:`${e}_${t}`,funnel_status:o,...o==="failure"?{failure_reason:r?.reason??"unknown"}:{},...r?.tags}}})}function dr(e){let t=e,r=String((t&&typeof t=="object"&&"message"in t?t.message:e)??"").toLowerCase();return t?.code===4001||/reject|denied|declin|cancel/i.test(r)?"user-rejected":/insufficient (funds|gas|balance)|exceeds balance/i.test(r)?"insufficient-gas":/timeout|timed out|deadline/i.test(r)?"timeout":/revert|execution failed/i.test(r)?"contract-reverted":/network|fetch|connection|disconnected|offline/i.test(r)?"network":"unknown"}var Gl=require("react");var Hl=require("react/jsx-runtime");function ke({feature:e,children:t}){let r=(0,Gl.useCallback)(n=>{let o=n.nativeEvent;if(o.__dappUiTracked)return;let a=n.target?.closest?.("[data-track]");if(!a)return;let s=a.getAttribute("data-track");if(!s)return;o.__dappUiTracked=!0;let l=a.getAttribute("data-track-id");Eo(e,s,l?{item_id:l}:void 0)},[e]);return(0,Hl.jsx)("div",{style:{display:"contents"},onClick:r,children:t})}var io=V(require("react"),1),Ql=V(require("@radix-ui/react-popover"),1),Vl=require("vaul");var wi=require("react"),ts=(0,wi.createContext)(null);function yi(){let e=(0,wi.useContext)(ts);if(!e)throw new Error("AppLauncher compound components must be used within <AppLauncher>");return e}var xi=require("react");function oo(e){let[t,r]=(0,xi.useState)(!1);return(0,xi.useEffect)(()=>{let n=window.matchMedia(e);r(n.matches);let o=i=>r(i.matches);return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t}function fe(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}fe(`[data-theme=dark]{--al-bg: var(--ds-surface-default, #1e232e);--al-bg-hover: var(--ds-surface-medium, #252b39);--al-text: var(--ds-content-highest, #ffffff);--al-text-secondary: var(--ds-content-medium, #ffffffa6);--al-border: var(--ds-border-default, #ffffff12);--al-shadow: var(--ds-shadow-modal, 0px 4px 30px -1px rgba(0, 0, 0, .7));--al-primary: #f3742e;--al-primary-hover: #ff8a4a;--al-primary-soft: #3a261f;--al-new-ribbon-bg: #ed0a72;--al-badge-bg: var(--ds-accent-primary-low, #123235);--al-badge-text: var(--ds-accent-primary-default, #00ceb2);--al-drawer-overlay: var(--ds-overlay-dim, #000000b3)}[data-theme=light]{--al-bg: var(--ds-surface-default, #ffffff);--al-bg-hover: var(--ds-surface-medium, #f5f7fa);--al-text: var(--ds-content-highest, #000000);--al-text-secondary: var(--ds-content-medium, #000000a6);--al-border: var(--ds-border-default, #00000012);--al-shadow: var(--ds-shadow-modal, 0px 4px 30px -1px rgba(0, 0, 0, .15));--al-primary: #f3742e;--al-primary-hover: #ff8a4a;--al-primary-soft: #fff1eb;--al-new-ribbon-bg: #ed0a72;--al-badge-bg: var(--ds-accent-primary-low, #e7f9f8);--al-badge-text: var(--ds-accent-primary-default, #00b4b7);--al-drawer-overlay: var(--ds-overlay-dim, #00000080)}
1
+ "use strict";var lm=Object.create;var mi=Object.defineProperty;var cm=Object.getOwnPropertyDescriptor;var dm=Object.getOwnPropertyNames;var pm=Object.getPrototypeOf,um=Object.prototype.hasOwnProperty;var fm=(e,t)=>{for(var r in t)mi(e,r,{get:t[r],enumerable:!0})},Tl=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dm(t))!um.call(e,o)&&o!==r&&mi(e,o,{get:()=>t[o],enumerable:!(n=cm(t,o))||n.enumerable});return e};var V=(e,t,r)=>(r=e!=null?lm(pm(e)):{},Tl(t||!e||!e.__esModule?mi(r,"default",{value:e,enumerable:!0}):r,e)),mm=e=>Tl(mi({},"__esModule",{value:!0}),e);var bw={};fm(bw,{APPLE_ICON:()=>oi,AppLauncher:()=>rs,AppLauncherContent:()=>is,AppLauncherTrigger:()=>ns,BINANCE_ICON:()=>ri,BridgeFlow:()=>Yo,CHAINS_CONFIG_FILE:()=>Co,CONNECTOR_REGISTRY:()=>Lo,CROSSX_ICON:()=>ei,ConnectButton:()=>Vs,ConnectorId:()=>Si,DEFAULT_SKILLS_HREF:()=>qs,DEFAULT_TRUSTED_FACTORIES:()=>qn,DappUiErrorBoundary:()=>Mo,GOOGLE_ICON:()=>ni,METAMASK_ICON:()=>ti,PORTFOLIO_SECTIONS:()=>Qo,RelayApiError:()=>Tr,RelayDeposit:()=>nl,RelayHistory:()=>sl,RelayRecovery:()=>pl,SOCIAL_REGISTRY:()=>ga,SendFlow:()=>Fo,SkillsButton:()=>Ys,StatusTracker:()=>gl,TOKEN_STATS_QUERY_KEY:()=>Ui,USER_BALANCE_QUERY_KEY:()=>Oi,WALLET_REGISTRY:()=>ma,WalletConnectModal:()=>Qs,WalletInfo:()=>Gn,WalletPortfolio:()=>Bs,WalletPortfolioBody:()=>zn,announceAppLauncherUsage:()=>bi,captureDappUiException:()=>Io,createRelayClient:()=>Ft,getChainDisplay:()=>Al,getDappUiSentryScope:()=>To,initDappUiSentry:()=>no,normalizeFailureReason:()=>dr,resolveEnvironment:()=>Xe,setDappUiAnalyticsUser:()=>Tn,trackDappUiEvent:()=>Eo,trackDappUiFunnel:()=>Pe,useChainDisplay:()=>to,useChainsConfig:()=>Ll,useGlobalMenu:()=>Ao,useRelayConfig:()=>ul,useRelayOrders:()=>fn,useRelayRecovery:()=>fl,useTokenBalance:()=>on,useTokenStats:()=>an,useWalletDetect:()=>Xo});module.exports=mm(bw);var gm={};function Il(e){try{return gm.env?.[e]}catch{return}}function Ml(e){if(!(typeof process>"u"))return process.env?.[e]}function Xe(e){if(e)return El(e);let t=Il("VITE_CROSSX_ENVIRONMENT")??Il("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??Ml("NEXT_PUBLIC_CROSSX_ENVIRONMENT")??Ml("CROSSX_ENVIRONMENT");return El(t)}function El(e){switch(e?.toLowerCase()){case"dev":case"development":return"dev";case"stage":case"staging":case"stg":return"stage";default:return"production"}}var _r=V(require("react"),1),hm={dev:"https://stg-contents.crosstoken.io/frontend/common/app-launcher",stage:"https://stg-contents.crosstoken.io/frontend/common/app-launcher",production:"https://contents.crosstoken.io/frontend/common/app-launcher"},bm=3e3;function Dr(e,t){if(e!=null)return typeof e=="object"&&!Array.isArray(e)&&("dev"in e||"stage"in e||"production"in e)?e[t]:e}var Xa=new Map;function Nn(e,t){let r=`${hm[t]}/${e}`,n=Xa.get(r);return n||(n=(async()=>{let o=new AbortController,i=setTimeout(()=>o.abort(),bm);try{let a=await fetch(r,{cache:"no-store",signal:o.signal});return a.ok?await a.json():null}catch{return null}finally{clearTimeout(i)}})().then(o=>(o===null&&Xa.delete(r),o)),Xa.set(r,n)),n}function wm(e){return typeof e=="string"&&e.startsWith("https://")}async function Te(e,t){let r=await Nn("endpoints.json",t),n=Dr(r?.apis?.[e],t);if(!wm(n))throw new Error(`[remote-config] endpoints.json missing or invalid api base: ${e} (${t})`);return n}function gi(e,t){let r=Dr(e?.relay?.forwarderFactories,t),n=[r?.standingForwarderFactory,r?.depositorForwarderFactory].filter(o=>typeof o=="string");return n.length>0?n:void 0}var Co="chains.json";async function Al(e,t){return(await Nn(Co,t))?.chains?.[String(e)]??{}}function to(e,t){let[r,n]=_r.useState({});return _r.useEffect(()=>{if(e==null){n({});return}let o=!0;return Nn(Co,t).then(i=>{o&&n(i?.chains?.[String(e)]??{})}),()=>{o=!1}},[e,t]),r}function Ll(e){let[t,r]=_r.useState({});return _r.useEffect(()=>{let n=!0;return Nn(Co,e).then(o=>{n&&r(o?.chains??{})}),()=>{n=!1}},[e]),t}function Pr(e,t,r){let[n,o]=_r.useState(void 0),i=_r.useRef(r);return i.current=r,_r.useEffect(()=>{let a=!0;return Nn(e,t).then(s=>{if(!a)return;let l=i.current(s);l!==void 0&&o(l)}),()=>{a=!1}},[e,t]),n}var No="1.4.0-beta.4";var hi="__nexusCrossAppLauncherRuntime";function ym(){if(typeof window>"u")return null;let e=window;return e[hi]??(e[hi]={mode:"dapp-ui"}),e[hi]}function xm(e){if(e.scheduled)return;e.scheduled=!0;let t=()=>{if(e.scheduled=!1,e.loggedMode!==e.mode){if(e.mode==="connect-kit-react"){let r=e.connectKitVersion??"unknown";console.info(`[CROSSx App Launcher] connect-kit-react v${r} \uCD08\uAE30\uD654 \uC644\uB8CC (dapp-ui v${No}, \uC0AC\uC6A9 \uBAA8\uB4DC: connect-kit)`)}else console.info(`[CROSSx App Launcher] dapp-ui v${No} \uCD08\uAE30\uD654 \uC644\uB8CC (\uC0AC\uC6A9 \uBAA8\uB4DC: dapp-ui only)`);e.loggedMode=e.mode}};typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t)}function bi(e){let t=ym();t&&(e?.mode==="connect-kit-react"?t.mode="connect-kit-react":t.mode||(t.mode="dapp-ui"),e?.connectKitVersion&&(t.connectKitVersion=e.connectKitVersion),xm(t))}var Gr=require("@sentry/react");var vm="https://5c82aeb32da33b5a0a14b7c5393992ca@o4511668907081728.ingest.de.sentry.io/4511705324126289",km=`dapp-ui@${No}`,ro=null,Dl=.1;function Pl(){return Dl}function Rm(e){switch(e){case"dev":return"dev";case"stage":return"stg";default:return"prod"}}function no(e){if(ro)return ro;if(typeof window>"u")return null;let t=Rm(Xe(e?.environment));typeof e?.analyticsSampleRate=="number"&&(Dl=Math.min(1,Math.max(0,e.analyticsSampleRate)));let r=new Gr.BrowserClient({dsn:e?.dsn??vm,transport:Gr.makeFetchTransport,stackParser:Gr.defaultStackParser,integrations:[(0,Gr.linkedErrorsIntegration)()],environment:t,release:km,enabled:e?.enabled??t==="prod"}),n=new Gr.Scope;return n.setClient(r),n.setTags({package:"dapp-ui",framework:"react",source:"dapp-ui"}),r.init(),ro=n,ro}function To(){return ro}function Io(e,t){let r=ro??no();if(r)return r.captureException(e,t?{captureContext:{extra:t}}:void 0)}var Bl=require("react");var Mo=class extends Bl.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(r,n){Io(r,{componentStack:n.componentStack??void 0,boundary:this.props.name??"dapp-ui"})}render(){return this.state.hasError?this.props.fallback??null:this.props.children}};function Me(...e){return e.filter(Boolean).join(" ")}var Sm=/CROSSx|ONE\s?wallet|ONE\s?pocket/i;function Fl(){return typeof window>"u"?!1:Sm.test(window.navigator.userAgent)}var Ol="__nexus_dapp_ui_uid",Ja=null;function Cm(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Array.from({length:32},()=>Math.floor(Math.random()*16).toString(16)).join("")}function $a(){if(Ja)return Ja;let e=null;try{e=window.localStorage.getItem(Ol)}catch{}if(!e||!e.startsWith("anon_")){e=`anon_${Cm()}`;try{window.localStorage.setItem(Ol,e)}catch{}}return Ja=e,e}async function zl(e){if(typeof crypto>"u"||!crypto.subtle)return null;try{let t=new TextEncoder().encode(e.trim().toLowerCase()),r=await crypto.subtle.digest("SHA-256",t);return`wallet_${Array.from(new Uint8Array(r),o=>o.toString(16).padStart(2,"0")).join("").slice(0,16)}`}catch{return null}}function Nm(){let e=window.navigator.userAgent;return/ipad|tablet|(android(?!.*mobile))/i.test(e)?"tablet":/mobile|iphone|ipod|android/i.test(e)?"mobile":"desktop"}function Wl(){return{host:window.location.hostname,device_type:Nm(),is_cross_inapp:String(Fl())}}var Ul=!1;function es(){if(typeof window>"u")return null;let e=To()??no();return e?(Ul||(Ul=!0,e.setUser({id:$a()})),e):null}function _l(){return Math.random()>=Pl()}var jl=0;function Tn(e){let t=es();if(!t)return;let r=++jl;if(!e){t.setUser({id:$a()});return}zl(e).then(n=>{n&&r===jl&&t.setUser({id:n})})}function Eo(e,t,r){let n=es();!n||_l()||n.captureMessage(`ui: ${e}_${t}`,"info",{captureContext:{tags:{...Wl(),feature:e,action:t,...r}}})}function Pe(e,t,r){let n=es();if(!n||_l())return;let o=r?.status??"success";n.captureMessage(`funnel: ${e}_${t}`,"info",{captureContext:{tags:{...Wl(),flow:e,funnel_step:`${e}_${t}`,funnel_status:o,...o==="failure"?{failure_reason:r?.reason??"unknown"}:{},...r?.tags}}})}function dr(e){let t=e,r=String((t&&typeof t=="object"&&"message"in t?t.message:e)??"").toLowerCase();return t?.code===4001||/reject|denied|declin|cancel/i.test(r)?"user-rejected":/insufficient (funds|gas|balance)|exceeds balance/i.test(r)?"insufficient-gas":/timeout|timed out|deadline/i.test(r)?"timeout":/revert|execution failed/i.test(r)?"contract-reverted":/network|fetch|connection|disconnected|offline/i.test(r)?"network":"unknown"}var Gl=require("react");var Hl=require("react/jsx-runtime");function ke({feature:e,children:t}){let r=(0,Gl.useCallback)(n=>{let o=n.nativeEvent;if(o.__dappUiTracked)return;let a=n.target?.closest?.("[data-track]");if(!a)return;let s=a.getAttribute("data-track");if(!s)return;o.__dappUiTracked=!0;let l=a.getAttribute("data-track-id");Eo(e,s,l?{item_id:l}:void 0)},[e]);return(0,Hl.jsx)("div",{style:{display:"contents"},onClick:r,children:t})}var io=V(require("react"),1),Ql=V(require("@radix-ui/react-popover"),1),Vl=require("vaul");var wi=require("react"),ts=(0,wi.createContext)(null);function yi(){let e=(0,wi.useContext)(ts);if(!e)throw new Error("AppLauncher compound components must be used within <AppLauncher>");return e}var xi=require("react");function oo(e){let[t,r]=(0,xi.useState)(!1);return(0,xi.useEffect)(()=>{let n=window.matchMedia(e);r(n.matches);let o=i=>r(i.matches);return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),t}function fe(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}fe(`[data-theme=dark]{--al-bg: var(--ds-surface-default, #1e232e);--al-bg-hover: var(--ds-surface-medium, #252b39);--al-text: var(--ds-content-highest, #ffffff);--al-text-secondary: var(--ds-content-medium, #ffffffa6);--al-border: var(--ds-border-default, #ffffff12);--al-shadow: var(--ds-shadow-modal, 0px 4px 30px -1px rgba(0, 0, 0, .7));--al-primary: #f3742e;--al-primary-hover: #ff8a4a;--al-primary-soft: #3a261f;--al-new-ribbon-bg: #ed0a72;--al-badge-bg: var(--ds-accent-primary-low, #123235);--al-badge-text: var(--ds-accent-primary-default, #00ceb2);--al-drawer-overlay: var(--ds-overlay-dim, #000000b3)}[data-theme=light]{--al-bg: var(--ds-surface-default, #ffffff);--al-bg-hover: var(--ds-surface-medium, #f5f7fa);--al-text: var(--ds-content-highest, #000000);--al-text-secondary: var(--ds-content-medium, #000000a6);--al-border: var(--ds-border-default, #00000012);--al-shadow: var(--ds-shadow-modal, 0px 4px 30px -1px rgba(0, 0, 0, .15));--al-primary: #f3742e;--al-primary-hover: #ff8a4a;--al-primary-soft: #fff1eb;--al-new-ribbon-bg: #ed0a72;--al-badge-bg: var(--ds-accent-primary-low, #e7f9f8);--al-badge-text: var(--ds-accent-primary-default, #00b4b7);--al-drawer-overlay: var(--ds-overlay-dim, #00000080)}
2
2
  `);fe(`.al-trigger-btn{--at-bg: transparent;--at-bg-hover: #eaedf1;--at-color: var(--ds-content-high, rgba(0, 0, 0, .85));--at-border: none;--at-border-radius: 8px;--at-size: 36px;--at-padding: 0;--at-press-scale: .95;--at-transition: background-color .15s ease;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--at-size);height:var(--at-size);padding:var(--at-padding);border:var(--at-border);background:var(--at-bg);border-radius:var(--at-border-radius);color:var(--at-color);cursor:pointer;transition:var(--at-transition)}.al-trigger-btn:hover,.al-trigger-btn[data-state=open]{background:var(--at-bg-hover)}.al-trigger-btn:active:not(:disabled){background:var(--at-bg-hover);transform:scale(var(--at-press-scale))}.al-trigger-btn[data-theme=dark]{--at-color: var(--ds-content-high, rgba(255, 255, 255, .85));--at-bg-hover: #252b39}.al-trigger-btn[data-theme=light]{--at-color: var(--ds-content-high, rgba(0, 0, 0, .85))}
3
3
  `);fe(`@keyframes al-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
4
4
  `);fe(`.al-popover-content{-webkit-font-smoothing:antialiased;z-index:100001;border-radius:24px;background:var(--al-bg);border:1px solid var(--al-popover-border, var(--al-border));box-shadow:var(--al-popover-shadow, var(--al-shadow));animation:al-fade-in .15s ease-out;max-height:80vh;overflow-x:hidden;overflow-y:auto;padding:20px 4px;box-sizing:border-box}.al-popover-content .al-menu{display:flex;flex-direction:column;width:424px;max-width:calc(100vw - 32px);padding:0 12px;box-sizing:border-box}.al-popover-content .al-grid{display:grid;grid-template-columns:repeat(4,100px);row-gap:12px;column-gap:0;justify-content:center;align-items:start}.al-popover-content .al-grid-item{position:relative;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;padding:12px 0;width:100px;min-width:0;border-radius:10px}.al-popover-content .al-grid-item-left{flex-direction:column;align-items:center;gap:8px;width:100%;overflow:visible}.al-popover-content .al-grid-item-icon{width:50px;height:50px;border-radius:10.125px;overflow:visible}.al-popover-content .al-grid-item-icon img{object-fit:cover}.al-popover-content .al-grid-item-label{font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:1.1;letter-spacing:0;text-align:center;color:var(--al-text);max-width:100%;white-space:normal;overflow-wrap:anywhere}.al-popover-content .al-grid-item-text{flex-direction:column;align-items:center;justify-content:center;gap:2px;max-width:100%;min-height:26px}.al-popover-content .al-grid-item-status-text{font-size:10px;line-height:1.1}.al-popover-content .al-badge-list{display:none}.al-drawer-overlay{position:fixed;inset:0;z-index:100000;background:var(--al-drawer-overlay)}.al-drawer-content{-webkit-font-smoothing:antialiased;position:fixed;top:0;right:0;bottom:0;z-index:100001;width:100vw;background:var(--al-bg);overflow-x:hidden;overflow-y:hidden;display:flex;flex-direction:column;box-sizing:border-box}.al-drawer-body{flex:1;overflow-y:auto;overscroll-behavior-y:contain;min-height:0}.al-drawer-content .al-menu{display:flex;flex-direction:column;min-height:0}.al-drawer-content .al-grid{display:flex;flex-direction:column;grid-template-columns:none;max-width:100%;overflow:hidden;flex-shrink:0;gap:0;row-gap:0;column-gap:0;padding:8px 16px}.al-drawer-content .al-grid-item{width:100%;max-width:100%;gap:8px;padding:16px 12px;border-radius:8px;overflow:hidden;background:transparent}.al-drawer-content .al-grid-item:hover,.al-drawer-content .al-grid-item[data-active=true]{background:var(--al-bg-hover)}.al-drawer-content .al-grid-item-left{gap:8px;flex:1 1 auto;min-width:0;overflow:visible}.al-drawer-content .al-grid-item-icon{width:32px;height:32px;border-radius:6.75px;overflow:visible}.al-drawer-content .al-grid-item-icon img{width:100%;height:100%;object-fit:cover;border-radius:6.75px}.al-drawer-content .al-grid-item-label{font-size:16px;line-height:1.35;letter-spacing:0;font-weight:400}.al-drawer-content .al-grid-item[data-active=true] .al-grid-item-label{font-weight:500}.al-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px;flex-shrink:0}.al-drawer-title{font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:0;color:var(--al-text);margin:0}.al-drawer-close{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--al-text-secondary);transition:opacity .15s ease}.al-drawer-close:hover{opacity:.7}.al-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:8px}.al-grid-item{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:16px 12px;border:none;background:var(--al-bg);border-radius:8px;cursor:pointer;transition:none;color:var(--al-text);text-align:left;font-family:Inter,sans-serif;flex-shrink:0}.al-grid-item:hover,.al-grid-item[data-active=true]{background:var(--al-bg-hover)!important}.al-grid-item-left{display:flex;align-items:center;gap:8px;min-width:0;overflow:visible}.al-grid-item-text{display:flex;flex-direction:column;align-items:flex-start;gap:1px;max-width:100%;min-width:0}.al-grid-item-icon{display:flex;align-items:center;justify-content:center;position:relative;width:24px;height:24px;overflow:visible;border-radius:5px;flex-shrink:0}.al-grid-item-icon img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.al-grid-item-label{font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:150%;letter-spacing:0;color:var(--al-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.al-grid-item-status-text{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:1.15;letter-spacing:0;color:var(--al-text);white-space:nowrap}.al-status-ribbon{position:absolute;top:-6px;right:-6px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;box-sizing:border-box;border-radius:999px;color:#fff;font-family:Pretendard,Inter,sans-serif;font-size:12px;font-weight:800;line-height:1;pointer-events:none;box-shadow:0 1px 3px #0000002e}.al-status-ribbon-new{background:var(--al-new-ribbon-bg)}.al-badge{display:flex;padding:1px 4px 2px;justify-content:center;align-items:center;gap:2px;border-radius:3px;background:var(--al-badge-bg);color:var(--al-badge-text);font-family:Pretendard,Inter,sans-serif;font-size:10px;font-weight:600;line-height:150%;letter-spacing:0;white-space:nowrap;flex-shrink:0}