@liberfi.io/ui-tokens 0.1.33 → 0.1.35

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 CHANGED
@@ -10,7 +10,7 @@ declare global {
10
10
  };
11
11
  }
12
12
  }
13
- declare const _default: "0.1.33";
13
+ declare const _default: "0.1.35";
14
14
 
15
15
  interface PulseListProps {
16
16
  /** list title */
@@ -423,4 +423,21 @@ type TrendingTokenListWidgetProps = {
423
423
  };
424
424
  declare function TrendingTokenListWidget({ chain, resolution, filters, ActionsComponent, onSelectToken, height, itemHeight, itemHeightMobile, className, }: TrendingTokenListWidgetProps): react_jsx_runtime.JSX.Element;
425
425
 
426
- 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, SearchTokensButton, type SearchTokensButtonProps, 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, TokenListResolutionSelector, type TokenListResolutionSelectorProps, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useStockTokensScript, useTrendingTokensScript, _default as version };
426
+ interface UseTokensParams {
427
+ chain: Chain;
428
+ /** Token addresses to track */
429
+ addresses: string[];
430
+ /** Polling interval in ms (default 15 000) */
431
+ pollMs?: number;
432
+ }
433
+ declare function useTokens({ chain, addresses, pollMs, }: UseTokensParams): {
434
+ tokens: Record<string, Token>;
435
+ isPending: boolean;
436
+ isFetching: boolean;
437
+ isError: boolean;
438
+ isSuccess: boolean;
439
+ error: Error | null;
440
+ refetch: () => Promise<void>;
441
+ };
442
+
443
+ 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, SearchTokensButton, type SearchTokensButtonProps, 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, TokenListResolutionSelector, type TokenListResolutionSelectorProps, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTokensParams, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useStockTokensScript, useTokens, useTrendingTokensScript, _default as version };
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ declare global {
10
10
  };
11
11
  }
12
12
  }
13
- declare const _default: "0.1.33";
13
+ declare const _default: "0.1.35";
14
14
 
