@liberfi.io/ui-tokens 0.1.59 → 0.1.61
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 +23 -12
- package/dist/index.d.ts +23 -12
- 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.61";
|
|
16
16
|
|
|
17
17
|
interface PulseListProps {
|
|
18
18
|
/** list title */
|
|
@@ -180,8 +180,9 @@ type SearchTokensButtonProps = {
|
|
|
180
180
|
chains?: SearchModalParams["chains"];
|
|
181
181
|
/** Callback when a token is selected from the search modal */
|
|
182
182
|
onSelectToken?: (token: Token) => void;
|
|
183
|
+
className?: string;
|
|
183
184
|
};
|
|
184
|
-
declare function SearchTokensButton({ chains, onSelectToken, }: SearchTokensButtonProps): react_jsx_runtime.JSX.Element;
|
|
185
|
+
declare function SearchTokensButton({ chains, onSelectToken, className, }: SearchTokensButtonProps): react_jsx_runtime.JSX.Element;
|
|
185
186
|
|
|
186
187
|
declare function useSearchHistory(): {
|
|
187
188
|
histories: string[];
|
|
@@ -321,6 +322,14 @@ type TokenAvatarProps = {
|
|
|
321
322
|
declare function TokenAvatar({ token, enablePreview, enableSearch, showProgress, showProtocolFamily, radius, className, classNames, }: TokenAvatarProps): react_jsx_runtime.JSX.Element;
|
|
322
323
|
|
|
323
324
|
type TokenListResolution = "1m" | "5m" | "1h" | "4h" | "24h";
|
|
325
|
+
interface TokenListResolutionSelectorProps {
|
|
326
|
+
/** current resolution */
|
|
327
|
+
resolution?: TokenListResolution;
|
|
328
|
+
/** callback function when resolution changes */
|
|
329
|
+
onResolutionChange?: (resolution: TokenListResolution) => void | Promise<void>;
|
|
330
|
+
/** resolution options */
|
|
331
|
+
resolutionOptions?: TokenListResolution[];
|
|
332
|
+
}
|
|
324
333
|
|
|
325
334
|
type TokenListFiltersType = Pick<API.GetTokenListOptions, "filters" | "keywords" | "excludeKeywords">;
|
|
326
335
|
interface TokenListFilterProps {
|
|
@@ -343,15 +352,17 @@ declare function TokenListFilterModal({ protocols, resolution, filters, onFilter
|
|
|
343
352
|
type TokenListFilterPopoverProps = Pick<PopoverProps, "placement"> & Pick<TokenListFilterProps, "protocols" | "resolution" | "filters" | "onFiltersChange">;
|
|
344
353
|
declare function TokenListFilterPopover({ protocols, resolution, filters, onFiltersChange, ...popoverProps }: TokenListFilterPopoverProps): react_jsx_runtime.JSX.Element;
|
|
345
354
|
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
declare function
|
|
355
|
+
type TokenListFilterWidgetProps = TokenListFilterModalProps & {
|
|
356
|
+
/** Popover placement used on non-mobile screens. @default "bottom-end" */
|
|
357
|
+
popoverPlacement?: PopoverProps["placement"];
|
|
358
|
+
};
|
|
359
|
+
declare function TokenListFilterWidget({ popoverPlacement, ...filterProps }: TokenListFilterWidgetProps): react_jsx_runtime.JSX.Element;
|
|
360
|
+
|
|
361
|
+
declare function TokenListResolutionSelectorDesktop({ resolution, onResolutionChange, resolutionOptions, }: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
362
|
+
|
|
363
|
+
declare function TokenListResolutionSelectorMobile({ resolution, onResolutionChange, resolutionOptions, }: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
364
|
+
|
|
365
|
+
declare function TokenListResolutionSelectorWidget(props: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
355
366
|
|
|
356
367
|
type SortDirection = "asc" | "desc" | undefined;
|
|
357
368
|
type TokenListSortDirections = {
|
|
@@ -544,4 +555,4 @@ declare function useTokens({ chain, addresses, pollMs, }: UseTokensParams): {
|
|
|
544
555
|
refetch: () => Promise<void>;
|
|
545
556
|
};
|
|
546
557
|
|
|
547
|
-
export { NewTokenListWidget, type NewTokenListWidgetProps, PulseFinalStretchListWidget, type PulseFinalStretchListWidgetProps, PulseList, PulseListHeader, type PulseListHeaderProps, PulseListItem, type PulseListItemActionComponent, type PulseListItemActionProps, type PulseListItemProps, PulseListItemSkeleton, type PulseListItemSkeletonProps, type PulseListProps, type PulseListType, PulseMigratedListWidget, type PulseMigratedListWidgetProps, PulseNewListWidget, type PulseNewListWidgetProps, SEARCH_MODAL_ID, SearchHistoryUI, type SearchHistoryUIProps, SearchHistoryWidget, type SearchHistoryWidgetProps, SearchInputUI, type SearchInputUIProps, SearchModal, type SearchModalParams, type SearchModalResult, SearchResultItemUI, type SearchResultItemUIProps, SearchResultListHeader, type SearchResultListHeaderProps, SearchResultListSkeleton, type SearchResultListSkeletonProps, SearchResultListWidget, type SearchResultListWidgetProps, SearchTokensButton, type SearchTokensButtonProps, SearchWidget, type SearchWidgetProps, StockTokenListWidget, type StockTokenListWidgetProps, TokenAvatar, type TokenAvatarProps, TokenList, type TokenListActionsComponent, type TokenListActionsProps, TokenListFilter, TokenListFilterModal, type TokenListFilterModalProps, TokenListFilterPopover, type TokenListFilterPopoverProps, type TokenListFilterProps, type TokenListFiltersType, type TokenListProps, type TokenListResolution,
|
|
558
|
+
export { NewTokenListWidget, type NewTokenListWidgetProps, PulseFinalStretchListWidget, type PulseFinalStretchListWidgetProps, PulseList, PulseListHeader, type PulseListHeaderProps, PulseListItem, type PulseListItemActionComponent, type PulseListItemActionProps, type PulseListItemProps, PulseListItemSkeleton, type PulseListItemSkeletonProps, type PulseListProps, type PulseListType, PulseMigratedListWidget, type PulseMigratedListWidgetProps, PulseNewListWidget, type PulseNewListWidgetProps, SEARCH_MODAL_ID, SearchHistoryUI, type SearchHistoryUIProps, SearchHistoryWidget, type SearchHistoryWidgetProps, SearchInputUI, type SearchInputUIProps, SearchModal, type SearchModalParams, type SearchModalResult, SearchResultItemUI, type SearchResultItemUIProps, SearchResultListHeader, type SearchResultListHeaderProps, SearchResultListSkeleton, type SearchResultListSkeletonProps, SearchResultListWidget, type SearchResultListWidgetProps, SearchTokensButton, type SearchTokensButtonProps, SearchWidget, type SearchWidgetProps, StockTokenListWidget, type StockTokenListWidgetProps, TokenAvatar, type TokenAvatarProps, TokenList, type TokenListActionsComponent, type TokenListActionsProps, TokenListFilter, TokenListFilterModal, type TokenListFilterModalProps, TokenListFilterPopover, type TokenListFilterPopoverProps, type TokenListFilterProps, TokenListFilterWidget, type TokenListFilterWidgetProps, type TokenListFiltersType, type TokenListProps, type TokenListResolution, TokenListResolutionSelectorDesktop, TokenListResolutionSelectorMobile, type TokenListResolutionSelectorProps, TokenListResolutionSelectorWidget, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseSearchResultListScriptParams, type UseSearchScriptParams, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTokensParams, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useSearchHistory, useSearchResultListScript, useSearchScript, useStockTokensScript, useTokens, useTrendingTokensScript, _default as version };
|
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.61";
|
|
16
16
|
|
|
17
17
|
interface PulseListProps {
|
|
18
18
|
/** list title */
|
|
@@ -180,8 +180,9 @@ type SearchTokensButtonProps = {
|
|
|
180
180
|
chains?: SearchModalParams["chains"];
|
|
181
181
|
/** Callback when a token is selected from the search modal */
|
|
182
182
|
onSelectToken?: (token: Token) => void;
|
|
183
|
+
className?: string;
|
|
183
184
|
};
|
|
184
|
-
declare function SearchTokensButton({ chains, onSelectToken, }: SearchTokensButtonProps): react_jsx_runtime.JSX.Element;
|
|
185
|
+
declare function SearchTokensButton({ chains, onSelectToken, className, }: SearchTokensButtonProps): react_jsx_runtime.JSX.Element;
|
|
185
186
|
|
|
186
187
|
declare function useSearchHistory(): {
|
|
187
188
|
histories: string[];
|
|
@@ -321,6 +322,14 @@ type TokenAvatarProps = {
|
|
|
321
322
|
declare function TokenAvatar({ token, enablePreview, enableSearch, showProgress, showProtocolFamily, radius, className, classNames, }: TokenAvatarProps): react_jsx_runtime.JSX.Element;
|
|
322
323
|
|
|
323
324
|
type TokenListResolution = "1m" | "5m" | "1h" | "4h" | "24h";
|
|
325
|
+
interface TokenListResolutionSelectorProps {
|
|
326
|
+
/** current resolution */
|
|
327
|
+
resolution?: TokenListResolution;
|
|
328
|
+
/** callback function when resolution changes */
|
|
329
|
+
onResolutionChange?: (resolution: TokenListResolution) => void | Promise<void>;
|
|
330
|
+
/** resolution options */
|
|
331
|
+
resolutionOptions?: TokenListResolution[];
|
|
332
|
+
}
|
|
324
333
|
|
|
325
334
|
type TokenListFiltersType = Pick<API.GetTokenListOptions, "filters" | "keywords" | "excludeKeywords">;
|
|
326
335
|
interface TokenListFilterProps {
|
|
@@ -343,15 +352,17 @@ declare function TokenListFilterModal({ protocols, resolution, filters, onFilter
|
|
|
343
352
|
type TokenListFilterPopoverProps = Pick<PopoverProps, "placement"> & Pick<TokenListFilterProps, "protocols" | "resolution" | "filters" | "onFiltersChange">;
|
|
344
353
|
declare function TokenListFilterPopover({ protocols, resolution, filters, onFiltersChange, ...popoverProps }: TokenListFilterPopoverProps): react_jsx_runtime.JSX.Element;
|
|
345
354
|
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
declare function
|
|
355
|
+
type TokenListFilterWidgetProps = TokenListFilterModalProps & {
|
|
356
|
+
/** Popover placement used on non-mobile screens. @default "bottom-end" */
|
|
357
|
+
popoverPlacement?: PopoverProps["placement"];
|
|
358
|
+
};
|
|
359
|
+
declare function TokenListFilterWidget({ popoverPlacement, ...filterProps }: TokenListFilterWidgetProps): react_jsx_runtime.JSX.Element;
|
|
360
|
+
|
|
361
|
+
declare function TokenListResolutionSelectorDesktop({ resolution, onResolutionChange, resolutionOptions, }: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
362
|
+
|
|
363
|
+
declare function TokenListResolutionSelectorMobile({ resolution, onResolutionChange, resolutionOptions, }: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
364
|
+
|
|
365
|
+
declare function TokenListResolutionSelectorWidget(props: TokenListResolutionSelectorProps): react_jsx_runtime.JSX.Element;
|
|
355
366
|
|
|
356
367
|
type SortDirection = "asc" | "desc" | undefined;
|
|
357
368
|
type TokenListSortDirections = {
|
|
@@ -544,4 +555,4 @@ declare function useTokens({ chain, addresses, pollMs, }: UseTokensParams): {
|
|
|
544
555
|
refetch: () => Promise<void>;
|
|
545
556
|
};
|
|
546
557
|
|
|
547
|
-
export { NewTokenListWidget, type NewTokenListWidgetProps, PulseFinalStretchListWidget, type PulseFinalStretchListWidgetProps, PulseList, PulseListHeader, type PulseListHeaderProps, PulseListItem, type PulseListItemActionComponent, type PulseListItemActionProps, type PulseListItemProps, PulseListItemSkeleton, type PulseListItemSkeletonProps, type PulseListProps, type PulseListType, PulseMigratedListWidget, type PulseMigratedListWidgetProps, PulseNewListWidget, type PulseNewListWidgetProps, SEARCH_MODAL_ID, SearchHistoryUI, type SearchHistoryUIProps, SearchHistoryWidget, type SearchHistoryWidgetProps, SearchInputUI, type SearchInputUIProps, SearchModal, type SearchModalParams, type SearchModalResult, SearchResultItemUI, type SearchResultItemUIProps, SearchResultListHeader, type SearchResultListHeaderProps, SearchResultListSkeleton, type SearchResultListSkeletonProps, SearchResultListWidget, type SearchResultListWidgetProps, SearchTokensButton, type SearchTokensButtonProps, SearchWidget, type SearchWidgetProps, StockTokenListWidget, type StockTokenListWidgetProps, TokenAvatar, type TokenAvatarProps, TokenList, type TokenListActionsComponent, type TokenListActionsProps, TokenListFilter, TokenListFilterModal, type TokenListFilterModalProps, TokenListFilterPopover, type TokenListFilterPopoverProps, type TokenListFilterProps, type TokenListFiltersType, type TokenListProps, type TokenListResolution,
|
|
558
|
+
export { NewTokenListWidget, type NewTokenListWidgetProps, PulseFinalStretchListWidget, type PulseFinalStretchListWidgetProps, PulseList, PulseListHeader, type PulseListHeaderProps, PulseListItem, type PulseListItemActionComponent, type PulseListItemActionProps, type PulseListItemProps, PulseListItemSkeleton, type PulseListItemSkeletonProps, type PulseListProps, type PulseListType, PulseMigratedListWidget, type PulseMigratedListWidgetProps, PulseNewListWidget, type PulseNewListWidgetProps, SEARCH_MODAL_ID, SearchHistoryUI, type SearchHistoryUIProps, SearchHistoryWidget, type SearchHistoryWidgetProps, SearchInputUI, type SearchInputUIProps, SearchModal, type SearchModalParams, type SearchModalResult, SearchResultItemUI, type SearchResultItemUIProps, SearchResultListHeader, type SearchResultListHeaderProps, SearchResultListSkeleton, type SearchResultListSkeletonProps, SearchResultListWidget, type SearchResultListWidgetProps, SearchTokensButton, type SearchTokensButtonProps, SearchWidget, type SearchWidgetProps, StockTokenListWidget, type StockTokenListWidgetProps, TokenAvatar, type TokenAvatarProps, TokenList, type TokenListActionsComponent, type TokenListActionsProps, TokenListFilter, TokenListFilterModal, type TokenListFilterModalProps, TokenListFilterPopover, type TokenListFilterPopoverProps, type TokenListFilterProps, TokenListFilterWidget, type TokenListFilterWidgetProps, type TokenListFiltersType, type TokenListProps, type TokenListResolution, TokenListResolutionSelectorDesktop, TokenListResolutionSelectorMobile, type TokenListResolutionSelectorProps, TokenListResolutionSelectorWidget, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseSearchResultListScriptParams, type UseSearchScriptParams, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTokensParams, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useSearchHistory, useSearchResultListScript, useSearchScript, useStockTokensScript, useTokens, useTrendingTokensScript, _default as version };
|
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'),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.61");var Ds="0.1.61";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:l,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]),d=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]),[h,g]=react.useState(false),k=react.useCallback(()=>{g(true);},[]),p=react.useCallback(()=>{g(false);},[]),f=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",l??"w-15 h-15"),children:[!d&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0",`rounded-${r}`,u?q(u).bg:"bg-bullish",a?.background)}),d&&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}`,h&&m&&"cursor-pointer"),onMouseEnter:k,onMouseLeave:p,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)}),h&&m&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${r}`,a?.searchWrapper),onClick:f,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]),[l,a]=react.useState(false),u=react.useCallback(()=>{a(true);},[]),i=react.useCallback(()=>{a(false);},[]),d=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}`,l&&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)}),l&&n&&jsxRuntime.jsx("div",{className:ui.cn("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${o}`,s?.previewSearchWrapper),onClick:d,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 Pt({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]),d=react.useCallback(g=>{g.stopPropagation(),l(e.address,()=>ui.toast.success(r("tokens.copied.address")));},[l,e.address,r]),i=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]),T=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),h=react.useMemo(()=>new utils$1.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[k,p]=react.useMemo(()=>{let g=Number(e.stats?.["1h"]?.buys??0),S=Number(e.stats?.["1h"]?.sells??0),L=g+S;if(L===0)return [12,12];let ke=Math.round(g/L*24);return [ke,24-ke]},[e.stats]),f=react.useMemo(()=>{let g=new utils$1.SafeBigNumber(e.marketData?.marketCapInUsd);return g.lt(1e3)?"text-foreground":g.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(X,{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:d,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:d,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:g=>g.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:g=>g.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:g=>g.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:g=>g.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(ae,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:r("tokens.tokenInfo.top10HoldingsRatio"),warning:i}),jsxRuntime.jsx(ae,{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(ae,{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(ae,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:T}),jsxRuntime.jsx(ae,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils$1.formatPercent(e.marketData?.bundleHoldingsRatio),tooltip:r("tokens.tokenInfo.bundleHoldingsRatio"),warning:h}),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 ae({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 ar=124,Ct=10;function ir({index:e,style:t,data:o,skeletonCount:s,renderItemAction:n,onSelectToken:r}){return o?jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(Pt,{token:o[e],isLast:e===o.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(gt,{isLast:e===s-1})})}function ee({title:e,tokens:t,isLoading:o,itemHeight:s=ar,renderHeaderExtra:n,renderItemAction:r,onSelectToken:l,onPauseChange:a,className:u}){let d=o||!t?void 0:t,i=d?d.length:Ct,m=react.useMemo(()=>({data:d,skeletonCount:Ct,renderItemAction:r,onSelectToken:l}),[d,r,l]),[c,T]=react.useState(false),h=react.useCallback(()=>{T(true),a?.(true);},[a]),k=react.useCallback(()=>{T(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:k,children:[jsxRuntime.jsx(ht,{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:i,rowHeight:s,rowComponent:ir,rowProps:m,overscanCount:5})})]})}function $e(e,t){let o={...e};for(let s of Object.keys(t))t[s]!==void 0&&(o[s]=t[s]);return o}var dr=["1m","5m","15m","30m","1h","4h","24h"];function cr(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of dr)t[s]&&(o[s]=e[s]?$e(e[s],t[s]):t[s]);return o}function mr(e,t){return t?e?$e(e,t):t:e}function ve(e,t){return t?e?$e(e,t):t:e}function b(e,t){let{chain:o,address:s,stats:n,marketData:r,socialMedias:l,security:a,launchedFrom:u,migratedTo:d,...i}=t,m={...e};for(let c of Object.keys(i))i[c]!==void 0&&(m[c]=i[c]);return m.stats=cr(e.stats,n),m.marketData=mr(e.marketData,r),m.socialMedias=ve(e.socialMedias,l),m.security=ve(e.security,a),m.launchedFrom=ve(e.launchedFrom,u),m.migratedTo=ve(e.migratedTo,d),m}var hr=80;function kr(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 Mt(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,hr)}function Ht({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,d]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),d([]),r.current=e);},[e]);let{data:i,isPending:m}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{i&&(d(h=>{let k=n.current,p=[...h];for(let f of i){let g=p.findIndex(S=>S.address===f.address);g>=0?p[g]=b(p[g],f):k||p.push(f);}return k?p:Mt(p)}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=n.current,f=[...k],g=false;for(let S of h){let L=f.findIndex(ke=>ke.address===S.address);L>=0?(g=true,f[L]=b(f[L],S)):p||(g=true,f.push(kr(S)));}return g?p?f:Mt(f):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let T=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:T}}function Ad({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:d}=Ht({chain:e,isPaused:l}),i=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(ee,{title:t,tokens:u,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:i,className:r})}function Ot({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,d]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),d([]),r.current=e);},[e]);let{data:i,isPending:m}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{i&&(d(h=>{let k=n.current,p=[...h];for(let f of i){let g=p.findIndex(S=>S.address===f.address);g>=0?p[g]=b(p[g],f):k||p.unshift(f);}return p}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=[...k],f=false;for(let g of h){let S=p.findIndex(L=>L.address===g.address);S>=0&&(f=true,p[S]=b(p[S],g));}return f?p:k});},[]);react$1.useMigratedTokensSubscription({chain:e},c);let T=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:T}}function Vd({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:d}=Ot({chain:e,isPaused:l}),i=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(ee,{title:t,tokens:u,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:i,className:r})}function Ir(e){return e.sort((t,o)=>{let s=Number(t.migrateProgress??0);return Number(o.migrateProgress??0)-s})}function $t({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,d]=react.useState([]);react.useEffect(()=>{e!==r.current&&(a(true),d([]),r.current=e);},[e]);let{data:i,isPending:m}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{i&&(d(h=>{let k=n.current,p=[...h];for(let f of i){let g=p.findIndex(S=>S.address===f.address);g>=0?p[g]=b(p[g],f):k||p.push(f);}return k?p:Ir(p)}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=[...k],f=false;for(let g of h){let S=p.findIndex(L=>L.address===g.address);S>=0&&(f=true,p[S]=b(p[S],g));}return f?p:k});},[]);react$1.useFinalStretchTokensSubscription({chain:e},c);let T=react.useMemo(()=>m||l,[m,l]);return {tokens:u,isLoading:T}}function Zd({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[l,a]=react.useState(false),{tokens:u,isLoading:d}=$t({chain:e,isPaused:l}),i=react.useCallback(m=>{a(m);},[]);return jsxRuntime.jsx(ee,{title:t,tokens:u,isLoading:d,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:i,className:r})}var Dr=10,Er=utils.atomWithStorage("liberfi:search_histories",[],void 0,{getOnInit:true});function Se(){let[e,t]=jotai.useAtom(Er),o=react.useCallback(n=>{let r=n.trim();r&&t(l=>{let a=l.filter(u=>u!==r);return [r,...a].slice(0,Dr)});},[t]),s=react.useCallback(()=>{t([]);},[t]);return {histories:e,addHistory:o,clearHistories:s}}function qt({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 Qt({onSelect:e,className:t}){let{histories:o,clearHistories:s}=Se();return jsxRuntime.jsx(qt,{className:ui.cn(t),histories:o,onSelect:e,onClear:s})}function Jt({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 eo({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]),d=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(X,{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",d?"text-bullish":"text-bearish"),children:[d?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 we({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 ln(){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 oo({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(ln,{},s))})}function ro({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(i=>i.data)??[],[n]),isLoading:r,isFetchingNextPage:l,hasNextPage:a??false,fetchNextPage:u}}var Tn=56;function ao({onSelectToken:e,className:t,...o}){let{tokens:s,isLoading:n,isFetchingNextPage:r,hasNextPage:l,fetchNextPage:a}=ro(o),u=react.useRef(null),{height:d}=hooks.useResizeObserver({ref:u}),i=react.useCallback(h=>h<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]),T=reactWindowInfiniteLoader.useInfiniteLoader({isRowLoaded:i,loadMoreRows:m,rowCount:c,threshold:5});return n?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(we,{}),jsxRuntime.jsx(oo,{})]}):s.length===0?jsxRuntime.jsxs("div",{className:ui.cn("w-full",t),children:[jsxRuntime.jsx(we,{}),jsxRuntime.jsx(yn,{})]}):jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full flex flex-col",t),children:[jsxRuntime.jsx(we,{className:"flex-none"}),jsxRuntime.jsx("div",{className:"flex-auto min-h-0",ref:u,children:jsxRuntime.jsx(reactWindow.List,{style:{height:d},onRowsRendered:T,rowComponent:xn,rowCount:c,rowHeight:Tn,rowProps:{tokens:s,onSelectToken:e},overscanCount:5})})]})}function xn({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(eo,{token:n})}):jsxRuntime.jsx("div",{style:t,className:"flex items-center justify-center",children:jsxRuntime.jsx(ui.Spinner,{size:"sm"})})}function yn(){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 co({onKeywordChange:e}){let[t,o]=react.useState(""),[s,n]=react.useState(""),{addHistory:r}=Se(),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]),d=react.useCallback(c=>{o(c),u(c);},[u]),i=react.useCallback(c=>{u.cancel(),o(c),n(c),l(c),c&&a(c);},[u,l,a]),m=react.useCallback(()=>i(""),[i]);return {text:t,keyword:s,setText:d,setKeyword:i,clearKeyword:m}}function mo({chains:e,onKeywordChange:t,onSelectToken:o}){let{text:s,keyword:n,setText:r,setKeyword:l,clearKeyword:a}=co({onKeywordChange:t});return jsxRuntime.jsxs("div",{className:"w-full h-full flex flex-col gap-3",children:[jsxRuntime.jsx(Jt,{value:s,onValueChange:r,onClear:a,onPaste:l}),n?jsxRuntime.jsx(ao,{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(Qt,{onSelect:l}),jsxRuntime.jsx(Pn,{})]})]})}function Pn(){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 Qe="search";function Cm({id:e=Qe}){return jsxRuntime.jsx(uiScaffold.AsyncModal,{id:e,children:t=>jsxRuntime.jsx(En,{...t})})}function En({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(mo,{chains:e?.chains,onSelectToken:l})})]})})}function Em({chains:e,onSelectToken:t}){let{t:o}=i18n.useTranslation(),{isDesktop:s,isMobile:n}=ui.useScreen(),{onOpen:r,onClose:l}=uiScaffold.useAsyncModal(Qe),a=hooks.useCallbackRef(t),u=react.useCallback(async()=>{let i=await r({params:{chains:e}});i&&a(i);},[r,e,a]),d=react.useCallback(()=>{l();},[l]);return react.useEffect(()=>{let i=m=>{let c=document.activeElement,T=!!c&&(c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.getAttribute("contenteditable")==="true");m.key==="/"&&!T&&(m.preventDefault(),u()),m.key==="Escape"&&(m.preventDefault(),d());};return window.addEventListener("keydown",i),()=>{window.removeEventListener("keydown",i);}},[u,d]),jsxRuntime.jsx(ui.Button,{size:"sm",radius:"full",isIconOnly:!s,onPress:u,variant:n?"flat":"bordered",startContent:s?jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"}):void 0,endContent:s?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(s&&"pl-3 pr-1.5 text-neutral"),children:s?o("tokens.search.placeholder"):jsxRuntime.jsx(ui.SearchIcon,{className:"text-neutral"})})}function xo({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:n}){let{t:r}=i18n.useTranslation(),[l,a]=react.useState(e?.join(", ")??""),[u,d]=react.useState(t?.join(", ")??"");react.useEffect(()=>{a(c=>{let T=Ce(c);return T===void 0&&e===void 0?c:T===void 0?e?.join(", ")??"":e===void 0?"":T.join("")===e.join("")?c:e.join(", ")});},[e]),react.useEffect(()=>{d(c=>{let T=Ce(c);return T===void 0&&t===void 0?c:T===void 0?t?.join(", ")??"":t===void 0?"":T.join("")===t.join("")?c:t.join(", ")});},[t]);let i=react.useCallback(c=>{a(c),o?.(Ce(c));},[o]),m=react.useCallback(c=>{d(c),s?.(Ce(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:i})]}),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 Ce(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Po({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(i=>r.includes(i)),[e,r]),u=react.useCallback(()=>{if(a){let i=[];l(i),o?.(i);}else {let i=[...e];l(i),o?.(i);}},[e,o,a]),d=react.useCallback(i=>()=>{if(r.includes(i)){let m=r.filter(c=>c!==i);l(m),o?.(m);}else {let m=[...r,i];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.StyledButton,{variant:"light",color:"content3",size:"xs",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(i=>jsxRuntime.jsx(ui.StyledButton,{variant:"bordered",size:"xs",radius:"full",className:ui.cn("w-fit",`text-${i}`,`bg-${i}/5`,`border border-${i}`,{"opacity-40 data-[hover=true]:!opacity-30":!r.includes(i)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${i}.svg`,alt:utils$1.formatTokenProtocolName(i)}),onPress:d(i),children:utils$1.formatTokenProtocolName(i)},i))})]})}function D({title:e,field:t,value:o,onChange:s}){let{t:n}=i18n.useTranslation(),[r,l]=react.useState(o?Je(o).min:NaN),[a,u]=react.useState(o?Je(o).max:NaN);react.useEffect(()=>{if(o===void 0)l(NaN),u(NaN);else {let{min:m,max:c}=Je(o);l(m),u(c);}},[o]);let d=react.useCallback(m=>{l(m),s?.(Io(t,m,a));},[t,s,a]),i=react.useCallback(m=>{u(m),s?.(Io(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:d,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.min"),"aria-label":`${e} min`}),jsxRuntime.jsx(ui.StyledNumberInput,{value:a,onValueChange:i,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function Je(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 Io(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 Ao({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 d=(n??[]).filter(i=>i.field!==a);d=d.length>0?d:void 0,r(d),t?.(d);}else {let d=[...(n??[]).filter(i=>i.field!==a),u];r(d),t?.(d);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",o),children:[jsxRuntime.jsx(D,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:n?.find(a=>a.field==="holders"),onChange:l("holders")}),jsxRuntime.jsx(D,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(a=>a.field==="top10Ratio"),onChange:l("top10Ratio")}),jsxRuntime.jsx(D,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(a=>a.field==="top100Ratio"),onChange:l("top100Ratio")}),jsxRuntime.jsx(D,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(a=>a.field==="creatorsRatio"),onChange:l("creatorsRatio")})]})}function Mo({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=>d=>{if(d===void 0){let i=(r??[]).filter(m=>m.field!==u);i=i.length>0?i:void 0,l(i),o?.(i);}else {let i=[...(r??[]).filter(m=>m.field!==u),d];l(i),o?.(i);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.cn("flex flex-col gap-4",s),children:[jsxRuntime.jsx(D,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(u=>u.field==="marketCap"),onChange:a("marketCap")}),jsxRuntime.jsx(D,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(u=>u.field==="tvl"),onChange:a("tvl")}),jsxRuntime.jsx(D,{field:`volumes${e}`,title:n("tokens.filters.stats.metrics.volumes",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`volumes${e}`),onChange:a(`volumes${e}`)}),jsxRuntime.jsx(D,{field:`trades${e}`,title:n("tokens.filters.stats.metrics.txns",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`trades${e}`),onChange:a(`trades${e}`)})]})}function Oo({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 d=react.useCallback(c=>{u(c),o?.(c);},[o]),i=react.useMemo(()=>{let c=["holders","top10Ratio","top100Ratio","creatorsRatio"];return a?.filter(T=>c.includes(T.field))?.length??0},[a]),m=react.useMemo(()=>{let c=["marketCap","tvl",`volumes${e}`,`trades${e}`];return a?.filter(T=>c.includes(T.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:i===0?n("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:i,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(Ao,{values:a,onValuesChange:d,className:ui.cn({hidden:r!=="audits"})}),jsxRuntime.jsx(Mo,{values:a,onValuesChange:d,resolution:e,className:ui.cn({hidden:r!=="metrics"})})]})}function De({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:n}){let[r,l]=react.useState(Bo(o?.filters,e));react.useEffect(()=>{l(Bo(o?.filters,e));},[o?.filters,e]);let[a,u]=react.useState(o?.keywords);react.useEffect(()=>{u(o?.keywords);},[o?.keywords]);let[d,i]=react.useState(o?.excludeKeywords);react.useEffect(()=>{i(o?.excludeKeywords);},[o?.excludeKeywords]);let[m,c]=react.useState(o?.filters);react.useEffect(()=>{c(o?.filters);},[o?.filters]);let T=react.useCallback(f=>{l(f),s?.(Fe(e,f,a,d,m));},[e,a,d,m,s]),h=react.useCallback(f=>{u(f),s?.(Fe(e,r,f,d,m));},[e,r,d,m,s]),k=react.useCallback(f=>{i(f),s?.(Fe(e,r,a,f,m));},[e,r,a,m,s]),p=react.useCallback(f=>{c(f),s?.(Fe(e,r,a,d,f));},[e,r,a,d,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(Po,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:T}),jsxRuntime.jsx(ui.StyledDivider,{})]}),jsxRuntime.jsx(xo,{keywords:a,excludeKeywords:d,onKeywordsChange:h,onExcludeKeywordsChange:k}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsx(Oo,{resolution:t,values:m,onValuesChange:p})]})}function Bo(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 Fe(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 Ju({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:l,onClose:a,onOpenChange:u}=ui.useDisclosure(),[d,i]=react.useState(o),m=react.useCallback(()=>{i(void 0);},[]),c=react.useCallback(()=>{s?.(d),a();},[d,s,a]);react.useEffect(()=>{i(o);},[r,o]);let T=react.useMemo(()=>Object.values(o||{}).every(h=>h===void 0),[o]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.StyledButton,{color:"content2",size:"sm",radius:"full",className:"font-bold text-sm",startContent:T?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":r}),onPress:l,children:n("tokens.listHeader.filter")}),jsxRuntime.jsx(ui.StyledModal,{isOpen:r,onOpenChange:u,size:"md",scrollBehavior:"inside",children:jsxRuntime.jsxs(ui.ModalContent,{children:[jsxRuntime.jsx(ui.ModalHeader,{children:n("tokens.filters.modal.title")}),jsxRuntime.jsx(ui.ModalBody,{children:jsxRuntime.jsx(ui.ScrollShadow,{children:jsxRuntime.jsx(De,{protocols:e,resolution:t,filters:d,onFiltersChange:i,className:"pb-4"})})}),jsxRuntime.jsx(ui.ModalFooter,{children:jsxRuntime.jsxs("div",{className:"w-full px-4 flex justify-between items-center",children:[jsxRuntime.jsx(ui.StyledButton,{color:"transparent",size:"xs",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:m,children:n("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:c,children:n("common.apply")})]})})]})})]})}function ap({protocols:e,resolution:t,filters:o,onFiltersChange:s,...n}){let{t:r}=i18n.useTranslation(),{isOpen:l,onClose:a,onOpenChange:u}=ui.useDisclosure(),[d,i]=react.useState(o),m=react.useCallback(()=>{i(void 0);},[]),c=react.useCallback(()=>{s?.(d),a();},[d,s,a]);react.useEffect(()=>{i(o);},[l,o]);let T=react.useMemo(()=>Object.values(o||{}).every(h=>h===void 0),[o]);return jsxRuntime.jsxs(ui.StyledPopover,{...n,isOpen:l,onOpenChange:u,children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.StyledButton,{color:"content2",size:"sm",radius:"full",className:"font-bold text-sm",startContent:T?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(De,{protocols:e,resolution:t,filters:d,onFiltersChange:i})}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsxs("div",{className:"w-full px-4 flex justify-between items-center",children:[jsxRuntime.jsx(ui.StyledButton,{color:"transparent",size:"xs",radius:"full",startContent:jsxRuntime.jsx(ui.RefreshIcon,{width:16,height:16}),onPress:m,children:r("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:c,children:r("common.apply")})]})]})})]})}function pp({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",children:o.map(r=>jsxRuntime.jsx(ui.Tab,{title:s(`common.resolution.${r}`)},r))})}function Qo({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 Go({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(X,{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 Jo({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]),d=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),i=react.useMemo(()=>new utils$1.SafeBigNumber(d).gte(.1),[d]),m=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),c=react.useMemo(()=>new utils$1.SafeBigNumber(m).gte(.1),[m]),T=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),h=react.useMemo(()=>new utils$1.SafeBigNumber(T).gte(.1),[T]);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:i?"danger":d===void 0?"default":"primary",children:utils$1.formatPercent(d)})})]}),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:h?"danger":T===void 0?"default":"primary",children:utils$1.formatPercent(T)})})]})]})}function Xo({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function Yo({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils$1.formatAmountUSD(t)})}function ts({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 ss({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 ns({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 is({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 ls=5;function ds({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:ls}).map((o,s)=>jsxRuntime.jsx(_i,{rowHeight:e,hasBorderBottom:s!==ls-1,hasActions:t},s))})}function _i({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(Vi,{}),jsxRuntime.jsx($i,{}),jsxRuntime.jsx(Ki,{}),jsxRuntime.jsx(zi,{}),jsxRuntime.jsx(ji,{}),jsxRuntime.jsx(qi,{}),jsxRuntime.jsx(Qi,{}),jsxRuntime.jsx(Gi,{}),jsxRuntime.jsx(Ji,{}),o&&jsxRuntime.jsx(Xi,{})]})}function Vi(){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 $i(){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 Ki(){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 zi(){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 ji(){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 qi(){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 Qi(){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 Gi(){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 Ji(){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 Xi(){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 re({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:n,sortDirections:r,onSortChange:l,height:a=600,itemHeight:u=88,itemHeightMobile:d=72,className:i}){let{isMobile:m}=ui.useScreen(),{t:c}=i18n.useTranslation(),T=react.useCallback(f=>g=>{g.preventDefault(),g.stopPropagation(),n?.(f);},[n]),[h,k]=react.useState(r??{});react.useEffect(()=>{k(r??{});},[r]);let p=react.useCallback(f=>g=>{let S={[f]:g};k(S),l?.(S);},[l]);return jsxRuntime.jsxs(ui.StyledTable,{isHeaderSticky:true,isVirtualized:true,radius:"lg",className:ui.cn("h-full mx-auto",i??(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?d: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:h.price,onSortChange:p("price"),children:c("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:h[`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:h.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:h.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:h[`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:h[`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:h[`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(ds,{rowHeight:m?d: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?T(f):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Go,{token:f,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ts,{token:f,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Yo,{token:f,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Xo,{token:f,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(is,{token:f,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ns,{token:f,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ss,{token:f,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Qo,{token:f,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Jo,{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 pl=80;function fl(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 fs(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,pl)}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),r.current=n);},[n]);let[u,d]=react.useState([]),{data:i,isPending:m}=react$1.useNewTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{i&&(d(h=>{let k=[...h];for(let p of i){let f=k.findIndex(g=>g.address===p.address);f>=0?k[f]=b(k[f],p):k.push(p);}return fs(k)}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=[...k],f=false;for(let g of h){let S=p.findIndex(L=>L.address===g.address);S>=0?(f=true,p[S]=b(p[S],g)):(f=true,p.push(fl(g)));}return f?fs(p):k});},[]);react$1.useNewTokensSubscription({chain:e},c);let T=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:T}}function Qf({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[d,i]=react.useState(),m=react.useMemo(()=>{let h=Object.keys(d??{})[0],k=d?.[h];return {...o,...h&&k?{sortBy:h,sortDirection:k}:void 0}},[o,d]),{tokens:c,isLoading:T}=hs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(re,{tokens:c,isLoading:T,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:d,onSortChange:i,className:u})}function xs({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),r.current=n);},[n]);let[u,d]=react.useState([]),{data:i,isPending:m}=react$1.useStockTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{i&&(d(h=>{let k=[];for(let p of i){let f=h.find(g=>g.address===p.address);k.push(f?b(f,p):p);}return k}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=[...k],f=false;for(let g of h){let S=p.findIndex(L=>L.address===g.address);S>=0&&(f=true,p[S]=b(p[S],g));}return f?p:k});},[]);react$1.useStockTokensSubscription({chain:e},c);let T=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:T}}function ah({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[d,i]=react.useState(),m=react.useMemo(()=>{let h=Object.keys(d??{})[0],k=d?.[h];return {...o,...h&&k?{sortBy:h,sortDirection:k}:void 0}},[o,d]),{tokens:c,isLoading:T}=xs({chain:e,resolution:t,options:m});return jsxRuntime.jsx(re,{tokens:c,isLoading:T,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:d,onSortChange:i,className:u})}function ws({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),r.current=n);},[n]);let[u,d]=react.useState([]),{data:i,isPending:m}=react$1.useTrendingTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{i&&(d(h=>{let k=[];for(let p of i){let f=h.find(g=>g.address===p.address);k.push(f?b(f,p):p);}return k}),a(false));},[i]);let c=react.useCallback(h=>{d(k=>{let p=[...k],f=false;for(let g of h){let S=p.findIndex(L=>L.address===g.address);S>=0&&(f=true,p[S]=b(p[S],g));}return f?p:k});},[]);react$1.useTrendingTokensSubscription({chain:e},c);let T=react.useMemo(()=>!!(m||l),[m,l]);return {tokens:u,isLoading:T}}function Th({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:l,itemHeightMobile:a,className:u}){let[d,i]=react.useState(),m=react.useMemo(()=>{let h=Object.keys(d??{})[0],k=d?.[h];return {...o,...h&&k?{sortBy:h,sortDirection:k}:void 0}},[o,d]),{tokens:c,isLoading:T}=ws({chain:e,resolution:t,options:m});return jsxRuntime.jsx(re,{tokens:c,isLoading:T,resolution:t,height:r,itemHeight:l,itemHeightMobile:a,ActionsComponent:s,onSelectToken:n,sortDirections:d,onSortChange:i,className:u})}var Ul=15e3;function Ol({chain:e,addresses:t,pollMs:o=Ul}){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 T of l.data){let h=m[T.address];c[T.address]=h?b(h,T):T;}return c});},[l.data]);let{subscribeClient:a}=react$1.useDexClient(),u=react.useRef(""),d=t.slice().sort().join(",");d!==u.current&&(u.current=d),react.useEffect(()=>{if(!s)return;let m=[];for(let c of t)m.push(a.subscribeToken(e,c,T=>{r(h=>{let k=h;for(let p of T){let f=k[p.address];if(!f)continue;let g=b(f,p);g!==f&&(k=k===h?{...h}:k,k[p.address]=g);}return k});}));return ()=>{for(let c of m)c.unsubscribe();}},[a,e,d,s]);let i=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:i}}exports.NewTokenListWidget=Qf;exports.PulseFinalStretchListWidget=Zd;exports.PulseList=ee;exports.PulseListHeader=ht;exports.PulseListItem=Pt;exports.PulseListItemSkeleton=gt;exports.PulseMigratedListWidget=Vd;exports.PulseNewListWidget=Ad;exports.SEARCH_MODAL_ID=Qe;exports.SearchHistoryUI=qt;exports.SearchHistoryWidget=Qt;exports.SearchInputUI=Jt;exports.SearchModal=Cm;exports.SearchResultItemUI=eo;exports.SearchResultListHeader=we;exports.SearchResultListSkeleton=oo;exports.SearchResultListWidget=ao;exports.SearchTokensButton=Em;exports.SearchWidget=mo;exports.StockTokenListWidget=ah;exports.TokenAvatar=X;exports.TokenList=re;exports.TokenListFilter=De;exports.TokenListFilterModal=Ju;exports.TokenListFilterPopover=ap;exports.TokenListResolutionSelector=pp;exports.TrendingTokenListWidget=Th;exports.useNewTokensScript=hs;exports.usePulseFinalStretchListScript=$t;exports.usePulseMigratedListScript=Ot;exports.usePulseNewListScript=Ht;exports.useSearchHistory=Se;exports.useSearchResultListScript=ro;exports.useSearchScript=co;exports.useStockTokensScript=xs;exports.useTokens=Ol;exports.useTrendingTokensScript=ws;exports.version=Ps;//# sourceMappingURL=index.js.map
|
|
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
|
|
22
22
|
//# sourceMappingURL=index.js.map
|