@liberfi.io/ui-tokens 0.1.61 → 0.1.63
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 +13 -5
- package/dist/index.d.ts +13 -5
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
package/dist/index.d.mts
CHANGED
|
@@ -12,7 +12,7 @@ declare global {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
declare const _default: "0.1.
|
|
15
|
+
declare const _default: "0.1.63";
|
|
16
16
|
|
|
17
17
|
interface PulseListProps {
|
|
18
18
|
/** list title */
|
|
@@ -33,8 +33,10 @@ interface PulseListProps {
|
|
|
33
33
|
onPauseChange?: (isPaused: boolean) => void;
|
|
34
34
|
/** custom styles */
|
|
35
35
|
className?: string;
|
|
36
|
+
/** whether to hide the header */
|
|
37
|
+
hideHeader?: boolean;
|
|
36
38
|
}
|
|
37
|
-
declare function PulseList({ title, tokens, isLoading, itemHeight, renderHeaderExtra, renderItemAction, onSelectToken, onPauseChange, className, }: PulseListProps): react_jsx_runtime.JSX.Element;
|
|
39
|
+
declare function PulseList({ title, tokens, isLoading, itemHeight, renderHeaderExtra, renderItemAction, onSelectToken, onPauseChange, className, hideHeader, }: PulseListProps): react_jsx_runtime.JSX.Element;
|
|
38
40
|
|
|
39
41
|
interface PulseListHeaderProps {
|
|
40
42
|
title: string;
|
|
@@ -93,8 +95,10 @@ interface PulseNewListWidgetProps {
|
|
|
93
95
|
onSelectToken?: (token: Token) => void;
|
|
94
96
|
/** custom styles */
|
|
95
97
|
className?: string;
|
|
98
|
+
/** whether to hide the header */
|
|
99
|
+
hideHeader?: boolean;
|
|
96
100
|
}
|
|
97
|
-
declare function PulseNewListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseNewListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
101
|
+
declare function PulseNewListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseNewListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
98
102
|
|
|
99
103
|
type UsePulseMigratedListScriptParams = {
|
|
100
104
|
/** chain id */
|
|
@@ -125,8 +129,10 @@ interface PulseMigratedListWidgetProps {
|
|
|
125
129
|
onSelectToken?: (token: Token) => void;
|
|
126
130
|
/** custom styles */
|
|
127
131
|
className?: string;
|
|
132
|
+
/** whether to hide the header */
|
|
133
|
+
hideHeader?: boolean;
|
|
128
134
|
}
|
|
129
|
-
declare function PulseMigratedListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseMigratedListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
135
|
+
declare function PulseMigratedListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseMigratedListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
130
136
|
|
|
131
137
|
type UsePulseFinalStretchListScriptParams = {
|
|
132
138
|
/** chain id */
|
|
@@ -157,8 +163,10 @@ interface PulseFinalStretchListWidgetProps {
|
|
|
157
163
|
onSelectToken?: (token: Token) => void;
|
|
158
164
|
/** custom styles */
|
|
159
165
|
className?: string;
|
|
166
|
+
/** whether to hide the header */
|
|
167
|
+
hideHeader?: boolean;
|
|
160
168
|
}
|
|
161
|
-
declare function PulseFinalStretchListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseFinalStretchListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
169
|
+
declare function PulseFinalStretchListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseFinalStretchListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
162
170
|
|
|
163
171
|
type PulseListType = "new" | "final_stretch" | "migrated";
|
|
164
172
|
interface PulseListItemActionProps {
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ declare global {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
declare const _default: "0.1.
|
|
15
|
+
declare const _default: "0.1.63";
|
|
16
16
|
|
|
17
17
|
interface PulseListProps {
|
|
18
18
|
/** list title */
|
|
@@ -33,8 +33,10 @@ interface PulseListProps {
|
|
|
33
33
|
onPauseChange?: (isPaused: boolean) => void;
|
|
34
34
|
/** custom styles */
|
|
35
35
|
className?: string;
|
|
36
|
+
/** whether to hide the header */
|
|
37
|
+
hideHeader?: boolean;
|
|
36
38
|
}
|
|
37
|
-
declare function PulseList({ title, tokens, isLoading, itemHeight, renderHeaderExtra, renderItemAction, onSelectToken, onPauseChange, className, }: PulseListProps): react_jsx_runtime.JSX.Element;
|
|
39
|
+
declare function PulseList({ title, tokens, isLoading, itemHeight, renderHeaderExtra, renderItemAction, onSelectToken, onPauseChange, className, hideHeader, }: PulseListProps): react_jsx_runtime.JSX.Element;
|
|
38
40
|
|
|
39
41
|
interface PulseListHeaderProps {
|
|
40
42
|
title: string;
|
|
@@ -93,8 +95,10 @@ interface PulseNewListWidgetProps {
|
|
|
93
95
|
onSelectToken?: (token: Token) => void;
|
|
94
96
|
/** custom styles */
|
|
95
97
|
className?: string;
|
|
98
|
+
/** whether to hide the header */
|
|
99
|
+
hideHeader?: boolean;
|
|
96
100
|
}
|
|
97
|
-
declare function PulseNewListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseNewListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
101
|
+
declare function PulseNewListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseNewListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
98
102
|
|
|
99
103
|
type UsePulseMigratedListScriptParams = {
|
|
100
104
|
/** chain id */
|
|
@@ -125,8 +129,10 @@ interface PulseMigratedListWidgetProps {
|
|
|
125
129
|
onSelectToken?: (token: Token) => void;
|
|
126
130
|
/** custom styles */
|
|
127
131
|
className?: string;
|
|
132
|
+
/** whether to hide the header */
|
|
133
|
+
hideHeader?: boolean;
|
|
128
134
|
}
|
|
129
|
-
declare function PulseMigratedListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseMigratedListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
135
|
+
declare function PulseMigratedListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseMigratedListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
130
136
|
|
|
131
137
|
type UsePulseFinalStretchListScriptParams = {
|
|
132
138
|
/** chain id */
|
|
@@ -157,8 +163,10 @@ interface PulseFinalStretchListWidgetProps {
|
|
|
157
163
|
onSelectToken?: (token: Token) => void;
|
|
158
164
|
/** custom styles */
|
|
159
165
|
className?: string;
|
|
166
|
+
/** whether to hide the header */
|
|
167
|
+
hideHeader?: boolean;
|
|
160
168
|
}
|
|
161
|
-
declare function PulseFinalStretchListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, }: PulseFinalStretchListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
169
|
+
declare function PulseFinalStretchListWidget({ chain, title, renderHeaderExtra, renderItemAction, onSelectToken, className, hideHeader, }: PulseFinalStretchListWidgetProps): react_jsx_runtime.JSX.Element;
|
|
162
170
|
|
|
163
171
|
type PulseListType = "new" | "final_stretch" | "migrated";
|
|
164
172
|
interface PulseListItemActionProps {
|
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.63");var Ds="0.1.63";function Tt({title:e,isPaused:t,extra:o,className:s}){let{t:n}=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:n("tokens.pulse.paused")})]})]}),o&&jsxRuntime.jsx("div",{className:"flex items-center gap-3",children:o})]})}function bt({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 Ws={[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"}},_s={text:"text-neutral",bg:"bg-neutral",bg5:"bg-neutral/5",bg20:"bg-neutral/20",border:"border-neutral"};function q(e){return Ws[e]??_s}function ee({token:e,enablePreview:t=true,enableSearch:o=true,showProgress:s=true,showProtocolFamily:n=true,radius:r="sm",className:d,classNames:a}){let u=react.useMemo(()=>e.launchedFrom?.protocolFamily?utils$1.parseTokenProtocolFamily(e.chain,e.launchedFrom.protocolFamily):void 0,[e.chain,e.launchedFrom?.protocolFamily]),i=react.useMemo(()=>n&&u,[n,u]),l=react.useMemo(()=>s&&e.migrateProgress&&new utils$1.SafeBigNumber(e.migrateProgress).lt(100),[s,e.migrateProgress]),m=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]),[k,f]=react.useState(false),h=react.useCallback(()=>{f(true);},[]),g=react.useCallback(()=>{f(false);},[]),p=react.useCallback(T=>{if(T.stopPropagation(),!e.image)return;let v=utils$1.searchImageUrl(e.image);window.open(v,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.cn("relative justify-center items-center",d??"w-15 h-15"),children:[!l&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0",`rounded-${r}`,u?q(u).bg:"bg-bullish",a?.background)}),l&&jsxRuntime.jsx("div",{className:ui.cn("absolute -inset-0.5",`rounded-${r}`),children:jsxRuntime.jsx(qs,{className:ui.cn(u?q(u).text:"text-bullish",a?.progress),progress:e.migrateProgress??"0"})}),jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 p-px flex items-center justify-center",`rounded-${r}`,u?q(u).bg20:"bg-bullish/20",a?.avatarWrapper),children:jsxRuntime.jsx(zs,{token:e,radius:r,enableSearch:o,enablePreview:t,classNames:a,children:jsxRuntime.jsxs("div",{className:ui.cn("relative w-full h-full bg-content1 flex items-center justify-center p-0.5",`rounded-${r}`,k&&m&&"cursor-pointer"),onMouseEnter:h,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-${r}`,a?.avatar)}),k&&m&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${r}`,a?.searchWrapper),onClick:p,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.cn("w-6 h-6",a?.searchIcon)})})]})})}),i&&jsxRuntime.jsx("div",{className:"contents",children:jsxRuntime.jsx(ui.StyledTooltip,{content:e.launchedFrom?.protocolFamily??u,placement:"bottom",children:jsxRuntime.jsx("div",{className:ui.cn("absolute -bottom-1 -right-1 rounded-full p-px w-4 h-4",u&&q(u).bg,a?.protocolFamilyIconWrapper),children:jsxRuntime.jsx(ui.Image,{removeWrapper:true,src:`/images/protocols/${u}.svg`,className:ui.cn("w-full h-full rounded-full bg-content1",a?.protocolFamilyIcon)})})})})]})}function zs({token:e,radius:t,enableSearch:o,enablePreview:s,classNames:n,children:r}){return react.useMemo(()=>s&&e.image,[s,e.image])?jsxRuntime.jsx(ui.StyledTooltip,{content:jsxRuntime.jsx(js,{token:e,radius:t,enableSearch:o,classNames:n}),closeDelay:100,placement:"bottom-start",classNames:{content:"p-1"},children:r}):r}function js({token:e,enableSearch:t,radius:o,classNames:s}){let n=react.useMemo(()=>t&&e.image,[t,e.image]),r=react.useMemo(()=>(e.symbol??e.name??e.address??"L").slice(0,1).toUpperCase(),[e.symbol,e.name,e.address]),[d,a]=react.useState(false),u=react.useCallback(()=>{a(true);},[]),i=react.useCallback(()=>{a(false);},[]),l=react.useCallback(m=>{if(m.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}`,d&&n&&"cursor-pointer",s?.previewWrapper),onMouseEnter:u,onMouseLeave:i,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:r,className:ui.cn("w-full h-full bg-content1 text-neutral text-3xl",`rounded-${o}`,s?.previewAvatar)}),d&&n&&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 qs({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,5 @@
|
|
|
18
18
|
Q 76 2 76 6
|
|
19
19
|
L 76 72
|
|
20
20
|
Q 76 76 76 76
|
|
21
|
-
`})]})}function Lt({token:e,renderAction:t,isLast:o=false,onSelectToken:s,className:n}){let{t:r}=i18n.useTranslation(),l=ui.useCopyToClipboard(),a=hooks.useTickAge(e.createdAt),u=react.useCallback(()=>{s?.(e);},[s,e]),i=react.useCallback(T=>{T.stopPropagation(),l(e.address,()=>ui.toast.success(r("tokens.copied.address")));},[l,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]),h=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),g=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[k,p]=react.useMemo(()=>{let T=Number(e.stats?.["1h"]?.buys??0),v=Number(e.stats?.["1h"]?.sells??0),L=T+v;if(L===0)return [12,12];let xe=Math.round(T/L*24);return [xe,24-xe]},[e.stats]),f=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 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(ee,{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:i,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:i,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(de,{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(de,{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(de,{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(de,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:h}),jsxRuntime.jsx(de,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.bundleHoldingsRatio),tooltip:r("tokens.tokenInfo.bundleHoldingsRatio"),warning:g}),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",f),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:`${p}px`}})]})]})]})]})})}function de({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 Tr=124,Rt=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(Lt,{token:o[e],isLast:e===o.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(bt,{isLast:e===s-1})})}function se({title:e,tokens:t,isLoading:o,itemHeight:s=Tr,renderHeaderExtra:n,renderItemAction:r,onSelectToken:l,onPauseChange:a,className:u}){let i=o||!t?void 0:t,d=i?i.length:Rt,m=react.useMemo(()=>({data:i,skeletonCount:Rt,renderItemAction:r,onSelectToken:l}),[i,r,l]),[c,h]=react.useState(false),g=react.useCallback(()=>{h(true),a?.(true);},[a]),k=react.useCallback(()=>{h(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:g,onMouseLeave:k,children:[jsxRuntime.jsx(Tt,{title:e,isPaused:c,extra:n}),jsxRuntime.jsx("div",{className:"flex-1 w-full overflow-hidden",children:jsxRuntime.jsx(reactWindow.List,{className:"h-full w-full",rowCount:d,rowHeight:s,rowComponent:xr,rowProps:m,overscanCount:5})})]})}function je(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 vr(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of yr)t[s]&&(o[s]=e[s]?je(e[s],t[s]):t[s]);return o}function Sr(e,t){return t?e?je(e,t):t:e}function we(e,t){return t?e?je(e,t):t:e}function w(e,t){let{chain:o,address:s,stats:n,marketData:r,socialMedias:l,security:a,launchedFrom:u,migratedTo:i,...d}=t,m={...e};for(let c of Object.keys(d))d[c]!==void 0&&(m[c]=d[c]);return m.stats=vr(e.stats,n),m.marketData=Sr(e.marketData,r),m.socialMedias=we(e.socialMedias,l),m.security=we(e.security,a),m.launchedFrom=we(e.launchedFrom,u),m.migratedTo=we(e.migratedTo,i),m}var Cr=80;function Lr(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 Dt(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Cr)}function Et({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),[l,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(i(g=>{let k=n.current,p=[...g];for(let f of d){let T=p.findIndex(v=>v.address===f.address);T>=0?p[T]=w(p[T],f):k||p.push(f);}return k?p:Dt(p)}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=n.current,f=[...k],T=false;for(let v of g){let L=f.findIndex(xe=>xe.address===v.address);L>=0?(T=true,f[L]=w(f[L],v)):p||(T=true,f.push(Lr(v)));}return T?p?f:Dt(f):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let h=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:h}}function ic({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:i}=Et({chain:e,isPaused:l}),d=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(se,{title:t,tokens:u,isLoading:i,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:d,className:r})}function _t({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),[l,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(i(g=>{let k=n.current,p=[...g];for(let f of d){let T=p.findIndex(v=>v.address===f.address);T>=0?p[T]=w(p[T],f):k||p.unshift(f);}return p}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=[...k],f=false;for(let T of g){let v=p.findIndex(L=>L.address===T.address);v>=0&&(f=true,p[v]=w(p[v],T));}return f?p:k});},[]);react$1.useMigratedTokensSubscription({chain:e},c);let h=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:h}}function Tc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:i}=_t({chain:e,isPaused:l}),d=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(se,{title:t,tokens:u,isLoading:i,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:d,className:r})}function _r(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),[l,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:d,isPending:m}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{d&&(i(g=>{let k=n.current,p=[...g];for(let f of d){let T=p.findIndex(v=>v.address===f.address);T>=0?p[T]=w(p[T],f):k||p.push(f);}return k?p:_r(p)}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=[...k],f=false;for(let T of g){let v=p.findIndex(L=>L.address===T.address);v>=0&&(f=true,p[v]=w(p[v],T));}return f?p:k});},[]);react$1.useFinalStretchTokensSubscription({chain:e},c);let h=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:h}}function Ic({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:i}=jt({chain:e,isPaused:l}),d=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(se,{title:t,tokens:u,isLoading:i,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:d,className:r})}var qr=10,Qr=utils.atomWithStorage("liberfi:search_histories",[],void 0,{getOnInit:true});function Pe(){let[e,t]=jotai.useAtom(Qr),o=react.useCallback(n=>{let r=n.trim();r&&t(l=>{let a=l.filter(u=>u!==r);return [r,...a].slice(0,qr)});},[t]),s=react.useCallback(()=>{t([]);},[t]);return {histories:e,addHistory:o,clearHistories:s}}function Jt({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 Xt({onSelect:e,className:t}){let{histories:o,clearHistories:s}=Pe();return jsxRuntime.jsx(Jt,{className:ui.cn(t),histories:o,onSelect:e,onClear:s})}function Zt({value:e,onValueChange:t,onClear:o,onPaste:s,className:n}){let{t:r}=i18n.useTranslation(),l=hooks.useClipboardRead(s);return jsxRuntime.jsx("div",{className:n,children:jsxRuntime.jsx(ui.StyledInput,{autoFocus:true,variant:"flat",radius:"full",value:e,onValueChange:t,placeholder:r("tokens.search.placeholder"),startContent:jsxRuntime.jsx(ui.SearchIcon,{width:20,height:20,className:"text-neutral"}),endContent:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[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})}),!e&&jsxRuntime.jsx(ui.Button,{isIconOnly:true,className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:l,children:jsxRuntime.jsx(ui.CopyIcon,{width:18,height:18})})]})})})}function so({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]),l=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]),i=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(ee,{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(l)]})]})]})]}),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",i?"text-bullish":"text-bearish"),children:[i?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 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 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 no({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 io({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:l,hasNextPage:a,fetchNextPage:u}=react$1.useSearchTokensInfiniteQuery(s,{enabled:!!e});return {tokens:react.useMemo(()=>n?.pages.flatMap(d=>d.data)??[],[n]),isLoading:r,isFetchingNextPage:l,hasNextPage:a??false,fetchNextPage:u}}var Rn=56;function co({onSelectToken:e,className:t,...o}){let{tokens:s,isLoading:n,isFetchingNextPage:r,hasNextPage:l,fetchNextPage:a}=io(o),u=react.useRef(null),{height:i}=hooks.useResizeObserver({ref:u}),d=react.useCallback(g=>g<s.length,[s]),m=react.useCallback(async()=>{l&&!r&&await a();},[l,r,a]),c=react.useMemo(()=>l?s.length+1:s.length,[s,l]),h=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:d,loadMoreRows:m,rowCount:c,threshold:5});return n?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(no,{})]}):s.length===0?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(Mn,{})]}):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:u,children:jsxRuntime.jsx(reactWindow.List,{style:{height:i},onRowsRendered:h,rowComponent:An,rowCount:c,rowHeight:Rn,rowProps:{tokens:s,onSelectToken:e},overscanCount:5})})]})}function An({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(so,{token:n})}):jsxRuntime.jsx("div",{style:t,className:"flex items-center justify-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})}function Mn(){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 po({onKeywordChange:e}){let[t,o]=react.useState(""),[s,n]=react.useState(""),{addHistory:r}=Pe(),l=hooks.useCallbackRef(e),a=hooks.useCallbackRef(r),u=react.useMemo(()=>utils$1.debounce(c=>{n(c),l(c),c&&a(c);},500),[l,a]),i=react.useCallback(c=>{o(c),u(c);},[u]),d=react.useCallback(c=>{u.cancel(),o(c),n(c),l(c),c&&a(c);},[u,l,a]),m=react.useCallback(()=>d(""),[d]);return {text:t,keyword:s,setText:i,setKeyword:d,clearKeyword:m}}function fo({chains:e,onKeywordChange:t,onSelectToken:o}){let{text:s,keyword:n,setText:r,setKeyword:l,clearKeyword:a}=po({onKeywordChange:t});return jsxRuntime.jsxs("div",{className:"w-full h-full flex flex-col gap-3",children:[jsxRuntime.jsx(Zt,{value:s,onValueChange:r,onClear:a,onPaste:l}),n?jsxRuntime.jsx(co,{className:"flex-auto min-h-0",keyword:n,chains:e,onSelectToken:o}):jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col",children:[jsxRuntime.jsx(Xt,{onSelect:l}),jsxRuntime.jsx(Un,{})]})]})}function Un(){let{t:e}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col items-center justify-start text-neutral pt-20",children:[jsxRuntime.jsx(ui.SearchIcon,{width:32,height:32,className:"opacity-40"}),jsxRuntime.jsx("p",{className:"mt-3 text-sm",children:e("tokens.search.hint")})]})}var Xe="search";function su({id:e=Xe}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Qn,{...t})})}function Qn({params:e,isOpen:t,onOpenChange:o,onResult:s}){let{t:n}=i18n.useTranslation(),{isMobile:r}=ui.useScreen(),l=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",children:[jsxRuntime.jsxs(ui.ModalHeader,{className:"sm:hidden flex items-center justify-between px-4 py-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(fo,{chains:e?.chains,onSelectToken:l})})]})})}function uu({chains:e,onSelectToken:t,className:o}){let{t:s}=i18n.useTranslation(),{isDesktop:n,isMobile:r}=ui.useScreen(),{onOpen:l,onClose:a}=uiScaffold.useAsyncModal(Xe),u=hooks.useCallbackRef(t),i=hooks.useCallbackRef(async()=>{let m=await l({params:{chains:e}});m&&u(m);}),d=hooks.useCallbackRef(()=>{a();});return react.useEffect(()=>{let m=c=>{let h=document.activeElement,g=!!h&&(h.tagName==="INPUT"||h.tagName==="TEXTAREA"||h.getAttribute("contenteditable")==="true");c.key==="/"&&!g&&(c.preventDefault(),i()),c.key==="Escape"&&(c.preventDefault(),d());};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m);}},[i,d]),jsxRuntime.jsx(ui.Button,{size:"sm",radius:"full",isIconOnly:!n,onPress:i,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 yo({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:n}){let{t:r}=i18n.useTranslation(),[l,a]=react.useState(e?.join(", ")??""),[u,i]=react.useState(t?.join(", ")??"");react.useEffect(()=>{a(c=>{let h=Re(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(()=>{i(c=>{let h=Re(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 d=react.useCallback(c=>{a(c),o?.(Re(c));},[o]),m=react.useCallback(c=>{i(c),s?.(Re(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:l,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 Re(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Co({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,l]=react.useState(t);react.useEffect(()=>{l(t);},[t]);let a=react.useMemo(()=>e.every(d=>r.includes(d)),[e,r]),u=react.useCallback(()=>{if(a){let d=[];l(d),o?.(d);}else {let d=[...e];l(d),o?.(d);}},[e,o,a]),i=react.useCallback(d=>()=>{if(r.includes(d)){let m=r.filter(c=>c!==d);l(m),o?.(m);}else {let m=[...r,d];l(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:i(d),children:utils$1.formatTokenProtocolName(d)},d)})})]})}function E({title:e,field:t,value:o,onChange:s}){let{t:n}=i18n.useTranslation(),[r,l]=react.useState(o?et(o).min:NaN),[a,u]=react.useState(o?et(o).max:NaN);react.useEffect(()=>{if(o===void 0)l(NaN),u(NaN);else {let{min:m,max:c}=et(o);l(m),u(c);}},[o]);let i=react.useCallback(m=>{l(m),s?.(Ao(t,m,a));},[t,s,a]),d=react.useCallback(m=>{u(m),s?.(Ao(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:i,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 et(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 Ao(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 Ho({values:e,onValuesChange:t,className:o}){let{t:s}=i18n.useTranslation(),[n,r]=react.useState(e);react.useEffect(()=>{r(e);},[e]);let l=react.useCallback(a=>u=>{if(u===void 0){let i=(n??[]).filter(d=>d.field!==a);i=i.length>0?i:void 0,r(i),t?.(i);}else {let i=[...(n??[]).filter(d=>d.field!==a),u];r(i),t?.(i);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",o),children:[jsxRuntime.jsx(E,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:n?.find(a=>a.field==="holders"),onChange:l("holders")}),jsxRuntime.jsx(E,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(a=>a.field==="top10Ratio"),onChange:l("top10Ratio")}),jsxRuntime.jsx(E,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(a=>a.field==="top100Ratio"),onChange:l("top100Ratio")}),jsxRuntime.jsx(E,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(a=>a.field==="creatorsRatio"),onChange:l("creatorsRatio")})]})}function Fo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,l]=react.useState(t);react.useEffect(()=>{l(t);},[t]);let a=react.useCallback(u=>i=>{if(i===void 0){let d=(r??[]).filter(m=>m.field!==u);d=d.length>0?d:void 0,l(d),o?.(d);}else {let d=[...(r??[]).filter(m=>m.field!==u),i];l(d),o?.(d);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",s),children:[jsxRuntime.jsx(E,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(u=>u.field==="marketCap"),onChange:a("marketCap")}),jsxRuntime.jsx(E,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(u=>u.field==="tvl"),onChange:a("tvl")}),jsxRuntime.jsx(E,{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(E,{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 Wo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,l]=react.useState("audits"),[a,u]=react.useState(t);react.useEffect(()=>{u(t);},[t]);let i=react.useCallback(c=>{u(c),o?.(c);},[o]),d=react.useMemo(()=>{let c=["holders","top10Ratio","top100Ratio","creatorsRatio"];return a?.filter(h=>c.includes(h.field))?.length??0},[a]),m=react.useMemo(()=>{let c=["marketCap","tvl",`volumes${e}`,`trades${e}`];return a?.filter(h=>c.includes(h.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:l,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(Ho,{values:a,onValuesChange:i,className:ui.cn({hidden:r!=="audits"})}),jsxRuntime.jsx(Fo,{values:a,onValuesChange:i,resolution:e,className:ui.cn({hidden:r!=="metrics"})})]})}function Oe({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:n}){let[r,l]=react.useState(Vo(o?.filters,e));react.useEffect(()=>{l(Vo(o?.filters,e));},[o?.filters,e]);let[a,u]=react.useState(o?.keywords);react.useEffect(()=>{u(o?.keywords);},[o?.keywords]);let[i,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 h=react.useCallback(f=>{l(f),s?.(Ue(e,f,a,i,m));},[e,a,i,m,s]),g=react.useCallback(f=>{u(f),s?.(Ue(e,r,f,i,m));},[e,r,i,m,s]),k=react.useCallback(f=>{d(f),s?.(Ue(e,r,a,f,m));},[e,r,a,m,s]),p=react.useCallback(f=>{c(f),s?.(Ue(e,r,a,i,f));},[e,r,a,i,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(Co,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:h}),jsxRuntime.jsx(ui.StyledDivider,{})]}),jsxRuntime.jsx(yo,{keywords:a,excludeKeywords:i,onKeywordsChange:g,onExcludeKeywordsChange:k}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsx(Wo,{resolution:t,values:m,onValuesChange:p})]})}function Vo(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 Ue(e,t,o,s,n){let r=n?[...n.filter(l=>l.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 jo({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:l,onClose:a,onOpenChange:u}=ui.useDisclosure(),[i,d]=react.useState(o),m=react.useCallback(()=>{d(void 0);},[]),c=react.useCallback(()=>{s?.(i),a();},[i,s,a]);react.useEffect(()=>{d(o);},[r,o]);let h=react.useMemo(()=>Object.values(o||{}).every(g=>g===void 0),[o]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{isIconOnly:true,size:"sm",radius:"full",onPress:l,className:"bg-transparent",children:h?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(Oe,{protocols:e,resolution:t,filters:i,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")})]})})]})})]})}function Jo({protocols:e,resolution:t,filters:o,onFiltersChange:s,...n}){let{t:r}=i18n.useTranslation(),{isOpen:l,onClose:a,onOpenChange:u}=ui.useDisclosure(),[i,d]=react.useState(o),m=react.useCallback(()=>{d(void 0);},[]),c=react.useCallback(()=>{s?.(i),a();},[i,s,a]);react.useEffect(()=>{d(o);},[l,o]);let h=react.useMemo(()=>Object.values(o||{}).every(g=>g===void 0),[o]);return jsxRuntime.jsxs(ui.StyledPopover,{...n,isOpen:l,onOpenChange:u,children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.StyledSolidButton,{color:"default",size:"sm",radius:"full",className:"font-bold text-sm",startContent:h?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"})}),endContent:jsxRuntime.jsx(ui.ChevronDownIcon,{width:16,height:16,className:"data-[open=true]:-rotate-180 transition-transform flex-none","data-open":l}),children:r("tokens.listHeader.filter")})}),jsxRuntime.jsx(ui.PopoverContent,{children:jsxRuntime.jsxs("div",{className:"w-md py-4 px-0 flex flex-col gap-4",children:[jsxRuntime.jsx(ui.ScrollShadow,{className:"w-full max-h-120",children:jsxRuntime.jsx(Oe,{protocols:e,resolution:t,filters:i,onFiltersChange:d})}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsxs("div",{className:"w-full px-4 flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",size:"sm",color:"default",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:m,children:r("common.reset")}),jsxRuntime.jsx(ui.Button,{variant:"solid",size:"sm",color:"primary",radius:"full",onPress:c,children:r("common.apply")})]})]})})]})}function zp({popoverPlacement:e="bottom-end",...t}){let{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(jo,{...t}):jsxRuntime.jsx(Jo,{placement:e,...t})}function Zo({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"},children:o.map(r=>jsxRuntime.jsx(ui.Tab,{title:s(`common.resolution.${r}`)},r))})}function ts({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),{isOpen:n,onOpen:r,onClose:l,onOpenChange:a}=ui.useDisclosure(),u=react.useCallback(i=>{t?.(i),l();},[t,l]);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(i=>jsxRuntime.jsx(ui.StyledSolidButton,{color:i===e?"primary":"default",radius:"full",size:"sm",onPress:()=>u(i),children:s(`common.resolution.${i}`)},i))})})]})})]})}function df(e){let{isMobile:t}=ui.useScreen();return t?jsxRuntime.jsx(ts,{...e}):jsxRuntime.jsx(Zo,{...e})}function rs({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 ns({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(ee,{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 as({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]),l=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]),i=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),d=react.useMemo(()=>new utils$1.SafeBigNumber(i).gte(.1),[i]),m=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(m).gte(.1),[m]),h=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),g=react.useMemo(()=>new utils$1.SafeBigNumber(h).gte(.1),[h]);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:l?"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":i===void 0?"default":"primary",children:utils$1.formatPercent(i)})})]}),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:g?"danger":h===void 0?"default":"primary",children:utils$1.formatPercent(h)})})]})]})}function is({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ls({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ms({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 ps({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 gs({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 ks({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 Ts=5;function xs({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:Ts}).map((o,s)=>jsxRuntime.jsx(ml,{rowHeight:e,hasBorderBottom:s!==Ts-1,hasActions:t},s))})}function ml({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(ul,{}),jsxRuntime.jsx(pl,{}),jsxRuntime.jsx(fl,{}),jsxRuntime.jsx(gl,{}),jsxRuntime.jsx(hl,{}),jsxRuntime.jsx(kl,{}),jsxRuntime.jsx(Tl,{}),jsxRuntime.jsx(xl,{}),jsxRuntime.jsx(bl,{}),o&&jsxRuntime.jsx(yl,{})]})}function ul(){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 pl(){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 fl(){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 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.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 kl(){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 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 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 bl(){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 ie({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:n,sortDirections:r,onSortChange:l,height:a=600,itemHeight:u=88,itemHeightMobile:i=72,className:d}){let{isMobile:m}=ui.useScreen(),{t:c}=i18n.useTranslation(),h=react.useCallback(f=>T=>{T.preventDefault(),T.stopPropagation(),n?.(f);},[n]),[g,k]=react.useState(r??{});react.useEffect(()=>{k(r??{});},[r]);let p=react.useCallback(f=>T=>{let v={[f]:T};k(v),l?.(v);},[l]);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?i: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:g.price,onSortChange:p("price"),children:c("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:g[`priceChange${t}`],onSortChange:p(`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:g.marketCap,onSortChange:p("marketCap"),children:c("tokens.listHeader.marketCap")})},"marketCap"),jsxRuntime.jsx(ui.TableColumn,{textValue:c("tokens.listHeader.liquidity"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:g.tvl,onSortChange:p("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:g[`volumes${t}`],onSortChange:p(`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:g[`trades${t}`],onSortChange:p(`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:g[`traders${t}`],onSortChange:p(`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(xs,{rowHeight:m?i: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:f=>jsxRuntime.jsx(ui.TableRow,{onClick:n?h(f):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ns,{token:f,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ms,{token:f,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ls,{token:f,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(is,{token:f,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ks,{token:f,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(gs,{token:f,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ps,{token:f,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(rs,{token:f,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(as,{token:f,resolution:t})},"tokenInfo"),s?jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(s,{token:f,resolution:t})},"actions"):void 0].filter(Boolean)},f.address)})]})}var Ul=80;function Ol(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 ws(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Ul)}function Ps({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),[l,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:d,isPending:m}=react$1.useNewTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(i(g=>{let k=[...g];for(let p of d){let f=k.findIndex(T=>T.address===p.address);f>=0?k[f]=w(k[f],p):k.push(p);}return ws(k)}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=[...k],f=false;for(let T of g){let v=p.findIndex(L=>L.address===T.address);v>=0?(f=true,p[v]=w(p[v],T)):(f=true,p.push(Ol(T)));}return f?ws(p):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:h}}function Kg({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[i,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let g=Object.keys(i??{})[0],k=i?.[g];return {...o,...g&&k?{sortBy:g,sortDirection:k}:void 0}},[o,i]),{tokens:c,isLoading:h}=Ps({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:h,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:d,className:u})}function Is({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),[l,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:d,isPending:m}=react$1.useStockTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(i(g=>{let k=[];for(let p of d){let f=g.find(T=>T.address===p.address);k.push(f?w(f,p):p);}return k}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=[...k],f=false;for(let T of g){let v=p.findIndex(L=>L.address===T.address);v>=0&&(f=true,p[v]=w(p[v],T));}return f?p:k});},[]);react$1.useStockTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:h}}function th({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[i,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let g=Object.keys(i??{})[0],k=i?.[g];return {...o,...g&&k?{sortBy:g,sortDirection:k}:void 0}},[o,i]),{tokens:c,isLoading:h}=Is({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:h,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:d,className:u})}function Hs({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),[l,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:d,isPending:m}=react$1.useTrendingTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{d&&(i(g=>{let k=[];for(let p of d){let f=g.find(T=>T.address===p.address);k.push(f?w(f,p):p);}return k}),a(false));},[d]);let c=react.useCallback(g=>{i(k=>{let p=[...k],f=false;for(let T of g){let v=p.findIndex(L=>L.address===T.address);v>=0&&(f=true,p[v]=w(p[v],T));}return f?p:k});},[]);react$1.useTrendingTokensSubscription({chain:e},c);let h=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:h}}function ph({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[i,d]=react.useState();react.useEffect(()=>{d(void 0);},[e]);let m=react.useMemo(()=>{let g=Object.keys(i??{})[0],k=i?.[g];return {...o,...g&&k?{sortBy:g,sortDirection:k}:void 0}},[o,i]),{tokens:c,isLoading:h}=Hs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:h,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:d,className:u})}var cd=15e3;function md({chain:e,addresses:t,pollMs:o=cd}){let s=t.length>0,[n,r]=react.useState({}),l=react$1.useTokensQuery({chain:e,addresses:t},{enabled:s,refetchInterval:o});react.useEffect(()=>{l.data&&r(m=>{let c={};for(let h of l.data){let g=m[h.address];c[h.address]=g?w(g,h):h;}return c});},[l.data]);let{subscribeClient:a}=react$1.useDexClient(),u=react.useRef(""),i=t.slice().sort().join(",");i!==u.current&&(u.current=i),react.useEffect(()=>{if(!s)return;let m=[];for(let c of t)m.push(a.subscribeToken(e,c,h=>{r(g=>{let k=g;for(let p of h){let f=k[p.address];if(!f)continue;let T=w(f,p);T!==f&&(k=k===g?{...g}:k,k[p.address]=T);}return k});}));return ()=>{for(let c of m)c.unsubscribe();}},[a,e,i,s]);let d=react.useCallback(async()=>{await l.refetch();},[l.refetch]);return {tokens:n,isPending:l.isPending,isFetching:l.isFetching,isError:l.isError,isSuccess:l.isSuccess,error:l.error,refetch:d}}exports.NewTokenListWidget=Kg;exports.PulseFinalStretchListWidget=Ic;exports.PulseList=se;exports.PulseListHeader=Tt;exports.PulseListItem=Lt;exports.PulseListItemSkeleton=bt;exports.PulseMigratedListWidget=Tc;exports.PulseNewListWidget=ic;exports.SEARCH_MODAL_ID=Xe;exports.SearchHistoryUI=Jt;exports.SearchHistoryWidget=Xt;exports.SearchInputUI=Zt;exports.SearchModal=su;exports.SearchResultItemUI=so;exports.SearchResultListHeader=Ne;exports.SearchResultListSkeleton=no;exports.SearchResultListWidget=co;exports.SearchTokensButton=uu;exports.SearchWidget=fo;exports.StockTokenListWidget=th;exports.TokenAvatar=ee;exports.TokenList=ie;exports.TokenListFilter=Oe;exports.TokenListFilterModal=jo;exports.TokenListFilterPopover=Jo;exports.TokenListFilterWidget=zp;exports.TokenListResolutionSelectorDesktop=Zo;exports.TokenListResolutionSelectorMobile=ts;exports.TokenListResolutionSelectorWidget=df;exports.TrendingTokenListWidget=ph;exports.useNewTokensScript=Ps;exports.usePulseFinalStretchListScript=jt;exports.usePulseMigratedListScript=_t;exports.usePulseNewListScript=Et;exports.useSearchHistory=Pe;exports.useSearchResultListScript=io;exports.useSearchScript=po;exports.useStockTokensScript=Is;exports.useTokens=md;exports.useTrendingTokensScript=Hs;exports.version=Ds;//# sourceMappingURL=index.js.map
|
|
21
|
+
`})]})}function Lt({token:e,renderAction:t,isLast:o=false,onSelectToken:s,className:n}){let{t:r}=i18n.useTranslation(),d=ui.useCopyToClipboard(),a=hooks.useTickAge(e.createdAt),u=react.useCallback(()=>{s?.(e);},[s,e]),i=react.useCallback(T=>{T.stopPropagation(),d(e.address,()=>ui.toast.success(r("tokens.copied.address")));},[d,e.address,r]),l=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]),k=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]),[h,g]=react.useMemo(()=>{let T=Number(e.stats?.["1h"]?.buys??0),v=Number(e.stats?.["1h"]?.sells??0),P=T+v;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(ee,{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:i,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:i,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(de,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:r("tokens.tokenInfo.top10HoldingsRatio"),warning:l}),jsxRuntime.jsx(de,{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(de,{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(de,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:k}),jsxRuntime.jsx(de,{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:`${h}px`}}),jsxRuntime.jsx("div",{className:"h-1 bg-bearish",style:{width:`${g}px`}})]})]})]})]})})}function de({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 Tr=124,Rt=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(Lt,{token:o[e],isLast:e===o.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(bt,{isLast:e===s-1})})}function se({title:e,tokens:t,isLoading:o,itemHeight:s=Tr,renderHeaderExtra:n,renderItemAction:r,onSelectToken:d,onPauseChange:a,className:u,hideHeader:i}){let l=o||!t?void 0:t,m=l?l.length:Rt,c=react.useMemo(()=>({data:l,skeletonCount:Rt,renderItemAction:r,onSelectToken:d}),[l,r,d]),[k,f]=react.useState(false),h=react.useCallback(()=>{f(true),a?.(true);},[a]),g=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:h,onMouseLeave:g,children:[!i&&jsxRuntime.jsx(Tt,{title:e,isPaused:k,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 je(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 vr(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of yr)t[s]&&(o[s]=e[s]?je(e[s],t[s]):t[s]);return o}function Sr(e,t){return t?e?je(e,t):t:e}function we(e,t){return t?e?je(e,t):t:e}function w(e,t){let{chain:o,address:s,stats:n,marketData:r,socialMedias:d,security:a,launchedFrom:u,migratedTo:i,...l}=t,m={...e};for(let c of Object.keys(l))l[c]!==void 0&&(m[c]=l[c]);return m.stats=vr(e.stats,n),m.marketData=Sr(e.marketData,r),m.socialMedias=we(e.socialMedias,d),m.security=we(e.security,a),m.launchedFrom=we(e.launchedFrom,u),m.migratedTo=we(e.migratedTo,i),m}var Cr=80;function Lr(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 Dt(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Cr)}function Et({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),[d,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:l,isPending:m}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(i(f=>{let h=n.current,g=f.length===0&&l.length>0,p=[...f];for(let T of l){let v=p.findIndex(P=>P.address===T.address);v>=0?p[v]=w(p[v],T):(!h||g)&&p.push(T);}return h?p:Dt(p)}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=n.current,p=[...h],T=false;for(let v of f){let P=p.findIndex(xe=>xe.address===v.address);P>=0?(T=true,p[P]=w(p[P],v)):g||(T=true,p.push(Lr(v)));}return T?g?p:Dt(p):h});},[]);react$1.useNewTokensSubscription({chain:e},c);let k=react.useMemo(()=>m||d,[m,d]);return {tokens:u,isLoading:k}}function ic({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:d}){let[a,u]=react.useState(false),{tokens:i,isLoading:l}=Et({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(se,{title:t,tokens:i,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:d})}function _t({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),[d,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:l,isPending:m}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(i(f=>{let h=n.current,g=[...f];for(let p of l){let T=g.findIndex(v=>v.address===p.address);T>=0?g[T]=w(g[T],p):h||g.unshift(p);}return g}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=[...h],p=false;for(let T of f){let v=g.findIndex(P=>P.address===T.address);v>=0&&(p=true,g[v]=w(g[v],T));}return p?g:h});},[]);react$1.useMigratedTokensSubscription({chain:e},c);let k=react.useMemo(()=>m||d,[m,d]);return {tokens:u,isLoading:k}}function Tc({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:d}){let[a,u]=react.useState(false),{tokens:i,isLoading:l}=_t({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(se,{title:t,tokens:i,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:d})}function _r(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),[d,a]=react.useState(true),[u,i]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),i([]),r.current=e);},[e]);let{data:l,isPending:m}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{l&&(i(f=>{let h=n.current,g=f.length===0&&l.length>0,p=[...f];for(let T of l){let v=p.findIndex(P=>P.address===T.address);v>=0?p[v]=w(p[v],T):(!h||g)&&p.push(T);}return h?p:_r(p)}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=[...h],p=false;for(let T of f){let v=g.findIndex(P=>P.address===T.address);v>=0&&(p=true,g[v]=w(g[v],T));}return p?g:h});},[]);react$1.useFinalStretchTokensSubscription({chain:e},c);let k=react.useMemo(()=>m||d,[m,d]);return {tokens:u,isLoading:k}}function Ic({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r,hideHeader:d}){let[a,u]=react.useState(false),{tokens:i,isLoading:l}=jt({chain:e,isPaused:a}),m=react.useCallback(c=>{u(c);},[]);return jsxRuntime.jsx(se,{title:t,tokens:i,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:m,className:r,hideHeader:d})}var qr=10,Qr=utils.atomWithStorage("liberfi:search_histories",[],void 0,{getOnInit:true});function Pe(){let[e,t]=jotai.useAtom(Qr),o=react.useCallback(n=>{let r=n.trim();r&&t(d=>{let a=d.filter(u=>u!==r);return [r,...a].slice(0,qr)});},[t]),s=react.useCallback(()=>{t([]);},[t]);return {histories:e,addHistory:o,clearHistories:s}}function Jt({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 Xt({onSelect:e,className:t}){let{histories:o,clearHistories:s}=Pe();return jsxRuntime.jsx(Jt,{className:ui.cn(t),histories:o,onSelect:e,onClear:s})}function Zt({value:e,onValueChange:t,onClear:o,onPaste:s,className:n}){let{t:r}=i18n.useTranslation(),d=hooks.useClipboardRead(s);return jsxRuntime.jsx("div",{className:n,children:jsxRuntime.jsx(ui.StyledInput,{autoFocus:true,variant:"flat",radius:"full",value:e,onValueChange:t,placeholder:r("tokens.search.placeholder"),startContent:jsxRuntime.jsx(ui.SearchIcon,{width:20,height:20,className:"text-neutral"}),endContent:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[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})}),!e&&jsxRuntime.jsx(ui.Button,{isIconOnly:true,className:"bg-transparent min-w-6 w-6 h-6 text-neutral",onPress:d,children:jsxRuntime.jsx(ui.CopyIcon,{width:18,height:18})})]})})})}function so({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]),d=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]),i=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(ee,{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(d)]})]})]})]}),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",i?"text-bullish":"text-bearish"),children:[i?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 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 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 no({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 io({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:d,hasNextPage:a,fetchNextPage:u}=react$1.useSearchTokensInfiniteQuery(s,{enabled:!!e});return {tokens:react.useMemo(()=>n?.pages.flatMap(l=>l.data)??[],[n]),isLoading:r,isFetchingNextPage:d,hasNextPage:a??false,fetchNextPage:u}}var Rn=56;function co({onSelectToken:e,className:t,...o}){let{tokens:s,isLoading:n,isFetchingNextPage:r,hasNextPage:d,fetchNextPage:a}=io(o),u=react.useRef(null),{height:i}=hooks.useResizeObserver({ref:u}),l=react.useCallback(f=>f<s.length,[s]),m=react.useCallback(async()=>{d&&!r&&await a();},[d,r,a]),c=react.useMemo(()=>d?s.length+1:s.length,[s,d]),k=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:l,loadMoreRows:m,rowCount:c,threshold:5});return n?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(no,{})]}):s.length===0?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(Ne,{}),jsxRuntime.jsx(Mn,{})]}):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:u,children:jsxRuntime.jsx(reactWindow.List,{style:{height:i},onRowsRendered:k,rowComponent:An,rowCount:c,rowHeight:Rn,rowProps:{tokens:s,onSelectToken:e},overscanCount:5})})]})}function An({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(so,{token:n})}):jsxRuntime.jsx("div",{style:t,className:"flex items-center justify-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})}function Mn(){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 po({onKeywordChange:e}){let[t,o]=react.useState(""),[s,n]=react.useState(""),{addHistory:r}=Pe(),d=hooks.useCallbackRef(e),a=hooks.useCallbackRef(r),u=react.useMemo(()=>utils$1.debounce(c=>{n(c),d(c),c&&a(c);},500),[d,a]),i=react.useCallback(c=>{o(c),u(c);},[u]),l=react.useCallback(c=>{u.cancel(),o(c),n(c),d(c),c&&a(c);},[u,d,a]),m=react.useCallback(()=>l(""),[l]);return {text:t,keyword:s,setText:i,setKeyword:l,clearKeyword:m}}function fo({chains:e,onKeywordChange:t,onSelectToken:o}){let{text:s,keyword:n,setText:r,setKeyword:d,clearKeyword:a}=po({onKeywordChange:t});return jsxRuntime.jsxs("div",{className:"w-full h-full flex flex-col gap-3",children:[jsxRuntime.jsx(Zt,{value:s,onValueChange:r,onClear:a,onPaste:d}),n?jsxRuntime.jsx(co,{className:"flex-auto min-h-0",keyword:n,chains:e,onSelectToken:o}):jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col",children:[jsxRuntime.jsx(Xt,{onSelect:d}),jsxRuntime.jsx(Un,{})]})]})}function Un(){let{t:e}=i18n.useTranslation();return jsxRuntime.jsxs("div",{className:"flex-auto min-h-0 flex flex-col items-center justify-start text-neutral pt-20",children:[jsxRuntime.jsx(ui.SearchIcon,{width:32,height:32,className:"opacity-40"}),jsxRuntime.jsx("p",{className:"mt-3 text-sm",children:e("tokens.search.hint")})]})}var Xe="search";function su({id:e=Xe}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(Qn,{...t})})}function Qn({params:e,isOpen:t,onOpenChange:o,onResult:s}){let{t:n}=i18n.useTranslation(),{isMobile:r}=ui.useScreen(),d=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",children:[jsxRuntime.jsxs(ui.ModalHeader,{className:"sm:hidden flex items-center justify-between px-4 py-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(fo,{chains:e?.chains,onSelectToken:d})})]})})}function uu({chains:e,onSelectToken:t,className:o}){let{t:s}=i18n.useTranslation(),{isDesktop:n,isMobile:r}=ui.useScreen(),{onOpen:d,onClose:a}=uiScaffold.useAsyncModal(Xe),u=hooks.useCallbackRef(t),i=hooks.useCallbackRef(async()=>{let m=await d({params:{chains:e}});m&&u(m);}),l=hooks.useCallbackRef(()=>{a();});return react.useEffect(()=>{let m=c=>{let k=document.activeElement,f=!!k&&(k.tagName==="INPUT"||k.tagName==="TEXTAREA"||k.getAttribute("contenteditable")==="true");c.key==="/"&&!f&&(c.preventDefault(),i()),c.key==="Escape"&&(c.preventDefault(),l());};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m);}},[i,l]),jsxRuntime.jsx(ui.Button,{size:"sm",radius:"full",isIconOnly:!n,onPress:i,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 yo({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:n}){let{t:r}=i18n.useTranslation(),[d,a]=react.useState(e?.join(", ")??""),[u,i]=react.useState(t?.join(", ")??"");react.useEffect(()=>{a(c=>{let k=Re(c);return k===void 0&&e===void 0?c:k===void 0?e?.join(", ")??"":e===void 0?"":k.join("")===e.join("")?c:e.join(", ")});},[e]),react.useEffect(()=>{i(c=>{let k=Re(c);return k===void 0&&t===void 0?c:k===void 0?t?.join(", ")??"":t===void 0?"":k.join("")===t.join("")?c:t.join(", ")});},[t]);let l=react.useCallback(c=>{a(c),o?.(Re(c));},[o]),m=react.useCallback(c=>{i(c),s?.(Re(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:d,onValueChange:l})]}),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 Re(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Co({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,d]=react.useState(t);react.useEffect(()=>{d(t);},[t]);let a=react.useMemo(()=>e.every(l=>r.includes(l)),[e,r]),u=react.useCallback(()=>{if(a){let l=[];d(l),o?.(l);}else {let l=[...e];d(l),o?.(l);}},[e,o,a]),i=react.useCallback(l=>()=>{if(r.includes(l)){let m=r.filter(c=>c!==l);d(m),o?.(m);}else {let m=[...r,l];d(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(l=>{let m=q(l);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(l)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${l}.svg`,alt:utils$1.formatTokenProtocolName(l)}),onPress:i(l),children:utils$1.formatTokenProtocolName(l)},l)})})]})}function E({title:e,field:t,value:o,onChange:s}){let{t:n}=i18n.useTranslation(),[r,d]=react.useState(o?et(o).min:NaN),[a,u]=react.useState(o?et(o).max:NaN);react.useEffect(()=>{if(o===void 0)d(NaN),u(NaN);else {let{min:m,max:c}=et(o);d(m),u(c);}},[o]);let i=react.useCallback(m=>{d(m),s?.(Ao(t,m,a));},[t,s,a]),l=react.useCallback(m=>{u(m),s?.(Ao(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:i,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.min"),"aria-label":`${e} min`}),jsxRuntime.jsx(ui.StyledNumberInput,{value:a,onValueChange:l,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function et(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 Ao(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 Ho({values:e,onValuesChange:t,className:o}){let{t:s}=i18n.useTranslation(),[n,r]=react.useState(e);react.useEffect(()=>{r(e);},[e]);let d=react.useCallback(a=>u=>{if(u===void 0){let i=(n??[]).filter(l=>l.field!==a);i=i.length>0?i:void 0,r(i),t?.(i);}else {let i=[...(n??[]).filter(l=>l.field!==a),u];r(i),t?.(i);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",o),children:[jsxRuntime.jsx(E,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:n?.find(a=>a.field==="holders"),onChange:d("holders")}),jsxRuntime.jsx(E,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(a=>a.field==="top10Ratio"),onChange:d("top10Ratio")}),jsxRuntime.jsx(E,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(a=>a.field==="top100Ratio"),onChange:d("top100Ratio")}),jsxRuntime.jsx(E,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(a=>a.field==="creatorsRatio"),onChange:d("creatorsRatio")})]})}function Fo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,d]=react.useState(t);react.useEffect(()=>{d(t);},[t]);let a=react.useCallback(u=>i=>{if(i===void 0){let l=(r??[]).filter(m=>m.field!==u);l=l.length>0?l:void 0,d(l),o?.(l);}else {let l=[...(r??[]).filter(m=>m.field!==u),i];d(l),o?.(l);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",s),children:[jsxRuntime.jsx(E,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(u=>u.field==="marketCap"),onChange:a("marketCap")}),jsxRuntime.jsx(E,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(u=>u.field==="tvl"),onChange:a("tvl")}),jsxRuntime.jsx(E,{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(E,{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 Wo({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,d]=react.useState("audits"),[a,u]=react.useState(t);react.useEffect(()=>{u(t);},[t]);let i=react.useCallback(c=>{u(c),o?.(c);},[o]),l=react.useMemo(()=>{let c=["holders","top10Ratio","top100Ratio","creatorsRatio"];return a?.filter(k=>c.includes(k.field))?.length??0},[a]),m=react.useMemo(()=>{let c=["marketCap","tvl",`volumes${e}`,`trades${e}`];return a?.filter(k=>c.includes(k.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:d,children:[jsxRuntime.jsx(ui.Tab,{title:l===0?n("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:l,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(Ho,{values:a,onValuesChange:i,className:ui.cn({hidden:r!=="audits"})}),jsxRuntime.jsx(Fo,{values:a,onValuesChange:i,resolution:e,className:ui.cn({hidden:r!=="metrics"})})]})}function Oe({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:n}){let[r,d]=react.useState(Vo(o?.filters,e));react.useEffect(()=>{d(Vo(o?.filters,e));},[o?.filters,e]);let[a,u]=react.useState(o?.keywords);react.useEffect(()=>{u(o?.keywords);},[o?.keywords]);let[i,l]=react.useState(o?.excludeKeywords);react.useEffect(()=>{l(o?.excludeKeywords);},[o?.excludeKeywords]);let[m,c]=react.useState(o?.filters);react.useEffect(()=>{c(o?.filters);},[o?.filters]);let k=react.useCallback(p=>{d(p),s?.(Ue(e,p,a,i,m));},[e,a,i,m,s]),f=react.useCallback(p=>{u(p),s?.(Ue(e,r,p,i,m));},[e,r,i,m,s]),h=react.useCallback(p=>{l(p),s?.(Ue(e,r,a,p,m));},[e,r,a,m,s]),g=react.useCallback(p=>{c(p),s?.(Ue(e,r,a,i,p));},[e,r,a,i,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(Co,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:k}),jsxRuntime.jsx(ui.StyledDivider,{})]}),jsxRuntime.jsx(yo,{keywords:a,excludeKeywords:i,onKeywordsChange:f,onExcludeKeywordsChange:h}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsx(Wo,{resolution:t,values:m,onValuesChange:g})]})}function Vo(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 Ue(e,t,o,s,n){let r=n?[...n.filter(d=>d.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 jo({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:d,onClose:a,onOpenChange:u}=ui.useDisclosure(),[i,l]=react.useState(o),m=react.useCallback(()=>{l(void 0);},[]),c=react.useCallback(()=>{s?.(i),a();},[i,s,a]);react.useEffect(()=>{l(o);},[r,o]);let k=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:d,className:"bg-transparent",children:k?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(Oe,{protocols:e,resolution:t,filters:i,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:m,children:n("common.reset")}),jsxRuntime.jsx(ui.Button,{color:"primary",size:"sm",radius:"full",onPress:c,children:n("common.apply")})]})})]})})]})}function Jo({protocols:e,resolution:t,filters:o,onFiltersChange:s,...n}){let{t:r}=i18n.useTranslation(),{isOpen:d,onClose:a,onOpenChange:u}=ui.useDisclosure(),[i,l]=react.useState(o),m=react.useCallback(()=>{l(void 0);},[]),c=react.useCallback(()=>{s?.(i),a();},[i,s,a]);react.useEffect(()=>{l(o);},[d,o]);let k=react.useMemo(()=>Object.values(o||{}).every(f=>f===void 0),[o]);return jsxRuntime.jsxs(ui.StyledPopover,{...n,isOpen:d,onOpenChange:u,children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.StyledSolidButton,{color:"default",size:"sm",radius:"full",className:"font-bold text-sm",startContent:k?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"})}),endContent:jsxRuntime.jsx(ui.ChevronDownIcon,{width:16,height:16,className:"data-[open=true]:-rotate-180 transition-transform flex-none","data-open":d}),children:r("tokens.listHeader.filter")})}),jsxRuntime.jsx(ui.PopoverContent,{children:jsxRuntime.jsxs("div",{className:"w-md py-4 px-0 flex flex-col gap-4",children:[jsxRuntime.jsx(ui.ScrollShadow,{className:"w-full max-h-120",children:jsxRuntime.jsx(Oe,{protocols:e,resolution:t,filters:i,onFiltersChange:l})}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsxs("div",{className:"w-full px-4 flex justify-between items-center",children:[jsxRuntime.jsx(ui.Button,{variant:"light",size:"sm",color:"default",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:m,children:r("common.reset")}),jsxRuntime.jsx(ui.Button,{variant:"solid",size:"sm",color:"primary",radius:"full",onPress:c,children:r("common.apply")})]})]})})]})}function zp({popoverPlacement:e="bottom-end",...t}){let{isMobile:o}=ui.useScreen();return o?jsxRuntime.jsx(jo,{...t}):jsxRuntime.jsx(Jo,{placement:e,...t})}function Zo({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"},children:o.map(r=>jsxRuntime.jsx(ui.Tab,{title:s(`common.resolution.${r}`)},r))})}function ts({resolution:e,onResolutionChange:t,resolutionOptions:o=["1m","5m","1h","4h","24h"]}){let{t:s}=i18n.useTranslation(),{isOpen:n,onOpen:r,onClose:d,onOpenChange:a}=ui.useDisclosure(),u=react.useCallback(i=>{t?.(i),d();},[t,d]);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(i=>jsxRuntime.jsx(ui.StyledSolidButton,{color:i===e?"primary":"default",radius:"full",size:"sm",onPress:()=>u(i),children:s(`common.resolution.${i}`)},i))})})]})})]})}function df(e){let{isMobile:t}=ui.useScreen();return t?jsxRuntime.jsx(ts,{...e}):jsxRuntime.jsx(Zo,{...e})}function rs({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 ns({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(ee,{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 as({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]),d=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]),i=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),l=react.useMemo(()=>new utils$1.SafeBigNumber(i).gte(.1),[i]),m=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(m).gte(.1),[m]),k=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),f=react.useMemo(()=>new utils$1.SafeBigNumber(k).gte(.1),[k]);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:d?"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:l?"danger":i===void 0?"default":"primary",children:utils$1.formatPercent(i)})})]}),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":k===void 0?"default":"primary",children:utils$1.formatPercent(k)})})]})]})}function is({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ls({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ms({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 ps({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 gs({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 ks({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 Ts=5;function xs({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:Ts}).map((o,s)=>jsxRuntime.jsx(ml,{rowHeight:e,hasBorderBottom:s!==Ts-1,hasActions:t},s))})}function ml({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(ul,{}),jsxRuntime.jsx(pl,{}),jsxRuntime.jsx(fl,{}),jsxRuntime.jsx(gl,{}),jsxRuntime.jsx(hl,{}),jsxRuntime.jsx(kl,{}),jsxRuntime.jsx(Tl,{}),jsxRuntime.jsx(xl,{}),jsxRuntime.jsx(bl,{}),o&&jsxRuntime.jsx(yl,{})]})}function ul(){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 pl(){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 fl(){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 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.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 kl(){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 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 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 bl(){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 ie({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:n,sortDirections:r,onSortChange:d,height:a=600,itemHeight:u=88,itemHeightMobile:i=72,className:l}){let{isMobile:m}=ui.useScreen(),{t:c}=i18n.useTranslation(),k=react.useCallback(p=>T=>{T.preventDefault(),T.stopPropagation(),n?.(p);},[n]),[f,h]=react.useState(r??{});react.useEffect(()=>{h(r??{});},[r]);let g=react.useCallback(p=>T=>{let v={[p]:T};h(v),d?.(v);},[d]);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"},maxTableHeight:a,rowHeight:m?i: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: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(xs,{rowHeight:m?i: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?k(p):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ns,{token:p,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ms,{token:p,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ls,{token:p,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(is,{token:p,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ks,{token:p,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(gs,{token:p,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ps,{token:p,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(rs,{token:p,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(as,{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 Ul=80;function Ol(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 ws(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Ul)}function Ps({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),[d,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:l,isPending:m}=react$1.useNewTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{l&&(i(f=>{let h=[...f];for(let g of l){let p=h.findIndex(T=>T.address===g.address);p>=0?h[p]=w(h[p],g):h.push(g);}return ws(h)}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=[...h],p=false;for(let T of f){let v=g.findIndex(P=>P.address===T.address);v>=0?(p=true,g[v]=w(g[v],T)):(p=true,g.push(Ol(T)));}return p?ws(g):h});},[]);react$1.useNewTokensSubscription({chain:e},c);let k=react.useMemo(()=>!!(m||d),[m,d]);return {tokens:u,isLoading:k}}function Kg({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:d,itemHeightMobile:a,className:u}){let[i,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(i??{})[0],h=i?.[f];return {...o,...f&&h?{sortBy:f,sortDirection:h}:void 0}},[o,i]),{tokens:c,isLoading:k}=Ps({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:k,resolution:t,height:r,itemHeight:d,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:l,className:u})}function Is({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),[d,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:l,isPending:m}=react$1.useStockTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{l&&(i(f=>{let h=[];for(let g of l){let p=f.find(T=>T.address===g.address);h.push(p?w(p,g):g);}return h}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=[...h],p=false;for(let T of f){let v=g.findIndex(P=>P.address===T.address);v>=0&&(p=true,g[v]=w(g[v],T));}return p?g:h});},[]);react$1.useStockTokensSubscription({chain:e},c);let k=react.useMemo(()=>!!(m||d),[m,d]);return {tokens:u,isLoading:k}}function th({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:d,itemHeightMobile:a,className:u}){let[i,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(i??{})[0],h=i?.[f];return {...o,...f&&h?{sortBy:f,sortDirection:h}:void 0}},[o,i]),{tokens:c,isLoading:k}=Is({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:k,resolution:t,height:r,itemHeight:d,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:l,className:u})}function Hs({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),[d,a]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(a(true),i([]),r.current=n);},[n]);let[u,i]=react.useState([]),{data:l,isPending:m}=react$1.useTrendingTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{l&&(i(f=>{let h=[];for(let g of l){let p=f.find(T=>T.address===g.address);h.push(p?w(p,g):g);}return h}),a(false));},[l]);let c=react.useCallback(f=>{i(h=>{let g=[...h],p=false;for(let T of f){let v=g.findIndex(P=>P.address===T.address);v>=0&&(p=true,g[v]=w(g[v],T));}return p?g:h});},[]);react$1.useTrendingTokensSubscription({chain:e},c);let k=react.useMemo(()=>!!(m||d),[m,d]);return {tokens:u,isLoading:k}}function ph({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:d,itemHeightMobile:a,className:u}){let[i,l]=react.useState();react.useEffect(()=>{l(void 0);},[e]);let m=react.useMemo(()=>{let f=Object.keys(i??{})[0],h=i?.[f];return {...o,...f&&h?{sortBy:f,sortDirection:h}:void 0}},[o,i]),{tokens:c,isLoading:k}=Hs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(ie,{tokens:c,isLoading:k,resolution:t,height:r,itemHeight:d,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:i,onSortChange:l,className:u})}var cd=15e3;function md({chain:e,addresses:t,pollMs:o=cd}){let s=t.length>0,[n,r]=react.useState({}),d=react$1.useTokensQuery({chain:e,addresses:t},{enabled:s,refetchInterval:o});react.useEffect(()=>{d.data&&r(m=>{let c={};for(let k of d.data){let f=m[k.address];c[k.address]=f?w(f,k):k;}return c});},[d.data]);let{subscribeClient:a}=react$1.useDexClient(),u=react.useRef(""),i=t.slice().sort().join(",");i!==u.current&&(u.current=i),react.useEffect(()=>{if(!s)return;let m=[];for(let c of t)m.push(a.subscribeToken(e,c,k=>{r(f=>{let h=f;for(let g of k){let p=h[g.address];if(!p)continue;let T=w(p,g);T!==p&&(h=h===f?{...f}:h,h[g.address]=T);}return h});}));return ()=>{for(let c of m)c.unsubscribe();}},[a,e,i,s]);let l=react.useCallback(async()=>{await d.refetch();},[d.refetch]);return {tokens:n,isPending:d.isPending,isFetching:d.isFetching,isError:d.isError,isSuccess:d.isSuccess,error:d.error,refetch:l}}exports.NewTokenListWidget=Kg;exports.PulseFinalStretchListWidget=Ic;exports.PulseList=se;exports.PulseListHeader=Tt;exports.PulseListItem=Lt;exports.PulseListItemSkeleton=bt;exports.PulseMigratedListWidget=Tc;exports.PulseNewListWidget=ic;exports.SEARCH_MODAL_ID=Xe;exports.SearchHistoryUI=Jt;exports.SearchHistoryWidget=Xt;exports.SearchInputUI=Zt;exports.SearchModal=su;exports.SearchResultItemUI=so;exports.SearchResultListHeader=Ne;exports.SearchResultListSkeleton=no;exports.SearchResultListWidget=co;exports.SearchTokensButton=uu;exports.SearchWidget=fo;exports.StockTokenListWidget=th;exports.TokenAvatar=ee;exports.TokenList=ie;exports.TokenListFilter=Oe;exports.TokenListFilterModal=jo;exports.TokenListFilterPopover=Jo;exports.TokenListFilterWidget=zp;exports.TokenListResolutionSelectorDesktop=Zo;exports.TokenListResolutionSelectorMobile=ts;exports.TokenListResolutionSelectorWidget=df;exports.TrendingTokenListWidget=ph;exports.useNewTokensScript=Ps;exports.usePulseFinalStretchListScript=jt;exports.usePulseMigratedListScript=_t;exports.usePulseNewListScript=Et;exports.useSearchHistory=Pe;exports.useSearchResultListScript=io;exports.useSearchScript=po;exports.useStockTokensScript=Is;exports.useTokens=md;exports.useTrendingTokensScript=Hs;exports.version=Ds;//# sourceMappingURL=index.js.map
|
|
22
22
|
//# sourceMappingURL=index.js.map
|