15
15
  interface PulseListProps {
16
16
  /** list title */
@@ -423,4 +423,21 @@ type TrendingTokenListWidgetProps = {
423
423
  };
424
424
  declare function TrendingTokenListWidget({ chain, resolution, filters, ActionsComponent, onSelectToken, height, itemHeight, itemHeightMobile, className, }: TrendingTokenListWidgetProps): react_jsx_runtime.JSX.Element;
425
425
 
426
- 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, SearchTokensButton, type SearchTokensButtonProps, 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, TokenListResolutionSelector, type TokenListResolutionSelectorProps, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useStockTokensScript, useTrendingTokensScript, _default as version };
426
+ interface UseTokensParams {
427
+ chain: Chain;
428
+ /** Token addresses to track */
429
+ addresses: string[];
430
+ /** Polling interval in ms (default 15 000) */
431
+ pollMs?: number;
432
+ }
433
+ declare function useTokens({ chain, addresses, pollMs, }: UseTokensParams): {
434
+ tokens: Record<string, Token>;
435
+ isPending: boolean;
436
+ isFetching: boolean;
437
+ isError: boolean;
438
+ isSuccess: boolean;
439
+ error: Error | null;
440
+ refetch: () => Promise<void>;
441
+ };
442
+
443
+ 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, SearchTokensButton, type SearchTokensButtonProps, 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, TokenListResolutionSelector, type TokenListResolutionSelectorProps, type TokenListSortDirections, TrendingTokenListWidget, type TrendingTokenListWidgetProps, type UseNewTokensScriptParams, type UseNewTokensScriptResult, type UsePulseFinalStretchListScriptParams, type UsePulseFinalStretchListScriptResult, type UsePulseMigratedListScriptParams, type UsePulseMigratedListScriptResult, type UsePulseNewListScriptParams, type UsePulseNewListScriptResult, type UseStockTokensScriptParams, type UseStockTokensScriptResult, type UseTokensParams, type UseTrendingTokensScriptParams, type UseTrendingTokensScriptResult, useNewTokensScript, usePulseFinalStretchListScript, usePulseMigratedListScript, usePulseNewListScript, useStockTokensScript, useTokens, useTrendingTokensScript, _default as version };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var react=require('react'),ui=require('@liberfi.io/ui'),i18n=require('@liberfi.io/i18n'),jsxRuntime=require('react/jsx-runtime'),hooks=require('@liberfi.io/hooks'),utils=require('@liberfi.io/utils'),client=require('@liberfi.io/client'),uiScaffold=require('@liberfi.io/ui-scaffold');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-tokens"]="0.1.33");var Bs="0.1.33";function Ye({title:e,isPaused:t,extra:s,className:o}){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",o),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")})]})]}),s&&jsxRuntime.jsx("div",{className:"flex items-center gap-3",children:s})]})}function et({isLast:e=false,className:t}){return jsxRuntime.jsxs("div",{className:ui.clsx("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"})]})]})}function ce({token:e,enablePreview:t=true,enableSearch:s=true,showProgress:o=true,showProtocolFamily:n=true,radius:r="sm",className:p,classNames:i}){let k=react.useMemo(()=>e.launchedFrom?.protocolFamily?utils.parseTokenProtocolFamily(e.chain,e.launchedFrom.protocolFamily):void 0,[e.chain,e.launchedFrom?.protocolFamily]),d=react.useMemo(()=>n&&k,[n,k]),l=react.useMemo(()=>o&&e.migrateProgress&&new utils.SafeBigNumber(e.migrateProgress).lt(100),[o,e.migrateProgress]),u=react.useMemo(()=>s&&e.image,[s,e.image]),f=react.useMemo(()=>(e.symbol??e.name??e.address??"L").slice(0,1).toUpperCase(),[e.symbol,e.name,e.address]),[T,h]=react.useState(false),y=react.useCallback(()=>{h(true);},[]),m=react.useCallback(()=>{h(false);},[]),c=react.useCallback(a=>{if(a.stopPropagation(),!e.image)return;let g=utils.searchImageUrl(e.image);window.open(g,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.clsx("relative justify-center items-center",p??"w-15 h-15"),children:[!l&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0",`rounded-${r}`,k?`bg-${k}`:"bg-bullish",i?.background)}),l&&jsxRuntime.jsx("div",{className:ui.clsx("absolute -inset-0.5",`rounded-${r}`),children:jsxRuntime.jsx(Js,{className:ui.clsx(k?`text-${k}`:"text-bullish",i?.progress),progress:e.migrateProgress??"0"})}),jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 p-px flex items-center justify-center",`rounded-${r}`,k?`bg-${k}/20`:"bg-bullish/20",i?.avatarWrapper),children:jsxRuntime.jsx(qs,{token:e,radius:r,enableSearch:s,enablePreview:t,classNames:i,children:jsxRuntime.jsxs("div",{className:ui.clsx("relative w-full h-full bg-content1 flex items-center justify-center p-0.5",`rounded-${r}`,T&&u&&"cursor-pointer"),onMouseEnter:y,onMouseLeave:m,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:f,className:ui.clsx("w-full h-full bg-content1 text-neutral text-2xl",`rounded-${r}`,i?.avatar)}),T&&u&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${r}`,i?.searchWrapper),onClick:c,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.clsx("w-6 h-6",i?.searchIcon)})})]})})}),d&&jsxRuntime.jsx("div",{className:"contents",children:jsxRuntime.jsx(ui.StyledTooltip,{content:e.launchedFrom?.protocolFamily??k,placement:"bottom",closeDelay:0,children:jsxRuntime.jsx("div",{className:ui.clsx("absolute -bottom-1 -right-1 rounded-full p-px w-4 h-4",`bg-${k}`,i?.protocolFamilyIconWrapper),children:jsxRuntime.jsx(ui.Image,{removeWrapper:true,src:`/images/protocols/${k}.svg`,className:ui.clsx("w-full h-full rounded-full bg-content1",i?.protocolFamilyIcon)})})})})]})}function qs({token:e,radius:t,enableSearch:s,enablePreview:o,classNames:n,children:r}){return react.useMemo(()=>o&&e.image,[o,e.image])?jsxRuntime.jsx(ui.StyledTooltip,{content:jsxRuntime.jsx(Qs,{token:e,radius:t,enableSearch:s,classNames:n}),closeDelay:100,placement:"bottom-start",classNames:{content:"p-1"},children:r}):r}function Qs({token:e,enableSearch:t,radius:s,classNames:o}){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]),[p,i]=react.useState(false),k=react.useCallback(()=>{i(true);},[]),d=react.useCallback(()=>{i(false);},[]),l=react.useCallback(u=>{if(u.stopPropagation(),!e.image)return;let f=utils.searchImageUrl(e.image);window.open(f,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.clsx("relative flex items-center justify-center w-60 h-60",`rounded-${s}`,p&&n&&"cursor-pointer",o?.previewWrapper),onMouseEnter:k,onMouseLeave:d,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:r,className:ui.clsx("w-full h-full bg-content1 text-neutral text-3xl",`rounded-${s}`,o?.previewAvatar)}),p&&n&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${s}`,o?.previewSearchWrapper),onClick:l,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.clsx("w-10 h-10",o?.previewSearchIcon)})})]})}function Js({progress:e,className:t}){let s=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:`
1
+ 'use strict';var react=require('react'),ui=require('@liberfi.io/ui'),i18n=require('@liberfi.io/i18n'),jsxRuntime=require('react/jsx-runtime'),hooks=require('@liberfi.io/hooks'),utils=require('@liberfi.io/utils'),react$1=require('@liberfi.io/react'),uiScaffold=require('@liberfi.io/ui-scaffold');typeof window<"u"&&(window.__LIBERFI_VERSION__=window.__LIBERFI_VERSION__||{},window.__LIBERFI_VERSION__["@liberfi.io/ui-tokens"]="0.1.35");var Uo="0.1.35";function Ge({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 Ye({isLast:e=false,className:t}){return jsxRuntime.jsxs("div",{className:ui.clsx("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"})]})]})}function le({token:e,enablePreview:t=true,enableSearch:o=true,showProgress:s=true,showProtocolFamily:n=true,radius:r="sm",className:c,classNames:i}){let u=react.useMemo(()=>e.launchedFrom?.protocolFamily?utils.parseTokenProtocolFamily(e.chain,e.launchedFrom.protocolFamily):void 0,[e.chain,e.launchedFrom?.protocolFamily]),l=react.useMemo(()=>n&&u,[n,u]),a=react.useMemo(()=>s&&e.migrateProgress&&new utils.SafeBigNumber(e.migrateProgress).lt(100),[s,e.migrateProgress]),d=react.useMemo(()=>o&&e.image,[o,e.image]),m=react.useMemo(()=>(e.symbol??e.name??e.address??"L").slice(0,1).toUpperCase(),[e.symbol,e.name,e.address]),[T,k]=react.useState(false),h=react.useCallback(()=>{k(true);},[]),p=react.useCallback(()=>{k(false);},[]),f=react.useCallback(g=>{if(g.stopPropagation(),!e.image)return;let b=utils.searchImageUrl(e.image);window.open(b,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.clsx("relative justify-center items-center",c??"w-15 h-15"),children:[!a&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0",`rounded-${r}`,u?`bg-${u}`:"bg-bullish",i?.background)}),a&&jsxRuntime.jsx("div",{className:ui.clsx("absolute -inset-0.5",`rounded-${r}`),children:jsxRuntime.jsx(Qo,{className:ui.clsx(u?`text-${u}`:"text-bullish",i?.progress),progress:e.migrateProgress??"0"})}),jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 p-px flex items-center justify-center",`rounded-${r}`,u?`bg-${u}/20`:"bg-bullish/20",i?.avatarWrapper),children:jsxRuntime.jsx(jo,{token:e,radius:r,enableSearch:o,enablePreview:t,classNames:i,children:jsxRuntime.jsxs("div",{className:ui.clsx("relative w-full h-full bg-content1 flex items-center justify-center p-0.5",`rounded-${r}`,T&&d&&"cursor-pointer"),onMouseEnter:h,onMouseLeave:p,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:m,className:ui.clsx("w-full h-full bg-content1 text-neutral text-2xl",`rounded-${r}`,i?.avatar)}),T&&d&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${r}`,i?.searchWrapper),onClick:f,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.clsx("w-6 h-6",i?.searchIcon)})})]})})}),l&&jsxRuntime.jsx("div",{className:"contents",children:jsxRuntime.jsx(ui.StyledTooltip,{content:e.launchedFrom?.protocolFamily??u,placement:"bottom",closeDelay:0,children:jsxRuntime.jsx("div",{className:ui.clsx("absolute -bottom-1 -right-1 rounded-full p-px w-4 h-4",`bg-${u}`,i?.protocolFamilyIconWrapper),children:jsxRuntime.jsx(ui.Image,{removeWrapper:true,src:`/images/protocols/${u}.svg`,className:ui.clsx("w-full h-full rounded-full bg-content1",i?.protocolFamilyIcon)})})})})]})}function jo({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(qo,{token:e,radius:t,enableSearch:o,classNames:n}),closeDelay:100,placement:"bottom-start",classNames:{content:"p-1"},children:r}):r}function qo({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]),[c,i]=react.useState(false),u=react.useCallback(()=>{i(true);},[]),l=react.useCallback(()=>{i(false);},[]),a=react.useCallback(d=>{if(d.stopPropagation(),!e.image)return;let m=utils.searchImageUrl(e.image);window.open(m,"_blank");},[e.image]);return jsxRuntime.jsxs("div",{className:ui.clsx("relative flex items-center justify-center w-60 h-60",`rounded-${o}`,c&&n&&"cursor-pointer",s?.previewWrapper),onMouseEnter:u,onMouseLeave:l,children:[jsxRuntime.jsx(ui.Avatar,{showFallback:true,src:e.image,name:r,className:ui.clsx("w-full h-full bg-content1 text-neutral text-3xl",`rounded-${o}`,s?.previewAvatar)}),c&&n&&jsxRuntime.jsx("div",{className:ui.clsx("absolute inset-0 bg-content1/80 flex items-center justify-center",`rounded-${o}`,s?.previewSearchWrapper),onClick:a,children:jsxRuntime.jsx(ui.CameraIcon,{className:ui.clsx("w-10 h-10",s?.previewSearchIcon)})})]})}function Qo({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
@@ -8,7 +8,7 @@
8
8
  Q 76 2 76 6
9
9
  L 76 72
10
10
  Q 76 76 76 76
11
- `}),jsxRuntime.jsx("path",{className:`${t} transition-all duration-300 ease-in-out`,stroke:"currentColor",fill:"transparent",strokeWidth:"1",strokeLinecap:"round",strokeDasharray:"296",strokeDashoffset:s,d:`
11
+ `}),jsxRuntime.jsx("path",{className:`${t} transition-all duration-300 ease-in-out`,stroke:"currentColor",fill:"transparent",strokeWidth:"1",strokeLinecap:"round",strokeDasharray:"296",strokeDashoffset:o,d:`
12
12
  M 76 76
13
13
  L 6 76
14
14
  Q 2 76 2 72
@@ -18,5 +18,5 @@
18
18
  Q 76 2 76 6
19
19
  L 76 72
20
20
  Q 76 76 76 76
21
- `})]})}function lt({token:e,renderAction:t,isLast:s=false,onSelectToken:o,className:n}){let{t:r}=i18n.useTranslation(),p=ui.useCopyToClipboard(),i=hooks.useTickAge(e.createdAt),k=react.useCallback(()=>{o?.(e);},[o,e]),d=react.useCallback(a=>{a.stopPropagation(),p(e.address,r("tokens.copied.address"));},[p,e.address,r]),l=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.top10HoldingsRatio).gte(.1),[e.marketData?.top10HoldingsRatio]),u=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.devHoldingsRatio).gte(.1),[e.marketData?.devHoldingsRatio]),f=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.insiderHoldingsRatio).gte(.1),[e.marketData?.insiderHoldingsRatio]),T=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),h=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[y,m]=react.useMemo(()=>{let a=Number(e.stats?.["1h"]?.buys??0),g=Number(e.stats?.["1h"]?.sells??0),x=a+g;if(x===0)return [12,12];let v=Math.round(a/x*24);return [v,24-v]},[e.stats]),c=react.useMemo(()=>{let a=new utils.SafeBigNumber(e.marketData?.marketCapInUsd);return a.lt(1e3)?"text-foreground":a.lt(1e6)?"text-secondary":"text-primary"},[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx("div",{className:ui.clsx("w-full h-full px-3 pt-3 pb-1 hover:bg-content2 cursor-pointer",!s&&"border-b border-border",n),onClick:o?k: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(ce,{token:e,enableSearch:true,enablePreview:!!e.image,showProgress:true,className:"w-15 h-15"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.address,closeDelay:0,children:jsxRuntime.jsx("div",{className:"text-xs text-neutral hover:text-primary/50 max-w-18 truncate cursor-pointer",onClick:d,children:utils.shortAddress(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,closeDelay:0,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.formatAge(i)}),e.socialMedias?.twitter&&jsxRuntime.jsx(ui.Link,{href:e.socialMedias.twitter,className:"text-neutral hover:text-primary",target:"_blank",onClick:a=>a.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:a=>a.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:a=>a.stopPropagation(),children:jsxRuntime.jsx(ui.WebsiteIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.Link,{href:utils.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",onClick:a=>a.stopPropagation(),children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-4 h-4"})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.holders"),closeDelay:0,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.formatAmount(e.marketData?.holders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.proHolders"),closeDelay:0,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.formatAmount(e.marketData?.proHolders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.kolHolders"),closeDelay:0,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.formatAmount(e.marketData?.kolHolders)})]})})]})]}),jsxRuntime.jsxs("div",{className:"relative flex items-center gap-1.5 flex-wrap",children:[jsxRuntime.jsx(ee,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:r("tokens.tokenInfo.top10HoldingsRatio"),warning:l}),jsxRuntime.jsx(ee,{icon:jsxRuntime.jsx(ui.CookIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.devHoldingsRatio),tooltip:r("tokens.tokenInfo.devHoldingsRatio"),warning:u}),jsxRuntime.jsx(ee,{icon:jsxRuntime.jsx(ui.RatIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.insiderHoldingsRatio),tooltip:r("tokens.tokenInfo.insiderHoldingsRatio"),warning:f}),jsxRuntime.jsx(ee,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:T}),jsxRuntime.jsx(ee,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils.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.clsx("text-base font-medium leading-none",c),children:utils.formatAmountUSD3(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.formatAmountUSD3(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.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:`${y}px`}}),jsxRuntime.jsx("div",{className:"h-1 bg-bearish",style:{width:`${m}px`}})]})]})]})]})})}function ee({icon:e,value:t,tooltip:s,warning:o}){return jsxRuntime.jsx(ui.StyledTooltip,{content:s,closeDelay:0,children:jsxRuntime.jsxs("div",{className:ui.clsx("px-2 py-0.5 flex items-center gap-1 bg-background rounded-full text-xs",o?"text-danger-500":"text-primary"),children:[e,jsxRuntime.jsx("span",{children:t})]})})}var yo=124,ct=10;function vo({index:e,style:t,data:s,skeletonCount:o,renderItemAction:n,onSelectToken:r}){return s?jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(lt,{token:s[e],isLast:e===s.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(et,{isLast:e===o-1})})}function G({title:e,tokens:t,isLoading:s,itemHeight:o=yo,renderHeaderExtra:n,renderItemAction:r,onSelectToken:p,onPauseChange:i,className:k}){let d=s||!t?void 0:t,l=d?d.length:ct,u=react.useMemo(()=>({data:d,skeletonCount:ct,renderItemAction:r,onSelectToken:p}),[d,r,p]),[f,T]=react.useState(false),h=react.useCallback(()=>{T(true),i?.(true);},[i]),y=react.useCallback(()=>{T(false),i?.(false);},[i]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full bg-content1 overflow-hidden flex flex-col border border-border rounded-lg",k),onMouseEnter:h,onMouseLeave:y,children:[jsxRuntime.jsx(Ye,{title:e,isPaused:f,extra:n}),jsxRuntime.jsx("div",{className:"flex-1 w-full overflow-hidden",children:jsxRuntime.jsx(ui.List,{className:"h-full w-full",rowCount:l,rowHeight:o,rowComponent:vo,rowProps:u,overscanCount:5})})]})}function mt(e,t){let s={...e};for(let o of Object.keys(t))t[o]!==void 0&&(s[o]=t[o]);return s}var wo=["1m","5m","15m","30m","1h","4h","24h"];function I(e,t){if(!t)return e;if(!e)return t;let s={...e};for(let o of wo)t[o]&&(s[o]=e[o]?mt(e[o],t[o]):t[o]);return s}function A(e,t){return t?e?mt(e,t):t:e}var Lo=80;function Io(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 gt(e){return e.sort((t,s)=>{let o=t.createdAt?.getTime()??0;return (s.createdAt?.getTime()??0)-o}),e.slice(0,Lo)}function ht({chain:e,isPaused:t=false,refetchInterval:s=1e4}){let o=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[p,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useNewTokensQuery(o,{refetchInterval:s});react.useEffect(()=>{l&&(d(m=>{let c=n.current,a=[...m];for(let g of l){let x=a.findIndex(v=>v.address===g.address);x>=0?a[x]={...a[x],...g,marketData:A(a[x].marketData,g.marketData),stats:I(a[x].stats,g.stats)}:c||a.push(g);}return c?a:gt(a)}),i(false));},[l]);let f=react.useCallback(m=>{n.current||d(c=>{let a=[...c];for(let g of m)a.some(v=>v.address===g.address)||a.push(Io(g));return gt(a)});},[]);client.useNewTokensSubscription({chain:e},f);let T=react.useCallback(m=>{d(c=>{let a=[...c],g=false;for(let x of m){let v=a.findIndex(_=>_.address===x.address);v>=0&&(g=true,a[v]={...a[v],name:x.name??a[v].name,symbol:x.symbol??a[v].symbol,decimals:x.decimals??a[v].decimals,image:x.image??a[v].image,description:x.description??a[v].description,socialMedias:x.socialMedias??a[v].socialMedias,launchedFrom:x.launchedFrom??a[v].launchedFrom,migratedTo:x.migratedTo??a[v].migratedTo,createdAt:x.createdAt??a[v].createdAt});}return g?a:c});},[]);client.useNewTokensBasicSubscription({chain:e},T);let h=react.useCallback(m=>{d(c=>{let a=[...c],g=false;for(let x of m){let v=a.findIndex(_=>_.address===x.address);v>=0&&(g=true,a[v]={...a[v],stats:I(a[v].stats,x.stats),marketData:A(a[v].marketData,x.marketData)});}return g?a:c});},[]);client.useNewTokensDataSubscription({chain:e},h);let y=react.useMemo(()=>u||p,[u,p]);return {tokens:k,isLoading:y}}function Mi({chain:e,title:t,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,className:r}){let[p,i]=react.useState(false),{tokens:k,isLoading:d}=ht({chain:e,isPaused:p}),l=react.useCallback(u=>{i(u);},[]);return jsxRuntime.jsx(G,{title:t,tokens:k,isLoading:d,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,onPauseChange:l,className:r})}function bt({chain:e,isPaused:t=false,refetchInterval:s=3e4}){let o=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[p,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useMigratedTokensQuery(o,{refetchInterval:s});react.useEffect(()=>{l&&(d(h=>{let y=n.current,m=[...h];for(let c of l){let a=m.findIndex(g=>g.address===c.address);a>=0?m[a]={...m[a],...c,marketData:A(m[a].marketData,c.marketData),stats:I(m[a].stats,c.stats)}:y||m.unshift(c);}return m}),i(false));},[l]);let f=react.useCallback(h=>{d(y=>{let m=[...y],c=false;for(let a of h){let g=m.findIndex(x=>x.address===a.address);g>=0&&(c=true,m[g]={...m[g],stats:I(m[g].stats,a.stats),marketData:A(m[g].marketData,a.marketData)});}return c?m:y});},[]);client.useMigratedTokensDataSubscription({chain:e},f);let T=react.useMemo(()=>u||p,[u,p]);return {tokens:k,isLoading:T}}function Ki({chain:e,title:t,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,className:r}){let[p,i]=react.useState(false),{tokens:k,isLoading:d}=bt({chain:e,isPaused:p}),l=react.useCallback(u=>{i(u);},[]);return jsxRuntime.jsx(G,{title:t,tokens:k,isLoading:d,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,onPauseChange:l,className:r})}function $o(e){return e.sort((t,s)=>{let o=Number(t.migrateProgress??0);return Number(s.migrateProgress??0)-o})}function Ct({chain:e,isPaused:t=false,refetchInterval:s=15e3}){let o=react.useMemo(()=>({chain:e}),[e]),n=react.useRef(t);n.current=t;let r=react.useRef(e),[p,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useFinalStretchTokensQuery(o,{refetchInterval:s});react.useEffect(()=>{l&&(d(h=>{let y=n.current,m=[...h];for(let c of l){let a=m.findIndex(g=>g.address===c.address);a>=0?m[a]={...m[a],...c,marketData:A(m[a].marketData,c.marketData),stats:I(m[a].stats,c.stats)}:y||m.push(c);}return y?m:$o(m)}),i(false));},[l]);let f=react.useCallback(h=>{d(y=>{let m=[...y],c=false;for(let a of h){let g=m.findIndex(x=>x.address===a.address);g>=0&&(c=true,m[g]={...m[g],stats:I(m[g].stats,a.stats),marketData:A(m[g].marketData,a.marketData)});}return c?m:y});},[]);client.useFinalStretchTokensDataSubscription({chain:e},f);let T=react.useMemo(()=>u||p,[u,p]);return {tokens:k,isLoading:T}}function tl({chain:e,title:t,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,className:r}){let[p,i]=react.useState(false),{tokens:k,isLoading:d}=Ct({chain:e,isPaused:p}),l=react.useCallback(u=>{i(u);},[]);return jsxRuntime.jsx(G,{title:t,tokens:k,isLoading:d,renderHeaderExtra:s,renderItemAction:o,onSelectToken:n,onPauseChange:l,className:r})}function yl({onSearch:e,onCancel:t}){let{t:s}=i18n.useTranslation(),{isDesktop:o,isMobile:n}=ui.useScreen(),{onOpen:r,onClose:p}=uiScaffold.useAsyncModal("search_tokens"),i=react.useCallback(()=>{e?e():r();},[e,r]),k=react.useCallback(()=>{t?t():p();},[t,p]);return react.useEffect(()=>{let d=l=>{let u=document.activeElement,f=!!u&&(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.getAttribute("contenteditable")==="true");l.key==="/"&&!f&&(l.preventDefault(),i()),l.key==="Escape"&&(l.preventDefault(),k());};return window.addEventListener("keydown",d),()=>{window.removeEventListener("keydown",d);}},[i,k]),jsxRuntime.jsx(ui.StyledButton,{size:"sm",radius:"full",isIconOnly:!o,onPress:i,variant:n?"flat":"bordered",startContent:o?jsxRuntime.jsx(ui.SearchIcon,{}):void 0,endContent:o?jsxRuntime.jsx(ui.Kbd,{className:"min-w-6 justify-center text-xs bg-transparent border border-border rounded-full",children:"/"}):void 0,className:ui.clsx(o&&"pl-3 pr-1.5 text-neutral"),children:o?s("tokens.search.placeholder"):jsxRuntime.jsx(ui.SearchIcon,{})})}function Ft({keywords:e,excludeKeywords:t,onKeywordsChange:s,onExcludeKeywordsChange:o,className:n}){let{t:r}=i18n.useTranslation(),[p,i]=react.useState(e?.join(", ")??""),[k,d]=react.useState(t?.join(", ")??"");react.useEffect(()=>{i(f=>{let T=fe(f);return T===void 0&&e===void 0?f:T===void 0?e?.join(", ")??"":e===void 0?"":T.join("")===e.join("")?f:e.join(", ")});},[e]),react.useEffect(()=>{d(f=>{let T=fe(f);return T===void 0&&t===void 0?f:T===void 0?t?.join(", ")??"":t===void 0?"":T.join("")===t.join("")?f:t.join(", ")});},[t]);let l=react.useCallback(f=>{i(f),s?.(fe(f));},[s]),u=react.useCallback(f=>{d(f),o?.(fe(f));},[o]);return jsxRuntime.jsxs("div",{className:ui.clsx("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:p,onValueChange:l})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:r("tokens.filters.keywords.exclude.title")}),jsxRuntime.jsx(ui.StyledInput,{variant:"bordered",radius:"lg",size:"sm",placeholder:r("tokens.filters.keywords.placeholder"),value:k,onValueChange:u})]})]})}function fe(e){let t=e.split(",").map(s=>s.trim()).filter(Boolean);return t.length>0?t:void 0}function Wt({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:s,className:o}){let{t:n}=i18n.useTranslation(),[r,p]=react.useState(t);react.useEffect(()=>{p(t);},[t]);let i=react.useMemo(()=>e.every(l=>r.includes(l)),[e,r]),k=react.useCallback(()=>{if(i){let l=[];p(l),s?.(l);}else {let l=[...e];p(l),s?.(l);}},[e,s,i]),d=react.useCallback(l=>()=>{if(r.includes(l)){let u=r.filter(f=>f!==l);p(u),s?.(u);}else {let u=[...r,l];p(u),s?.(u);}},[r,s]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-3 px-4",o),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:k,children:n(i?"tokens.filters.protocols.unselectAll":"tokens.filters.protocols.selectAll")})]}),jsxRuntime.jsx("div",{className:"grid grid-cols-3 gap-3",children:e.map(l=>jsxRuntime.jsx(ui.StyledButton,{variant:"bordered",size:"xs",radius:"full",className:ui.clsx("w-fit",`text-${l}`,`bg-${l}/5`,`border border-${l}`,{"opacity-40 data-[hover=true]:!opacity-30":!r.includes(l)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${l}.svg`,alt:utils.formatTokenProtocolName(l)}),onPress:d(l),children:utils.formatTokenProtocolName(l)},l))})]})}function E({title:e,field:t,value:s,onChange:o}){let{t:n}=i18n.useTranslation(),[r,p]=react.useState(s?Re(s).min:NaN),[i,k]=react.useState(s?Re(s).max:NaN);react.useEffect(()=>{if(s===void 0)p(NaN),k(NaN);else {let{min:u,max:f}=Re(s);p(u),k(f);}},[s]);let d=react.useCallback(u=>{p(u),o?.(Kt(t,u,i));},[t,o,i]),l=react.useCallback(u=>{k(u),o?.(Kt(t,r,u));},[t,o,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:i,onValueChange:l,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function Re(e){if(e.operator==="between"){let[t,s]=e.value;return {min:t,max:s}}return e.operator==="gte"?{min:e.value,max:NaN}:e.operator==="lte"?{min:NaN,max:e.value}:{min:NaN,max:NaN}}function Kt(e,t,s){if(!(isNaN(t)&&isNaN(s)))return isNaN(t)?{field:e,operator:"lte",value:s}:isNaN(s)?{field:e,operator:"gte",value:t}:{field:e,operator:"between",value:[t,s]}}function jt({values:e,onValuesChange:t,className:s}){let{t:o}=i18n.useTranslation(),[n,r]=react.useState(e);react.useEffect(()=>{r(e);},[e]);let p=react.useCallback(i=>k=>{if(k===void 0){let d=(n??[]).filter(l=>l.field!==i);d=d.length>0?d:void 0,r(d),t?.(d);}else {let d=[...(n??[]).filter(l=>l.field!==i),k];r(d),t?.(d);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",s),children:[jsxRuntime.jsx(E,{field:"holders",title:o("tokens.filters.stats.audits.holders"),value:n?.find(i=>i.field==="holders"),onChange:p("holders")}),jsxRuntime.jsx(E,{field:"top10Ratio",title:o("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(i=>i.field==="top10Ratio"),onChange:p("top10Ratio")}),jsxRuntime.jsx(E,{field:"top100Ratio",title:o("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(i=>i.field==="top100Ratio"),onChange:p("top100Ratio")}),jsxRuntime.jsx(E,{field:"creatorsRatio",title:o("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(i=>i.field==="creatorsRatio"),onChange:p("creatorsRatio")})]})}function qt({resolution:e,values:t,onValuesChange:s,className:o}){let{t:n}=i18n.useTranslation(),[r,p]=react.useState(t);react.useEffect(()=>{p(t);},[t]);let i=react.useCallback(k=>d=>{if(d===void 0){let l=(r??[]).filter(u=>u.field!==k);l=l.length>0?l:void 0,p(l),s?.(l);}else {let l=[...(r??[]).filter(u=>u.field!==k),d];p(l),s?.(l);}},[r,s]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",o),children:[jsxRuntime.jsx(E,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(k=>k.field==="marketCap"),onChange:i("marketCap")}),jsxRuntime.jsx(E,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(k=>k.field==="tvl"),onChange:i("tvl")}),jsxRuntime.jsx(E,{field:`volumes${e}`,title:n("tokens.filters.stats.metrics.volumes",{resolution:n(`common.resolution.${e}`)}),value:r?.find(k=>k.field===`volumes${e}`),onChange:i(`volumes${e}`)}),jsxRuntime.jsx(E,{field:`trades${e}`,title:n("tokens.filters.stats.metrics.txns",{resolution:n(`common.resolution.${e}`)}),value:r?.find(k=>k.field===`trades${e}`),onChange:i(`trades${e}`)})]})}function Zt({resolution:e,values:t,onValuesChange:s,className:o}){let{t:n}=i18n.useTranslation(),[r,p]=react.useState("audits"),[i,k]=react.useState(t);react.useEffect(()=>{k(t);},[t]);let d=react.useCallback(f=>{k(f),s?.(f);},[s]),l=react.useMemo(()=>{let f=["holders","top10Ratio","top100Ratio","creatorsRatio"];return i?.filter(T=>f.includes(T.field))?.length??0},[i]),u=react.useMemo(()=>{let f=["marketCap","tvl",`volumes${e}`,`trades${e}`];return i?.filter(T=>f.includes(T.field)).length??0},[i,e]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-3 px-4",o),children:[jsxRuntime.jsxs(ui.StyledTabs,{variant:"light",radius:"full",size:"sm",selectedKey:r,onSelectionChange:p,children:[jsxRuntime.jsx(ui.Tab,{title:l===0?n("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:l,shape:"circle",children:n("tokens.filters.stats.audits")})},"audits"),jsxRuntime.jsx(ui.Tab,{title:u===0?n("tokens.filters.stats.metrics"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:u,shape:"circle",children:n("tokens.filters.stats.metrics")})},"metrics")]}),jsxRuntime.jsx(jt,{values:i,onValuesChange:d,className:ui.clsx({hidden:r!=="audits"})}),jsxRuntime.jsx(qt,{values:i,onValuesChange:d,resolution:e,className:ui.clsx({hidden:r!=="metrics"})})]})}function be({protocols:e,resolution:t,filters:s,onFiltersChange:o,className:n}){let[r,p]=react.useState(ts(s?.filters,e));react.useEffect(()=>{p(ts(s?.filters,e));},[s?.filters,e]);let[i,k]=react.useState(s?.keywords);react.useEffect(()=>{k(s?.keywords);},[s?.keywords]);let[d,l]=react.useState(s?.excludeKeywords);react.useEffect(()=>{l(s?.excludeKeywords);},[s?.excludeKeywords]);let[u,f]=react.useState(s?.filters);react.useEffect(()=>{f(s?.filters);},[s?.filters]);let T=react.useCallback(c=>{p(c),o?.(ve(e,c,i,d,u));},[e,i,d,u,o]),h=react.useCallback(c=>{k(c),o?.(ve(e,r,c,d,u));},[e,r,d,u,o]),y=react.useCallback(c=>{l(c),o?.(ve(e,r,i,c,u));},[e,r,i,u,o]),m=react.useCallback(c=>{f(c),o?.(ve(e,r,i,d,c));},[e,r,i,d,o]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",n),children:[e&&e.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Wt,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:T}),jsxRuntime.jsx(ui.StyledDivider,{})]}),jsxRuntime.jsx(Ft,{keywords:i,excludeKeywords:d,onKeywordsChange:h,onExcludeKeywordsChange:y}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsx(Zt,{resolution:t,values:u,onValuesChange:m})]})}function ts(e,t){let s=e?.find(o=>o.field==="launchedFromProtocolFamily");return s?s.operator==="in"?s.value:(console.warn("invalid token protocols filter",s),[...t||[]]):[...t||[]]}function ve(e,t,s,o,n){let r=n?[...n.filter(p=>p.field!=="launchedFromProtocolFamily")]:[];return e&&e.length>0&&(e.every(i=>t.includes(i))||r.push({field:"launchedFromProtocolFamily",operator:"in",value:t})),s===void 0&&o===void 0&&r.length===0?void 0:{keywords:s,excludeKeywords:o,filters:r.length>0?r:void 0}}function bd({protocols:e,resolution:t,filters:s,onFiltersChange:o}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:p,onClose:i,onOpenChange:k}=ui.useDisclosure(),[d,l]=react.useState(s),u=react.useCallback(()=>{l(void 0);},[]),f=react.useCallback(()=>{o?.(d),i();},[d,o,i]);react.useEffect(()=>{l(s);},[r,s]);let T=react.useMemo(()=>Object.values(s||{}).every(h=>h===void 0),[s]);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:p,children:n("tokens.listHeader.filter")}),jsxRuntime.jsx(ui.StyledModal,{isOpen:r,onOpenChange:k,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(be,{protocols:e,resolution:t,filters:d,onFiltersChange:l,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:u,children:n("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:f,children:n("common.apply")})]})})]})})]})}function Rd({protocols:e,resolution:t,filters:s,onFiltersChange:o,...n}){let{t:r}=i18n.useTranslation(),{isOpen:p,onClose:i,onOpenChange:k}=ui.useDisclosure(),[d,l]=react.useState(s),u=react.useCallback(()=>{l(void 0);},[]),f=react.useCallback(()=>{o?.(d),i();},[d,o,i]);react.useEffect(()=>{l(s);},[p,s]);let T=react.useMemo(()=>Object.values(s||{}).every(h=>h===void 0),[s]);return jsxRuntime.jsxs(ui.StyledPopover,{...n,isOpen:p,onOpenChange:k,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":p}),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(be,{protocols:e,resolution:t,filters:d,onFiltersChange:l})}),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:u,children:r("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:f,children:r("common.apply")})]})]})})]})}function Bd({resolution:e,onResolutionChange:t,resolutionOptions:s=["1m","5m","1h","4h","24h"]}){let{t:o}=i18n.useTranslation(),n=react.useCallback(r=>{t?.(r);},[t]);return jsxRuntime.jsx(ui.StyledTabs,{variant:"primaryPlain",radius:"lg",selectedKey:e,onSelectionChange:n,"aria-label":"Select Resolution",children:s.map(r=>jsxRuntime.jsx(ui.Tab,{title:o(`common.resolution.${r}`)},r))})}function ds({token:e}){let{t}=i18n.useTranslation(),s=react.useMemo(()=>e.marketData?.bluechipHoldingsRatio,[e.marketData?.bluechipHoldingsRatio]),o=react.useMemo(()=>s!==void 0&&new utils.SafeBigNumber(s).gte(.1),[s]),n=react.useMemo(()=>s===void 0||new utils.SafeBigNumber(s).lt(.05),[s]);return jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.bluechip.explained"),closeDelay:0,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2.5",children:[o&&jsxRuntime.jsx(ui.HorsePowerHighIcon,{}),n&&jsxRuntime.jsx(ui.HorsePowerLowIcon,{}),!o&&!n&&jsxRuntime.jsx(ui.HorsePowerIcon,{}),jsxRuntime.jsx("span",{className:ui.clsx(o&&"text-bullish",!o&&!n&&"text-bearish",s===void 0&&"text-neutral"),children:utils.formatPercent(s)})]})})}function cs({token:e}){let t=ui.useCopyToClipboard(),{t:s}=i18n.useTranslation(),o=react.useCallback(r=>{r.preventDefault(),r.stopPropagation(),t(e.address,s("tokens.copied.address"));},[t,e.address,s]),n=hooks.useTickAge(e.createdAt);return jsxRuntime.jsxs("div",{className:"w-full flex justify-start items-center gap-3",children:[jsxRuntime.jsx(ce,{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,closeDelay:0,children:jsxRuntime.jsxs("div",{className:"flex-initial flex items-center gap-1 min-w-0 text-neutral hover:text-primary-200 cursor-pointer",onClick:o,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.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.searchTwitterUrl(`${e.symbol} OR ${e.address}`),className:"text-neutral hover:text-primary",target:"_blank",children:jsxRuntime.jsx(ui.SearchIcon,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})]})}function ms({token:e}){let{t}=i18n.useTranslation(),s=react.useMemo(()=>e.marketData?.holders,[e.marketData?.holders]),o=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]),p=react.useMemo(()=>new utils.SafeBigNumber(r).gte(.1),[r]),i=react.useMemo(()=>e.marketData?.top10HoldingsRatio,[e.marketData?.top10HoldingsRatio]),k=react.useMemo(()=>new utils.SafeBigNumber(i).gte(.1),[i]),d=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),l=react.useMemo(()=>new utils.SafeBigNumber(d).gte(.1),[d]),u=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),f=react.useMemo(()=>new utils.SafeBigNumber(u).gte(.1),[u]),T=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),h=react.useMemo(()=>new utils.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"),closeDelay:0,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:s?"primary":"default",children:utils.formatAmount(s)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.proHolders"),closeDelay:0,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:o?"primary":"default",children:utils.formatAmount(o)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.kolHolders"),closeDelay:0,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.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"),closeDelay:0,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:k?"danger":i===void 0?"default":"primary",children:utils.formatPercent(i)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.devHoldingsRatio"),closeDelay:0,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:p?"danger":r===void 0?"default":"primary",children:utils.formatPercent(r)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.sniperHoldingsRatio"),closeDelay:0,children:jsxRuntime.jsx(ui.Chip,{className:"pl-2 pr-1.5 gap-0.5 h-5",startContent:jsxRuntime.jsx(ui.SniperIcon,{width:13,height:13}),variant:"flat",size:"sm",color:l?"danger":d===void 0?"default":"primary",children:utils.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"),closeDelay:0,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:f?"danger":u===void 0?"default":"primary",children:utils.formatPercent(u)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.bundleHoldingsRatio"),closeDelay:0,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.formatPercent(T)})})]})]})}function us({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils.formatAmountUSD(t)})}function ps({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils.formatAmountUSD(t)})}function gs({token:e,resolution:t}){let s=react.useMemo(()=>e.marketData?.priceInUsd,[e]),o=react.useMemo(()=>e.stats?.[t]?.priceChange,[e,t]),n=react.useMemo(()=>o?new utils.SafeBigNumber(o).abs().toString():void 0,[o]),r=react.useMemo(()=>o&&new utils.SafeBigNumber(o).gte(0),[o]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 justify-center items-start",children:[jsxRuntime.jsx("span",{children:utils.formatPriceUSD(s)}),jsxRuntime.jsxs("span",{className:ui.clsx("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.formatPercent(n)})]})]})}function Ts({token:e,resolution:t}){let s=react.useMemo(()=>e.stats?.[t]?.traders,[e.stats?.[t]?.traders]),o=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.formatAmount(s)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmount(o)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmount(n)})]})]})}function ys({token:e,resolution:t}){let s=react.useMemo(()=>e.stats?.[t]?.trades,[e.stats?.[t]?.trades]),o=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.formatAmount(s)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmount(o)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmount(n)})]})]})}function bs({token:e,resolution:t}){let s=react.useMemo(()=>e.stats?.[t]?.volumesInUsd,[e.stats?.[t]?.volumesInUsd]),o=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.formatAmountUSD(s)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmountUSD(o)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmountUSD(n)})]})]})}var ws=5;function Ps({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:ws}).map((s,o)=>jsxRuntime.jsx(Jn,{rowHeight:e,hasBorderBottom:o!==ws-1,hasActions:t},o))})}function Jn({rowHeight:e,hasBorderBottom:t,hasActions:s}){return jsxRuntime.jsxs("div",{className:ui.clsx("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(Gn,{}),jsxRuntime.jsx(Xn,{}),jsxRuntime.jsx(Yn,{}),jsxRuntime.jsx(Zn,{}),jsxRuntime.jsx(ea,{}),jsxRuntime.jsx(ta,{}),jsxRuntime.jsx(sa,{}),jsxRuntime.jsx(oa,{}),jsxRuntime.jsx(ra,{}),s&&jsxRuntime.jsx(na,{})]})}function Gn(){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 Xn(){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 Yn(){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 Zn(){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 ea(){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 ta(){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 sa(){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 oa(){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 ra(){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 na(){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 Y({tokens:e,resolution:t="24h",isLoading:s,ActionsComponent:o,onSelectToken:n,sortDirections:r,onSortChange:p,height:i=600,itemHeight:k=88,itemHeightMobile:d=72,className:l}){let{isMobile:u}=ui.useScreen(),{t:f}=i18n.useTranslation(),T=react.useCallback(c=>a=>{a.preventDefault(),a.stopPropagation(),n?.(c);},[n]),[h,y]=react.useState(r??{});react.useEffect(()=>{y(r??{});},[r]);let m=react.useCallback(c=>a=>{let g={[c]:a};y(g),p?.(g);},[p]);return jsxRuntime.jsxs(ui.StyledTable,{isHeaderSticky:true,isVirtualized:true,radius:"lg",className:ui.clsx("h-full mx-auto",l??(o?"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:i,rowHeight:u?d:k,"aria-label":"Tokens",children:[jsxRuntime.jsx(ui.TableHeader,{children:[jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.token"),width:u?224:320,children:f("tokens.listHeader.token")},"token"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.price"),width:128,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(ui.Sortable,{sort:h.price,onSortChange:m("price"),children:f("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:h[`priceChange${t}`],onSortChange:m(`priceChange${t}`),children:f("tokens.listHeader.priceChange",{resolution:t})})]})},"price"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.marketCap"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:h.marketCap,onSortChange:m("marketCap"),children:f("tokens.listHeader.marketCap")})},"marketCap"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.liquidity"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:h.tvl,onSortChange:m("tvl"),children:f("tokens.listHeader.liquidity")})},"liquidity"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.volumes",{resolution:t}),width:138,children:jsxRuntime.jsx(ui.Sortable,{sort:h[`volumes${t}`],onSortChange:m(`volumes${t}`),children:f("tokens.listHeader.volumes",{resolution:t})})},"volumes"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.txs",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:h[`trades${t}`],onSortChange:m(`trades${t}`),children:f("tokens.listHeader.txs",{resolution:t})})},"txs"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.traders",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:h[`traders${t}`],onSortChange:m(`traders${t}`),children:f("tokens.listHeader.traders",{resolution:t})})},"traders"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.bluechip"),width:128,children:f("tokens.listHeader.bluechip")},"bluechip"),jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.tokenInfo"),width:308,children:f("tokens.listHeader.tokenInfo")},"tokenInfo"),o?jsxRuntime.jsx(ui.TableColumn,{textValue:f("tokens.listHeader.actions"),width:124,align:"end",children:f("tokens.listHeader.actions")},"actions"):void 0].filter(Boolean)}),jsxRuntime.jsx(ui.TableBody,{items:s?[]:e,isLoading:s,loadingContent:jsxRuntime.jsx(Ps,{rowHeight:u?d:k,hasActions:!!o}),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:f("common.empty")})]}),children:c=>jsxRuntime.jsx(ui.TableRow,{onClick:n?T(c):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(cs,{token:c,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(gs,{token:c,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ps,{token:c,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(us,{token:c,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(bs,{token:c,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ys,{token:c,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(Ts,{token:c,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ds,{token:c,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ms,{token:c,resolution:t})},"tokenInfo"),o?jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(o,{token:c,resolution:t})},"actions"):void 0].filter(Boolean)},c.address)})]})}var ba=80;function wa(e){return {chain:e.chain,address:e.address,name:e.name??"",symbol:e.symbol??"",decimals:e.decimals??0,image:e.image,description:e.description,socialMedias:e.socialMedias,launchedFrom:e.launchedFrom,migratedTo:e.migratedTo,createdAt:e.createdAt}}function Is(e){return e.sort((t,s)=>{let o=t.createdAt?.getTime()??0;return (s.createdAt?.getTime()??0)-o}),e.slice(0,ba)}function As({chain:e,resolution:t,options:s,refetchInterval:o=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...s}),[e,t,s]),r=react.useRef(n),[p,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useNewTokensQuery(n,{refetchInterval:o});react.useEffect(()=>{l&&(d(m=>{let c=[...m];for(let a of l){let g=c.findIndex(x=>x.address===a.address);g>=0?c[g]={...c[g],...a,marketData:A(c[g].marketData,a.marketData),stats:I(c[g].stats,a.stats)}:c.push(a);}return Is(c)}),i(false));},[l]);let f=react.useCallback(m=>{d(c=>{let a=[...c];for(let g of m)a.some(v=>v.address===g.address)||a.push(wa(g));return Is(a)});},[]);client.useNewTokensSubscription({chain:e},f);let T=react.useCallback(m=>{d(c=>{let a=[...c],g=false;for(let x of m){let v=a.findIndex(_=>_.address===x.address);v>=0&&(g=true,a[v]={...a[v],name:x.name??a[v].name,symbol:x.symbol??a[v].symbol,decimals:x.decimals??a[v].decimals,image:x.image??a[v].image,description:x.description??a[v].description,socialMedias:x.socialMedias??a[v].socialMedias,launchedFrom:x.launchedFrom??a[v].launchedFrom,migratedTo:x.migratedTo??a[v].migratedTo,createdAt:x.createdAt??a[v].createdAt});}return g?a:c});},[]);client.useNewTokensBasicSubscription({chain:e},T);let h=react.useCallback(m=>{d(c=>{let a=[...c],g=false;for(let x of m){let v=a.findIndex(_=>_.address===x.address);v>=0&&(g=true,a[v]={...a[v],stats:I(a[v].stats,x.stats),marketData:A(a[v].marketData,x.marketData)});}return g?a:c});},[]);client.useNewTokensDataSubscription({chain:e},h);let y=react.useMemo(()=>!!(u||p),[u,p]);return {tokens:k,isLoading:y}}function xm({chain:e,resolution:t,filters:s,ActionsComponent:o,onSelectToken:n,height:r,itemHeight:p,itemHeightMobile:i,className:k}){let[d,l]=react.useState(),u=react.useMemo(()=>{let h=Object.keys(d??{})[0],y=d?.[h];return {...s,...h&&y?{sortBy:h,sortDirection:y}:void 0}},[s,d]),{tokens:f,isLoading:T}=As({chain:e,resolution:t,options:u});return jsxRuntime.jsx(Y,{tokens:f,isLoading:T,resolution:t,height:r,itemHeight:p,itemHeightMobile:i,ActionsComponent:o,onSelectToken:n,sortDirections:d,onSortChange:l,className:k})}function Fs({chain:e,resolution:t,options:s,refetchInterval:o=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...s}),[e,t,s]),r=react.useRef(n),[p,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useStockTokensQuery(n,{refetchInterval:o});react.useEffect(()=>{l&&(d(h=>{let y=[];for(let m of l){let c=h.find(a=>a.address===m.address);c?y.push({...c,...m,marketData:A(c.marketData,m.marketData),stats:I(c.stats,m.stats)}):y.push(m);}return y}),i(false));},[l]);let f=react.useCallback(h=>{d(y=>{let m=[...y],c=false;for(let a of h){let g=m.findIndex(x=>x.address===a.address);g>=0&&(c=true,m[g]={...m[g],stats:I(m[g].stats,a.stats),marketData:A(m[g].marketData,a.marketData)});}return c?m:y});},[]);client.useStockTokensDataSubscription({chain:e},f);let T=react.useMemo(()=>!!(u||p),[u,p]);return {tokens:k,isLoading:T}}function Dm({chain:e,resolution:t,filters:s,ActionsComponent:o,onSelectToken:n,height:r,itemHeight:p,itemHeightMobile:i,className:k}){let[d,l]=react.useState(),u=react.useMemo(()=>{let h=Object.keys(d??{})[0],y=d?.[h];return {...s,...h&&y?{sortBy:h,sortDirection:y}:void 0}},[s,d]),{tokens:f,isLoading:T}=Fs({chain:e,resolution:t,options:u});return jsxRuntime.jsx(Y,{tokens:f,isLoading:T,resolution:t,height:r,itemHeight:p,itemHeightMobile:i,ActionsComponent:o,onSelectToken:n,sortDirections:d,onSortChange:l,className:k})}function Us({chain:e,resolution:t,options:s,refetchInterval:o=12e3}){let n=react.useMemo(()=>({chain:e,resolution:t,...s}),[e,t,s]),r=react.useRef(n),[p,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[k,d]=react.useState([]),{data:l,isPending:u}=client.useTrendingTokensQuery(n,{refetchInterval:o});react.useEffect(()=>{l&&(d(h=>{let y=[];for(let m of l){let c=h.find(a=>a.address===m.address);c?y.push({...c,...m,marketData:A(c.marketData,m.marketData),stats:I(c.stats,m.stats)}):y.push(m);}return y}),i(false));},[l]);let f=react.useCallback(h=>{d(y=>{let m=[...y],c=false;for(let a of h){let g=m.findIndex(x=>x.address===a.address);g>=0&&(c=true,m[g]={...m[g],stats:I(m[g].stats,a.stats),marketData:A(m[g].marketData,a.marketData)});}return c?m:y});},[]);client.useTrendingTokensDataSubscription({chain:e},f);let T=react.useMemo(()=>!!(u||p),[u,p]);return {tokens:k,isLoading:T}}function _m({chain:e,resolution:t,filters:s,ActionsComponent:o,onSelectToken:n,height:r,itemHeight:p,itemHeightMobile:i,className:k}){let[d,l]=react.useState(),u=react.useMemo(()=>{let h=Object.keys(d??{})[0],y=d?.[h];return {...s,...h&&y?{sortBy:h,sortDirection:y}:void 0}},[s,d]),{tokens:f,isLoading:T}=Us({chain:e,resolution:t,options:u});return jsxRuntime.jsx(Y,{tokens:f,isLoading:T,resolution:t,height:r,itemHeight:p,itemHeightMobile:i,ActionsComponent:o,onSelectToken:n,sortDirections:d,onSortChange:l,className:k})}exports.NewTokenListWidget=xm;exports.PulseFinalStretchListWidget=tl;exports.PulseList=G;exports.PulseListHeader=Ye;exports.PulseListItem=lt;exports.PulseListItemSkeleton=et;exports.PulseMigratedListWidget=Ki;exports.PulseNewListWidget=Mi;exports.SearchTokensButton=yl;exports.StockTokenListWidget=Dm;exports.TokenAvatar=ce;exports.TokenList=Y;exports.TokenListFilter=be;exports.TokenListFilterModal=bd;exports.TokenListFilterPopover=Rd;exports.TokenListResolutionSelector=Bd;exports.TrendingTokenListWidget=_m;exports.useNewTokensScript=As;exports.usePulseFinalStretchListScript=Ct;exports.usePulseMigratedListScript=bt;exports.usePulseNewListScript=ht;exports.useStockTokensScript=Fs;exports.useTrendingTokensScript=Us;exports.version=Bs;//# sourceMappingURL=index.js.map
21
+ `})]})}function it({token:e,renderAction:t,isLast:o=false,onSelectToken:s,className:n}){let{t:r}=i18n.useTranslation(),c=ui.useCopyToClipboard(),i=hooks.useTickAge(e.createdAt),u=react.useCallback(()=>{s?.(e);},[s,e]),l=react.useCallback(g=>{g.stopPropagation(),c(e.address,r("tokens.copied.address"));},[c,e.address,r]),a=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.top10HoldingsRatio).gte(.1),[e.marketData?.top10HoldingsRatio]),d=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.devHoldingsRatio).gte(.1),[e.marketData?.devHoldingsRatio]),m=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.insiderHoldingsRatio).gte(.1),[e.marketData?.insiderHoldingsRatio]),T=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.sniperHoldingsRatio).gte(.1),[e.marketData?.sniperHoldingsRatio]),k=react.useMemo(()=>new utils.SafeBigNumber(e.marketData?.bundleHoldingsRatio).gte(.1),[e.marketData?.bundleHoldingsRatio]),[h,p]=react.useMemo(()=>{let g=Number(e.stats?.["1h"]?.buys??0),b=Number(e.stats?.["1h"]?.sells??0),L=g+b;if(L===0)return [12,12];let ne=Math.round(g/L*24);return [ne,24-ne]},[e.stats]),f=react.useMemo(()=>{let g=new utils.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.clsx("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(le,{token:e,enableSearch:true,enablePreview:!!e.image,showProgress:true,className:"w-15 h-15"}),jsxRuntime.jsx(ui.StyledTooltip,{content:e.address,closeDelay:0,children:jsxRuntime.jsx("div",{className:"text-xs text-neutral hover:text-primary/50 max-w-18 truncate cursor-pointer",onClick:l,children:utils.shortAddress(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,closeDelay:0,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1 min-w-0 text-neutral hover:text-primary/50 cursor-pointer",onClick:l,children:[jsxRuntime.jsx("span",{className:"text-base whitespace-nowrap overflow-hidden text-ellipsis",children:e.name}),jsxRuntime.jsx(ui.CopyIcon,{className:"flex-none w-3.5 h-3.5"})]})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[jsxRuntime.jsx("span",{className:"text-sm text-primary font-medium",children:utils.formatAge(i)}),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.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"),closeDelay:0,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.formatAmount(e.marketData?.holders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.proHolders"),closeDelay:0,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.formatAmount(e.marketData?.proHolders)})]})}),jsxRuntime.jsx(ui.StyledTooltip,{content:r("tokens.tokenInfo.kolHolders"),closeDelay:0,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.formatAmount(e.marketData?.kolHolders)})]})})]})]}),jsxRuntime.jsxs("div",{className:"relative flex items-center gap-1.5 flex-wrap",children:[jsxRuntime.jsx(X,{icon:jsxRuntime.jsx(ui.UserWithStarBadgeIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.top10HoldingsRatio),tooltip:r("tokens.tokenInfo.top10HoldingsRatio"),warning:a}),jsxRuntime.jsx(X,{icon:jsxRuntime.jsx(ui.CookIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.devHoldingsRatio),tooltip:r("tokens.tokenInfo.devHoldingsRatio"),warning:d}),jsxRuntime.jsx(X,{icon:jsxRuntime.jsx(ui.RatIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.insiderHoldingsRatio),tooltip:r("tokens.tokenInfo.insiderHoldingsRatio"),warning:m}),jsxRuntime.jsx(X,{icon:jsxRuntime.jsx(ui.SniperIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.sniperHoldingsRatio),tooltip:r("tokens.tokenInfo.sniperHoldingsRatio"),warning:T}),jsxRuntime.jsx(X,{icon:jsxRuntime.jsx(ui.BundlesIcon,{width:12,height:12}),value:utils.formatPercent(e.marketData?.bundleHoldingsRatio),tooltip:r("tokens.tokenInfo.bundleHoldingsRatio"),warning:k}),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.clsx("text-base font-medium leading-none",f),children:utils.formatAmountUSD3(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.formatAmountUSD3(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.formatAmount(e.stats?.["1h"]?.trades)})]}),jsxRuntime.jsxs("div",{className:"flex rounded-full overflow-hidden",children:[jsxRuntime.jsx("div",{className:"h-1 bg-bullish",style:{width:`${h}px`}}),jsxRuntime.jsx("div",{className:"h-1 bg-bearish",style:{width:`${p}px`}})]})]})]})]})})}function X({icon:e,value:t,tooltip:o,warning:s}){return jsxRuntime.jsx(ui.StyledTooltip,{content:o,closeDelay:0,children:jsxRuntime.jsxs("div",{className:ui.clsx("px-2 py-0.5 flex items-center gap-1 bg-background rounded-full text-xs",s?"text-danger-500":"text-primary"),children:[e,jsxRuntime.jsx("span",{children:t})]})})}var Ts=124,lt=10;function xs({index:e,style:t,data:o,skeletonCount:s,renderItemAction:n,onSelectToken:r}){return o?jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(it,{token:o[e],isLast:e===o.length-1,renderAction:n,onSelectToken:r})}):jsxRuntime.jsx("div",{style:t,children:jsxRuntime.jsx(Ye,{isLast:e===s-1})})}function q({title:e,tokens:t,isLoading:o,itemHeight:s=Ts,renderHeaderExtra:n,renderItemAction:r,onSelectToken:c,onPauseChange:i,className:u}){let l=o||!t?void 0:t,a=l?l.length:lt,d=react.useMemo(()=>({data:l,skeletonCount:lt,renderItemAction:r,onSelectToken:c}),[l,r,c]),[m,T]=react.useState(false),k=react.useCallback(()=>{T(true),i?.(true);},[i]),h=react.useCallback(()=>{T(false),i?.(false);},[i]);return jsxRuntime.jsxs("div",{className:ui.cn("w-full h-full bg-content1 overflow-hidden flex flex-col border border-border rounded-lg",u),onMouseEnter:k,onMouseLeave:h,children:[jsxRuntime.jsx(Ge,{title:e,isPaused:m,extra:n}),jsxRuntime.jsx("div",{className:"flex-1 w-full overflow-hidden",children:jsxRuntime.jsx(ui.List,{className:"h-full w-full",rowCount:a,rowHeight:s,rowComponent:xs,rowProps:d,overscanCount:5})})]})}function Ie(e,t){let o={...e};for(let s of Object.keys(t))t[s]!==void 0&&(o[s]=t[s]);return o}var vs=["1m","5m","15m","30m","1h","4h","24h"];function bs(e,t){if(!t)return e;if(!e)return t;let o={...e};for(let s of vs)t[s]&&(o[s]=e[s]?Ie(e[s],t[s]):t[s]);return o}function Ps(e,t){return t?e?Ie(e,t):t:e}function me(e,t){return t?e?Ie(e,t):t:e}function w(e,t){let{chain:o,address:s,stats:n,marketData:r,socialMedias:c,security:i,launchedFrom:u,migratedTo:l,...a}=t,d={...e};for(let m of Object.keys(a))a[m]!==void 0&&(d[m]=a[m]);return d.stats=bs(e.stats,n),d.marketData=Ps(e.marketData,r),d.socialMedias=me(e.socialMedias,c),d.security=me(e.security,i),d.launchedFrom=me(e.launchedFrom,u),d.migratedTo=me(e.migratedTo,l),d}var Ns=80;function Ls(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 pt(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,Ns)}function ft({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),[c,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useNewTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{a&&(l(k=>{let h=n.current,p=[...k];for(let f of a){let g=p.findIndex(b=>b.address===f.address);g>=0?p[g]=w(p[g],f):h||p.push(f);}return h?p:pt(p)}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=n.current,f=[...h],g=false;for(let b of k){let L=f.findIndex(ne=>ne.address===b.address);L>=0?(g=true,f[L]=w(f[L],b)):p||(g=true,f.push(Ls(b)));}return g?p?f:pt(f):h});},[]);react$1.useNewTokensSubscription({chain:e},m);let T=react.useMemo(()=>d||c,[d,c]);return {tokens:u,isLoading:T}}function Ua({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[c,i]=react.useState(false),{tokens:u,isLoading:l}=ft({chain:e,isPaused:c}),a=react.useCallback(d=>{i(d);},[]);return jsxRuntime.jsx(q,{title:t,tokens:u,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:a,className:r})}function xt({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),[c,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useMigratedTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{a&&(l(k=>{let h=n.current,p=[...k];for(let f of a){let g=p.findIndex(b=>b.address===f.address);g>=0?p[g]=w(p[g],f):h||p.unshift(f);}return p}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=[...h],f=false;for(let g of k){let b=p.findIndex(L=>L.address===g.address);b>=0&&(f=true,p[b]=w(p[b],g));}return f?p:h});},[]);react$1.useMigratedTokensSubscription({chain:e},m);let T=react.useMemo(()=>d||c,[d,c]);return {tokens:u,isLoading:T}}function Ja({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[c,i]=react.useState(false),{tokens:u,isLoading:l}=xt({chain:e,isPaused:c}),a=react.useCallback(d=>{i(d);},[]);return jsxRuntime.jsx(q,{title:t,tokens:u,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:a,className:r})}function _s(e){return e.sort((t,o)=>{let s=Number(t.migrateProgress??0);return Number(o.migrateProgress??0)-s})}function wt({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),[c,i]=react.useState(true);react.useEffect(()=>{e!==r.current&&(i(true),r.current=e);},[e]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useFinalStretchTokensQuery(s,{refetchInterval:o});react.useEffect(()=>{a&&(l(k=>{let h=n.current,p=[...k];for(let f of a){let g=p.findIndex(b=>b.address===f.address);g>=0?p[g]=w(p[g],f):h||p.push(f);}return h?p:_s(p)}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=[...h],f=false;for(let g of k){let b=p.findIndex(L=>L.address===g.address);b>=0&&(f=true,p[b]=w(p[b],g));}return f?p:h});},[]);react$1.useFinalStretchTokensSubscription({chain:e},m);let T=react.useMemo(()=>d||c,[d,c]);return {tokens:u,isLoading:T}}function il({chain:e,title:t,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,className:r}){let[c,i]=react.useState(false),{tokens:u,isLoading:l}=wt({chain:e,isPaused:c}),a=react.useCallback(d=>{i(d);},[]);return jsxRuntime.jsx(q,{title:t,tokens:u,isLoading:l,renderHeaderExtra:o,renderItemAction:s,onSelectToken:n,onPauseChange:a,className:r})}function Cl({onSearch:e,onCancel:t}){let{t:o}=i18n.useTranslation(),{isDesktop:s,isMobile:n}=ui.useScreen(),{onOpen:r,onClose:c}=uiScaffold.useAsyncModal("search_tokens"),i=react.useCallback(()=>{e?e():r();},[e,r]),u=react.useCallback(()=>{t?t():c();},[t,c]);return react.useEffect(()=>{let l=a=>{let d=document.activeElement,m=!!d&&(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.getAttribute("contenteditable")==="true");a.key==="/"&&!m&&(a.preventDefault(),i()),a.key==="Escape"&&(a.preventDefault(),u());};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l);}},[i,u]),jsxRuntime.jsx(ui.StyledButton,{size:"sm",radius:"full",isIconOnly:!s,onPress:i,variant:n?"flat":"bordered",startContent:s?jsxRuntime.jsx(ui.SearchIcon,{}):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.clsx(s&&"pl-3 pr-1.5 text-neutral"),children:s?o("tokens.search.placeholder"):jsxRuntime.jsx(ui.SearchIcon,{})})}function Rt({keywords:e,excludeKeywords:t,onKeywordsChange:o,onExcludeKeywordsChange:s,className:n}){let{t:r}=i18n.useTranslation(),[c,i]=react.useState(e?.join(", ")??""),[u,l]=react.useState(t?.join(", ")??"");react.useEffect(()=>{i(m=>{let T=pe(m);return T===void 0&&e===void 0?m:T===void 0?e?.join(", ")??"":e===void 0?"":T.join("")===e.join("")?m:e.join(", ")});},[e]),react.useEffect(()=>{l(m=>{let T=pe(m);return T===void 0&&t===void 0?m:T===void 0?t?.join(", ")??"":t===void 0?"":T.join("")===t.join("")?m:t.join(", ")});},[t]);let a=react.useCallback(m=>{i(m),o?.(pe(m));},[o]),d=react.useCallback(m=>{l(m),s?.(pe(m));},[s]);return jsxRuntime.jsxs("div",{className:ui.clsx("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:c,onValueChange:a})]}),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:d})]})]})}function pe(e){let t=e.split(",").map(o=>o.trim()).filter(Boolean);return t.length>0?t:void 0}function Ot({protocols:e,selectedProtocols:t=[],onSelectedProtocolsChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,c]=react.useState(t);react.useEffect(()=>{c(t);},[t]);let i=react.useMemo(()=>e.every(a=>r.includes(a)),[e,r]),u=react.useCallback(()=>{if(i){let a=[];c(a),o?.(a);}else {let a=[...e];c(a),o?.(a);}},[e,o,i]),l=react.useCallback(a=>()=>{if(r.includes(a)){let d=r.filter(m=>m!==a);c(d),o?.(d);}else {let d=[...r,a];c(d),o?.(d);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.clsx("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(i?"tokens.filters.protocols.unselectAll":"tokens.filters.protocols.selectAll")})]}),jsxRuntime.jsx("div",{className:"grid grid-cols-3 gap-3",children:e.map(a=>jsxRuntime.jsx(ui.StyledButton,{variant:"bordered",size:"xs",radius:"full",className:ui.clsx("w-fit",`text-${a}`,`bg-${a}/5`,`border border-${a}`,{"opacity-40 data-[hover=true]:!opacity-30":!r.includes(a)}),startContent:jsxRuntime.jsx(ui.Image,{width:14,height:14,src:`/images/protocols/${a}.svg`,alt:utils.formatTokenProtocolName(a)}),onPress:l(a),children:utils.formatTokenProtocolName(a)},a))})]})}function H({title:e,field:t,value:o,onChange:s}){let{t:n}=i18n.useTranslation(),[r,c]=react.useState(o?Re(o).min:NaN),[i,u]=react.useState(o?Re(o).max:NaN);react.useEffect(()=>{if(o===void 0)c(NaN),u(NaN);else {let{min:d,max:m}=Re(o);c(d),u(m);}},[o]);let l=react.useCallback(d=>{c(d),s?.(_t(t,d,i));},[t,s,i]),a=react.useCallback(d=>{u(d),s?.(_t(t,r,d));},[t,s,r]);return jsxRuntime.jsxs("div",{className:"flex flex-col gap-1",children:[e&&jsxRuntime.jsx("h3",{className:"text-xs text-neutral",children:e}),jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[jsxRuntime.jsx(ui.StyledNumberInput,{value:r,onValueChange:l,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.min"),"aria-label":`${e} min`}),jsxRuntime.jsx(ui.StyledNumberInput,{value:i,onValueChange:a,variant:"bordered",radius:"lg",size:"sm",placeholder:n("tokens.filters.stats.max"),"aria-label":`${e} max`})]})]})}function Re(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 _t(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 $t({values:e,onValuesChange:t,className:o}){let{t:s}=i18n.useTranslation(),[n,r]=react.useState(e);react.useEffect(()=>{r(e);},[e]);let c=react.useCallback(i=>u=>{if(u===void 0){let l=(n??[]).filter(a=>a.field!==i);l=l.length>0?l:void 0,r(l),t?.(l);}else {let l=[...(n??[]).filter(a=>a.field!==i),u];r(l),t?.(l);}},[n,t]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",o),children:[jsxRuntime.jsx(H,{field:"holders",title:s("tokens.filters.stats.audits.holders"),value:n?.find(i=>i.field==="holders"),onChange:c("holders")}),jsxRuntime.jsx(H,{field:"top10Ratio",title:s("tokens.filters.stats.audits.top10HoldingsRatio"),value:n?.find(i=>i.field==="top10Ratio"),onChange:c("top10Ratio")}),jsxRuntime.jsx(H,{field:"top100Ratio",title:s("tokens.filters.stats.audits.top100HoldingsRatio"),value:n?.find(i=>i.field==="top100Ratio"),onChange:c("top100Ratio")}),jsxRuntime.jsx(H,{field:"creatorsRatio",title:s("tokens.filters.stats.audits.devHoldingsRatio"),value:n?.find(i=>i.field==="creatorsRatio"),onChange:c("creatorsRatio")})]})}function Kt({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,c]=react.useState(t);react.useEffect(()=>{c(t);},[t]);let i=react.useCallback(u=>l=>{if(l===void 0){let a=(r??[]).filter(d=>d.field!==u);a=a.length>0?a:void 0,c(a),o?.(a);}else {let a=[...(r??[]).filter(d=>d.field!==u),l];c(a),o?.(a);}},[r,o]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",s),children:[jsxRuntime.jsx(H,{field:"marketCap",title:n("tokens.filters.stats.metrics.marketCap"),value:r?.find(u=>u.field==="marketCap"),onChange:i("marketCap")}),jsxRuntime.jsx(H,{field:"tvl",title:n("tokens.filters.stats.metrics.liquidity"),value:r?.find(u=>u.field==="tvl"),onChange:i("tvl")}),jsxRuntime.jsx(H,{field:`volumes${e}`,title:n("tokens.filters.stats.metrics.volumes",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`volumes${e}`),onChange:i(`volumes${e}`)}),jsxRuntime.jsx(H,{field:`trades${e}`,title:n("tokens.filters.stats.metrics.txns",{resolution:n(`common.resolution.${e}`)}),value:r?.find(u=>u.field===`trades${e}`),onChange:i(`trades${e}`)})]})}function Gt({resolution:e,values:t,onValuesChange:o,className:s}){let{t:n}=i18n.useTranslation(),[r,c]=react.useState("audits"),[i,u]=react.useState(t);react.useEffect(()=>{u(t);},[t]);let l=react.useCallback(m=>{u(m),o?.(m);},[o]),a=react.useMemo(()=>{let m=["holders","top10Ratio","top100Ratio","creatorsRatio"];return i?.filter(T=>m.includes(T.field))?.length??0},[i]),d=react.useMemo(()=>{let m=["marketCap","tvl",`volumes${e}`,`trades${e}`];return i?.filter(T=>m.includes(T.field)).length??0},[i,e]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-3 px-4",s),children:[jsxRuntime.jsxs(ui.StyledTabs,{variant:"light",radius:"full",size:"sm",selectedKey:r,onSelectionChange:c,children:[jsxRuntime.jsx(ui.Tab,{title:a===0?n("tokens.filters.stats.audits"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:a,shape:"circle",children:n("tokens.filters.stats.audits")})},"audits"),jsxRuntime.jsx(ui.Tab,{title:d===0?n("tokens.filters.stats.metrics"):jsxRuntime.jsx(ui.StyledBadge,{color:"primary",size:"sm",content:d,shape:"circle",children:n("tokens.filters.stats.metrics")})},"metrics")]}),jsxRuntime.jsx($t,{values:i,onValuesChange:l,className:ui.clsx({hidden:r!=="audits"})}),jsxRuntime.jsx(Kt,{values:i,onValuesChange:l,resolution:e,className:ui.clsx({hidden:r!=="metrics"})})]})}function ve({protocols:e,resolution:t,filters:o,onFiltersChange:s,className:n}){let[r,c]=react.useState(Yt(o?.filters,e));react.useEffect(()=>{c(Yt(o?.filters,e));},[o?.filters,e]);let[i,u]=react.useState(o?.keywords);react.useEffect(()=>{u(o?.keywords);},[o?.keywords]);let[l,a]=react.useState(o?.excludeKeywords);react.useEffect(()=>{a(o?.excludeKeywords);},[o?.excludeKeywords]);let[d,m]=react.useState(o?.filters);react.useEffect(()=>{m(o?.filters);},[o?.filters]);let T=react.useCallback(f=>{c(f),s?.(ye(e,f,i,l,d));},[e,i,l,d,s]),k=react.useCallback(f=>{u(f),s?.(ye(e,r,f,l,d));},[e,r,l,d,s]),h=react.useCallback(f=>{a(f),s?.(ye(e,r,i,f,d));},[e,r,i,d,s]),p=react.useCallback(f=>{m(f),s?.(ye(e,r,i,l,f));},[e,r,i,l,s]);return jsxRuntime.jsxs("div",{className:ui.clsx("flex flex-col gap-4",n),children:[e&&e.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Ot,{protocols:e,selectedProtocols:r,onSelectedProtocolsChange:T}),jsxRuntime.jsx(ui.StyledDivider,{})]}),jsxRuntime.jsx(Rt,{keywords:i,excludeKeywords:l,onKeywordsChange:k,onExcludeKeywordsChange:h}),jsxRuntime.jsx(ui.StyledDivider,{}),jsxRuntime.jsx(Gt,{resolution:t,values:d,onValuesChange:p})]})}function Yt(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 ye(e,t,o,s,n){let r=n?[...n.filter(c=>c.field!=="launchedFromProtocolFamily")]:[];return e&&e.length>0&&(e.every(i=>t.includes(i))||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 Nd({protocols:e,resolution:t,filters:o,onFiltersChange:s}){let{t:n}=i18n.useTranslation(),{isOpen:r,onOpen:c,onClose:i,onOpenChange:u}=ui.useDisclosure(),[l,a]=react.useState(o),d=react.useCallback(()=>{a(void 0);},[]),m=react.useCallback(()=>{s?.(l),i();},[l,s,i]);react.useEffect(()=>{a(o);},[r,o]);let T=react.useMemo(()=>Object.values(o||{}).every(k=>k===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:c,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(ve,{protocols:e,resolution:t,filters:l,onFiltersChange:a,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:d,children:n("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:m,children:n("common.apply")})]})})]})})]})}function Od({protocols:e,resolution:t,filters:o,onFiltersChange:s,...n}){let{t:r}=i18n.useTranslation(),{isOpen:c,onClose:i,onOpenChange:u}=ui.useDisclosure(),[l,a]=react.useState(o),d=react.useCallback(()=>{a(void 0);},[]),m=react.useCallback(()=>{s?.(l),i();},[l,s,i]);react.useEffect(()=>{a(o);},[c,o]);let T=react.useMemo(()=>Object.values(o||{}).every(k=>k===void 0),[o]);return jsxRuntime.jsxs(ui.StyledPopover,{...n,isOpen:c,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":c}),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(ve,{protocols:e,resolution:t,filters:l,onFiltersChange:a})}),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:d,children:r("common.reset")}),jsxRuntime.jsx(ui.StyledButton,{color:"primary",size:"sm",radius:"full",onPress:m,children:r("common.apply")})]})]})})]})}function Kd({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.StyledTabs,{variant:"primaryPlain",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 io({token:e}){let{t}=i18n.useTranslation(),o=react.useMemo(()=>e.marketData?.bluechipHoldingsRatio,[e.marketData?.bluechipHoldingsRatio]),s=react.useMemo(()=>o!==void 0&&new utils.SafeBigNumber(o).gte(.1),[o]),n=react.useMemo(()=>o===void 0||new utils.SafeBigNumber(o).lt(.05),[o]);return jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.bluechip.explained"),closeDelay:0,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.clsx(s&&"text-bullish",!s&&!n&&"text-bearish",o===void 0&&"text-neutral"),children:utils.formatPercent(o)})]})})}function ao({token:e}){let t=ui.useCopyToClipboard(),{t:o}=i18n.useTranslation(),s=react.useCallback(r=>{r.preventDefault(),r.stopPropagation(),t(e.address,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(le,{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,closeDelay:0,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.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.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 lo({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]),c=react.useMemo(()=>new utils.SafeBigNumber(r).gte(.1),[r]),i=react.useMemo(()=>e.marketData?.top10HoldingsRatio,[e.marketData?.top10HoldingsRatio]),u=react.useMemo(()=>new utils.SafeBigNumber(i).gte(.1),[i]),l=react.useMemo(()=>e.marketData?.sniperHoldingsRatio,[e.marketData?.sniperHoldingsRatio]),a=react.useMemo(()=>new utils.SafeBigNumber(l).gte(.1),[l]),d=react.useMemo(()=>e.marketData?.insiderHoldingsRatio,[e.marketData?.insiderHoldingsRatio]),m=react.useMemo(()=>new utils.SafeBigNumber(d).gte(.1),[d]),T=react.useMemo(()=>e.marketData?.bundleHoldingsRatio,[e.marketData?.bundleHoldingsRatio]),k=react.useMemo(()=>new utils.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"),closeDelay:0,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.formatAmount(o)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.proHolders"),closeDelay:0,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.formatAmount(s)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.kolHolders"),closeDelay:0,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.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"),closeDelay:0,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":i===void 0?"default":"primary",children:utils.formatPercent(i)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.devHoldingsRatio"),closeDelay:0,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:c?"danger":r===void 0?"default":"primary",children:utils.formatPercent(r)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.sniperHoldingsRatio"),closeDelay:0,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:a?"danger":l===void 0?"default":"primary",children:utils.formatPercent(l)})})]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 items-start justify-start",children:[jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.insiderHoldingsRatio"),closeDelay:0,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:m?"danger":d===void 0?"default":"primary",children:utils.formatPercent(d)})}),jsxRuntime.jsx(ui.StyledTooltip,{content:t("tokens.tokenInfo.bundleHoldingsRatio"),closeDelay:0,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:k?"danger":T===void 0?"default":"primary",children:utils.formatPercent(T)})})]})]})}function co({token:e}){let t=react.useMemo(()=>e.marketData?.tvlInUsd,[e.marketData?.tvlInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils.formatAmountUSD(t)})}function mo({token:e}){let t=react.useMemo(()=>e.marketData?.marketCapInUsd,[e.marketData?.marketCapInUsd]);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:utils.formatAmountUSD(t)})}function fo({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.SafeBigNumber(s).abs().toString():void 0,[s]),r=react.useMemo(()=>s&&new utils.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.formatPriceUSD(o)}),jsxRuntime.jsxs("span",{className:ui.clsx("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.formatPercent(n)})]})]})}function ho({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.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmount(n)})]})]})}function To({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.formatAmount(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmount(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmount(n)})]})]})}function yo({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.formatAmountUSD(o)}),jsxRuntime.jsxs("div",{className:"flex gap-1 text-xs",children:[jsxRuntime.jsx("span",{className:"text-bullish",children:utils.formatAmountUSD(s)}),"/",jsxRuntime.jsx("span",{className:"text-bearish",children:utils.formatAmountUSD(n)})]})]})}var vo=5;function bo({rowHeight:e,hasActions:t}){return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:vo}).map((o,s)=>jsxRuntime.jsx(Qn,{rowHeight:e,hasBorderBottom:s!==vo-1,hasActions:t},s))})}function Qn({rowHeight:e,hasBorderBottom:t,hasActions:o}){return jsxRuntime.jsxs("div",{className:ui.clsx("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(Jn,{}),jsxRuntime.jsx(Gn,{}),jsxRuntime.jsx(Xn,{}),jsxRuntime.jsx(Yn,{}),jsxRuntime.jsx(Zn,{}),jsxRuntime.jsx(ei,{}),jsxRuntime.jsx(ti,{}),jsxRuntime.jsx(oi,{}),jsxRuntime.jsx(si,{}),o&&jsxRuntime.jsx(ri,{})]})}function Jn(){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 Gn(){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 Xn(){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 Yn(){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 Zn(){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 ei(){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 ti(){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 oi(){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 si(){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 ri(){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 J({tokens:e,resolution:t="24h",isLoading:o,ActionsComponent:s,onSelectToken:n,sortDirections:r,onSortChange:c,height:i=600,itemHeight:u=88,itemHeightMobile:l=72,className:a}){let{isMobile:d}=ui.useScreen(),{t:m}=i18n.useTranslation(),T=react.useCallback(f=>g=>{g.preventDefault(),g.stopPropagation(),n?.(f);},[n]),[k,h]=react.useState(r??{});react.useEffect(()=>{h(r??{});},[r]);let p=react.useCallback(f=>g=>{let b={[f]:g};h(b),c?.(b);},[c]);return jsxRuntime.jsxs(ui.StyledTable,{isHeaderSticky:true,isVirtualized:true,radius:"lg",className:ui.clsx("h-full mx-auto",a??(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:i,rowHeight:d?l:u,"aria-label":"Tokens",children:[jsxRuntime.jsx(ui.TableHeader,{children:[jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.token"),width:d?224:320,children:m("tokens.listHeader.token")},"token"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.price"),width:128,children:jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(ui.Sortable,{sort:k.price,onSortChange:p("price"),children:m("tokens.listHeader.price")}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Sortable,{sort:k[`priceChange${t}`],onSortChange:p(`priceChange${t}`),children:m("tokens.listHeader.priceChange",{resolution:t})})]})},"price"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.marketCap"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:k.marketCap,onSortChange:p("marketCap"),children:m("tokens.listHeader.marketCap")})},"marketCap"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.liquidity"),width:106,children:jsxRuntime.jsx(ui.Sortable,{sort:k.tvl,onSortChange:p("tvl"),children:m("tokens.listHeader.liquidity")})},"liquidity"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.volumes",{resolution:t}),width:138,children:jsxRuntime.jsx(ui.Sortable,{sort:k[`volumes${t}`],onSortChange:p(`volumes${t}`),children:m("tokens.listHeader.volumes",{resolution:t})})},"volumes"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.txs",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:k[`trades${t}`],onSortChange:p(`trades${t}`),children:m("tokens.listHeader.txs",{resolution:t})})},"txs"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.traders",{resolution:t}),width:126,children:jsxRuntime.jsx(ui.Sortable,{sort:k[`traders${t}`],onSortChange:p(`traders${t}`),children:m("tokens.listHeader.traders",{resolution:t})})},"traders"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.bluechip"),width:128,children:m("tokens.listHeader.bluechip")},"bluechip"),jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.tokenInfo"),width:308,children:m("tokens.listHeader.tokenInfo")},"tokenInfo"),s?jsxRuntime.jsx(ui.TableColumn,{textValue:m("tokens.listHeader.actions"),width:124,align:"end",children:m("tokens.listHeader.actions")},"actions"):void 0].filter(Boolean)}),jsxRuntime.jsx(ui.TableBody,{items:o?[]:e,isLoading:o,loadingContent:jsxRuntime.jsx(bo,{rowHeight:d?l:u,hasActions:!!s}),emptyContent:jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(ui.EmptyIcon,{className:"w-10 h-10 mx-auto text-neutral"}),jsxRuntime.jsx("p",{className:"mt-2 text-sm text-neutral text-center",children:m("common.empty")})]}),children:f=>jsxRuntime.jsx(ui.TableRow,{onClick:n?T(f):void 0,children:[jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ao,{token:f,resolution:t})},"token"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(fo,{token:f,resolution:t})},"price"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(mo,{token:f,resolution:t})},"marketCap"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(co,{token:f,resolution:t})},"liquidity"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(yo,{token:f,resolution:t})},"volumes"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(To,{token:f,resolution:t})},"trades"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(ho,{token:f,resolution:t})},"traders"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(io,{token:f,resolution:t})},"bluechip"),jsxRuntime.jsx(ui.TableCell,{children:jsxRuntime.jsx(lo,{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 yi=80;function vi(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 No(e){return e.sort((t,o)=>{let s=t.createdAt?.getTime()??0;return (o.createdAt?.getTime()??0)-s}),e.slice(0,yi)}function Lo({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),[c,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useNewTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{a&&(l(k=>{let h=[...k];for(let p of a){let f=h.findIndex(g=>g.address===p.address);f>=0?h[f]=w(h[f],p):h.push(p);}return No(h)}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=[...h],f=false;for(let g of k){let b=p.findIndex(L=>L.address===g.address);b>=0?(f=true,p[b]=w(p[b],g)):(f=true,p.push(vi(g)));}return f?No(p):h});},[]);react$1.useNewTokensSubscription({chain:e},m);let T=react.useMemo(()=>!!(d||c),[d,c]);return {tokens:u,isLoading:T}}function wm({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:c,itemHeightMobile:i,className:u}){let[l,a]=react.useState(),d=react.useMemo(()=>{let k=Object.keys(l??{})[0],h=l?.[k];return {...o,...k&&h?{sortBy:k,sortDirection:h}:void 0}},[o,l]),{tokens:m,isLoading:T}=Lo({chain:e,resolution:t,options:d});return jsxRuntime.jsx(J,{tokens:m,isLoading:T,resolution:t,height:r,itemHeight:c,itemHeightMobile:i,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:a,className:u})}function Mo({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),[c,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useStockTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{a&&(l(k=>{let h=[];for(let p of a){let f=k.find(g=>g.address===p.address);h.push(f?w(f,p):p);}return h}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=[...h],f=false;for(let g of k){let b=p.findIndex(L=>L.address===g.address);b>=0&&(f=true,p[b]=w(p[b],g));}return f?p:h});},[]);react$1.useStockTokensSubscription({chain:e},m);let T=react.useMemo(()=>!!(d||c),[d,c]);return {tokens:u,isLoading:T}}function Em({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:c,itemHeightMobile:i,className:u}){let[l,a]=react.useState(),d=react.useMemo(()=>{let k=Object.keys(l??{})[0],h=l?.[k];return {...o,...k&&h?{sortBy:k,sortDirection:h}:void 0}},[o,l]),{tokens:m,isLoading:T}=Mo({chain:e,resolution:t,options:d});return jsxRuntime.jsx(J,{tokens:m,isLoading:T,resolution:t,height:r,itemHeight:c,itemHeightMobile:i,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:a,className:u})}function Eo({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),[c,i]=react.useState(true);react.useEffect(()=>{JSON.stringify(n)!==JSON.stringify(r.current)&&(i(true),r.current=n);},[n]);let[u,l]=react.useState([]),{data:a,isPending:d}=react$1.useTrendingTokensQuery(n,{refetchInterval:s});react.useEffect(()=>{a&&(l(k=>{let h=[];for(let p of a){let f=k.find(g=>g.address===p.address);h.push(f?w(f,p):p);}return h}),i(false));},[a]);let m=react.useCallback(k=>{l(h=>{let p=[...h],f=false;for(let g of k){let b=p.findIndex(L=>L.address===g.address);b>=0&&(f=true,p[b]=w(p[b],g));}return f?p:h});},[]);react$1.useTrendingTokensSubscription({chain:e},m);let T=react.useMemo(()=>!!(d||c),[d,c]);return {tokens:u,isLoading:T}}function Qm({chain:e,resolution:t,filters:o,ActionsComponent:s,onSelectToken:n,height:r,itemHeight:c,itemHeightMobile:i,className:u}){let[l,a]=react.useState(),d=react.useMemo(()=>{let k=Object.keys(l??{})[0],h=l?.[k];return {...o,...k&&h?{sortBy:k,sortDirection:h}:void 0}},[o,l]),{tokens:m,isLoading:T}=Eo({chain:e,resolution:t,options:d});return jsxRuntime.jsx(J,{tokens:m,isLoading:T,resolution:t,height:r,itemHeight:c,itemHeightMobile:i,ActionsComponent:s,onSelectToken:n,sortDirections:l,onSortChange:a,className:u})}var Ki=15e3;function zi({chain:e,addresses:t,pollMs:o=Ki}){let s=t.length>0,[n,r]=react.useState({}),c=react$1.useTokensQuery({chain:e,addresses:t},{enabled:s,refetchInterval:o});react.useEffect(()=>{c.data&&r(d=>{let m={};for(let T of c.data){let k=d[T.address];m[T.address]=k?w(k,T):T;}return m});},[c.data]);let{subscribeClient:i}=react$1.useDexClient(),u=react.useRef(""),l=t.slice().sort().join(",");l!==u.current&&(u.current=l),react.useEffect(()=>{if(!s)return;let d=[];for(let m of t)d.push(i.subscribeToken(e,m,T=>{r(k=>{let h=k;for(let p of T){let f=h[p.address];if(!f)continue;let g=w(f,p);g!==f&&(h=h===k?{...k}:h,h[p.address]=g);}return h});}));return ()=>{for(let m of d)m.unsubscribe();}},[i,e,l,s]);let a=react.useCallback(async()=>{await c.refetch();},[c.refetch]);return {tokens:n,isPending:c.isPending,isFetching:c.isFetching,isError:c.isError,isSuccess:c.isSuccess,error:c.error,refetch:a}}exports.NewTokenListWidget=wm;exports.PulseFinalStretchListWidget=il;exports.PulseList=q;exports.PulseListHeader=Ge;exports.PulseListItem=it;exports.PulseListItemSkeleton=Ye;exports.PulseMigratedListWidget=Ja;exports.PulseNewListWidget=Ua;exports.SearchTokensButton=Cl;exports.StockTokenListWidget=Em;exports.TokenAvatar=le;exports.TokenList=J;exports.TokenListFilter=ve;exports.TokenListFilterModal=Nd;exports.TokenListFilterPopover=Od;exports.TokenListResolutionSelector=Kd;exports.TrendingTokenListWidget=Qm;exports.useNewTokensScript=Lo;exports.usePulseFinalStretchListScript=wt;exports.usePulseMigratedListScript=xt;exports.usePulseNewListScript=ft;exports.useStockTokensScript=Mo;exports.useTokens=zi;exports.useTrendingTokensScript=Eo;exports.version=Uo;//# sourceMappingURL=index.js.map
22
22
  //# sourceMappingURL=index.js.map