@liberfi.io/ui-tokens 0.1.169 → 0.1.171
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var react=require('react'),reactWindow=require('react-window'),ui=require('@liberfi.io/ui'),i18n=require('@liberfi.io/i18n'),jsxRuntime=require('react/jsx-runtime'),hooks=require('@liberfi.io/hooks'),utils$1=require('@liberfi.io/utils'),types=require('@liberfi.io/types'),react$1=require('@liberfi.io/react'),uiScaffold=require('@liberfi.io/ui-scaffold'),jotai=require('jotai'),utils=require('jotai/utils'),reactWindowInfiniteLoader=require('react-window-infinite-loader');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-tokens"]="0.1.
|
|
1
|
+
'use strict';var react=require('react'),reactWindow=require('react-window'),ui=require('@liberfi.io/ui'),i18n=require('@liberfi.io/i18n'),jsxRuntime=require('react/jsx-runtime'),hooks=require('@liberfi.io/hooks'),utils$1=require('@liberfi.io/utils'),types=require('@liberfi.io/types'),react$1=require('@liberfi.io/react'),uiScaffold=require('@liberfi.io/ui-scaffold'),jotai=require('jotai'),utils=require('jotai/utils'),reactWindowInfiniteLoader=require('react-window-infinite-loader');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-tokens"]="0.1.171");var Fr="0.1.171";function Tt({title:e,isPaused:t,extra:o,className:s}){let{t:r}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-12 px-3 flex-none bg-content1 flex items-center justify-between gap-4 border-b border-border",s),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("h2",{className:"font-semibold",children:e}),t&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1 text-primary",children:[jsxRuntime.jsx(ui.PauseIcon,{className:"w-4 h-4"}),jsxRuntime.jsx("span",{className:"text-xs hidden sm:inline",children:r("tokens.pulse.paused")})]})]}),o&&jsxRuntime.jsx("div",{className:"flex items-center gap-3",children:o})]})}function vt({isLast:e=false,className:t}){return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full px-3 py-3 overflow-hidden flex gap-3 items-center",!e&&"border-b border-border",t),children:[jsxRuntime.jsx(ui.Skeleton,{className:"flex-none w-15 h-15 rounded-sm"}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-32 h-5 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-48 h-4 rounded-md"})]})]})}var Wr={[types.SolanaTokenProtocol.BAGS]:{text:"text-bags",bg:"bg-bags",bg5:"bg-bags/5",bg20:"bg-bags/20",border:"border-bags"},[types.SolanaTokenProtocol.BELIEVE]:{text:"text-believe",bg:"bg-believe",bg5:"bg-believe/5",bg20:"bg-believe/20",border:"border-believe"},[types.SolanaTokenProtocol.BONK]:{text:"text-bonk",bg:"bg-bonk",bg5:"bg-bonk/5",bg20:"bg-bonk/20",border:"border-bonk"},[types.SolanaTokenProtocol.BOOP]:{text:"text-boop",bg:"bg-boop",bg5:"bg-boop/5",bg20:"bg-boop/20",border:"border-boop"},[types.SolanaTokenProtocol.HEAVEN]:{text:"text-heaven",bg:"bg-heaven",bg5:"bg-heaven/5",bg20:"bg-heaven/20",border:"border-heaven"},[types.SolanaTokenProtocol.JUPSTUDIO]:{text:"text-jupstudio",bg:"bg-jupstudio",bg5:"bg-jupstudio/5",bg20:"bg-jupstudio/20",border:"border-jupstudio"},[types.SolanaTokenProtocol.LAUNCHLAB]:{text:"text-launchlab",bg:"bg-launchlab",bg5:"bg-launchlab/5",bg20:"bg-launchlab/20",border:"border-launchlab"},[types.SolanaTokenProtocol.METEORA]:{text:"text-meteora",bg:"bg-meteora",bg5:"bg-meteora/5",bg20:"bg-meteora/20",border:"border-meteora"},[types.SolanaTokenProtocol.MOONIT]:{text:"text-moonit",bg:"bg-moonit",bg5:"bg-moonit/5",bg20:"bg-moonit/20",border:"border-moonit"},[types.SolanaTokenProtocol.MOONSHOT]:{text:"text-moonshot",bg:"bg-moonshot",bg5:"bg-moonshot/5",bg20:"bg-moonshot/20",border:"border-moonshot"},[types.SolanaTokenProtocol.ORCA]:{text:"text-orca",bg:"bg-orca",bg5:"bg-orca/5",bg20:"bg-orca/20",border:"border-orca"},[types.SolanaTokenProtocol.PUMP]:{text:"text-pump",bg:"bg-pump",bg5:"bg-pump/5",bg20:"bg-pump/20",border:"border-pump"},[types.SolanaTokenProtocol.RAYDIUM]:{text:"text-raydium",bg:"bg-raydium",bg5:"bg-raydium/5",bg20:"bg-raydium/20",border:"border-raydium"},[types.SolanaTokenProtocol.SUGAR]:{text:"text-sugar",bg:"bg-sugar",bg5:"bg-sugar/5",bg20:"bg-sugar/20",border:"border-sugar"},[types.SolanaTokenProtocol.VIRTUAL_CURVE]:{text:"text-virtual-curve",bg:"bg-virtual-curve",bg5:"bg-virtual-curve/5",bg20:"bg-virtual-curve/20",border:"border-virtual-curve"},[types.SolanaTokenProtocol.PUMP_AMM]:{text:"text-pump-amm",bg:"bg-pump-amm",bg5:"bg-pump-amm/5",bg20:"bg-pump-amm/20",border:"border-pump-amm"}},_r={text:"text-neutral",bg:"bg-neutral",bg5:"bg-neutral/5",bg20:"bg-neutral/20",border:"border-neutral"};function $(e){return Wr[e]??_r}function J({token:e,enablePreview:t=true,enableSearch:o=true,showProgress:s=true,showProtocolFamily:r=true,radius:n="sm",className:a,classNames:i}){let d=react.useMemo(()=>e.launchedFrom?.protocolFamily?utils$1.parseTokenProtocolFamily(e.chain,e.launchedFrom.protocolFamily):void 0,[e.chain,e.launchedFrom?.protocolFamily]),m=react.useMemo(()=>r&&d,[r,d]),l=react.useMemo(()=>s&&e.migrateProgress&&new utils$1.SafeBigNumber(e.migrateProgress).lt(100),[s,e.migrateProgress]),p=react.useMemo(()=>o&&e.image,[o,e.image]),c=react.useMemo(()=>(e.symbol??e.name??e.address??"L").slice(0,1).toUpperCase(),[e.symbol,e.name,e.address]),[h,f]=react.useState(false),k=react.useCallback(()=>{f(true);},[]),g=react.useCallback(()=>{f(false);},[]),u=react.useCallback(b=>{if(b.stopPropagation(),!e.image)return;let y=utils$1.searchImageUrl(e.image);window.open(y,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.cn("relative justify-center items-center",a??"w-15 h-15"),children:[!l&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0",`rounded-${n}`,d?$(d).bg:"bg-bullish",i?.background)}),l&&jsxRuntime.jsx("div",{className:ui.cn("absolute -inset-0.5",`rounded-${n}`),children:jsxRuntime.jsx(Qr,{className:ui.cn(d?$(d).text:"text-bullish",i?.progress),progress:e.migrateProgress??"0"})}),jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 p-px flex items-center justify-center",`rounded-${n}`,d?$(d).bg20:"bg-bullish/20",i?.avatarWrapper),children:jsxRuntime.jsx($r,{token:e,radius:n,enableSearch:o,enablePreview:t,classNames:i,children:jsxRuntime.jsxs("div",{className:ui.cn("relative w-full h-full bg-content1 flex items-center justify-center p-0.5",`rounded-${n}`,h&&p&&"cursor-pointer"),onMouseEnter:k,onMouseLeave:g,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:c,className:ui.cn("w-full h-full bg-content1 text-neutral text-2xl",`rounded-${n}`,i?.avatar)}),h&&p&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${n}`,i?.searchWrapper),onClick:u,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.cn("w-6 h-6",i?.searchIcon)})})]})})}),m&&jsxRuntime.jsx("div",{className:"contents",children:jsxRuntime.jsx(ui.StyledTooltip,{content:e.launchedFrom?.protocolFamily??d,placement:"bottom",children:jsxRuntime.jsx("div",{className:ui.cn("absolute -bottom-1 -right-1 rounded-full p-px w-4 h-4",d&&$(d).bg,i?.protocolFamilyIconWrapper),children:jsxRuntime.jsx(ui.Image,{removeWrapper:true,src:`/images/protocols/${d}.svg`,className:ui.cn("w-full h-full rounded-full bg-content1",i?.protocolFamilyIcon)})})})})]})}function $r({token:e,radius:t,enableSearch:o,enablePreview:s,classNames:r,children:n}){return react.useMemo(()=>s&&e.image,[s,e.image])?jsxRuntime.jsx(ui.StyledTooltip,{content:jsxRuntime.jsx(zr,{token:e,radius:t,enableSearch:o,classNames:r}),closeDelay:100,placement:"bottom-start",classNames:{content:"p-1"},children:n}):n}function zr({token:e,enableSearch:t,radius:o,classNames:s}){let r=react.useMemo(()=>t&&e.image,[t,e.image]),n=react.useMemo(()=>(e.symbol??e.name??e.address??"L").slice(0,1).toUpperCase(),[e.symbol,e.name,e.address]),[a,i]=react.useState(false),d=react.useCallback(()=>{i(true);},[]),m=react.useCallback(()=>{i(false);},[]),l=react.useCallback(p=>{if(p.stopPropagation(),!e.image)return;let c=utils$1.searchImageUrl(e.image);window.open(c,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.cn("relative flex items-center justify-center w-60 h-60",`rounded-${o}`,a&&r&&"cursor-pointer",s?.previewWrapper),onMouseEnter:d,onMouseLeave:m,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:n,className:ui.cn("w-full h-full bg-content1 text-neutral text-3xl",`rounded-${o}`,s?.previewAvatar)}),a&&r&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${o}`,s?.previewSearchWrapper),onClick:l,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.cn("w-10 h-10",s?.previewSearchIcon)})})]})}function Qr({progress:e,className:t}){let o=react.useMemo(()=>296-Number(e)*296/100,[e]);return jsxRuntime.jsxs("svg",{viewBox:"0 0 78 78",className:"w-full h-full",children:[jsxRuntime.jsx("path",{className:`${t} opacity-40`,stroke:"currentColor",fill:"transparent",strokeWidth:"1",d:`
|
|
2
2
|
M 76 76
|
|
3
3
|
L 6 76
|
|
4
4
|
Q 2 76 2 72
|
|
@@ -18,5 +18,7 @@
|
|
|
18
18
|
Q 76 2 76 6
|
|
19
19
|
L 76 72
|
|
20
20
|
Q 76 76 76 76
|
|
21
|
-
`})]})}function Mt({token:e,renderAction:t,isLast:o=false,onSelectToken:s,className:n}){let{t:r}=i18n.useTranslation(),i=ui.useCopyToClipboard(),a=hooks.useTickAge(e.createdAt),u=react.useCallback(()=>{s?.(e);},[s,e]),l=react.useCallback(T=>{T.stopPropagation(),i(e.address,()=>ui.toast.success(r("tokens.copied.address")));},[i,e.address,r]),d=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.top10HoldingsRatio).gte(.1),[e.marketData?.top10HoldingsRatio]),m=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.devHoldingsRatio).gte(.1),[e.marketData?.devHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.insiderHoldingsRatio).gte(.1),[e.marketData?.insiderHoldingsRatio]),g=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),f=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[k,h]=react.useMemo(()=>{let T=Number(e.stats?.["1h"]?.buys??0),y=Number(e.stats?.["1h"]?.sells??0),P=T+y;if(P===0)return [12,12];let xe=Math.round(T/P*24);return [xe,24-xe]},[e.stats]),p=react.useMemo(()=>{let T=new utils$1.SafeBigNumber(e.marketData?.marketCapInUsd);return T.lt(1e3)?"text-foreground":T.lt(1e6)?"text-secondary":"text-primary"},[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx("div",{className:ui.cn("w-full h-full px-3 pt-3 pb-1 hover:bg-content2/40 cursor-pointer",!o&&"border-b border-border",n),onClick:s?u:void 0,children:jsxRuntime.jsxs("div",{className:"relative flex justify-between gap-3",children:[jsxRuntime.jsxs("div",{className:"flex-none flex flex-col items-center gap-1",children:[jsxRuntime.jsx(Z,{token:e,enableSearch:true,enablePreview:!!e.image,showProgress:true,className:"w-15 h-15"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.address,children:jsxRuntime.jsx("div",{className:"text-xs text-neutral hover:text-primary/50 max-w-18 truncate cursor-pointer",onClick:l,children:utils$1.truncateAddress(e.address,4,4)})})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col justify-between gap-3 min-w-0",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-1.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1 pr-24",children:[jsxRuntime.jsx("span",{className:"flex-none text-base font-semibold whitespace-nowrap overflow-hidden text-ellipsis max-w-20",children:e.symbol}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.name,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1 min-w-0 text-neutral hover:text-primary/50 cursor-pointer",onClick:l,children:[jsxRuntime.jsx("span",{className:"text-base whitespace-nowrap overflow-hidden text-ellipsis",children:e.name}),jsxRuntime.jsx(ui.CopyIcon,{className:"flex-none w-3.5 h-3.5"})]})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntime.jsx("span",{className:"text-sm text-primary font-medium",children:utils$1.formatAge(a)}),e.socialMedias?.twitter&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.twitter,className:"text-neutral hover:text-primary",target:"_blank",onClick:T=>T.stopPropagation(),children:jsxRuntime.jsx(ui.TwitterIcon,{className:"w-4 h-4"})}),e.socialMedias?.telegram&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.telegram,className:"text-neutral hover:text-primary",target:"_blank",onClick:T=>T.stopPropagation(),children:jsxRuntime.jsx(ui.TelegramIcon,{className:"w-4 h-4"})}),e.socialMedias?.website&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.website,className:"text-neutral hover:text-primary",target:"_blank",onClick:T=>T.stopPropagation(),children:jsxRuntime.jsx(ui.WebsiteIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.Link,{href:utils$1.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",onClick:T=>T.stopPropagation(),children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.holders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.PeopleIcon,{width:14,height:14}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.holders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.proHolders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.KlineCandlesIcon,{width:16,height:16}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.proHolders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.kolHolders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.StarIcon,{width:14,height:14}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.kolHolders)})]})})]})]}),jsxRuntime.jsxs("div",{className:"relative flex items-center gap-1.5 flex-wrap",children:[jsxRuntime.jsx(le,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:r("tokens.tokenInfo.top10HoldingsRatio"),warning:d}),jsxRuntime.jsx(le,{icon:jsxRuntime.jsx(ui.CookIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.devHoldingsRatio),tooltip:r("tokens.tokenInfo.devHoldingsRatio"),warning:m}),jsxRuntime.jsx(le,{icon:jsxRuntime.jsx(ui.RatIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.insiderHoldingsRatio),tooltip:r("tokens.tokenInfo.insiderHoldingsRatio"),warning:c}),jsxRuntime.jsx(le,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:g}),jsxRuntime.jsx(le,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.bundleHoldingsRatio),tooltip:r("tokens.tokenInfo.bundleHoldingsRatio"),warning:f}),t?.(e)]})]}),jsxRuntime.jsxs("div",{className:"absolute top-0 right-0 flex flex-col gap-2 items-end",children:[jsxRuntime.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:r("tokens.listHeader.marketCap")}),jsxRuntime.jsx("span",{className:ui.cn("text-base font-medium leading-none",p),children:utils$1.formatAmountUSDCompact(e.marketData?.marketCapInUsd)})]}),jsxRuntime.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:r("tokens.pulse.vol")}),jsxRuntime.jsx("span",{className:"text-base font-medium leading-none text-foreground",children:utils$1.formatAmountUSDCompact(e.stats?.["1h"]?.volumesInUsd)})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:r("tokens.pulse.txs")}),jsxRuntime.jsx("span",{className:"text-xs leading-none text-foreground",children:utils$1.formatAmount(e.stats?.["1h"]?.trades)})]}),jsxRuntime.jsxs("div",{className:"flex rounded-full overflow-hidden",children:[jsxRuntime.jsx("div",{className:"h-1 bg-bullish",style:{width:`${k}px`}}),jsxRuntime.jsx("div",{className:"h-1 bg-bearish",style:{width:`${h}px`}})]})]})]})]})})}function le({icon:e,value:t,tooltip:o,warning:s}){return jsxRuntime.jsx(ui.StyledTooltip,{content:o,children:jsxRuntime.jsxs("div",{className:ui.cn("px-2 py-0.5 flex items-center gap-1 bg-content2 rounded-full text-xs",s?"text-danger-500":"text-primary"),children:[e,jsxRuntime.jsx("span",{children:t})]})})}var br=124,Ft=10;function xr({index:e,style:t,data:o,skeletonCount:s,renderItemAction:n,onSelectToken:r}){return o?jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(Mt,{token:o[e],isLast:e===o.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(wt,{isLast:e===s-1})})}function oe({title:e,tokens:t,isLoading:o,itemHeight:s=br,renderHeaderExtra:n,renderItemAction:r,onSelectToken:i,onPauseChange:a,className:u,hideHeader:l}){let d=o||!t?void 0:t,m=d?d.length:Ft,c=react.useMemo(()=>({data:d,skeletonCount:Ft,renderItemAction:r,onSelectToken:i}),[d,r,i]),[g,f]=react.useState(false),k=react.useCallback(()=>{f(true),a?.(true);},[a]),h=react.useCallback(()=>{f(false),a?.(false);},[a]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full bg-content1 overflow-hidden flex flex-col border border-border rounded-lg",u),onMouseEnter:k,onMouseLeave:h,children:[!l&&jsxRuntime.jsx(yt,{title:e,isPaused:g,extra:n}),jsxRuntime.jsx("div",{className:"flex-1 w-full overflow-hidden",children:jsxRuntime.jsx(reactWindow.List,{className:"h-full w-full",rowCount:m,rowHeight:s,rowComponent:xr,rowProps:c,overscanCount:5})})]})}function Xe(e,t){let o={...e};for(let s of Object.keys(t))t[s]!==void 0&&(o[s]=t[s]);return o}var yr=["1m","5m","15m","30m","1h","4h","24h"];function Sr(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of yr)t[s]&&(o[s]=e[s]?Xe(e[s],t[s]):t[s]);return o}function wr(e,t){return t?e?Xe(e,t):t:e}function Pe(e,t){return t?e?Xe(e,t):t:e}function w(e,t){let{chain:o,address:s,stats:n,marketData:r,socialMedias:i,security:a,launchedFrom:u,migratedTo:l,...d}=t,m={...e};for(let c of Object.keys(d))d[c]!==void 0&&(m[c]=d[c]);return m.stats=Sr(e.stats,n),m.marketData=wr(e.marketData,r),m.socialMedias=Pe(e.socialMedias,i),m.security=Pe(e.security,a),m.launchedFrom=Pe(e.launchedFrom,u),m.migratedTo=Pe(e.migratedTo,l),m}var Lr=80;function Ir(e){return {chain:e.chain,address:e.address,name:e.name??"",symbol:e.symbol??"",decimals:e.decimals??0,image:e.image,description:e.description,socialMedias:e.socialMedias,launchedFrom:e.launchedFrom,migratedTo:e.migratedTo,createdAt:e.createdAt}}function Wt(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Lr)}function Bt({chain:e,isPaused:t=false,refetchInterval:o=1e4}){let s=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[i,a]=react.useState(true),[u,l]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),l([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(l(f=>{let k=n.current,h=f.length===0&&d.length>0,p=[...f];for(let T of d){let y=p.findIndex(P=>P.address===T.address);y>=0?p[y]=w(p[y],T):(!k||h)&&p.push(T);}return k?p:Wt(p)}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=n.current,p=[...k],T=false;for(let y of f){let P=p.findIndex(xe=>xe.address===y.address);P>=0?(T=true,p[P]=w(p[P],y)):h||(T=true,p.push(Ir(y)));}return T?h?p:Wt(p):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let g=react.useMemo(()=>m||i,[m,i]);return {tokens:u,isLoading:g}}function rc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:i}){let[a,u]=react.useState(false),{tokens:l,isLoading:d}=Bt({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(oe,{title:t,tokens:l,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:i})}function zt({chain:e,isPaused:t=false,refetchInterval:o=3e4}){let s=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[i,a]=react.useState(true),[u,l]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),l([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(l(f=>{let k=n.current,h=[...f];for(let p of d){let T=h.findIndex(y=>y.address===p.address);T>=0?h[T]=w(h[T],p):k||h.unshift(p);}return h}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=[...k],p=false;for(let T of f){let y=h.findIndex(P=>P.address===T.address);y>=0&&(p=true,h[y]=w(h[y],T));}return p?h:k});},[]);react$1.useMigratedTokensSubscription({chain:e},c);let g=react.useMemo(()=>m||i,[m,i]);return {tokens:u,isLoading:g}}function gc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:i}){let[a,u]=react.useState(false),{tokens:l,isLoading:d}=zt({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(oe,{title:t,tokens:l,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:i})}function Vr(e){return e.sort((t,o)=>{let s=Number(t.migrateProgress??0);return Number(o.migrateProgress??0)-s})}function Jt({chain:e,isPaused:t=false,refetchInterval:o=15e3}){let s=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[i,a]=react.useState(true),[u,l]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),l([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(l(f=>{let k=n.current,h=f.length===0&&d.length>0,p=[...f];for(let T of d){let y=p.findIndex(P=>P.address===T.address);y>=0?p[y]=w(p[y],T):(!k||h)&&p.push(T);}return k?p:Vr(p)}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=[...k],p=false;for(let T of f){let y=h.findIndex(P=>P.address===T.address);y>=0&&(p=true,h[y]=w(h[y],T));}return p?h:k});},[]);react$1.useFinalStretchTokensSubscription({chain:e},c);let g=react.useMemo(()=>m||i,[m,i]);return {tokens:u,isLoading:g}}function Nc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:i}){let[a,u]=react.useState(false),{tokens:l,isLoading:d}=Jt({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(oe,{title:t,tokens:l,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:i})}var Qr=10,Gr=utils.atomWithStorage("liberfi:search_histories",[],void 0,{getOnInit:true});function Ne(){let[e,t]=jotai.useAtom(Gr),o=react.useCallback(n=>{let r=n.trim();r&&t(i=>{let a=i.filter(u=>u!==r);return [r,...a].slice(0,Qr)});},[t]),s=react.useCallback(()=>{t([]);},[t]);return {histories:e,addHistory:o,clearHistories:s}}function eo({histories:e,onSelect:t,onClear:o,className:s}){let{t:n}=i18n.useTranslation();return e.length===0?null:jsxRuntime.jsxs("div",{className:ui.cn("px-4 pb-4",s),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:n("tokens.search.history")}),jsxRuntime.jsx(ui.Button,{isIconOnly:true,size:"sm",className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:o,children:jsxRuntime.jsx(ui.TrashIcon,{width:20,height:20})})]}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:e.map(r=>jsxRuntime.jsx(ui.Chip,{size:"sm",variant:"bordered",className:ui.cn("text-neutral","border-border border-1","cursor-pointer","hover:opacity-hover"),onClick:()=>t?.(r),children:r},r))})]})}function to({onSelect:e,className:t}){let{histories:o,clearHistories:s}=Ne();return jsxRuntime.jsx(eo,{className:ui.cn(t),histories:o,onSelect:e,onClear:s})}function oo({value:e,onValueChange:t,onClear:o,onEscape:s,className:n}){let{t:r}=i18n.useTranslation();return jsxRuntime.jsx("div",{className:n,children:jsxRuntime.jsx(ui.StyledInput,{autoFocus:true,variant:"bordered",radius:"full",value:e,onValueChange:t,placeholder:r("tokens.search.placeholder"),classNames:{inputWrapper:["!bg-[rgba(39,39,42,0.6)]","!border-[rgba(63,63,70,0.5)]","data-[hover=true]:!bg-[rgba(39,39,42,1)]","group-data-[focus=true]:!bg-[rgba(39,39,42,1)]","group-data-[focus=true]:!border-[rgba(63,63,70,0.8)]"].join(" ")},startContent:jsxRuntime.jsx(ui.SearchIcon,{width:20,height:20,className:"text-neutral"}),endContent:e?jsxRuntime.jsx(ui.Button,{isIconOnly:true,className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:o,children:jsxRuntime.jsx(ui.XCloseIcon,{width:20,height:20})}):jsxRuntime.jsx(ui.Kbd,{className:"min-w-8 justify-center text-xs text-neutral bg-transparent border border-[rgba(63,63,70,0.5)] rounded-full cursor-pointer select-none",onMouseDown:i=>{i.preventDefault(),s?.();},children:"Esc"})})})}function Ce({token:e,className:t}){let{t:o}=i18n.useTranslation(),s=hooks.useTickAge(e.createdAt),n=react.useMemo(()=>e.marketData?.priceInUsd,[e]),r=react.useMemo(()=>e.marketData?.marketCapInUsd,[e]),i=react.useMemo(()=>e.marketData?.tvlInUsd,[e]),a=react.useMemo(()=>e.stats?.["24h"]?.priceChange,[e]),u=react.useMemo(()=>a?new utils$1.SafeBigNumber(a).abs().toString():void 0,[a]),l=react.useMemo(()=>a!=null&&new utils$1.SafeBigNumber(a).gte(0),[a]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full px-3 flex items-center justify-between gap-2","hover:cursor-pointer hover:bg-content2 rounded-lg",t),children:[jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2.5",children:[jsxRuntime.jsx(Z,{token:e,className:"w-10 h-10 flex-none",showProtocolFamily:true,classNames:{searchIcon:"w-5 h-5"}}),jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-0.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"font-medium text-sm truncate",children:e.symbol}),jsxRuntime.jsx("span",{className:"text-xs text-primary font-medium",children:utils$1.formatAge(s)})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1 text-xs text-neutral",children:[jsxRuntime.jsxs("span",{children:[o("tokens.listHeader.mcShort")," ",utils$1.formatAmountUSD(r)]}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsxs("span",{children:[o("tokens.listHeader.liqShort")," ",utils$1.formatAmountUSD(i)]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex-none w-20 flex flex-col items-end",children:[jsxRuntime.jsx("span",{className:"text-xs",children:utils$1.formatPriceUSD(n)}),jsxRuntime.jsxs("span",{className:ui.cn("inline-flex gap-0.5 items-center text-xs",l?"text-bullish":"text-bearish"),children:[l?jsxRuntime.jsx(ui.TriangleUpIcon,{width:8,height:8}):jsxRuntime.jsx(ui.TriangleDownIcon,{width:8,height:8}),jsxRuntime.jsx("span",{children:utils$1.formatPercent(u)})]})]})]})}function Le({className:e}){let{t}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui.cn("h-9 px-3 flex items-center justify-between","text-xs font-medium text-neutral","sticky top-0 z-10",e),children:[jsxRuntime.jsx("div",{className:"flex-1",children:jsxRuntime.jsxs("span",{children:[t("tokens.listHeader.token")," / ",t("tokens.listHeader.age")," /"," ",t("tokens.listHeader.marketCap")," /"," ",t("tokens.listHeader.liquidity")]})}),jsxRuntime.jsx("div",{className:"flex-none w-20 text-right",children:jsxRuntime.jsxs("span",{children:[t("tokens.listHeader.price")," / ",t("tokens.listHeader.24hChange")]})})]})}function bn(){return jsxRuntime.jsxs("div",{className:"w-full h-14 px-3 flex items-center justify-between gap-2",children:[jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[jsxRuntime.jsx(ui.Skeleton,{className:"flex-none w-8 h-8 rounded-full"}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-24 h-4 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-36 h-3 rounded-md"})]})]}),jsxRuntime.jsxs("div",{className:"flex-none w-20 flex flex-col items-end gap-1.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-14 h-4 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-10 h-3 rounded-md"})]})]})}function Re({rows:e=6,className:t}){return jsxRuntime.jsx("div",{className:ui.cn("w-full",t),children:Array.from({length:e}).map((o,s)=>jsxRuntime.jsx(bn,{},s))})}function lo({keyword:e,chains:t,limit:o=50}){let s=react.useMemo(()=>({keyword:e,chains:t,limit:o}),[e,t,o]),{data:n,isLoading:r,isFetchingNextPage:i,hasNextPage:a,fetchNextPage:u}=react$1.useSearchTokensInfiniteQuery(s,{enabled:!!e});return {tokens:react.useMemo(()=>n?.pages.flatMap(d=>d.data)??[],[n]),isLoading:r,isFetchingNextPage:i,hasNextPage:a??false,fetchNextPage:u}}var In=56;function mo({onSelectToken:e,className:t,...o}){let{tokens:s,isLoading:n,isFetchingNextPage:r,hasNextPage:i,fetchNextPage:a}=lo(o),u=react.useRef(null),{height:l}=hooks.useResizeObserver({ref:u}),d=react.useCallback(f=>f<s.length,[s]),m=react.useCallback(async()=>{i&&!r&&await a();},[i,r,a]),c=react.useMemo(()=>i?s.length+1:s.length,[s,i]),g=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:m,rowCount:c,threshold:5});return n?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Le,{}),jsxRuntime.jsx(Re,{})]}):s.length===0?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Le,{}),jsxRuntime.jsx(An,{})]}):jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full flex flex-col",t),children:[jsxRuntime.jsx(Le,{className:"flex-none"}),jsxRuntime.jsx("div",{className:"flex-auto min-h-0",ref:u,children:jsxRuntime.jsx(reactWindow.List,{style:{height:l},onRowsRendered:g,rowComponent:Rn,rowCount:c,rowHeight:In,rowProps:{tokens:s,onSelectToken:e},overscanCount:5})})]})}function Rn({index:e,style:t,tokens:o,onSelectToken:s}){let n=o[e];return n?jsxRuntime.jsx("div",{style:t,onClick:()=>s?.(n),children:jsxRuntime.jsx(Ce,{token:n})}):jsxRuntime.jsx("div",{style:t,className:"flex items-center justify-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})}function An(){let{t:e}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center py-16",children:[jsxRuntime.jsx(ui.EmptyIcon,{width:28,height:28,className:"text-neutral"}),jsxRuntime.jsx("p",{className:"mt-2 text-sm text-neutral",children:e("tokens.search.noResults")})]})}function Me({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),r=react.useRef(n),[i,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),l([]),r.current=n);},[n]);let[u,l]=react.useState([]),{data:d,isPending:m}=react$1.useTrendingTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(l(f=>{let k=[];for(let h of d){let p=f.find(T=>T.address===h.address);k.push(p?w(p,h):h);}return k}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=[...k],p=false;for(let T of f){let y=h.findIndex(P=>P.address===T.address);y>=0&&(p=true,h[y]=w(h[y],T));}return p?h:k});},[]);react$1.useTrendingTokensSubscription({chain:e},c);let g=react.useMemo(()=>!!(m||i),[m,i]);return {tokens:u,isLoading:g}}var On=types.Chain.ETHEREUM,Wn="24h",Bn=56;function go({chains:e,onSelectToken:t,className:o}){let s=e?.length===1?e[0]:e?.[0]??On,{tokens:n,isLoading:r}=Me({chain:s,resolution:Wn});return jsxRuntime.jsx("div",{className:ui.cn("w-full flex flex-col overflow-hidden",o),children:r?jsxRuntime.jsx(Re,{}):jsxRuntime.jsx("div",{className:"overflow-y-auto",children:n.map(i=>jsxRuntime.jsx("div",{style:{height:Bn},onClick:()=>t?.(i),children:jsxRuntime.jsx(Ce,{token:i,className:"h-full"})},i.address))})})}function To({onKeywordChange:e}){let[t,o]=react.useState(""),[s,n]=react.useState(""),{addHistory:r}=Ne(),i=hooks.useCallbackRef(e),a=hooks.useCallbackRef(r),u=react.useMemo(()=>utils$1.debounce(c=>{n(c),i(c),c&&a(c);},500),[i,a]),l=react.useCallback(c=>{o(c),u(c);},[u]),d=react.useCallback(c=>{u.cancel(),o(c),n(c),i(c),c&&a(c);},[u,i,a]),m=react.useCallback(()=>d(""),[d]);return {text:t,keyword:s,setText:l,setKeyword:d,clearKeyword:m}}function xo({chains:e,onKeywordChange:t,onSelectToken:o,onEscape:s}){let{text:n,keyword:r,setText:i,setKeyword:a,clearKeyword:u}=To({onKeywordChange:t});return jsxRuntime.jsxs("div",{className:"w-full h-full flex flex-col gap-3",children:[jsxRuntime.jsx(oo,{value:n,onValueChange:i,onClear:u,onPaste:a,onEscape:s}),r?jsxRuntime.jsx(mo,{className:"flex-auto min-h-0",keyword:r,chains:e,onSelectToken:o}):jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col overflow-hidden",children:[jsxRuntime.jsx(to,{onSelect:a}),jsxRuntime.jsx(go,{className:"flex-auto min-h-0",chains:e,onSelectToken:o})]})]})}var tt="search";function cu({id:e=tt}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Zn,{...t})})}function Zn({params:e,isOpen:t,onOpenChange:o,onResult:s}){let{t:n}=i18n.useTranslation(),{isMobile:r}=ui.useScreen(),i=react.useCallback(a=>{s(a);},[s]);return jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:o,size:r?"full":"lg",hideCloseButton:true,backdrop:"blur",radius:"lg",children:jsxRuntime.jsxs(ui.ModalContent,{className:"w-full h-full",style:{borderRadius:r?void 0:14,border:r?void 0:"1px solid rgba(39,39,42,1)",background:"rgba(24,24,27,1)",boxShadow:r?void 0:"0 25px 50px -12px rgba(0,0,0,0.5)",overflow:"hidden"},children:[jsxRuntime.jsxs(ui.ModalHeader,{className:"sm:hidden flex items-center justify-between pt-4 pb-2",children:[jsxRuntime.jsx("span",{className:"text-base font-semibold",children:n("tokens.search.title")}),jsxRuntime.jsx(ui.Button,{isIconOnly:true,onPress:()=>o(false),size:"sm",className:"bg-transparent min-w-6 w-6 h-6",children:jsxRuntime.jsx(ui.XCloseIcon,{width:20,height:20})})]}),jsxRuntime.jsx(ui.ModalBody,{className:"p-4",children:jsxRuntime.jsx(xo,{chains:e?.chains,onSelectToken:i,onEscape:()=>o(false)})})]})})}function bu({chains:e,onSelectToken:t,className:o}){let{t:s}=i18n.useTranslation(),{isDesktop:n,isMobile:r}=ui.useScreen(),{onOpen:i,onClose:a}=uiScaffold.useAsyncModal(tt),u=hooks.useCallbackRef(t),l=hooks.useCallbackRef(async()=>{let m=await i({params:{chains:e}});m&&u(m);}),d=hooks.useCallbackRef(()=>{a();});return react.useEffect(()=>{let m=c=>{let g=document.activeElement,f=!!g&&(g.tagName==="INPUT"||g.tagName==="TEXTAREA"||g.getAttribute("contenteditable")==="true");c.key==="/"&&!f&&(c.preventDefault(),l()),c.key==="Escape"&&(c.preventDefault(),d());};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m);}},[l,d]),jsxRuntime.jsx(ui.Button,{size:"sm",radius:"full",isIconOnly:!n,onPress:l,variant:r?"flat":"bordered",startContent:n?jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"}):void 0,endContent:n?jsxRuntime.jsx(ui.Kbd,{className:"min-w-6 justify-center text-xs bg-transparent border border-border rounded-full",children:"/"}):void 0,className:ui.cn(n&&"pl-3 pr-1.5 text-neutral",o),children:n?s("tokens.search.placeholder"):jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"})})}function Co({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:n}){let{t:r}=i18n.useTranslation(),[i,a]=react.useState(e?.join(", ")??""),[u,l]=react.useState(t?.join(", ")??"");react.useEffect(()=>{a(c=>{let g=Ee(c);return g===void 0&&e===void 0?c:g===void 0?e?.join(", ")??"":e===void 0?"":g.join("")===e.join("")?c:e.join(", ")});},[e]),react.useEffect(()=>{l(c=>{let g=Ee(c);return g===void 0&&t===void 0?c:g===void 0?t?.join(", ")??"":t===void 0?"":g.join("")===t.join("")?c:t.join(", ")});},[t]);let d=react.useCallback(c=>{a(c),o?.(Ee(c));},[o]),m=react.useCallback(c=>{l(c),s?.(Ee(c));},[s]);return jsxRuntime.jsxs("div",{className:ui.cn("grid grid-cols-2 gap-3 px-4",n),children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:r("tokens.filters.keywords.title")}),jsxRuntime.jsx(ui.StyledInput,{variant:"bordered",radius:"lg",size:"sm",placeholder:r("tokens.filters.keywords.placeholder"),value:i,onValueChange:d})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:r("tokens.filters.keywords.exclude.title")}),jsxRuntime.jsx(ui.StyledInput,{variant:"bordered",radius:"lg",size:"sm",placeholder:r("tokens.filters.keywords.placeholder"),value:u,onValueChange:m})]})]})}function Ee(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Ho({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,i]=react.useState(t);react.useEffect(()=>{i(t);},[t]);let a=react.useMemo(()=>e.every(d=>r.includes(d)),[e,r]),u=react.useCallback(()=>{if(a){let d=[];i(d),o?.(d);}else {let d=[...e];i(d),o?.(d);}},[e,o,a]),l=react.useCallback(d=>()=>{if(r.includes(d)){let m=r.filter(c=>c!==d);i(m),o?.(m);}else {let m=[...r,d];i(m),o?.(m);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-3 px-4",s),children:[jsxRuntime.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:n("tokens.filters.protocols.title")}),jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",onPress:u,children:n(a?"tokens.filters.protocols.unselectAll":"tokens.filters.protocols.selectAll")})]}),jsxRuntime.jsx("div",{className:"grid grid-cols-3 gap-3",children:e.map(d=>{let m=q(d);return jsxRuntime.jsx(ui.Button,{variant:"bordered",size:"sm",radius:"full",className:ui.cn("w-fit h-6 px-2.5",m.text,m.bg5,"border",m.border,{"opacity-40 data-[hover=true]:!opacity-30":!r.includes(d)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${d}.svg`,alt:utils$1.formatTokenProtocolName(d)}),onPress:l(d),children:utils$1.formatTokenProtocolName(d)},d)})})]})}function D({title:e,field:t,value:o,onChange:s}){let{t:n}=i18n.useTranslation(),[r,i]=react.useState(o?rt(o).min:NaN),[a,u]=react.useState(o?rt(o).max:NaN);react.useEffect(()=>{if(o===void 0)i(NaN),u(NaN);else {let{min:m,max:c}=rt(o);i(m),u(c);}},[o]);let l=react.useCallback(m=>{i(m),s?.(Uo(t,m,a));},[t,s,a]),d=react.useCallback(m=>{u(m),s?.(Uo(t,r,m));},[t,s,r]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[e&&jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:e}),jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[jsxRuntime.jsx(ui.StyledNumberInput,{value:r,onValueChange:l,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.min"),"aria-label":`${e} min`}),jsxRuntime.jsx(ui.StyledNumberInput,{value:a,onValueChange:d,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function rt(e){if(e.operator==="between"){let[t,o]=e.value;return {min:t,max:o}}return e.operator==="gte"?{min:e.value,max:NaN}:e.operator==="lte"?{min:NaN,max:e.value}:{min:NaN,max:NaN}}function Uo(e,t,o){if(!(isNaN(t)&&isNaN(o)))return isNaN(t)?{field:e,operator:"lte",value:o}:isNaN(o)?{field:e,operator:"gte",value:t}:{field:e,operator:"between",value:[t,o]}}function Wo({values:e,onValuesChange:t,className:o}){let{t:s}=i18n.useTranslation(),[n,r]=react.useState(e);react.useEffect(()=>{r(e);},[e]);let i=react.useCallback(a=>u=>{if(u===void 0){let l=(n??[]).filter(d=>d.field!==a);l=l.length>0?l:void 0,r(l),t?.(l);}else {let l=[...(n??[]).filter(d=>d.field!==a),u];r(l),t?.(l);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",o),children:[jsxRuntime.jsx(D,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:n?.find(a=>a.field==="holders"),onChange:i("holders")}),jsxRuntime.jsx(D,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(a=>a.field==="top10Ratio"),onChange:i("top10Ratio")}),jsxRuntime.jsx(D,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(a=>a.field==="top100Ratio"),onChange:i("top100Ratio")}),jsxRuntime.jsx(D,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(a=>a.field==="creatorsRatio"),onChange:i("creatorsRatio")})]})}function Bo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,i]=react.useState(t);react.useEffect(()=>{i(t);},[t]);let a=react.useCallback(u=>l=>{if(l===void 0){let d=(r??[]).filter(m=>m.field!==u);d=d.length>0?d:void 0,i(d),o?.(d);}else {let d=[...(r??[]).filter(m=>m.field!==u),l];i(d),o?.(d);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",s),children:[jsxRuntime.jsx(D,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(u=>u.field==="marketCap"),onChange:a("marketCap")}),jsxRuntime.jsx(D,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(u=>u.field==="tvl"),onChange:a("tvl")}),jsxRuntime.jsx(D,{field:`volumes${e}`,title:n("tokens.filters.stats.metrics.volumes",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`volumes${e}`),onChange:a(`volumes${e}`)}),jsxRuntime.jsx(D,{field:`trades${e}`,title:n("tokens.filters.stats.metrics.txns",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`trades${e}`),onChange:a(`trades${e}`)})]})}function jo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,i]=react.useState("audits"),[a,u]=react.useState(t);react.useEffect(()=>{u(t);},[t]);let l=react.useCallback(c=>{u(c),o?.(c);},[o]),d=react.useMemo(()=>{let c=["holders","top10Ratio","top100Ratio","creatorsRatio"];return a?.filter(g=>c.includes(g.field))?.length??0},[a]),m=react.useMemo(()=>{let c=["marketCap","tvl",`volumes${e}`,`trades${e}`];return a?.filter(g=>c.includes(g.field)).length??0},[a,e]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-3 px-4",s),children:[jsxRuntime.jsxs(ui.StyledLightTabs,{color:"default",radius:"full",size:"sm",selectedKey:r,onSelectionChange:i,children:[jsxRuntime.jsx(ui.Tab,{title:d===0?n("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:d,shape:"circle",children:n("tokens.filters.stats.audits")})},"audits"),jsxRuntime.jsx(ui.Tab,{title:m===0?n("tokens.filters.stats.metrics"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:m,shape:"circle",children:n("tokens.filters.stats.metrics")})},"metrics")]}),jsxRuntime.jsx(Wo,{values:a,onValuesChange:l,className:ui.cn({hidden:r!=="audits"})}),jsxRuntime.jsx(Bo,{values:a,onValuesChange:l,resolution:e,className:ui.cn({hidden:r!=="metrics"})})]})}function Ke({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:n}){let[r,i]=react.useState(qo(o?.filters,e));react.useEffect(()=>{i(qo(o?.filters,e));},[o?.filters,e]);let[a,u]=react.useState(o?.keywords);react.useEffect(()=>{u(o?.keywords);},[o?.keywords]);let[l,d]=react.useState(o?.excludeKeywords);react.useEffect(()=>{d(o?.excludeKeywords);},[o?.excludeKeywords]);let[m,c]=react.useState(o?.filters);react.useEffect(()=>{c(o?.filters);},[o?.filters]);let g=react.useCallback(p=>{i(p),s?.(Ve(e,p,a,l,m));},[e,a,l,m,s]),f=react.useCallback(p=>{u(p),s?.(Ve(e,r,p,l,m));},[e,r,l,m,s]),k=react.useCallback(p=>{d(p),s?.(Ve(e,r,a,p,m));},[e,r,a,m,s]),h=react.useCallback(p=>{c(p),s?.(Ve(e,r,a,l,p));},[e,r,a,l,s]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",n),children:[e&&e.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Ho,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:g}),jsxRuntime.jsx("div",{style:{height:1,background:"rgba(39,39,42,1)"}})]}),jsxRuntime.jsx(Co,{keywords:a,excludeKeywords:l,onKeywordsChange:f,onExcludeKeywordsChange:k}),jsxRuntime.jsx("div",{style:{height:1,background:"rgba(39,39,42,1)"}}),jsxRuntime.jsx(jo,{resolution:t,values:m,onValuesChange:h})]})}function qo(e,t){let o=e?.find(s=>s.field==="launchedFromProtocolFamily");return o?o.operator==="in"?o.value:(console.warn("invalid token protocols filter",o),[...t||[]]):[...t||[]]}function Ve(e,t,o,s,n){let r=n?[...n.filter(i=>i.field!=="launchedFromProtocolFamily")]:[];return e&&e.length>0&&(e.every(a=>t.includes(a))||r.push({field:"launchedFromProtocolFamily",operator:"in",value:t})),o===void 0&&s===void 0&&r.length===0?void 0:{keywords:o,excludeKeywords:s,filters:r.length>0?r:void 0}}function Xo({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:i,onClose:a,onOpenChange:u}=ui.useDisclosure(),[l,d]=react.useState(o),m=react.useCallback(()=>{d(void 0);},[]),c=react.useCallback(()=>{s?.(l),a();},[l,s,a]);react.useEffect(()=>{d(o);},[r,o]);let g=react.useMemo(()=>Object.values(o||{}).every(f=>f===void 0),[o]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{isIconOnly:true,size:"sm",radius:"full",onPress:i,className:"bg-transparent",children:g?jsxRuntime.jsx(ui.FilterIcon,{width:16,height:16,className:"flex-none"}):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:"",shape:"circle",children:jsxRuntime.jsx(ui.FilterIcon,{width:16,height:16,className:"flex-none"})})}),jsxRuntime.jsx(ui.StyledModal,{isOpen:r,onOpenChange:u,size:"md",scrollBehavior:"inside",children:jsxRuntime.jsxs(ui.ModalContent,{className:"w-full h-full",children:[jsxRuntime.jsx(ui.ModalHeader,{className:"px-4 py-2",children:jsxRuntime.jsx("span",{className:"text-base font-semibold",children:n("tokens.filters.modal.title")})}),jsxRuntime.jsx(ui.ModalBody,{className:"px-0 pt-0 pb-4",children:jsxRuntime.jsx(ui.ScrollShadow,{children:jsxRuntime.jsx(Ke,{protocols:e,resolution:t,filters:l,onFiltersChange:d,className:"pb-4"})})}),jsxRuntime.jsx(ui.ModalFooter,{className:"px-4",children:jsxRuntime.jsxs("div",{className:"w-full flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:m,children:n("common.reset")}),jsxRuntime.jsx(ui.Button,{color:"primary",size:"sm",radius:"full",onPress:c,children:n("common.apply")})]})})]})})]})}var ei={display:"inline-flex",alignItems:"center",gap:8,borderRadius:9999,border:"1px solid rgba(63,63,70,0.5)",background:"rgba(39,39,42,0.6)",padding:"6px 12px",fontSize:14,fontWeight:700,color:"#d4d4d8",cursor:"pointer",transition:"all 0.15s",height:32},ti={position:"absolute",right:0,top:"100%",zIndex:20,marginTop:8,borderRadius:14,border:"1px solid rgba(39,39,42,1)",background:"rgba(24,24,27,1)",boxShadow:"0 25px 50px -12px rgba(0,0,0,0.5)",overflow:"hidden"},oi={height:1,background:"rgba(39,39,42,1)",margin:0};function ts({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),[r,i]=react.useState(false),a=react.useRef(null),[u,l]=react.useState(o),d=react.useCallback(()=>{l(void 0);},[]),m=react.useCallback(()=>{s?.(u),i(false);},[u,s]);react.useEffect(()=>{l(o);},[r,o]),react.useEffect(()=>{let g=f=>{a.current&&!a.current.contains(f.target)&&i(false);};return document.addEventListener("mousedown",g),()=>document.removeEventListener("mousedown",g)},[]),react.useEffect(()=>{if(!r)return;let g=f=>{f.key==="Escape"&&i(false);};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[r]);let c=react.useMemo(()=>Object.values(o||{}).every(g=>g===void 0),[o]);return jsxRuntime.jsxs("div",{ref:a,style:{position:"relative"},children:[jsxRuntime.jsxs("div",{style:{position:"relative",display:"inline-flex"},children:[jsxRuntime.jsxs("button",{type:"button",style:ei,onMouseEnter:g=>{g.currentTarget.style.background="rgba(39,39,42,1)";},onMouseLeave:g=>{g.currentTarget.style.background="rgba(39,39,42,0.6)";},onClick:()=>i(g=>!g),children:[jsxRuntime.jsx(ui.FilterIcon,{width:16,height:16,className:"flex-none"}),jsxRuntime.jsx("span",{className:"hidden sm:block",children:n("tokens.listHeader.filter")}),jsxRuntime.jsx(si,{open:r})]}),!c&&jsxRuntime.jsx("span",{style:{position:"absolute",top:-4,right:-4,minWidth:8,height:8,borderRadius:4,background:"#c7ff2e"}})]}),r&&jsxRuntime.jsxs("div",{style:{...ti,width:420},children:[jsxRuntime.jsx("div",{style:{padding:"16px 0"},children:jsxRuntime.jsx(ui.ScrollShadow,{className:"w-full max-h-120 px-4",children:jsxRuntime.jsx(Ke,{protocols:e,resolution:t,filters:u,onFiltersChange:l})})}),jsxRuntime.jsx("div",{style:oi}),jsxRuntime.jsxs("div",{style:{padding:"12px 16px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[jsxRuntime.jsx(ui.Button,{variant:"light",size:"sm",color:"default",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:d,children:n("common.reset")}),jsxRuntime.jsx(ui.Button,{variant:"solid",size:"sm",color:"primary",radius:"full",onPress:m,children:n("common.apply")})]})]})]})}function si({open:e}){return jsxRuntime.jsx("svg",{viewBox:"0 0 24 24",style:{width:14,height:14,color:"#71717a",transition:"transform 0.15s",transform:e?"rotate(180deg)":void 0},fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsxRuntime.jsx("path",{d:"m6 9 6 6 6-6"})})}function Xp({popoverPlacement:e="bottom-end",...t}){let{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(Xo,{...t}):jsxRuntime.jsx(ts,{placement:e,...t})}function rs({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),n=react.useCallback(r=>{t?.(r);},[t]);return jsxRuntime.jsx(ui.StyledPlainTabs,{color:"primary",radius:"lg",selectedKey:e,onSelectionChange:n,"aria-label":"Select Resolution",classNames:{tabList:"gap-0",tab:"px-2",tabContent:"!text-zinc-500 group-data-[hover=true]:!text-zinc-200 group-data-[selected=true]:!text-[#c7ff2e]"},children:o.map(r=>jsxRuntime.jsx(ui.Tab,{title:s(`common.resolution.${r}`)},r))})}function as({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),{isOpen:n,onOpen:r,onClose:i,onOpenChange:a}=ui.useDisclosure(),u=react.useCallback(l=>{t?.(l),i();},[t,i]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"bordered",color:"default",radius:"full",endContent:jsxRuntime.jsx(ui.ChevronDownIcon,{width:16,height:16,className:"text-neutral"}),onPress:r,className:"min-w-0 h-8 min-h-8 border-border gap-1 pr-2 text-xs font-medium",children:e?s(`common.resolution.${e}`):"\u2014"}),jsxRuntime.jsx(ui.StyledModal,{isOpen:n,onOpenChange:a,size:"md",children:jsxRuntime.jsxs(ui.ModalContent,{children:[jsxRuntime.jsx(ui.ModalHeader,{className:"px-4 py-2",children:jsxRuntime.jsx("span",{className:"text-base font-semibold",children:s("tokens.resolutionSelector.title")})}),jsxRuntime.jsx(ui.ModalBody,{className:"p-4",children:jsxRuntime.jsx("div",{className:"flex justify-between flex-wrap gap-2",children:o.map(l=>jsxRuntime.jsx(ui.StyledSolidButton,{color:l===e?"primary":"default",radius:"full",size:"sm",onPress:()=>u(l),children:s(`common.resolution.${l}`)},l))})})]})})]})}function gf(e){let{isMobile:t}=ui.useScreen();return t?jsxRuntime.jsx(as,{...e}):jsxRuntime.jsx(rs,{...e})}function ds({token:e}){let{t}=i18n.useTranslation(),o=react.useMemo(()=>e.marketData?.bluechipHoldingsRatio,[e.marketData?.bluechipHoldingsRatio]),s=react.useMemo(()=>o!==void 0&&new utils$1.SafeBigNumber(o).gte(.1),[o]),n=react.useMemo(()=>o===void 0||new utils$1.SafeBigNumber(o).lt(.05),[o]);return jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.bluechip.explained"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5",children:[s&&jsxRuntime.jsx(ui.HorsePowerHighIcon,{}),n&&jsxRuntime.jsx(ui.HorsePowerLowIcon,{}),!s&&!n&&jsxRuntime.jsx(ui.HorsePowerIcon,{}),jsxRuntime.jsx("span",{className:ui.cn(s&&"text-bullish",!s&&!n&&"text-bearish",o===void 0&&"text-neutral"),children:utils$1.formatPercent(o)})]})})}function cs({token:e}){let t=ui.useCopyToClipboard(),{t:o}=i18n.useTranslation(),s=react.useCallback(r=>{r.preventDefault(),r.stopPropagation(),t(e.address,()=>ui.toast.success(o("tokens.copied.address")));},[t,e.address,o]),n=hooks.useTickAge(e.createdAt);return jsxRuntime.jsxs("div",{className:"w-full flex justify-start items-center gap-3",children:[jsxRuntime.jsx(Z,{token:e,className:"w-10 h-10 sm:w-16 sm:h-16 flex-none"}),jsxRuntime.jsxs("div",{className:"flex-auto flex flex-col gap-1 min-w-0",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"flex-none font-medium tracking-[-0.02em]",children:e.symbol}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.name,children:jsxRuntime.jsxs("div",{className:"flex-initial flex items-center gap-1 min-w-0 text-neutral hover:text-primary-200 cursor-pointer",onClick:s,children:[jsxRuntime.jsx("div",{className:"flex-initial whitespace-nowrap truncate",children:e.name}),jsxRuntime.jsx(ui.CopyIcon,{className:"flex-none w-3 h-3 sm:w-3.5 sm:h-3.5"})]})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{className:"text-primary text-xs sm:text-sm font-medium",children:utils$1.formatAge(n)}),e.socialMedias?.website&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.website,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.WebsiteIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.twitter&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.twitter,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.TwitterIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.telegram&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.telegram,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.TelegramIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.discord&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.discord,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.DiscordIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),jsxRuntime.jsx(ui.Link,{href:utils$1.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})]})}function ms({token:e}){let{t}=i18n.useTranslation(),o=react.useMemo(()=>e.marketData?.holders,[e.marketData?.holders]),s=react.useMemo(()=>e.marketData?.proHolders,[e.marketData?.proHolders]),n=react.useMemo(()=>e.marketData?.kolHolders,[e.marketData?.kolHolders]),r=react.useMemo(()=>e.marketData?.devHoldingsRatio,[e.marketData?.devHoldingsRatio]),i=react.useMemo(()=>new utils$1.SafeBigNumber(r).gte(.1),[r]),a=react.useMemo(()=>e.marketData?.top10HoldingsRatio,[e.marketData?.top10HoldingsRatio]),u=react.useMemo(()=>new utils$1.SafeBigNumber(a).gte(.1),[a]),l=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),d=react.useMemo(()=>new utils$1.SafeBigNumber(l).gte(.1),[l]),m=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(m).gte(.1),[m]),g=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),f=react.useMemo(()=>new utils$1.SafeBigNumber(g).gte(.1),[g]);return jsxRuntime.jsxs("div",{className:"w-full h-full flex gap-2 justify-start items-center",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.holders"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.PeopleIcon,{width:14,height:14}),variant:"flat",size:"sm",color:o?"primary":"default",children:utils$1.formatAmount(o)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.proHolders"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.KlineCandlesIcon,{width:16,height:16}),variant:"flat",size:"sm",color:s?"primary":"default",children:utils$1.formatAmount(s)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.kolHolders"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.StarIcon,{width:14,height:14}),variant:"flat",size:"sm",color:n?"primary":"default",children:utils$1.formatAmount(n)})})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.top10HoldingsRatio"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:14,height:14}),variant:"flat",size:"sm",color:u?"danger":a===void 0?"default":"primary",children:utils$1.formatPercent(a)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.devHoldingsRatio"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.CookIcon,{width:13,height:13}),variant:"flat",size:"sm",color:i?"danger":r===void 0?"default":"primary",children:utils$1.formatPercent(r)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.sniperHoldingsRatio"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.SniperIcon,{width:13,height:13}),variant:"flat",size:"sm",color:d?"danger":l===void 0?"default":"primary",children:utils$1.formatPercent(l)})})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.insiderHoldingsRatio"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.RatIcon,{width:13,height:13}),variant:"flat",size:"sm",color:c?"danger":m===void 0?"default":"primary",children:utils$1.formatPercent(m)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.bundleHoldingsRatio"),children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.BundlesIcon,{width:13,height:13}),variant:"flat",size:"sm",color:f?"danger":g===void 0?"default":"primary",children:utils$1.formatPercent(g)})})]})]})}function us({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ps({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function hs({token:e,resolution:t}){let o=react.useMemo(()=>e.marketData?.priceInUsd,[e]),s=react.useMemo(()=>e.stats?.[t]?.priceChange,[e,t]),n=react.useMemo(()=>s?new utils$1.SafeBigNumber(s).abs().toString():void 0,[s]),r=react.useMemo(()=>s&&new utils$1.SafeBigNumber(s).gte(0),[s]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatPriceUSD(o)}),jsxRuntime.jsxs("span",{className:ui.cn("inline-flex gap-1 items-center text-xs",r?"text-bullish":"text-bearish"),children:[r?jsxRuntime.jsx(ui.TriangleUpIcon,{width:10,height:10}):jsxRuntime.jsx(ui.TriangleDownIcon,{width:10,height:10}),jsxRuntime.jsx("span",{children:utils$1.formatPercent(n)})]})]})}function Ts({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.traders,[e.stats?.[t]?.traders]),s=react.useMemo(()=>e.stats?.[t]?.buyers,[e.stats?.[t]?.buyers]),n=react.useMemo(()=>e.stats?.[t]?.sellers,[e.stats?.[t]?.sellers]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmount(n)})]})]})}function xs({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.trades,[e.stats?.[t]?.trades]),s=react.useMemo(()=>e.stats?.[t]?.buys,[e.stats?.[t]?.buys]),n=react.useMemo(()=>e.stats?.[t]?.sells,[e.stats?.[t]?.sells]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmount(n)})]})]})}function ys({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.volumesInUsd,[e.stats?.[t]?.volumesInUsd]),s=react.useMemo(()=>e.stats?.[t]?.buyVolumesInUsd,[e.stats?.[t]?.buyVolumesInUsd]),n=react.useMemo(()=>e.stats?.[t]?.sellVolumesInUsd,[e.stats?.[t]?.sellVolumesInUsd]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmountUSD(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmountUSD(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmountUSD(n)})]})]})}var Ss=5;function ws({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:Ss}).map((o,s)=>jsxRuntime.jsx(ul,{rowHeight:e,hasBorderBottom:s!==Ss-1,hasActions:t},s))})}function ul({rowHeight:e,hasBorderBottom:t,hasActions:o}){return jsxRuntime.jsxs("div",{className:ui.cn("relative flex items-center","[&>div]:first:sm:pl-6 [&>div]:last:sm:pr-6",t&&"after:content-[''] after:absolute after:left-0 after:bottom-0",t&&"after:w-full after:h-px after:bg-border/50"),style:{height:`${e}px`},children:[jsxRuntime.jsx(pl,{}),jsxRuntime.jsx(fl,{}),jsxRuntime.jsx(gl,{}),jsxRuntime.jsx(hl,{}),jsxRuntime.jsx(kl,{}),jsxRuntime.jsx(Tl,{}),jsxRuntime.jsx(bl,{}),jsxRuntime.jsx(xl,{}),jsxRuntime.jsx(vl,{}),o&&jsxRuntime.jsx(yl,{})]})}function pl(){return jsxRuntime.jsxs("div",{className:"w-56 sm:w-81 px-3 h-full flex justify-start items-center gap-3",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-10 h-10 sm:w-16 sm:h-16 flex-none rounded-md"}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntime.jsx("div",{className:"w-18 sm:w-24 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-4 rounded-md"})}),jsxRuntime.jsx("div",{className:"w-32 sm:w-40 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-3.5 rounded-md"})})]})]})}function fl(){return jsxRuntime.jsxs("div",{className:"w-23.5 sm:w-36 h-full px-3 flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("div",{className:"w-10 sm:w-14 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-4 rounded-md"})}),jsxRuntime.jsx("div",{className:"w-18 sm:w-24 h-4 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 rounded-md"})})]})}function gl(){return jsxRuntime.jsx("div",{className:"w-23.5 sm:w-36 h-full px-3 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-18 sm:w-24 h-3 sm:h-4 rounded-md"})})}function hl(){return jsxRuntime.jsx("div",{className:"w-23.5 sm:w-36 h-full px-3 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-18 sm:w-24 h-3 sm:h-4 rounded-md"})})}function kl(){return jsxRuntime.jsxs("div",{className:"w-31.5 sm:w-36 h-full px-3 flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("div",{className:"w-10 sm:w-14 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-4 rounded-md"})}),jsxRuntime.jsx("div",{className:"w-18 sm:w-24 h-4 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 rounded-md"})})]})}function Tl(){return jsxRuntime.jsxs("div",{className:"w-31.5 sm:w-36 h-full px-3 py-2 flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("div",{className:"w-10 sm:w-14 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-4 rounded-md"})}),jsxRuntime.jsx("div",{className:"w-18 sm:w-24 h-4 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 rounded-md"})})]})}function bl(){return jsxRuntime.jsxs("div",{className:"w-31.5 sm:w-36 h-full px-3 py-2 flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("div",{className:"w-10 sm:w-14 h-4 sm:h-6 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 sm:h-4 rounded-md"})}),jsxRuntime.jsx("div",{className:"w-18 sm:w-24 h-4 flex items-center",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-full h-3 rounded-md"})})]})}function xl(){return jsxRuntime.jsx("div",{className:"w-32 sm:w-36 h-full px-3 py-2 flex flex-col gap-1 justify-center items-start",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-26 sm:w-30 h-3 sm:h-4 rounded-md"})})}function vl(){return jsxRuntime.jsxs("div",{className:"w-51 sm:w-56 h-full px-3 py-2 flex gap-1.5 justify-start items-center",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-18 h-5 rounded-full"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-18 h-5 rounded-full"})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-18 h-5 rounded-full"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-18 h-5 rounded-full"})]})]})}function yl(){return jsxRuntime.jsx("div",{className:"w-31 sm:w-36 h-full px-3 py-2",children:jsxRuntime.jsx(ui.Skeleton,{className:"w-25 sm:w-30 h-3 sm:h-4 rounded-md"})})}function ae({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:n,sortDirections:r,onSortChange:i,height:a=600,itemHeight:u=88,itemHeightMobile:l=72,className:d}){let{isMobile:m}=ui.useScreen(),{t:c}=i18n.useTranslation(),g=react.useCallback(p=>T=>{T.preventDefault(),T.stopPropagation(),n?.(p);},[n]),[f,k]=react.useState(r??{});react.useEffect(()=>{k(r??{});},[r]);let h=react.useCallback(p=>T=>{let y={[p]:T};k(y),i?.(y);},[i]);return jsxRuntime.jsxs(ui.StyledTable,{isHeaderSticky:true,isVirtualized:true,radius:"lg",className:ui.cn("h-full mx-auto",d??(s?"max-w-379 sm:max-w-403":"max-w-348 sm:max-w-372")),classNames:{loadingWrapper:"flex-col justify-start items-start",emptyWrapper:"pt-30"},maxTableHeight:a,rowHeight:m?l:u,"aria-label":"Tokens",children:[jsxRuntime.jsx(ui.TableHeader,{children:[jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.token"),width:m?224:320,children:c("tokens.listHeader.token")},"token"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.price"),width:128,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(ui.Sortable,{sort:f.price,onSortChange:h("price"),children:c("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:f[`priceChange${t}`],onSortChange:h(`priceChange${t}`),children:c("tokens.listHeader.priceChange",{resolution:t})})]})},"price"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.marketCap"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:f.marketCap,onSortChange:h("marketCap"),children:c("tokens.listHeader.marketCap")})},"marketCap"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.liquidity"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:f.tvl,onSortChange:h("tvl"),children:c("tokens.listHeader.liquidity")})},"liquidity"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.volumes",{resolution:t}),width:138,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`volumes${t}`],onSortChange:h(`volumes${t}`),children:c("tokens.listHeader.volumes",{resolution:t})})},"volumes"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.txs",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`trades${t}`],onSortChange:h(`trades${t}`),children:c("tokens.listHeader.txs",{resolution:t})})},"txs"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.traders",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`traders${t}`],onSortChange:h(`traders${t}`),children:c("tokens.listHeader.traders",{resolution:t})})},"traders"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.bluechip"),width:128,children:c("tokens.listHeader.bluechip")},"bluechip"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.tokenInfo"),width:308,children:c("tokens.listHeader.tokenInfo")},"tokenInfo"),s?jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.actions"),width:124,align:"end",children:c("tokens.listHeader.actions")},"actions"):void 0].filter(Boolean)}),jsxRuntime.jsx(ui.TableBody,{items:o?[]:e,isLoading:o,loadingContent:jsxRuntime.jsx(ws,{rowHeight:m?l:u,hasActions:!!s}),emptyContent:jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.EmptyIcon,{className:"w-10 h-10 mx-auto text-neutral"}),jsxRuntime.jsx("p",{className:"mt-2 text-sm text-neutral text-center",children:c("common.empty")})]}),children:p=>jsxRuntime.jsx(ui.TableRow,{onClick:n?g(p):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(cs,{token:p,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(hs,{token:p,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ps,{token:p,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(us,{token:p,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ys,{token:p,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(xs,{token:p,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Ts,{token:p,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ds,{token:p,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ms,{token:p,resolution:t})},"tokenInfo"),s?jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(s,{token:p,resolution:t})},"actions"):void 0].filter(Boolean)},p.address)})]})}var Ol=80;function Wl(e){return {chain:e.chain,address:e.address,name:e.name??"",symbol:e.symbol??"",decimals:e.decimals??0,image:e.image,description:e.description,socialMedias:e.socialMedias,launchedFrom:e.launchedFrom,migratedTo:e.migratedTo,createdAt:e.createdAt}}function Is(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Ol)}function Rs({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),r=react.useRef(n),[i,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),l([]),r.current=n);},[n]);let[u,l]=react.useState([]),{data:d,isPending:m}=react$1.useNewTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(l(f=>{let k=[...f];for(let h of d){let p=k.findIndex(T=>T.address===h.address);p>=0?k[p]=w(k[p],h):k.push(h);}return Is(k)}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=[...k],p=false;for(let T of f){let y=h.findIndex(P=>P.address===T.address);y>=0?(p=true,h[y]=w(h[y],T)):(p=true,h.push(Wl(T)));}return p?Is(h):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let g=react.useMemo(()=>!!(m||i),[m,i]);return {tokens:u,isLoading:g}}function Gg({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:i,itemHeightMobile:a,className:u}){let[l,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(l??{})[0],k=l?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,l]),{tokens:c,isLoading:g}=Rs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ae,{tokens:c,isLoading:g,resolution:t,height:r,itemHeight:i,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:d,className:u})}function Fs({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),r=react.useRef(n),[i,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),l([]),r.current=n);},[n]);let[u,l]=react.useState([]),{data:d,isPending:m}=react$1.useStockTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(l(f=>{let k=[];for(let h of d){let p=f.find(T=>T.address===h.address);k.push(p?w(p,h):h);}return k}),a(false));},[d]);let c=react.useCallback(f=>{l(k=>{let h=[...k],p=false;for(let T of f){let y=h.findIndex(P=>P.address===T.address);y>=0&&(p=true,h[y]=w(h[y],T));}return p?h:k});},[]);react$1.useStockTokensSubscription({chain:e},c);let g=react.useMemo(()=>!!(m||i),[m,i]);return {tokens:u,isLoading:g}}function ih({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:i,itemHeightMobile:a,className:u}){let[l,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(l??{})[0],k=l?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,l]),{tokens:c,isLoading:g}=Fs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ae,{tokens:c,isLoading:g,resolution:t,height:r,itemHeight:i,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:d,className:u})}function gh({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:i,itemHeightMobile:a,className:u}){let[l,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(l??{})[0],k=l?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,l]),{tokens:c,isLoading:g}=Me({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ae,{tokens:c,isLoading:g,resolution:t,height:r,itemHeight:i,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:d,className:u})}var id=15e3;function ld({chain:e,addresses:t,pollMs:o=id}){let s=t.length>0,[n,r]=react.useState({}),i=react$1.useTokensQuery({chain:e,addresses:t},{enabled:s,refetchInterval:o});react.useEffect(()=>{i.data&&r(m=>{let c={};for(let g of i.data){let f=m[g.address];c[g.address]=f?w(f,g):g;}return c});},[i.data]);let{subscribeClient:a}=react$1.useDexClient(),u=react.useRef(""),l=t.slice().sort().join(",");l!==u.current&&(u.current=l),react.useEffect(()=>{if(!s)return;let m=[];for(let c of t)m.push(a.subscribeToken(e,c,g=>{r(f=>{let k=f;for(let h of g){let p=k[h.address];if(!p)continue;let T=w(p,h);T!==p&&(k=k===f?{...f}:k,k[h.address]=T);}return k});}));return ()=>{for(let c of m)c.unsubscribe();}},[a,e,l,s]);let d=react.useCallback(async()=>{await i.refetch();},[i.refetch]);return {tokens:n,isPending:i.isPending,isFetching:i.isFetching,isError:i.isError,isSuccess:i.isSuccess,error:i.error,refetch:d}}exports.NewTokenListWidget=Gg;exports.PulseFinalStretchListWidget=Nc;exports.PulseList=oe;exports.PulseListHeader=yt;exports.PulseListItem=Mt;exports.PulseListItemSkeleton=wt;exports.PulseMigratedListWidget=gc;exports.PulseNewListWidget=rc;exports.SEARCH_MODAL_ID=tt;exports.SearchHistoryUI=eo;exports.SearchHistoryWidget=to;exports.SearchInputUI=oo;exports.SearchModal=cu;exports.SearchResultItemUI=Ce;exports.SearchResultListHeader=Le;exports.SearchResultListSkeleton=Re;exports.SearchResultListWidget=mo;exports.SearchTokensButton=bu;exports.SearchWidget=xo;exports.StockTokenListWidget=ih;exports.TokenAvatar=Z;exports.TokenList=ae;exports.TokenListFilter=Ke;exports.TokenListFilterModal=Xo;exports.TokenListFilterPopover=ts;exports.TokenListFilterWidget=Xp;exports.TokenListResolutionSelectorDesktop=rs;exports.TokenListResolutionSelectorMobile=as;exports.TokenListResolutionSelectorWidget=gf;exports.TrendingTokenListWidget=gh;exports.useNewTokensScript=Rs;exports.usePulseFinalStretchListScript=Jt;exports.usePulseMigratedListScript=zt;exports.usePulseNewListScript=Bt;exports.useSearchHistory=Ne;exports.useSearchResultListScript=lo;exports.useSearchScript=To;exports.useStockTokensScript=Fs;exports.useTokens=ld;exports.useTrendingTokensScript=Me;exports.version=Ds;//# sourceMappingURL=index.js.map
|
|
21
|
+
`})]})}function Rt({token:e,renderAction:t,isLast:o=false,onSelectToken:s,className:r}){let{t:n}=i18n.useTranslation(),a=ui.useCopyToClipboard(),i=hooks.useTickAge(e.createdAt),d=react.useCallback(()=>{s?.(e);},[s,e]),m=react.useCallback(b=>{b.stopPropagation(),a(e.address,()=>ui.toast.success(n("tokens.copied.address")));},[a,e.address,n]),l=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.top10HoldingsRatio).gte(.1),[e.marketData?.top10HoldingsRatio]),p=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.devHoldingsRatio).gte(.1),[e.marketData?.devHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.insiderHoldingsRatio).gte(.1),[e.marketData?.insiderHoldingsRatio]),h=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),f=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[k,g]=react.useMemo(()=>{let b=Number(e.stats?.["1h"]?.buys??0),y=Number(e.stats?.["1h"]?.sells??0),w=b+y;if(w===0)return [12,12];let xe=Math.round(b/w*24);return [xe,24-xe]},[e.stats]),u=react.useMemo(()=>{let b=new utils$1.SafeBigNumber(e.marketData?.marketCapInUsd);return b.lt(1e3)?"text-foreground":b.lt(1e6)?"text-secondary":"text-primary"},[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx("div",{className:ui.cn("w-full h-full px-3 pt-3 pb-1 hover:bg-content2/40 cursor-pointer",!o&&"border-b border-border",r),onClick:s?d:void 0,children:jsxRuntime.jsxs("div",{className:"relative flex justify-between gap-3",children:[jsxRuntime.jsxs("div",{className:"flex-none flex flex-col items-center gap-1",children:[jsxRuntime.jsx(J,{token:e,enableSearch:true,enablePreview:!!e.image,showProgress:true,className:"w-15 h-15"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.address,children:jsxRuntime.jsx("div",{className:"text-xs text-neutral hover:text-primary/50 max-w-18 truncate cursor-pointer",onClick:m,children:utils$1.truncateAddress(e.address,4,4)})})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col justify-between gap-3 min-w-0",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-1.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1 pr-24",children:[jsxRuntime.jsx("span",{className:"flex-none text-base font-semibold whitespace-nowrap overflow-hidden text-ellipsis max-w-20",children:e.symbol}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.name,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1 min-w-0 text-neutral hover:text-primary/50 cursor-pointer",onClick:m,children:[jsxRuntime.jsx("span",{className:"text-base whitespace-nowrap overflow-hidden text-ellipsis",children:e.name}),jsxRuntime.jsx(ui.CopyIcon,{className:"flex-none w-3.5 h-3.5"})]})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntime.jsx("span",{className:"text-sm text-primary font-medium",children:utils$1.formatAge(i)}),e.socialMedias?.twitter&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.twitter,className:"text-neutral hover:text-primary",target:"_blank",onClick:b=>b.stopPropagation(),children:jsxRuntime.jsx(ui.TwitterIcon,{className:"w-4 h-4"})}),e.socialMedias?.telegram&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.telegram,className:"text-neutral hover:text-primary",target:"_blank",onClick:b=>b.stopPropagation(),children:jsxRuntime.jsx(ui.TelegramIcon,{className:"w-4 h-4"})}),e.socialMedias?.website&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.website,className:"text-neutral hover:text-primary",target:"_blank",onClick:b=>b.stopPropagation(),children:jsxRuntime.jsx(ui.WebsiteIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.Link,{href:utils$1.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",onClick:b=>b.stopPropagation(),children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.StyledTooltip,{content:n("tokens.tokenInfo.holders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.PeopleIcon,{width:14,height:14}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.holders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:n("tokens.tokenInfo.proHolders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.KlineCandlesIcon,{width:16,height:16}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.proHolders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:n("tokens.tokenInfo.kolHolders"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5 text-neutral",children:[jsxRuntime.jsx(ui.StarIcon,{width:14,height:14}),jsxRuntime.jsx("span",{className:"text-foreground text-xs",children:utils$1.formatAmount(e.marketData?.kolHolders)})]})})]})]}),jsxRuntime.jsxs("div",{className:"relative flex items-center gap-1.5 flex-wrap",children:[jsxRuntime.jsx(ne,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:n("tokens.tokenInfo.top10HoldingsRatio"),warning:l}),jsxRuntime.jsx(ne,{icon:jsxRuntime.jsx(ui.CookIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.devHoldingsRatio),tooltip:n("tokens.tokenInfo.devHoldingsRatio"),warning:p}),jsxRuntime.jsx(ne,{icon:jsxRuntime.jsx(ui.RatIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.insiderHoldingsRatio),tooltip:n("tokens.tokenInfo.insiderHoldingsRatio"),warning:c}),jsxRuntime.jsx(ne,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:n("tokens.tokenInfo.sniperHoldingsRatio"),warning:h}),jsxRuntime.jsx(ne,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.bundleHoldingsRatio),tooltip:n("tokens.tokenInfo.bundleHoldingsRatio"),warning:f}),t?.(e)]})]}),jsxRuntime.jsxs("div",{className:"absolute top-0 right-0 flex flex-col gap-2 items-end",children:[jsxRuntime.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:n("tokens.listHeader.marketCap")}),jsxRuntime.jsx("span",{className:ui.cn("text-base font-medium leading-none",u),children:utils$1.formatAmountUSDCompact(e.marketData?.marketCapInUsd)})]}),jsxRuntime.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:n("tokens.pulse.vol")}),jsxRuntime.jsx("span",{className:"text-base font-medium leading-none text-foreground",children:utils$1.formatAmountUSDCompact(e.stats?.["1h"]?.volumesInUsd)})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"text-xs leading-none text-neutral",children:n("tokens.pulse.txs")}),jsxRuntime.jsx("span",{className:"text-xs leading-none text-foreground",children:utils$1.formatAmount(e.stats?.["1h"]?.trades)})]}),jsxRuntime.jsxs("div",{className:"flex rounded-full overflow-hidden",children:[jsxRuntime.jsx("div",{className:"h-1 bg-bullish",style:{width:`${k}px`}}),jsxRuntime.jsx("div",{className:"h-1 bg-bearish",style:{width:`${g}px`}})]})]})]})]})})}function ne({icon:e,value:t,tooltip:o,warning:s}){return jsxRuntime.jsx(ui.StyledTooltip,{content:o,children:jsxRuntime.jsxs("div",{className:ui.cn("px-2 py-0.5 flex items-center gap-1 bg-content2 rounded-full text-xs",s?"text-danger-500":"text-primary"),children:[e,jsxRuntime.jsx("span",{children:t})]})})}var ks=124,Mt=10;function bs({index:e,style:t,data:o,skeletonCount:s,renderItemAction:r,onSelectToken:n}){return o?jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(Rt,{token:o[e],isLast:e===o.length-1,renderAction:r,onSelectToken:n})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(vt,{isLast:e===s-1})})}function Z({title:e,tokens:t,isLoading:o,itemHeight:s=ks,renderHeaderExtra:r,renderItemAction:n,onSelectToken:a,onPauseChange:i,className:d,hideHeader:m}){let l=o||!t?void 0:t,p=l?l.length:Mt,c=react.useMemo(()=>({data:l,skeletonCount:Mt,renderItemAction:n,onSelectToken:a}),[l,n,a]),[h,f]=react.useState(false),k=react.useCallback(()=>{f(true),i?.(true);},[i]),g=react.useCallback(()=>{f(false),i?.(false);},[i]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full bg-content1 overflow-hidden flex flex-col border border-border rounded-lg",d),onMouseEnter:k,onMouseLeave:g,children:[!m&&jsxRuntime.jsx(Tt,{title:e,isPaused:h,extra:r}),jsxRuntime.jsx("div",{className:"flex-1 w-full overflow-hidden",children:jsxRuntime.jsx(reactWindow.List,{className:"h-full w-full",rowCount:p,rowHeight:s,rowComponent:bs,rowProps:c,overscanCount:5})})]})}function Xe(e,t){let o={...e};for(let s of Object.keys(t))t[s]!==void 0&&(o[s]=t[s]);return o}var Ts=["1m","5m","15m","30m","1h","4h","24h"];function ys(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of Ts)t[s]&&(o[s]=e[s]?Xe(e[s],t[s]):t[s]);return o}function vs(e,t){return t?e?Xe(e,t):t:e}function Pe(e,t){return t?e?Xe(e,t):t:e}function P(e,t){let{chain:o,address:s,stats:r,marketData:n,socialMedias:a,security:i,launchedFrom:d,migratedTo:m,...l}=t,p={...e};for(let c of Object.keys(l))l[c]!==void 0&&(p[c]=l[c]);return p.stats=ys(e.stats,r),p.marketData=vs(e.marketData,n),p.socialMedias=Pe(e.socialMedias,a),p.security=Pe(e.security,i),p.launchedFrom=Pe(e.launchedFrom,d),p.migratedTo=Pe(e.migratedTo,m),p}var Cs=80;function Ns(e){return {chain:e.chain,address:e.address,name:e.name??"",symbol:e.symbol??"",decimals:e.decimals??0,image:e.image,description:e.description,socialMedias:e.socialMedias,launchedFrom:e.launchedFrom,migratedTo:e.migratedTo,createdAt:e.createdAt}}function Ut(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Cs)}function Ot({chain:e,isPaused:t=false,refetchInterval:o=1e4}){let s=react.useMemo(()=>({chain:e}),[e]),r=react.useRef(t);r.current=t;let n=react.useRef(e),[a,i]=react.useState(true),[d,m]=react.useState([]);react.useEffect(()=>{e!==n.current&&(i(true),m([]),n.current=e);},[e]);let{data:l,isPending:p}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(m(f=>{let k=r.current,g=f.length===0&&l.length>0,u=[...f];for(let b of l){let y=u.findIndex(w=>w.address===b.address);y>=0?u[y]=P(u[y],b):(!k||g)&&u.push(b);}return k?u:Ut(u)}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=r.current,u=[...k],b=false;for(let y of f){let w=u.findIndex(xe=>xe.address===y.address);w>=0?(b=true,u[w]=P(u[w],y)):g||(b=true,u.push(Ns(y)));}return b?g?u:Ut(u):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let h=react.useMemo(()=>p||a,[p,a]);return {tokens:d,isLoading:h}}function jd({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,className:n,hideHeader:a}){let[i,d]=react.useState(false),{tokens:m,isLoading:l}=Ot({chain:e,isPaused:i}),p=react.useCallback(c=>{d(c);},[]);return jsxRuntime.jsx(Z,{title:t,tokens:m,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,onPauseChange:p,className:n,hideHeader:a})}function Kt({chain:e,isPaused:t=false,refetchInterval:o=3e4}){let s=react.useMemo(()=>({chain:e}),[e]),r=react.useRef(t);r.current=t;let n=react.useRef(e),[a,i]=react.useState(true),[d,m]=react.useState([]);react.useEffect(()=>{e!==n.current&&(i(true),m([]),n.current=e);},[e]);let{data:l,isPending:p}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(m(f=>{let k=r.current,g=[...f];for(let u of l){let b=g.findIndex(y=>y.address===u.address);b>=0?g[b]=P(g[b],u):k||g.unshift(u);}return g}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=[...k],u=false;for(let b of f){let y=g.findIndex(w=>w.address===b.address);y>=0&&(u=true,g[y]=P(g[y],b));}return u?g:k});},[]);react$1.useMigratedTokensSubscription({chain:e},c);let h=react.useMemo(()=>p||a,[p,a]);return {tokens:d,isLoading:h}}function nc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,className:n,hideHeader:a}){let[i,d]=react.useState(false),{tokens:m,isLoading:l}=Kt({chain:e,isPaused:i}),p=react.useCallback(c=>{d(c);},[]);return jsxRuntime.jsx(Z,{title:t,tokens:m,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,onPauseChange:p,className:n,hideHeader:a})}function _s(e){return e.sort((t,o)=>{let s=Number(t.migrateProgress??0);return Number(o.migrateProgress??0)-s})}function jt({chain:e,isPaused:t=false,refetchInterval:o=15e3}){let s=react.useMemo(()=>({chain:e}),[e]),r=react.useRef(t);r.current=t;let n=react.useRef(e),[a,i]=react.useState(true),[d,m]=react.useState([]);react.useEffect(()=>{e!==n.current&&(i(true),m([]),n.current=e);},[e]);let{data:l,isPending:p}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(m(f=>{let k=r.current,g=f.length===0&&l.length>0,u=[...f];for(let b of l){let y=u.findIndex(w=>w.address===b.address);y>=0?u[y]=P(u[y],b):(!k||g)&&u.push(b);}return k?u:_s(u)}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=[...k],u=false;for(let b of f){let y=g.findIndex(w=>w.address===b.address);y>=0&&(u=true,g[y]=P(g[y],b));}return u?g:k});},[]);react$1.useFinalStretchTokensSubscription({chain:e},c);let h=react.useMemo(()=>p||a,[p,a]);return {tokens:d,isLoading:h}}function hc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,className:n,hideHeader:a}){let[i,d]=react.useState(false),{tokens:m,isLoading:l}=jt({chain:e,isPaused:i}),p=react.useCallback(c=>{d(c);},[]);return jsxRuntime.jsx(Z,{title:t,tokens:m,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:r,onPauseChange:p,className:n,hideHeader:a})}var Qs=10,qs=utils.atomWithStorage("liberfi:search_histories",[],void 0,{getOnInit:true});function we(){let[e,t]=jotai.useAtom(qs),o=react.useCallback(r=>{let n=r.trim();n&&t(a=>{let i=a.filter(d=>d!==n);return [n,...i].slice(0,Qs)});},[t]),s=react.useCallback(()=>{t([]);},[t]);return {histories:e,addHistory:o,clearHistories:s}}function Yt({histories:e,onSelect:t,onClear:o,className:s}){let{t:r}=i18n.useTranslation();return e.length===0?null:jsxRuntime.jsxs("div",{className:ui.cn("px-4 pb-4",s),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:r("tokens.search.history")}),jsxRuntime.jsx(ui.Button,{isIconOnly:true,size:"sm",className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:o,children:jsxRuntime.jsx(ui.TrashIcon,{width:20,height:20})})]}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:e.map(n=>jsxRuntime.jsx(ui.Chip,{size:"sm",variant:"bordered",className:ui.cn("text-neutral","border-border border-1","cursor-pointer","hover:opacity-hover"),onClick:()=>t?.(n),children:n},n))})]})}function Zt({onSelect:e,className:t}){let{histories:o,clearHistories:s}=we();return jsxRuntime.jsx(Yt,{className:ui.cn(t),histories:o,onSelect:e,onClear:s})}function eo({value:e,onValueChange:t,onClear:o,onEscape:s,className:r}){let{t:n}=i18n.useTranslation();return jsxRuntime.jsx("div",{className:r,children:jsxRuntime.jsx(ui.StyledInput,{autoFocus:true,variant:"bordered",radius:"full",value:e,onValueChange:t,placeholder:n("tokens.search.placeholder"),classNames:{inputWrapper:["!bg-[rgba(39,39,42,0.6)]","!border-[rgba(63,63,70,0.5)]","data-[hover=true]:!bg-[rgba(39,39,42,1)]","group-data-[focus=true]:!bg-[rgba(39,39,42,1)]","group-data-[focus=true]:!border-[rgba(63,63,70,0.8)]"].join(" ")},startContent:jsxRuntime.jsx(ui.SearchIcon,{width:20,height:20,className:"text-neutral"}),endContent:e?jsxRuntime.jsx(ui.Button,{isIconOnly:true,className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:o,children:jsxRuntime.jsx(ui.XCloseIcon,{width:20,height:20})}):jsxRuntime.jsx(ui.Kbd,{className:"min-w-8 justify-center text-xs text-neutral bg-transparent border border-[rgba(63,63,70,0.5)] rounded-full cursor-pointer select-none",onMouseDown:a=>{a.preventDefault(),s?.();},children:"Esc"})})})}function Ce({token:e,className:t}){let{t:o}=i18n.useTranslation(),s=hooks.useTickAge(e.createdAt),r=react.useMemo(()=>e.marketData?.priceInUsd,[e]),n=react.useMemo(()=>e.marketData?.marketCapInUsd,[e]),a=react.useMemo(()=>e.marketData?.tvlInUsd,[e]),i=react.useMemo(()=>e.stats?.["24h"]?.priceChange,[e]),d=react.useMemo(()=>i?new utils$1.SafeBigNumber(i).abs().toString():void 0,[i]),m=react.useMemo(()=>i!=null&&new utils$1.SafeBigNumber(i).gte(0),[i]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full px-3 flex items-center justify-between gap-2","hover:cursor-pointer hover:bg-content2 rounded-lg",t),children:[jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2.5",children:[jsxRuntime.jsx(J,{token:e,className:"w-10 h-10 flex-none",showProtocolFamily:true,classNames:{searchIcon:"w-5 h-5"}}),jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-0.5",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"font-medium text-sm truncate",children:e.symbol}),jsxRuntime.jsx("span",{className:"text-xs text-primary font-medium",children:utils$1.formatAge(s)})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1 text-xs text-neutral",children:[jsxRuntime.jsxs("span",{children:[o("tokens.listHeader.mcShort")," ",utils$1.formatAmountUSD(n)]}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsxs("span",{children:[o("tokens.listHeader.liqShort")," ",utils$1.formatAmountUSD(a)]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex-none w-20 flex flex-col items-end",children:[jsxRuntime.jsx("span",{className:"text-xs",children:utils$1.formatPriceUSD(r)}),jsxRuntime.jsxs("span",{className:ui.cn("inline-flex gap-0.5 items-center text-xs",m?"text-bullish":"text-bearish"),children:[m?jsxRuntime.jsx(ui.TriangleUpIcon,{width:8,height:8}):jsxRuntime.jsx(ui.TriangleDownIcon,{width:8,height:8}),jsxRuntime.jsx("span",{children:utils$1.formatPercent(d)})]})]})]})}function Ne({className:e}){let{t}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:ui.cn("h-9 px-3 flex items-center justify-between","text-xs font-medium text-neutral","sticky top-0 z-10",e),children:[jsxRuntime.jsx("div",{className:"flex-1",children:jsxRuntime.jsxs("span",{children:[t("tokens.listHeader.token")," / ",t("tokens.listHeader.age")," /"," ",t("tokens.listHeader.marketCap")," /"," ",t("tokens.listHeader.liquidity")]})}),jsxRuntime.jsx("div",{className:"flex-none w-20 text-right",children:jsxRuntime.jsxs("span",{children:[t("tokens.listHeader.price")," / ",t("tokens.listHeader.24hChange")]})})]})}function kn(){return jsxRuntime.jsxs("div",{className:"w-full h-14 px-3 flex items-center justify-between gap-2",children:[jsxRuntime.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[jsxRuntime.jsx(ui.Skeleton,{className:"flex-none w-8 h-8 rounded-full"}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-24 h-4 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-36 h-3 rounded-md"})]})]}),jsxRuntime.jsxs("div",{className:"flex-none w-20 flex flex-col items-end gap-1.5",children:[jsxRuntime.jsx(ui.Skeleton,{className:"w-14 h-4 rounded-md"}),jsxRuntime.jsx(ui.Skeleton,{className:"w-10 h-3 rounded-md"})]})]})}function Ie({rows:e=6,className:t}){return jsxRuntime.jsx("div",{className:ui.cn("w-full",t),children:Array.from({length:e}).map((o,s)=>jsxRuntime.jsx(kn,{},s))})}function io({keyword:e,chains:t,limit:o=50}){let s=react.useMemo(()=>({keyword:e,chains:t,limit:o}),[e,t,o]),{data:r,isLoading:n,isFetchingNextPage:a,hasNextPage:i,fetchNextPage:d}=react$1.useSearchTokensInfiniteQuery(s,{enabled:!!e});return {tokens:react.useMemo(()=>r?.pages.flatMap(l=>l.data)??[],[r]),isLoading:n,isFetchingNextPage:a,hasNextPage:i??false,fetchNextPage:d}}var Nn=56;function lo({onSelectToken:e,className:t,...o}){let{tokens:s,isLoading:r,isFetchingNextPage:n,hasNextPage:a,fetchNextPage:i}=io(o),d=react.useRef(null),{height:m}=hooks.useResizeObserver({ref:d}),l=react.useCallback(f=>f<s.length,[s]),p=react.useCallback(async()=>{a&&!n&&await i();},[a,n,i]),c=react.useMemo(()=>a?s.length+1:s.length,[s,a]),h=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:l,loadMoreRows:p,rowCount:c,threshold:5});return r?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(Ie,{})]}):s.length===0?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(In,{})]}):jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full flex flex-col",t),children:[jsxRuntime.jsx(Ne,{className:"flex-none"}),jsxRuntime.jsx("div",{className:"flex-auto min-h-0",ref:d,children:jsxRuntime.jsx(reactWindow.List,{style:{height:m},onRowsRendered:h,rowComponent:Ln,rowCount:c,rowHeight:Nn,rowProps:{tokens:s,onSelectToken:e},overscanCount:5})})]})}function Ln({index:e,style:t,tokens:o,onSelectToken:s}){let r=o[e];return r?jsxRuntime.jsx("div",{style:t,onClick:()=>s?.(r),children:jsxRuntime.jsx(Ce,{token:r})}):jsxRuntime.jsx("div",{style:t,className:"flex items-center justify-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})}function In(){let{t:e}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center py-16",children:[jsxRuntime.jsx(ui.EmptyIcon,{width:28,height:28,className:"text-neutral"}),jsxRuntime.jsx("p",{className:"mt-2 text-sm text-neutral",children:e("tokens.search.noResults")})]})}function Ae({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let r=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),n=react.useRef(r),[a,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(r)!==JSON.stringify(n.current)&&(i(true),m([]),n.current=r);},[r]);let[d,m]=react.useState([]),{data:l,isPending:p}=react$1.useTrendingTokensQuery(r,{refetchInterval:s});react.useEffect(()=>{l&&(m(f=>{let k=[];for(let g of l){let u=f.find(b=>b.address===g.address);k.push(u?P(u,g):g);}return k}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=[...k],u=false;for(let b of f){let y=g.findIndex(w=>w.address===b.address);y>=0&&(u=true,g[y]=P(g[y],b));}return u?g:k});},[]);react$1.useTrendingTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(p||a),[p,a]);return {tokens:d,isLoading:h}}var Dn=types.Chain.ETHEREUM,Un="24h",On=56;function uo({chains:e,onSelectToken:t,className:o}){let s=e?.length===1?e[0]:e?.[0]??Dn,{tokens:r,isLoading:n}=Ae({chain:s,resolution:Un});return jsxRuntime.jsx("div",{className:ui.cn("w-full flex flex-col overflow-hidden",o),children:n?jsxRuntime.jsx(Ie,{}):jsxRuntime.jsx("div",{className:"overflow-y-auto",children:r.map(a=>jsxRuntime.jsx("div",{style:{height:On},onClick:()=>t?.(a),children:jsxRuntime.jsx(Ce,{token:a,className:"h-full"})},a.address))})})}function ho({onKeywordChange:e}){let[t,o]=react.useState(""),[s,r]=react.useState(""),{addHistory:n}=we(),a=hooks.useCallbackRef(e),i=hooks.useCallbackRef(n),d=react.useMemo(()=>utils$1.debounce(c=>{r(c),a(c),c&&i(c);},500),[a,i]),m=react.useCallback(c=>{o(c),d(c);},[d]),l=react.useCallback(c=>{d.cancel(),o(c),r(c),a(c),c&&i(c);},[d,a,i]),p=react.useCallback(()=>l(""),[l]);return {text:t,keyword:s,setText:m,setKeyword:l,clearKeyword:p}}function bo({chains:e,onKeywordChange:t,onSelectToken:o,onEscape:s}){let{text:r,keyword:n,setText:a,setKeyword:i,clearKeyword:d}=ho({onKeywordChange:t});return jsxRuntime.jsxs("div",{className:"w-full h-full flex flex-col gap-3",children:[jsxRuntime.jsx(eo,{value:r,onValueChange:a,onClear:d,onPaste:i,onEscape:s}),n?jsxRuntime.jsx(lo,{className:"flex-auto min-h-0",keyword:n,chains:e,onSelectToken:o}):jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col overflow-hidden",children:[jsxRuntime.jsx(Zt,{onSelect:i}),jsxRuntime.jsx(uo,{className:"flex-auto min-h-0",chains:e,onSelectToken:o})]})]})}var tt="search";function ep({id:e=tt}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Xn,{...t})})}function Xn({params:e,isOpen:t,onOpenChange:o,onResult:s}){let{t:r}=i18n.useTranslation(),{isMobile:n}=ui.useScreen(),a=react.useCallback(i=>{s(i);},[s]);return jsxRuntime.jsx(ui.StyledModal,{isOpen:t,onOpenChange:o,size:n?"full":"lg",hideCloseButton:true,backdrop:"blur",radius:"lg",children:jsxRuntime.jsxs(ui.ModalContent,{className:"w-full h-full",style:{borderRadius:n?void 0:14,border:n?void 0:"1px solid rgba(39,39,42,1)",background:"rgba(24,24,27,1)",boxShadow:n?void 0:"0 25px 50px -12px rgba(0,0,0,0.5)",overflow:"hidden"},children:[jsxRuntime.jsxs(ui.ModalHeader,{className:"sm:hidden flex items-center justify-between pt-4 pb-2",children:[jsxRuntime.jsx("span",{className:"text-base font-semibold",children:r("tokens.search.title")}),jsxRuntime.jsx(ui.Button,{isIconOnly:true,onPress:()=>o(false),size:"sm",className:"bg-transparent min-w-6 w-6 h-6",children:jsxRuntime.jsx(ui.XCloseIcon,{width:20,height:20})})]}),jsxRuntime.jsx(ui.ModalBody,{className:"p-4",children:jsxRuntime.jsx(bo,{chains:e?.chains,onSelectToken:a,onEscape:()=>o(false)})})]})})}function dp({chains:e,onSelectToken:t,className:o}){let{t:s}=i18n.useTranslation(),{isDesktop:r,isMobile:n}=ui.useScreen(),{onOpen:a,onClose:i}=uiScaffold.useAsyncModal(tt),d=hooks.useCallbackRef(t),m=hooks.useCallbackRef(async()=>{let p=await a({params:{chains:e}});p&&d(p);}),l=hooks.useCallbackRef(()=>{i();});return react.useEffect(()=>{let p=c=>{let h=document.activeElement,f=!!h&&(h.tagName==="INPUT"||h.tagName==="TEXTAREA"||h.getAttribute("contenteditable")==="true");c.key==="/"&&!f&&(c.preventDefault(),m()),c.key==="Escape"&&(c.preventDefault(),l());};return window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p);}},[m,l]),jsxRuntime.jsx(ui.Button,{size:"sm",radius:"full",isIconOnly:!r,onPress:m,variant:n?"flat":"bordered",startContent:r?jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"}):void 0,endContent:r?jsxRuntime.jsx(ui.Kbd,{className:"min-w-6 justify-center text-xs bg-transparent border border-border rounded-full",children:"/"}):void 0,className:ui.cn(r&&"pl-3 pr-1.5 text-neutral",o),children:r?s("tokens.search.placeholder"):jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"})})}function wo({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:r}){let{t:n}=i18n.useTranslation(),[a,i]=react.useState(e?.join(", ")??""),[d,m]=react.useState(t?.join(", ")??"");react.useEffect(()=>{i(c=>{let h=Fe(c);return h===void 0&&e===void 0?c:h===void 0?e?.join(", ")??"":e===void 0?"":h.join("")===e.join("")?c:e.join(", ")});},[e]),react.useEffect(()=>{m(c=>{let h=Fe(c);return h===void 0&&t===void 0?c:h===void 0?t?.join(", ")??"":t===void 0?"":h.join("")===t.join("")?c:t.join(", ")});},[t]);let l=react.useCallback(c=>{i(c),o?.(Fe(c));},[o]),p=react.useCallback(c=>{m(c),s?.(Fe(c));},[s]);return jsxRuntime.jsxs("div",{className:ui.cn("grid grid-cols-2 gap-3 px-4",r),children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:n("tokens.filters.keywords.title")}),jsxRuntime.jsx(ui.StyledInput,{variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.keywords.placeholder"),value:a,onValueChange:l})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:n("tokens.filters.keywords.exclude.title")}),jsxRuntime.jsx(ui.StyledInput,{variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.keywords.placeholder"),value:d,onValueChange:p})]})]})}function Fe(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Ao({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:o,className:s}){let{t:r}=i18n.useTranslation(),[n,a]=react.useState(t);react.useEffect(()=>{a(t);},[t]);let i=react.useMemo(()=>e.every(l=>n.includes(l)),[e,n]),d=react.useCallback(()=>{if(i){let l=[];a(l),o?.(l);}else {let l=[...e];a(l),o?.(l);}},[e,o,i]),m=react.useCallback(l=>()=>{if(n.includes(l)){let p=n.filter(c=>c!==l);a(p),o?.(p);}else {let p=[...n,l];a(p),o?.(p);}},[n,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-3 px-4",s),children:[jsxRuntime.jsxs("div",{className:"flex justify-between items-center",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:r("tokens.filters.protocols.title")}),jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",onPress:d,children:r(i?"tokens.filters.protocols.unselectAll":"tokens.filters.protocols.selectAll")})]}),jsxRuntime.jsx("div",{className:"grid grid-cols-3 gap-3",children:e.map(l=>{let p=$(l);return jsxRuntime.jsx(ui.Button,{variant:"bordered",size:"sm",radius:"full",className:ui.cn("w-fit h-6 px-2.5",p.text,p.bg5,"border",p.border,{"opacity-40 data-[hover=true]:!opacity-30":!n.includes(l)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${l}.svg`,alt:utils$1.formatTokenProtocolName(l)}),onPress:m(l),children:utils$1.formatTokenProtocolName(l)},l)})})]})}function D({title:e,field:t,value:o,onChange:s}){let{t:r}=i18n.useTranslation(),[n,a]=react.useState(o?st(o).min:NaN),[i,d]=react.useState(o?st(o).max:NaN);react.useEffect(()=>{if(o===void 0)a(NaN),d(NaN);else {let{min:p,max:c}=st(o);a(p),d(c);}},[o]);let m=react.useCallback(p=>{a(p),s?.(Eo(t,p,i));},[t,s,i]),l=react.useCallback(p=>{d(p),s?.(Eo(t,n,p));},[t,s,n]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[e&&jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:e}),jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[jsxRuntime.jsx(ui.StyledNumberInput,{value:n,onValueChange:m,variant:"bordered",radius:"lg",size:"sm",placeholder:r("tokens.filters.stats.min"),"aria-label":`${e} min`}),jsxRuntime.jsx(ui.StyledNumberInput,{value:i,onValueChange:l,variant:"bordered",radius:"lg",size:"sm",placeholder:r("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function st(e){if(e.operator==="between"){let[t,o]=e.value;return {min:t,max:o}}return e.operator==="gte"?{min:e.value,max:NaN}:e.operator==="lte"?{min:NaN,max:e.value}:{min:NaN,max:NaN}}function Eo(e,t,o){if(!(isNaN(t)&&isNaN(o)))return isNaN(t)?{field:e,operator:"lte",value:o}:isNaN(o)?{field:e,operator:"gte",value:t}:{field:e,operator:"between",value:[t,o]}}function Uo({values:e,onValuesChange:t,className:o}){let{t:s}=i18n.useTranslation(),[r,n]=react.useState(e);react.useEffect(()=>{n(e);},[e]);let a=react.useCallback(i=>d=>{if(d===void 0){let m=(r??[]).filter(l=>l.field!==i);m=m.length>0?m:void 0,n(m),t?.(m);}else {let m=[...(r??[]).filter(l=>l.field!==i),d];n(m),t?.(m);}},[r,t]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",o),children:[jsxRuntime.jsx(D,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:r?.find(i=>i.field==="holders"),onChange:a("holders")}),jsxRuntime.jsx(D,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:r?.find(i=>i.field==="top10Ratio"),onChange:a("top10Ratio")}),jsxRuntime.jsx(D,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:r?.find(i=>i.field==="top100Ratio"),onChange:a("top100Ratio")}),jsxRuntime.jsx(D,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:r?.find(i=>i.field==="creatorsRatio"),onChange:a("creatorsRatio")})]})}function Oo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:r}=i18n.useTranslation(),[n,a]=react.useState(t);react.useEffect(()=>{a(t);},[t]);let i=react.useCallback(d=>m=>{if(m===void 0){let l=(n??[]).filter(p=>p.field!==d);l=l.length>0?l:void 0,a(l),o?.(l);}else {let l=[...(n??[]).filter(p=>p.field!==d),m];a(l),o?.(l);}},[n,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",s),children:[jsxRuntime.jsx(D,{field:"marketCap",title:r("tokens.filters.stats.metrics.marketCap"),value:n?.find(d=>d.field==="marketCap"),onChange:i("marketCap")}),jsxRuntime.jsx(D,{field:"tvl",title:r("tokens.filters.stats.metrics.liquidity"),value:n?.find(d=>d.field==="tvl"),onChange:i("tvl")}),jsxRuntime.jsx(D,{field:`volumes${e}`,title:r("tokens.filters.stats.metrics.volumes",{resolution:r(`common.resolution.${e}`)}),value:n?.find(d=>d.field===`volumes${e}`),onChange:i(`volumes${e}`)}),jsxRuntime.jsx(D,{field:`trades${e}`,title:r("tokens.filters.stats.metrics.txns",{resolution:r(`common.resolution.${e}`)}),value:n?.find(d=>d.field===`trades${e}`),onChange:i(`trades${e}`)})]})}function $o({resolution:e,values:t,onValuesChange:o,className:s}){let{t:r}=i18n.useTranslation(),[n,a]=react.useState("audits"),[i,d]=react.useState(t);react.useEffect(()=>{d(t);},[t]);let m=react.useCallback(c=>{d(c),o?.(c);},[o]),l=react.useMemo(()=>{let c=["holders","top10Ratio","top100Ratio","creatorsRatio"];return i?.filter(h=>c.includes(h.field))?.length??0},[i]),p=react.useMemo(()=>{let c=["marketCap","tvl",`volumes${e}`,`trades${e}`];return i?.filter(h=>c.includes(h.field)).length??0},[i,e]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-3 px-4",s),children:[jsxRuntime.jsxs(ui.StyledLightTabs,{color:"default",radius:"full",size:"sm",selectedKey:n,onSelectionChange:a,children:[jsxRuntime.jsx(ui.Tab,{title:l===0?r("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:l,shape:"circle",children:r("tokens.filters.stats.audits")})},"audits"),jsxRuntime.jsx(ui.Tab,{title:p===0?r("tokens.filters.stats.metrics"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:p,shape:"circle",children:r("tokens.filters.stats.metrics")})},"metrics")]}),jsxRuntime.jsx(Uo,{values:i,onValuesChange:m,className:ui.cn({hidden:n!=="audits"})}),jsxRuntime.jsx(Oo,{values:i,onValuesChange:m,resolution:e,className:ui.cn({hidden:n!=="metrics"})})]})}function Ve({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:r}){let[n,a]=react.useState(zo(o?.filters,e));react.useEffect(()=>{a(zo(o?.filters,e));},[o?.filters,e]);let[i,d]=react.useState(o?.keywords);react.useEffect(()=>{d(o?.keywords);},[o?.keywords]);let[m,l]=react.useState(o?.excludeKeywords);react.useEffect(()=>{l(o?.excludeKeywords);},[o?.excludeKeywords]);let[p,c]=react.useState(o?.filters);react.useEffect(()=>{c(o?.filters);},[o?.filters]);let h=react.useCallback(u=>{a(u),s?.(Be(e,u,i,m,p));},[e,i,m,p,s]),f=react.useCallback(u=>{d(u),s?.(Be(e,n,u,m,p));},[e,n,m,p,s]),k=react.useCallback(u=>{l(u),s?.(Be(e,n,i,u,p));},[e,n,i,p,s]),g=react.useCallback(u=>{c(u),s?.(Be(e,n,i,m,u));},[e,n,i,m,s]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",r),children:[e&&e.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Ao,{protocols:e,selectedProtocols:n,onSelectedProtocolsChange:h}),jsxRuntime.jsx("div",{style:{height:1,background:"rgba(39,39,42,1)"}})]}),jsxRuntime.jsx(wo,{keywords:i,excludeKeywords:m,onKeywordsChange:f,onExcludeKeywordsChange:k}),jsxRuntime.jsx("div",{style:{height:1,background:"rgba(39,39,42,1)"}}),jsxRuntime.jsx($o,{resolution:t,values:p,onValuesChange:g})]})}function zo(e,t){let o=e?.find(s=>s.field==="launchedFromProtocolFamily");return o?o.operator==="in"?o.value:(console.warn("invalid token protocols filter",o),[...t||[]]):[...t||[]]}function Be(e,t,o,s,r){let n=r?[...r.filter(a=>a.field!=="launchedFromProtocolFamily")]:[];return e&&e.length>0&&(e.every(i=>t.includes(i))||n.push({field:"launchedFromProtocolFamily",operator:"in",value:t})),o===void 0&&s===void 0&&n.length===0?void 0:{keywords:o,excludeKeywords:s,filters:n.length>0?n:void 0}}function Go({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:r}=i18n.useTranslation(),{isOpen:n,onOpen:a,onClose:i,onOpenChange:d}=ui.useDisclosure(),[m,l]=react.useState(o),p=react.useCallback(()=>{l(void 0);},[]),c=react.useCallback(()=>{s?.(m),i();},[m,s,i]);react.useEffect(()=>{l(o);},[n,o]);let h=react.useMemo(()=>Object.values(o||{}).every(f=>f===void 0),[o]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("button",{type:"button",onClick:a,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:9999,border:"1px solid rgba(63,63,70,0.5)",background:"rgba(39,39,42,0.6)",width:32,height:32,minHeight:32,cursor:"pointer",position:"relative"},children:[jsxRuntime.jsx(ui.FilterIcon,{width:16,height:16,className:"text-zinc-400"}),!h&&jsxRuntime.jsx("span",{style:{position:"absolute",top:-2,right:-2,width:8,height:8,borderRadius:4,background:"#c7ff2e"}})]}),jsxRuntime.jsx(ui.StyledModal,{isOpen:n,onOpenChange:d,size:"md",scrollBehavior:"inside",children:jsxRuntime.jsxs(ui.ModalContent,{className:"w-full h-full",children:[jsxRuntime.jsx(ui.ModalHeader,{className:"px-4 py-2",children:jsxRuntime.jsx("span",{className:"text-base font-semibold",children:r("tokens.filters.modal.title")})}),jsxRuntime.jsx(ui.ModalBody,{className:"px-0 pt-0 pb-4",children:jsxRuntime.jsx(ui.ScrollShadow,{children:jsxRuntime.jsx(Ve,{protocols:e,resolution:t,filters:m,onFiltersChange:l,className:"pb-4"})})}),jsxRuntime.jsx(ui.ModalFooter,{className:"px-4",children:jsxRuntime.jsxs("div",{className:"w-full flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",color:"default",size:"sm",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:p,children:r("common.reset")}),jsxRuntime.jsx(ui.Button,{color:"primary",size:"sm",radius:"full",onPress:c,children:r("common.apply")})]})})]})})]})}var Yi={display:"inline-flex",alignItems:"center",gap:8,borderRadius:9999,border:"1px solid rgba(63,63,70,0.5)",background:"rgba(39,39,42,0.6)",padding:"6px 12px",fontSize:14,fontWeight:700,color:"#d4d4d8",cursor:"pointer",transition:"all 0.15s",height:32},Zi={position:"absolute",right:0,top:"100%",zIndex:20,marginTop:8,borderRadius:14,border:"1px solid rgba(39,39,42,1)",background:"rgba(24,24,27,1)",boxShadow:"0 25px 50px -12px rgba(0,0,0,0.5)",overflow:"hidden"},ea={height:1,background:"rgba(39,39,42,1)",margin:0};function Zo({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:r}=i18n.useTranslation(),[n,a]=react.useState(false),i=react.useRef(null),[d,m]=react.useState(o),l=react.useCallback(()=>{m(void 0);},[]),p=react.useCallback(()=>{s?.(d),a(false);},[d,s]);react.useEffect(()=>{m(o);},[n,o]),react.useEffect(()=>{let h=f=>{i.current&&!i.current.contains(f.target)&&a(false);};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]),react.useEffect(()=>{if(!n)return;let h=f=>{f.key==="Escape"&&a(false);};return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[n]);let c=react.useMemo(()=>Object.values(o||{}).every(h=>h===void 0),[o]);return jsxRuntime.jsxs("div",{ref:i,style:{position:"relative"},children:[jsxRuntime.jsxs("div",{style:{position:"relative",display:"inline-flex"},children:[jsxRuntime.jsxs("button",{type:"button",style:Yi,onMouseEnter:h=>{h.currentTarget.style.background="rgba(39,39,42,1)";},onMouseLeave:h=>{h.currentTarget.style.background="rgba(39,39,42,0.6)";},onClick:()=>a(h=>!h),children:[jsxRuntime.jsx(ui.FilterIcon,{width:16,height:16,className:"flex-none"}),jsxRuntime.jsx("span",{className:"hidden sm:block",children:r("tokens.listHeader.filter")}),jsxRuntime.jsx(ta,{open:n})]}),!c&&jsxRuntime.jsx("span",{style:{position:"absolute",top:-4,right:-4,minWidth:8,height:8,borderRadius:4,background:"#c7ff2e"}})]}),n&&jsxRuntime.jsxs("div",{style:{...Zi,width:420},children:[jsxRuntime.jsx("div",{style:{padding:"16px 0"},children:jsxRuntime.jsx(ui.ScrollShadow,{className:"w-full max-h-120 px-4",children:jsxRuntime.jsx(Ve,{protocols:e,resolution:t,filters:d,onFiltersChange:m})})}),jsxRuntime.jsx("div",{style:ea}),jsxRuntime.jsxs("div",{style:{padding:"12px 16px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[jsxRuntime.jsx(ui.Button,{variant:"light",size:"sm",color:"default",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:l,children:r("common.reset")}),jsxRuntime.jsx(ui.Button,{variant:"solid",size:"sm",color:"primary",radius:"full",onPress:p,children:r("common.apply")})]})]})]})}function ta({open:e}){return jsxRuntime.jsx("svg",{viewBox:"0 0 24 24",style:{width:14,height:14,color:"#71717a",transition:"transform 0.15s",transform:e?"rotate(180deg)":void 0},fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:jsxRuntime.jsx("path",{d:"m6 9 6 6 6-6"})})}function Wu({popoverPlacement:e="bottom-end",...t}){let{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(Go,{...t}):jsxRuntime.jsx(Zo,{placement:e,...t})}function or({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),r=react.useCallback(n=>{t?.(n);},[t]);return jsxRuntime.jsx(ui.StyledPlainTabs,{color:"primary",radius:"lg",selectedKey:e,onSelectionChange:r,"aria-label":"Select Resolution",classNames:{tabList:"gap-0",tab:"px-2",tabContent:"!text-zinc-500 group-data-[hover=true]:!text-foreground group-data-[selected=true]:!text-primary"},children:o.map(n=>jsxRuntime.jsx(ui.Tab,{title:s(`common.resolution.${n}`)},n))})}var fa={display:"inline-flex",alignItems:"center",gap:4,borderRadius:9999,border:"1px solid rgba(63,63,70,0.5)",background:"rgba(39,39,42,0.6)",padding:"0 10px",fontSize:12,fontWeight:500,color:"#d4d4d8",cursor:"pointer",height:32,minHeight:32},ga={position:"absolute",left:0,top:"100%",zIndex:20,marginTop:6,borderRadius:14,border:"1px solid rgba(39,39,42,1)",background:"rgba(24,24,27,1)",boxShadow:"0 25px 50px -12px rgba(0,0,0,0.5)",overflow:"hidden",padding:"6px",minWidth:"100%"};function sr({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),[r,n]=react.useState(false),a=react.useRef(null),i=react.useCallback(d=>{t?.(d),n(false);},[t]);return react.useEffect(()=>{if(!r)return;let d=l=>{a.current&&!a.current.contains(l.target)&&n(false);},m=l=>{l.key==="Escape"&&n(false);};return document.addEventListener("mousedown",d),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",d),document.removeEventListener("keydown",m);}},[r]),jsxRuntime.jsxs("div",{ref:a,style:{position:"relative",zIndex:50},children:[jsxRuntime.jsxs("button",{type:"button",style:fa,onClick:()=>n(d=>!d),children:[jsxRuntime.jsx("span",{children:e?s(`common.resolution.${e}`):"\u2014"}),jsxRuntime.jsx(ui.ChevronDownIcon,{width:14,height:14,className:"text-zinc-500",style:{transition:"transform 0.15s",transform:r?"rotate(180deg)":void 0}})]}),r&&jsxRuntime.jsx("div",{style:ga,children:o.map(d=>jsxRuntime.jsx("button",{type:"button",onClick:()=>i(d),className:ui.cn("w-full text-left px-3 py-1.5 rounded-lg text-xs font-medium transition-colors cursor-pointer",d===e?"text-primary bg-primary/10":"text-zinc-400 hover:text-foreground hover:bg-zinc-800"),children:s(`common.resolution.${d}`)},d))})]})}function of(e){let{isMobile:t}=ui.useScreen();return t?jsxRuntime.jsx(sr,{...e}):jsxRuntime.jsx(or,{...e})}function ar({token:e}){let{t}=i18n.useTranslation(),o=react.useMemo(()=>e.marketData?.bluechipHoldingsRatio,[e.marketData?.bluechipHoldingsRatio]),s=react.useMemo(()=>o!==void 0&&new utils$1.SafeBigNumber(o).gte(.1),[o]),r=react.useMemo(()=>o===void 0||new utils$1.SafeBigNumber(o).lt(.05),[o]);return jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.bluechip.explained"),children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5",children:[s&&jsxRuntime.jsx(ui.HorsePowerHighIcon,{}),r&&jsxRuntime.jsx(ui.HorsePowerLowIcon,{}),!s&&!r&&jsxRuntime.jsx(ui.HorsePowerIcon,{}),jsxRuntime.jsx("span",{className:ui.cn(s&&"text-bullish",!s&&!r&&"text-bearish",o===void 0&&"text-neutral"),children:utils$1.formatPercent(o)})]})})}function lr({token:e}){let t=ui.useCopyToClipboard(),{t:o}=i18n.useTranslation(),s=react.useCallback(n=>{n.preventDefault(),n.stopPropagation(),t(e.address,()=>ui.toast.success(o("tokens.copied.address")));},[t,e.address,o]),r=hooks.useTickAge(e.createdAt);return jsxRuntime.jsxs("div",{className:"w-full flex justify-start items-center gap-3",children:[jsxRuntime.jsx(J,{token:e,className:"w-10 h-10 sm:w-16 sm:h-16 flex-none"}),jsxRuntime.jsxs("div",{className:"flex-auto flex flex-col gap-1 min-w-0",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("span",{className:"flex-none font-medium tracking-[-0.02em]",children:e.symbol}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.name,children:jsxRuntime.jsxs("div",{className:"flex-initial flex items-center gap-1 min-w-0 text-neutral hover:text-primary-200 cursor-pointer",onClick:s,children:[jsxRuntime.jsx("div",{className:"flex-initial whitespace-nowrap truncate",children:e.name}),jsxRuntime.jsx(ui.CopyIcon,{className:"flex-none w-3 h-3 sm:w-3.5 sm:h-3.5"})]})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{className:"text-primary text-xs sm:text-sm font-medium",children:utils$1.formatAge(r)}),e.socialMedias?.website&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.website,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.WebsiteIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.twitter&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.twitter,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.TwitterIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.telegram&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.telegram,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.TelegramIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),e.socialMedias?.discord&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.discord,className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.DiscordIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})}),jsxRuntime.jsx(ui.Link,{href:utils$1.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})]})}var Ja={neutral:"text-zinc-400",bullish:"text-bullish",bearish:"text-bearish"};function K({icon:e,value:t,tooltip:o,color:s="neutral"}){return jsxRuntime.jsx(ui.StyledTooltip,{content:o,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center text-xs tabular-nums",style:{gap:5},children:[jsxRuntime.jsx("span",{className:"flex-none",style:{color:"#52525b"},children:e}),jsxRuntime.jsx("span",{className:ui.cn(Ja[s]),children:t})]})})}function dr({token:e}){let{t}=i18n.useTranslation(),o=e.marketData,s=react.useMemo(()=>new utils$1.SafeBigNumber(o?.top10HoldingsRatio).gte(.1),[o?.top10HoldingsRatio]),r=react.useMemo(()=>new utils$1.SafeBigNumber(o?.devHoldingsRatio).gte(.1),[o?.devHoldingsRatio]),n=react.useMemo(()=>new utils$1.SafeBigNumber(o?.sniperHoldingsRatio).gte(.1),[o?.sniperHoldingsRatio]),a=react.useMemo(()=>new utils$1.SafeBigNumber(o?.insiderHoldingsRatio).gte(.1),[o?.insiderHoldingsRatio]),i=react.useMemo(()=>new utils$1.SafeBigNumber(o?.bundleHoldingsRatio).gte(.1),[o?.bundleHoldingsRatio]),d=(m,l)=>l===void 0?"neutral":m?"bearish":"bullish";return jsxRuntime.jsxs("div",{className:"w-full h-full flex gap-5 justify-start items-center",children:[jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.PeopleIcon,{width:14,height:14}),value:utils$1.formatAmount(o?.holders),tooltip:t("tokens.tokenInfo.holders")}),jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.KlineCandlesIcon,{width:14,height:14}),value:utils$1.formatAmount(o?.proHolders),tooltip:t("tokens.tokenInfo.proHolders")}),jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.StarIcon,{width:14,height:14}),value:utils$1.formatAmount(o?.kolHolders),tooltip:t("tokens.tokenInfo.kolHolders")})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:14,height:14}),value:utils$1.formatPercent(o?.top10HoldingsRatio),tooltip:t("tokens.tokenInfo.top10HoldingsRatio"),color:d(s,o?.top10HoldingsRatio)}),jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.CookIcon,{width:14,height:14}),value:utils$1.formatPercent(o?.devHoldingsRatio),tooltip:t("tokens.tokenInfo.devHoldingsRatio"),color:d(r,o?.devHoldingsRatio)}),jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:14,height:14}),value:utils$1.formatPercent(o?.sniperHoldingsRatio),tooltip:t("tokens.tokenInfo.sniperHoldingsRatio"),color:d(n,o?.sniperHoldingsRatio)})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.RatIcon,{width:14,height:14}),value:utils$1.formatPercent(o?.insiderHoldingsRatio),tooltip:t("tokens.tokenInfo.insiderHoldingsRatio"),color:d(a,o?.insiderHoldingsRatio)}),jsxRuntime.jsx(K,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:14,height:14}),value:utils$1.formatPercent(o?.bundleHoldingsRatio),tooltip:t("tokens.tokenInfo.bundleHoldingsRatio"),color:d(i,o?.bundleHoldingsRatio)})]})]})}function cr({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function mr({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function fr({token:e,resolution:t}){let o=react.useMemo(()=>e.marketData?.priceInUsd,[e]),s=react.useMemo(()=>e.stats?.[t]?.priceChange,[e,t]),r=react.useMemo(()=>s?new utils$1.SafeBigNumber(s).abs().toString():void 0,[s]),n=react.useMemo(()=>s&&new utils$1.SafeBigNumber(s).gte(0),[s]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatPriceUSD(o)}),jsxRuntime.jsxs("span",{className:ui.cn("inline-flex gap-1 items-center text-xs",n?"text-bullish":"text-bearish"),children:[n?jsxRuntime.jsx(ui.TriangleUpIcon,{width:10,height:10}):jsxRuntime.jsx(ui.TriangleDownIcon,{width:10,height:10}),jsxRuntime.jsx("span",{children:utils$1.formatPercent(r)})]})]})}function hr({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.traders,[e.stats?.[t]?.traders]),s=react.useMemo(()=>e.stats?.[t]?.buyers,[e.stats?.[t]?.buyers]),r=react.useMemo(()=>e.stats?.[t]?.sellers,[e.stats?.[t]?.sellers]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmount(r)})]})]})}function br({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.trades,[e.stats?.[t]?.trades]),s=react.useMemo(()=>e.stats?.[t]?.buys,[e.stats?.[t]?.buys]),r=react.useMemo(()=>e.stats?.[t]?.sells,[e.stats?.[t]?.sells]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmount(r)})]})]})}function Tr({token:e,resolution:t}){let o=react.useMemo(()=>e.stats?.[t]?.volumesInUsd,[e.stats?.[t]?.volumesInUsd]),s=react.useMemo(()=>e.stats?.[t]?.buyVolumesInUsd,[e.stats?.[t]?.buyVolumesInUsd]),r=react.useMemo(()=>e.stats?.[t]?.sellVolumesInUsd,[e.stats?.[t]?.sellVolumesInUsd]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils$1.formatAmountUSD(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils$1.formatAmountUSD(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils$1.formatAmountUSD(r)})]})]})}var cl=`
|
|
22
|
+
@keyframes tklShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
|
|
23
|
+
`,ml={background:"linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.06) 50%, rgba(255,255,255,0.03) 75%)",backgroundSize:"200% 100%",animation:"tklShimmer 1.8s ease-in-out infinite",borderRadius:6};function S(e,t,o,s){return {...ml,animationDelay:`${e}ms`,width:t,height:o,...s}}var yr=10;function vr({rowHeight:e,hasActions:t}){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{children:cl}),Array.from({length:yr}).map((o,s)=>jsxRuntime.jsx(pl,{index:s,rowHeight:e,hasActions:t,isLast:s===yr-1},s))]})}function pl({index:e,rowHeight:t,hasActions:o,isLast:s}){let r=e*80;return jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",height:t,borderBottom:s?void 0:"1px solid rgba(39,39,42,0.3)"},children:[jsxRuntime.jsxs("div",{style:{width:320,padding:"0 12px 0 24px",display:"flex",alignItems:"center",gap:12,flexShrink:0},children:[jsxRuntime.jsx("div",{style:S(r,64,64,{borderRadius:8,flexShrink:0})}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8,flex:1},children:[jsxRuntime.jsx("div",{style:S(r+30,"60%",20)}),jsxRuntime.jsx("div",{style:S(r+60,"80%",16)})]})]}),jsxRuntime.jsxs("div",{style:{width:128,padding:"0 12px",display:"flex",flexDirection:"column",justifyContent:"center",gap:4},children:[jsxRuntime.jsx("div",{style:S(r+20,72,20)}),jsxRuntime.jsx("div",{style:S(r+40,52,16)})]}),jsxRuntime.jsx("div",{style:{width:106,padding:"0 12px",display:"flex",alignItems:"center"},children:jsxRuntime.jsx("div",{style:S(r+30,64,20)})}),jsxRuntime.jsx("div",{style:{width:106,padding:"0 12px",display:"flex",alignItems:"center"},children:jsxRuntime.jsx("div",{style:S(r+40,60,20)})}),jsxRuntime.jsxs("div",{style:{width:138,padding:"0 12px",display:"flex",flexDirection:"column",justifyContent:"center",gap:4},children:[jsxRuntime.jsx("div",{style:S(r+50,72,20)}),jsxRuntime.jsx("div",{style:S(r+70,100,16)})]}),jsxRuntime.jsxs("div",{style:{width:126,padding:"0 12px",display:"flex",flexDirection:"column",justifyContent:"center",gap:4},children:[jsxRuntime.jsx("div",{style:S(r+60,48,20)}),jsxRuntime.jsx("div",{style:S(r+80,80,16)})]}),jsxRuntime.jsxs("div",{style:{width:126,padding:"0 12px",display:"flex",flexDirection:"column",justifyContent:"center",gap:4},children:[jsxRuntime.jsx("div",{style:S(r+70,40,20)}),jsxRuntime.jsx("div",{style:S(r+90,72,16)})]}),jsxRuntime.jsxs("div",{style:{width:128,padding:"0 12px",display:"flex",alignItems:"center",gap:10},children:[jsxRuntime.jsx("div",{style:S(r+80,20,20,{borderRadius:4})}),jsxRuntime.jsx("div",{style:S(r+90,52,20)})]}),jsxRuntime.jsxs("div",{style:{width:308,padding:"0 12px",display:"flex",alignItems:"center",gap:20},children:[jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[jsxRuntime.jsx("div",{style:S(r+80,52,16)}),jsxRuntime.jsx("div",{style:S(r+100,40,16)}),jsxRuntime.jsx("div",{style:S(r+120,36,16)})]}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[jsxRuntime.jsx("div",{style:S(r+90,48,16)}),jsxRuntime.jsx("div",{style:S(r+110,40,16)}),jsxRuntime.jsx("div",{style:S(r+130,40,16)})]}),jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[jsxRuntime.jsx("div",{style:S(r+100,40,16)}),jsxRuntime.jsx("div",{style:S(r+120,36,16)})]})]}),o&&jsxRuntime.jsx("div",{style:{width:124,padding:"0 24px 0 12px",display:"flex",alignItems:"center"},children:jsxRuntime.jsx("div",{style:S(r+100,97,32,{borderRadius:8})})})]})}function re({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:r,sortDirections:n,onSortChange:a,height:i=600,itemHeight:d=88,itemHeightMobile:m=72,className:l}){let{isMobile:p}=ui.useScreen(),{t:c}=i18n.useTranslation(),h=react.useCallback(u=>b=>{b.preventDefault(),b.stopPropagation(),r?.(u);},[r]),[f,k]=react.useState(n??{});react.useEffect(()=>{k(n??{});},[n]);let g=react.useCallback(u=>b=>{let y={[u]:b};k(y),a?.(y);},[a]);return jsxRuntime.jsxs(ui.StyledTable,{isHeaderSticky:true,isVirtualized:true,radius:"lg",className:ui.cn("h-full mx-auto",l??(s?"max-w-379 sm:max-w-403":"max-w-348 sm:max-w-372")),classNames:{loadingWrapper:"flex-col justify-start items-start",emptyWrapper:"pt-30"},style:{background:"rgba(24,24,27,0.4)",borderColor:"rgba(39,39,42,0.6)"},maxTableHeight:i,rowHeight:p?m:d,"aria-label":"Tokens",children:[jsxRuntime.jsx(ui.TableHeader,{children:[jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.token"),width:p?224:320,children:c("tokens.listHeader.token")},"token"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.price"),width:128,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(ui.Sortable,{sort:f.price,onSortChange:g("price"),children:c("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:f[`priceChange${t}`],onSortChange:g(`priceChange${t}`),children:c("tokens.listHeader.priceChange",{resolution:t})})]})},"price"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.marketCap"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:f.marketCap,onSortChange:g("marketCap"),children:c("tokens.listHeader.marketCap")})},"marketCap"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.liquidity"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:f.tvl,onSortChange:g("tvl"),children:c("tokens.listHeader.liquidity")})},"liquidity"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.volumes",{resolution:t}),width:138,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`volumes${t}`],onSortChange:g(`volumes${t}`),children:c("tokens.listHeader.volumes",{resolution:t})})},"volumes"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.txs",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`trades${t}`],onSortChange:g(`trades${t}`),children:c("tokens.listHeader.txs",{resolution:t})})},"txs"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.traders",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:f[`traders${t}`],onSortChange:g(`traders${t}`),children:c("tokens.listHeader.traders",{resolution:t})})},"traders"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.bluechip"),width:128,children:c("tokens.listHeader.bluechip")},"bluechip"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.tokenInfo"),width:308,children:c("tokens.listHeader.tokenInfo")},"tokenInfo"),s?jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.actions"),width:124,align:"end",children:c("tokens.listHeader.actions")},"actions"):void 0].filter(Boolean)}),jsxRuntime.jsx(ui.TableBody,{items:o?[]:e,isLoading:o,loadingContent:jsxRuntime.jsx(vr,{rowHeight:p?m:d,hasActions:!!s}),emptyContent:jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.EmptyIcon,{className:"w-10 h-10 mx-auto text-neutral"}),jsxRuntime.jsx("p",{className:"mt-2 text-sm text-neutral text-center",children:c("common.empty")})]}),children:u=>jsxRuntime.jsx(ui.TableRow,{onClick:r?h(u):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(lr,{token:u,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(fr,{token:u,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(mr,{token:u,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(cr,{token:u,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Tr,{token:u,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(br,{token:u,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(hr,{token:u,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ar,{token:u,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(dr,{token:u,resolution:t})},"tokenInfo"),s?jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(s,{token:u,resolution:t})},"actions"):void 0].filter(Boolean)},u.address)})]})}var Ll=80;function Il(e){return {chain:e.chain,address:e.address,name:e.name??"",symbol:e.symbol??"",decimals:e.decimals??0,image:e.image,description:e.description,socialMedias:e.socialMedias,launchedFrom:e.launchedFrom,migratedTo:e.migratedTo,createdAt:e.createdAt}}function Nr(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Ll)}function Lr({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let r=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),n=react.useRef(r),[a,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(r)!==JSON.stringify(n.current)&&(i(true),m([]),n.current=r);},[r]);let[d,m]=react.useState([]),{data:l,isPending:p}=react$1.useNewTokensQuery(r,{refetchInterval:s});react.useEffect(()=>{l&&(m(f=>{let k=[...f];for(let g of l){let u=k.findIndex(b=>b.address===g.address);u>=0?k[u]=P(k[u],g):k.push(g);}return Nr(k)}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=[...k],u=false;for(let b of f){let y=g.findIndex(w=>w.address===b.address);y>=0?(u=true,g[y]=P(g[y],b)):(u=true,g.push(Il(b)));}return u?Nr(g):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(p||a),[p,a]);return {tokens:d,isLoading:h}}function Dg({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:r,height:n,itemHeight:a,itemHeightMobile:i,className:d}){let[m,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let p=react.useMemo(()=>{let f=Object.keys(m??{})[0],k=m?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,m]),{tokens:c,isLoading:h}=Lr({chain:e,resolution:t,options:p});return jsxRuntime.jsx(re,{tokens:c,isLoading:h,resolution:t,height:n,itemHeight:a,itemHeightMobile:i,ActionsComponent:s,onSelectToken:r,sortDirections:m,onSortChange:l,className:d})}function Mr({chain:e,resolution:t,options:o,refetchInterval:s=12e3}){let r=react.useMemo(()=>({chain:e,resolution:t,...o}),[e,t,o]),n=react.useRef(r),[a,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(r)!==JSON.stringify(n.current)&&(i(true),m([]),n.current=r);},[r]);let[d,m]=react.useState([]),{data:l,isPending:p}=react$1.useStockTokensQuery(r,{refetchInterval:s});react.useEffect(()=>{l&&(m(f=>{let k=[];for(let g of l){let u=f.find(b=>b.address===g.address);k.push(u?P(u,g):g);}return k}),i(false));},[l]);let c=react.useCallback(f=>{m(k=>{let g=[...k],u=false;for(let b of f){let y=g.findIndex(w=>w.address===b.address);y>=0&&(u=true,g[y]=P(g[y],b));}return u?g:k});},[]);react$1.useStockTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(p||a),[p,a]);return {tokens:d,isLoading:h}}function jg({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:r,height:n,itemHeight:a,itemHeightMobile:i,className:d}){let[m,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let p=react.useMemo(()=>{let f=Object.keys(m??{})[0],k=m?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,m]),{tokens:c,isLoading:h}=Mr({chain:e,resolution:t,options:p});return jsxRuntime.jsx(re,{tokens:c,isLoading:h,resolution:t,height:n,itemHeight:a,itemHeightMobile:i,ActionsComponent:s,onSelectToken:r,sortDirections:m,onSortChange:l,className:d})}function oh({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:r,height:n,itemHeight:a,itemHeightMobile:i,className:d}){let[m,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let p=react.useMemo(()=>{let f=Object.keys(m??{})[0],k=m?.[f];return {...o,...f&&k?{sortBy:f,sortDirection:k}:void 0}},[o,m]),{tokens:c,isLoading:h}=Ae({chain:e,resolution:t,options:p});return jsxRuntime.jsx(re,{tokens:c,isLoading:h,resolution:t,height:n,itemHeight:a,itemHeightMobile:i,ActionsComponent:s,onSelectToken:r,sortDirections:m,onSortChange:l,className:d})}var Xl=15e3;function Yl({chain:e,addresses:t,pollMs:o=Xl}){let s=t.length>0,[r,n]=react.useState({}),a=react$1.useTokensQuery({chain:e,addresses:t},{enabled:s,refetchInterval:o});react.useEffect(()=>{a.data&&n(p=>{let c={};for(let h of a.data){let f=p[h.address];c[h.address]=f?P(f,h):h;}return c});},[a.data]);let{subscribeClient:i}=react$1.useDexClient(),d=react.useRef(""),m=t.slice().sort().join(",");m!==d.current&&(d.current=m),react.useEffect(()=>{if(!s)return;let p=[];for(let c of t)p.push(i.subscribeToken(e,c,h=>{n(f=>{let k=f;for(let g of h){let u=k[g.address];if(!u)continue;let b=P(u,g);b!==u&&(k=k===f?{...f}:k,k[g.address]=b);}return k});}));return ()=>{for(let c of p)c.unsubscribe();}},[i,e,m,s]);let l=react.useCallback(async()=>{await a.refetch();},[a.refetch]);return {tokens:r,isPending:a.isPending,isFetching:a.isFetching,isError:a.isError,isSuccess:a.isSuccess,error:a.error,refetch:l}}exports.NewTokenListWidget=Dg;exports.PulseFinalStretchListWidget=hc;exports.PulseList=Z;exports.PulseListHeader=Tt;exports.PulseListItem=Rt;exports.PulseListItemSkeleton=vt;exports.PulseMigratedListWidget=nc;exports.PulseNewListWidget=jd;exports.SEARCH_MODAL_ID=tt;exports.SearchHistoryUI=Yt;exports.SearchHistoryWidget=Zt;exports.SearchInputUI=eo;exports.SearchModal=ep;exports.SearchResultItemUI=Ce;exports.SearchResultListHeader=Ne;exports.SearchResultListSkeleton=Ie;exports.SearchResultListWidget=lo;exports.SearchTokensButton=dp;exports.SearchWidget=bo;exports.StockTokenListWidget=jg;exports.TokenAvatar=J;exports.TokenList=re;exports.TokenListFilter=Ve;exports.TokenListFilterModal=Go;exports.TokenListFilterPopover=Zo;exports.TokenListFilterWidget=Wu;exports.TokenListResolutionSelectorDesktop=or;exports.TokenListResolutionSelectorMobile=sr;exports.TokenListResolutionSelectorWidget=of;exports.TrendingTokenListWidget=oh;exports.useNewTokensScript=Lr;exports.usePulseFinalStretchListScript=jt;exports.usePulseMigratedListScript=Kt;exports.usePulseNewListScript=Ot;exports.useSearchHistory=we;exports.useSearchResultListScript=io;exports.useSearchScript=ho;exports.useStockTokensScript=Mr;exports.useTokens=Yl;exports.useTrendingTokensScript=Ae;exports.version=Fr;//# sourceMappingURL=index.js.map
|
|
22
24
|
//# sourceMappingURL=index.js.map
|