@skip-go/widget 3.17.4 → 3.18.0

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.
Files changed (83) hide show
  1. package/build/{add-DSZ-JuPp.js → add-ZqtS39Tt.js} +1 -1
  2. package/build/{all-wallets-D0F4OnPY.js → all-wallets-BWL-9oW9.js} +1 -1
  3. package/build/{app-store-BzqIjXDB.js → app-store-2abzwzkB.js} +1 -1
  4. package/build/{apple-BCZ9J5Xs.js → apple-NwQTiREk.js} +1 -1
  5. package/build/{arrow-bottom-X2RHXZ6o.js → arrow-bottom-D5QztgSj.js} +1 -1
  6. package/build/{arrow-bottom-circle-BQoFUCwn.js → arrow-bottom-circle-vxvK1D4N.js} +1 -1
  7. package/build/{arrow-left-B3ghXfhi.js → arrow-left-B3fPfcOM.js} +1 -1
  8. package/build/{arrow-right-P3953OqV.js → arrow-right-w_jXA6Yi.js} +1 -1
  9. package/build/{arrow-top-Dww_PjbX.js → arrow-top-BXkTEC2-.js} +1 -1
  10. package/build/{bank-C8dy8Uc3.js → bank-BC5aKZE6.js} +1 -1
  11. package/build/{basic-BILbE933.js → basic-B5IoCJLE.js} +2 -2
  12. package/build/{browser-BOZtlW82.js → browser-C_i1UdkY.js} +1 -1
  13. package/build/{card-BeZSQprN.js → card-Cb54mSm5.js} +1 -1
  14. package/build/{checkmark-Csa-1yr8.js → checkmark-B64itKjV.js} +1 -1
  15. package/build/{checkmark-bold-X3tV8GV6.js → checkmark-bold-DyADZ-Vc.js} +1 -1
  16. package/build/{chevron-bottom-Do0F2r_3.js → chevron-bottom-C07iC6x5.js} +1 -1
  17. package/build/{chevron-left-B29eIydV.js → chevron-left-JRhm3beW.js} +1 -1
  18. package/build/{chevron-right-Daq8T6Bn.js → chevron-right-PXITnSBr.js} +1 -1
  19. package/build/{chevron-top-QHZ3lWgd.js → chevron-top-Cv2Jto_e.js} +1 -1
  20. package/build/{chrome-store-DuNgNkJQ.js → chrome-store-BoiJLtSw.js} +1 -1
  21. package/build/{clock-DQSrpQBg.js → clock-DOh22NTh.js} +1 -1
  22. package/build/{close-CvqhilKn.js → close-eYqvSF1F.js} +1 -1
  23. package/build/{coinPlaceholder-Dv1pnv-h.js → coinPlaceholder-CleHqJkg.js} +1 -1
  24. package/build/{compass-Bvr7ArEt.js → compass-BP-W60ZX.js} +1 -1
  25. package/build/{copy-4I1mbaaM.js → copy-Cy8MF7Ka.js} +1 -1
  26. package/build/{core-BNeF6Jkw.js → core-DJVK1IwL.js} +4 -4
  27. package/build/{cursor-DL2Y2ngf.js → cursor-7ZOMpOy2.js} +1 -1
  28. package/build/{cursor-transparent-BPL7XEP9.js → cursor-transparent-DvA0SMe7.js} +1 -1
  29. package/build/{desktop-Bu-SjFhu.js → desktop-DlTlecYV.js} +1 -1
  30. package/build/{disconnect-B5157u7P.js → disconnect-DrQbB3p2.js} +1 -1
  31. package/build/{discord-BS-cgysr.js → discord-C9G5VCU_.js} +1 -1
  32. package/build/{etherscan-DizSaP8a.js → etherscan-B_g41D8c.js} +1 -1
  33. package/build/{exclamation-triangle-D3KUZJPu.js → exclamation-triangle-BxY4GlgR.js} +1 -1
  34. package/build/{extension-CzIOhIFJ.js → extension-DxO8pT-D.js} +1 -1
  35. package/build/{external-link-DERigg8i.js → external-link-C-hyBjMi.js} +1 -1
  36. package/build/{facebook-DzqJH5K9.js → facebook-DRE7xQYs.js} +1 -1
  37. package/build/{farcaster-BNhY70h3.js → farcaster-jS8Eq6S5.js} +1 -1
  38. package/build/{filters-Cp0RYCIG.js → filters-CAZ_LD4-.js} +1 -1
  39. package/build/{github-C8enogm5.js → github-CHov1jP-.js} +1 -1
  40. package/build/{google-sdX3qPtk.js → google-C-MACEFy.js} +1 -1
  41. package/build/{help-circle-DIjLLUey.js → help-circle-CAg4R7ZP.js} +1 -1
  42. package/build/{id-WMK0nuCo.js → id-Bpspzb7Y.js} +1 -1
  43. package/build/{image-Bh4zNgn_.js → image-C4otinDm.js} +1 -1
  44. package/build/{index-D7Z7Kxh5.js → index-DGioatDm.js} +189 -105
  45. package/build/{index-DOvpTfkR.js → index-oJXinUpN.js} +78 -78
  46. package/build/index.d.ts +37 -5
  47. package/build/{index.es-CNsSzKjI.js → index.es-1jsSkaX7.js} +2 -2
  48. package/build/index.js +1 -1
  49. package/build/{info-DrG0i9i2.js → info-DukT1kt0.js} +1 -1
  50. package/build/{info-circle-BRZNjyAL.js → info-circle-D5nKiPLR.js} +1 -1
  51. package/build/{lightbulb-DafvDrNK.js → lightbulb-vG7PnLQQ.js} +1 -1
  52. package/build/{mail-QEgAwB7y.js → mail-Chv6ZvFV.js} +1 -1
  53. package/build/{mobile-DSc6f77a.js → mobile-DeKOOQmq.js} +1 -1
  54. package/build/{more-BtMH-ZyQ.js → more-XeMLrRT7.js} +1 -1
  55. package/build/{network-placeholder-Cr_HHxaL.js → network-placeholder-BfR6SVM4.js} +1 -1
  56. package/build/{nftPlaceholder-C5hiaPCb.js → nftPlaceholder-C1DjChGX.js} +1 -1
  57. package/build/{off-DAQu90Fc.js → off-CHyBELbm.js} +1 -1
  58. package/build/{play-store-2nOxJbe5.js → play-store-DzKZODFh.js} +1 -1
  59. package/build/{plus-BTDsTRHC.js → plus-FW-dI4NR.js} +1 -1
  60. package/build/{qr-code-jLEiUBEE.js → qr-code-DFkJ2tXI.js} +1 -1
  61. package/build/{recycle-horizontal-Bgv26oJh.js → recycle-horizontal-DIZgbSd_.js} +1 -1
  62. package/build/{refresh-Dl0bySjR.js → refresh-CV3QfJgU.js} +1 -1
  63. package/build/{reown-logo-BYmO3wdi.js → reown-logo-DlMbeR9a.js} +1 -1
  64. package/build/{search-Dj_sWaPh.js → search-D0XdQiZW.js} +1 -1
  65. package/build/{send-BXbH2pno.js → send-kg_1tESu.js} +1 -1
  66. package/build/{swapHorizontal-ByFDFJfq.js → swapHorizontal-PdSvKG6-.js} +1 -1
  67. package/build/{swapHorizontalBold-BxMS7t5T.js → swapHorizontalBold-9vTaEt5H.js} +1 -1
  68. package/build/{swapHorizontalMedium-DQ34KnpL.js → swapHorizontalMedium-e_2zg83g.js} +1 -1
  69. package/build/{swapHorizontalRoundedBold-DHDmAl-M.js → swapHorizontalRoundedBold-CJkGuWYA.js} +1 -1
  70. package/build/{swapVertical-B3cjSg4h.js → swapVertical-Cf2gASlL.js} +1 -1
  71. package/build/{telegram-BPpBHfSf.js → telegram-mpZb01qQ.js} +1 -1
  72. package/build/{three-dots-CNVv__sW.js → three-dots-B5kxshXV.js} +1 -1
  73. package/build/{twitch-D7Je7M96.js → twitch-ygdWUFpQ.js} +1 -1
  74. package/build/{twitterIcon-Dct7r8kF.js → twitterIcon-BHzJGsWo.js} +1 -1
  75. package/build/{verify-C6LEUDOw.js → verify-B9xRHpEU.js} +1 -1
  76. package/build/{verify-filled-4kmofM1B.js → verify-filled-BjuSbhXc.js} +1 -1
  77. package/build/{w3m-modal-BmnjI-jP.js → w3m-modal-BCyfF9S-.js} +2 -2
  78. package/build/{wallet-C6Js3kiv.js → wallet-B6wLgKrb.js} +1 -1
  79. package/build/{wallet-placeholder-B9hjsi4W.js → wallet-placeholder-C1HNanJ2.js} +1 -1
  80. package/build/{walletconnect-C6eUqDeD.js → walletconnect-ChJ7Zmps.js} +1 -1
  81. package/build/{warning-circle-CPoRvaiz.js → warning-circle-ugQSfQ5n.js} +1 -1
  82. package/build/{x-B0raGyLk.js → x-D25ElSZc.js} +1 -1
  83. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
- import o, { useState, useMemo, useEffect, useContext, useDebugValue, createElement, useRef, useCallback, Fragment as Fragment$1, memo, startTransition, forwardRef, Suspense } from "react";
2
+ import o, { useState, useMemo, useEffect, useContext, useDebugValue, createElement, useRef, useCallback, Fragment as Fragment$1, useId, memo, startTransition, forwardRef, Suspense } from "react";
3
3
  import { Scope } from "react-shadow-scope";
4
4
  import { atom as atom$1, useAtomValue, useAtom, useSetAtom, createStore, Provider } from "jotai";
5
5
  import NiceModal, { useModal } from "@ebay/nice-modal-react";
@@ -46454,7 +46454,7 @@ function walletConnect(parameters) {
46454
46454
  const optionalChains = config2.chains.map((x2) => x2.id);
46455
46455
  if (!optionalChains.length)
46456
46456
  return;
46457
- const { EthereumProvider } = await import("./index.es-CNsSzKjI.js").then((n) => n.i);
46457
+ const { EthereumProvider } = await import("./index.es-1jsSkaX7.js").then((n) => n.i);
46458
46458
  return await EthereumProvider.init({
46459
46459
  ...parameters,
46460
46460
  disableProviderPing: true,
@@ -47989,7 +47989,7 @@ const ModalRowItem = ({
47989
47989
  rightContent,
47990
47990
  onClick,
47991
47991
  style,
47992
- eureka
47992
+ highlightColor
47993
47993
  }) => {
47994
47994
  return /* @__PURE__ */ jsxs(
47995
47995
  StyledModalRowItemContainer,
@@ -48000,7 +48000,7 @@ const ModalRowItem = ({
48000
48000
  onClick,
48001
48001
  gap: 16,
48002
48002
  style,
48003
- eureka,
48003
+ highlightColor,
48004
48004
  children: [
48005
48005
  typeof leftContent === "string" ? /* @__PURE__ */ jsx(Text, { fontSize: 20, children: leftContent }) : leftContent,
48006
48006
  typeof rightContent === "string" ? /* @__PURE__ */ jsx(Text, { fontSize: 20, children: rightContent }) : rightContent
@@ -48040,31 +48040,9 @@ const StyledModalRowItemContainer = dt(Row)`
48040
48040
  }
48041
48041
  `};
48042
48042
 
48043
- --eureka-border: conic-gradient(
48044
- from 90deg at 50% 50%,
48045
- #49d6dd 0deg,
48046
- #ff663c 120.6000030040741deg,
48047
- #d466ff 251.99999570846558deg,
48048
- #49d6dd 360deg
48049
- );
48050
-
48051
- ${({ eureka }) => {
48052
- return eureka ? lt`
48053
- &:before {
48054
- content: "";
48055
- position: absolute;
48056
- inset: 0;
48057
- z-index: -2;
48058
- padding: 2px;
48059
- border-radius: 12px;
48060
- background: var(--eureka-border);
48061
- -webkit-mask:
48062
- linear-gradient(#fff 0 0) content-box,
48063
- linear-gradient(#fff 0 0);
48064
- mask-composite: exclude;
48065
- }
48066
- ` : "";
48067
- }}
48043
+ ${({ highlightColor }) => highlightColor && lt`
48044
+ box-shadow: inset 0 0 0 1.5px ${highlightColor};
48045
+ `}
48068
48046
  `;
48069
48047
  const useIsMobileScreenSize = (size2 = 767) => {
48070
48048
  const [isMobileScreenSize, setIsMobileScreenSize] = useState(
@@ -50283,12 +50261,14 @@ const UnderlineText = dt.u`
50283
50261
  `;
50284
50262
  const PRIVILEGED_ASSETS = ["ATOM", "USDC", "USDT", "ETH", "TIA", "OSMO", "NTRN", "INJ"];
50285
50263
  const assetSymbolsSortedToTopAtom = atom$1(PRIVILEGED_ASSETS);
50264
+ const assetAnnotationsAtom = atom$1({});
50286
50265
  const EXCLUDED_TOKEN_COMBINATIONS = [{ id: "SOL", chainIDs: ["solana"] }];
50287
50266
  const useFilteredAssets = ({
50288
50267
  groupedAssetsByRecommendedSymbol,
50289
50268
  searchQuery
50290
50269
  }) => {
50291
50270
  const assetSymbolsSortedToTop = useAtomValue(assetSymbolsSortedToTopAtom);
50271
+ const assetAnnotations = useAtomValue(assetAnnotationsAtom);
50292
50272
  const filteredAssets = useMemo(() => {
50293
50273
  if (!groupedAssetsByRecommendedSymbol) return;
50294
50274
  const sanitizedAssets = groupedAssetsByRecommendedSymbol.map((group) => {
@@ -50306,10 +50286,15 @@ const useFilteredAssets = ({
50306
50286
  var _a, _b;
50307
50287
  return (_b = (_a = asset.id) == null ? void 0 : _a.toLowerCase()) == null ? void 0 : _b.includes(searchLower);
50308
50288
  }).sort((assetA, assetB) => {
50289
+ var _a, _b, _c, _d;
50309
50290
  const exactA = assetA.id.toLowerCase() === searchLower;
50310
50291
  const exactB = assetB.id.toLowerCase() === searchLower;
50311
50292
  if (exactA && !exactB) return -1;
50312
50293
  if (exactB && !exactA) return 1;
50294
+ const pinnedA = Boolean((_b = (_a = assetAnnotations == null ? void 0 : assetAnnotations[assetA.id]) == null ? void 0 : _a.selector) == null ? void 0 : _b.pinToTop);
50295
+ const pinnedB = Boolean((_d = (_c = assetAnnotations == null ? void 0 : assetAnnotations[assetB.id]) == null ? void 0 : _c.selector) == null ? void 0 : _d.pinToTop);
50296
+ if (pinnedA && !pinnedB) return -1;
50297
+ if (pinnedB && !pinnedA) return 1;
50313
50298
  if (assetA.totalUsd !== assetB.totalUsd) {
50314
50299
  return assetB.totalUsd - assetA.totalUsd;
50315
50300
  }
@@ -50325,10 +50310,9 @@ const useFilteredAssets = ({
50325
50310
  if (privB !== -1) return 1;
50326
50311
  return 0;
50327
50312
  });
50328
- }, [assetSymbolsSortedToTop, groupedAssetsByRecommendedSymbol, searchQuery]);
50313
+ }, [assetSymbolsSortedToTop, assetAnnotations, groupedAssetsByRecommendedSymbol, searchQuery]);
50329
50314
  return filteredAssets;
50330
50315
  };
50331
- const ibcEurekaHighlightedAssetsAtom = atom$1({});
50332
50316
  const hideAssetsUnlessWalletTypeConnectedAtom = atom$1(false);
50333
50317
  const chainIdsSortedToTopAtom = atom$1([]);
50334
50318
  const useFilteredChains = ({
@@ -50345,7 +50329,6 @@ const useFilteredChains = ({
50345
50329
  const cosmosWalletConnected = cosmosWallet !== void 0;
50346
50330
  const filter2 = useAtomValue(filterAtom);
50347
50331
  const filterOut = useAtomValue(filterOutAtom);
50348
- const ibcEurekaHighlightedAssets = useAtomValue(ibcEurekaHighlightedAssetsAtom);
50349
50332
  const filteredChains = useMemo(() => {
50350
50333
  if (!selectedGroup || !chains2) return;
50351
50334
  const allowedAssets = selectedGroup.assets.filter((asset) => {
@@ -50399,16 +50382,6 @@ const useFilteredChains = ({
50399
50382
  if (amountA !== amountB) {
50400
50383
  return amountB - amountA;
50401
50384
  }
50402
- const indexA = Object.keys(ibcEurekaHighlightedAssets).indexOf(
50403
- chainWithAssetA.asset.recommendedSymbol || ""
50404
- );
50405
- const indexB = Object.keys(ibcEurekaHighlightedAssets).indexOf(
50406
- chainWithAssetB.asset.recommendedSymbol || ""
50407
- );
50408
- const aIsHighlighted = indexA !== -1;
50409
- const bIsHighlighted = indexB !== -1;
50410
- if (aIsHighlighted && !bIsHighlighted) return -1;
50411
- if (bIsHighlighted && !aIsHighlighted) return 1;
50412
50385
  const privA = chainIdsSortedToTop.indexOf(chainWithAssetA.chainId);
50413
50386
  const privB = chainIdsSortedToTop.indexOf(chainWithAssetB.chainId);
50414
50387
  if (privA !== -1 && privB !== -1) {
@@ -50447,12 +50420,48 @@ const useFilteredChains = ({
50447
50420
  filterOutUnlessUserHasBalance,
50448
50421
  getBalance,
50449
50422
  hideAssetsUnlessWalletTypeConnected,
50450
- ibcEurekaHighlightedAssets,
50451
50423
  searchQuery,
50452
50424
  selectedGroup
50453
50425
  ]);
50454
50426
  return filteredChains;
50455
50427
  };
50428
+ const AssetAnnotationIcon = ({ size: size2 = 16, color }) => {
50429
+ const maskId = useId();
50430
+ return /* @__PURE__ */ jsxs(
50431
+ "svg",
50432
+ {
50433
+ width: size2,
50434
+ height: size2,
50435
+ viewBox: "0 0 40 41",
50436
+ fill: "none",
50437
+ xmlns: "http://www.w3.org/2000/svg",
50438
+ children: [
50439
+ /* @__PURE__ */ jsxs("mask", { id: maskId, children: [
50440
+ /* @__PURE__ */ jsx("rect", { y: "0.480713", width: "40", height: "40", rx: "20", fill: "white" }),
50441
+ /* @__PURE__ */ jsx(
50442
+ "path",
50443
+ {
50444
+ d: "M18.9042 24.141L17.4816 16.1506V11.6555C17.4816 10.5509 18.3771 9.65552 19.4816 9.65552H20.5182C21.6228 9.65552 22.5182 10.5509 22.5182 11.6555V16.1506L21.0957 24.141H18.9042ZM19.0972 31.3059C17.9926 31.3059 17.0972 30.4105 17.0972 29.3059V28.6975C17.0972 27.5929 17.9926 26.6975 19.0972 26.6975H20.9027C22.0073 26.6975 22.9027 27.5929 22.9027 28.6975V29.3059C22.9027 30.4105 22.0073 31.3059 20.9027 31.3059H19.0972Z",
50445
+ fill: "black"
50446
+ }
50447
+ )
50448
+ ] }),
50449
+ /* @__PURE__ */ jsx("rect", { y: "0.480713", width: "40", height: "40", rx: "20", fill: color, mask: `url(#${maskId})` })
50450
+ ]
50451
+ }
50452
+ );
50453
+ };
50454
+ const getAnnotationColors = (theme, variant = "info") => {
50455
+ switch (variant) {
50456
+ case "warning":
50457
+ return { accent: theme.warning.text };
50458
+ case "error":
50459
+ return { accent: theme.error.text };
50460
+ case "info":
50461
+ default:
50462
+ return { accent: theme.brandColor };
50463
+ }
50464
+ };
50456
50465
  const isGroupedAsset = (item) => {
50457
50466
  return item.chains !== void 0;
50458
50467
  };
@@ -50462,19 +50471,31 @@ const AssetAndChainSelectorModalRowItem = ({
50462
50471
  skeleton,
50463
50472
  onSelect,
50464
50473
  context,
50465
- eureka
50474
+ annotation
50466
50475
  }) => {
50467
50476
  const { isFetching, isPending } = useAtomValue(skipChainsAtom);
50468
50477
  const isChainsLoading = isFetching && isPending;
50469
50478
  const getBalance = useGetBalance();
50479
+ const theme = nt();
50470
50480
  if (!item || isChainsLoading) return skeleton;
50481
+ const selectorAnnotation = annotation == null ? void 0 : annotation.selector;
50482
+ const accentColor = selectorAnnotation ? getAnnotationColors(theme, annotation.variant).accent : void 0;
50483
+ const borderColor = accentColor ? `${accentColor}80` : void 0;
50471
50484
  if (isGroupedAsset(item)) {
50472
50485
  return /* @__PURE__ */ jsx(
50473
50486
  ModalRowItem,
50474
50487
  {
50475
50488
  onClick: () => onSelect(item),
50476
- leftContent: /* @__PURE__ */ jsx(GroupedAssetRow, { item, context, eureka }),
50477
- eureka,
50489
+ leftContent: /* @__PURE__ */ jsx(
50490
+ GroupedAssetRow,
50491
+ {
50492
+ item,
50493
+ context,
50494
+ annotation,
50495
+ accentColor
50496
+ }
50497
+ ),
50498
+ highlightColor: borderColor,
50478
50499
  rightContent: Number(item.totalAmount) > 0 && /* @__PURE__ */ jsxs(Column, { align: "flex-end", children: [
50479
50500
  /* @__PURE__ */ jsx(SmallText, { normalTextColor: true, children: formatDisplayAmount(item.formattedTotalAmount) }),
50480
50501
  Number(item.totalUsd) > 0 && /* @__PURE__ */ jsx(SmallText, { children: formatUSD(item.totalUsd) })
@@ -50487,9 +50508,9 @@ const AssetAndChainSelectorModalRowItem = ({
50487
50508
  return /* @__PURE__ */ jsx(
50488
50509
  ModalRowItem,
50489
50510
  {
50490
- eureka,
50511
+ highlightColor: borderColor,
50491
50512
  onClick: () => onSelect(item.asset),
50492
- leftContent: /* @__PURE__ */ jsx(ChainWithAssetRow, { item, eureka }),
50513
+ leftContent: /* @__PURE__ */ jsx(ChainWithAssetRow, { item, annotation, accentColor }),
50493
50514
  rightContent: balance && Number(balance.amount) > 0 && /* @__PURE__ */ jsxs(Column, { align: "flex-end", children: [
50494
50515
  /* @__PURE__ */ jsx(SmallText, { normalTextColor: true, children: formatDisplayAmount(balance.formattedAmount) }),
50495
50516
  balance.valueUsd && Number(balance.valueUsd) > 0 && /* @__PURE__ */ jsx(SmallText, { children: formatUSD(balance.valueUsd) })
@@ -50501,7 +50522,8 @@ const AssetAndChainSelectorModalRowItem = ({
50501
50522
  const GroupedAssetRow = ({
50502
50523
  item,
50503
50524
  context,
50504
- eureka
50525
+ annotation,
50526
+ accentColor
50505
50527
  }) => {
50506
50528
  var _a;
50507
50529
  const filteredChains = useFilteredChains({ selectedGroup: item, context }) ?? [];
@@ -50515,11 +50537,16 @@ const GroupedAssetRow = ({
50515
50537
  image: /* @__PURE__ */ jsx(GroupedAssetImage, { height: 35, width: 35, groupedAsset: item }),
50516
50538
  mainText: item.assets[0].recommendedSymbol,
50517
50539
  subText,
50518
- eureka
50540
+ annotation,
50541
+ accentColor
50519
50542
  }
50520
50543
  );
50521
50544
  };
50522
- const ChainWithAssetRow = ({ item, eureka }) => {
50545
+ const ChainWithAssetRow = ({
50546
+ item,
50547
+ annotation,
50548
+ accentColor
50549
+ }) => {
50523
50550
  const chainImage = useCroppedImage(item == null ? void 0 : item.logoUri);
50524
50551
  return /* @__PURE__ */ jsx(
50525
50552
  RowLayout,
@@ -50527,31 +50554,57 @@ const ChainWithAssetRow = ({ item, eureka }) => {
50527
50554
  image: chainImage ? /* @__PURE__ */ jsx(StyledChainImage, { height: 35, width: 35, src: chainImage, alt: `${item.chainId} logo` }) : /* @__PURE__ */ jsx(CircleSkeletonElement, { height: 35, width: 35 }),
50528
50555
  mainText: item.prettyName,
50529
50556
  subText: /* @__PURE__ */ jsx(SmallText, { children: item.chainId }),
50530
- eureka
50557
+ annotation,
50558
+ accentColor
50531
50559
  }
50532
50560
  );
50533
50561
  };
50534
- const RowLayout = ({ image, mainText, subText, eureka }) => {
50562
+ const RowLayout = ({ image, mainText, subText, annotation, accentColor }) => {
50563
+ var _a;
50535
50564
  const isMobileScreenSize = useIsMobileScreenSize();
50536
- return /* @__PURE__ */ jsxs(Row, { align: "center", gap: 8, children: [
50565
+ const description = (_a = annotation == null ? void 0 : annotation.selector) == null ? void 0 : _a.description;
50566
+ return /* @__PURE__ */ jsxs(StyledRowLayout, { align: "center", gap: 8, children: [
50537
50567
  image,
50538
- /* @__PURE__ */ jsxs(
50539
- Row,
50540
- {
50541
- align: "baseline",
50542
- flexDirection: isMobileScreenSize ? "column" : "row",
50543
- gap: isMobileScreenSize ? void 0 : 8,
50544
- children: [
50545
- /* @__PURE__ */ jsx(Text, { useWindowsTextHack: true, children: mainText }),
50546
- /* @__PURE__ */ jsxs(Row, { align: "center", gap: 6, children: [
50547
- subText,
50548
- eureka && /* @__PURE__ */ jsx(SmallText, { normalTextColor: true, children: " IBC Eureka " })
50549
- ] })
50550
- ]
50551
- }
50552
- )
50568
+ /* @__PURE__ */ jsxs(StyledInfoColumn, { gap: 2, children: [
50569
+ /* @__PURE__ */ jsxs(
50570
+ Row,
50571
+ {
50572
+ align: "baseline",
50573
+ flexDirection: isMobileScreenSize && !description ? "column" : "row",
50574
+ gap: isMobileScreenSize && !description ? void 0 : 8,
50575
+ children: [
50576
+ /* @__PURE__ */ jsx(Text, { useWindowsTextHack: true, children: mainText }),
50577
+ subText
50578
+ ]
50579
+ }
50580
+ ),
50581
+ description && accentColor && /* @__PURE__ */ jsxs(StyledDescriptionRow, { align: "center", gap: 4, children: [
50582
+ /* @__PURE__ */ jsx(StyledDescriptionIcon, { children: /* @__PURE__ */ jsx(AssetAnnotationIcon, { size: 14, color: accentColor }) }),
50583
+ /* @__PURE__ */ jsx(StyledDescriptionText, { color: accentColor, children: description })
50584
+ ] })
50585
+ ] })
50553
50586
  ] });
50554
50587
  };
50588
+ const StyledRowLayout = dt(Row)`
50589
+ flex: 1;
50590
+ min-width: 0;
50591
+ `;
50592
+ const StyledInfoColumn = dt(Column)`
50593
+ min-width: 0;
50594
+ `;
50595
+ const StyledDescriptionRow = dt(Row)`
50596
+ min-width: 0;
50597
+ `;
50598
+ const StyledDescriptionText = dt(SmallText)`
50599
+ white-space: nowrap;
50600
+ overflow: hidden;
50601
+ text-overflow: ellipsis;
50602
+ `;
50603
+ const StyledDescriptionIcon = dt.span`
50604
+ display: inline-flex;
50605
+ flex-shrink: 0;
50606
+ margin-top: -2px;
50607
+ `;
50555
50608
  const StyledChainImage = dt.img`
50556
50609
  border-radius: 50%;
50557
50610
  object-fit: cover;
@@ -50694,6 +50747,24 @@ const TinyTriangleIcon = ({
50694
50747
  children: /* @__PURE__ */ jsx("path", { d: "M4.44881 6.98877L0.420326 0.0112305L8.47729 0.0112305L4.44881 6.98877Z", fill: color })
50695
50748
  }
50696
50749
  );
50750
+ const AssetAnnotationBadge = ({
50751
+ label,
50752
+ variant
50753
+ }) => {
50754
+ const theme = nt();
50755
+ const { accent } = getAnnotationColors(theme, variant);
50756
+ return /* @__PURE__ */ jsx(StyledBadge, { accent, children: label });
50757
+ };
50758
+ const StyledBadge = dt.span`
50759
+ padding: 2px 7px;
50760
+ border-radius: 8px;
50761
+ font-size: 11px;
50762
+ line-height: 1.4;
50763
+ white-space: nowrap;
50764
+ color: ${({ accent }) => accent};
50765
+ background: transparent;
50766
+ border: 1px solid ${({ accent }) => `${accent}66`};
50767
+ `;
50697
50768
  const SwapPageAssetChainInput = ({
50698
50769
  value,
50699
50770
  usdValue,
@@ -50708,7 +50779,7 @@ const SwapPageAssetChainInput = ({
50708
50779
  feeLabel,
50709
50780
  feeWarning
50710
50781
  }) => {
50711
- var _a;
50782
+ var _a, _b;
50712
50783
  const theme = nt();
50713
50784
  const [_showPriceChangePercentage, setShowPriceChangePercentage] = useState(false);
50714
50785
  const isMobileScreenSize = useIsMobileScreenSize();
@@ -50725,6 +50796,10 @@ const SwapPageAssetChainInput = ({
50725
50796
  return group.id === ((_a2 = assetDetails.asset) == null ? void 0 : _a2.recommendedSymbol);
50726
50797
  }
50727
50798
  );
50799
+ const assetAnnotations = useAtomValue(assetAnnotationsAtom);
50800
+ const annotation = ((_a = assetDetails.asset) == null ? void 0 : _a.recommendedSymbol) ? assetAnnotations == null ? void 0 : assetAnnotations[assetDetails.asset.recommendedSymbol] : void 0;
50801
+ const swapPageAnnotation = annotation == null ? void 0 : annotation.swapPage;
50802
+ const annotationAccent = getAnnotationColors(theme, annotation == null ? void 0 : annotation.variant).accent;
50728
50803
  const handleInputChange = (e) => {
50729
50804
  if (!onChangeValue) return;
50730
50805
  let latest = e.target.value;
@@ -50823,6 +50898,7 @@ const SwapPageAssetChainInput = ({
50823
50898
  assetDetails.symbol ? /* @__PURE__ */ jsxs(StyledAssetLabel, { align: "center", justify: "center", gap: 7, children: [
50824
50899
  /* @__PURE__ */ jsx(GroupedAssetImage, { height: 23, width: 23, groupedAsset }),
50825
50900
  /* @__PURE__ */ jsx(Text, { useWindowsTextHack: true, children: assetDetails.symbol }),
50901
+ swapPageAnnotation && /* @__PURE__ */ jsx(AssetAnnotationIcon, { size: 16, color: annotationAccent }),
50826
50902
  isMobileScreenSize && /* @__PURE__ */ jsx(
50827
50903
  ChevronIcon,
50828
50904
  {
@@ -50850,7 +50926,7 @@ const SwapPageAssetChainInput = ({
50850
50926
  className: "chevron-icon",
50851
50927
  color: theme.primary.text.normal,
50852
50928
  backgroundColor: isAssetButtonHovered ? theme.secondary.background.hover : theme.secondary.background.normal,
50853
- backgroundRx: (_a = theme.borderRadius) == null ? void 0 : _a.selectionButton
50929
+ backgroundRx: (_b = theme.borderRadius) == null ? void 0 : _b.selectionButton
50854
50930
  }
50855
50931
  )
50856
50932
  ]
@@ -50883,26 +50959,36 @@ const SwapPageAssetChainInput = ({
50883
50959
  ] }) : /* @__PURE__ */ jsx(SmallText, { children: usdValue && formatUSD(usdValue) }),
50884
50960
  usdValue && feeLabel && /* @__PURE__ */ jsx(Row, { style: { color: feeColor }, align: "center", gap: 4, children: typeof feeLabel === "string" ? /* @__PURE__ */ jsx(SmallText, { children: feeLabel }) : feeLabel })
50885
50961
  ] }),
50886
- (assetDetails == null ? void 0 : assetDetails.chainName) ? /* @__PURE__ */ jsx(
50887
- StyledOnChainGhostButton,
50888
- {
50889
- disabled,
50890
- onClick: handleChangeChain,
50891
- align: "center",
50892
- secondary: true,
50893
- gap: 4,
50894
- children: /* @__PURE__ */ jsxs(SmallText, { children: [
50895
- "on ",
50896
- assetDetails == null ? void 0 : assetDetails.chainName
50897
- ] })
50898
- }
50899
- ) : /* @__PURE__ */ jsx(Spacer, {})
50962
+ (assetDetails == null ? void 0 : assetDetails.chainName) ? /* @__PURE__ */ jsxs(Row, { align: "center", gap: 6, children: [
50963
+ swapPageAnnotation && /* @__PURE__ */ jsx(
50964
+ AssetAnnotationBadge,
50965
+ {
50966
+ label: swapPageAnnotation.label,
50967
+ variant: annotation == null ? void 0 : annotation.variant
50968
+ }
50969
+ ),
50970
+ /* @__PURE__ */ jsx(
50971
+ StyledOnChainGhostButton,
50972
+ {
50973
+ disabled,
50974
+ onClick: handleChangeChain,
50975
+ align: "center",
50976
+ secondary: true,
50977
+ gap: 4,
50978
+ children: /* @__PURE__ */ jsxs(SmallText, { children: [
50979
+ "on ",
50980
+ assetDetails == null ? void 0 : assetDetails.chainName
50981
+ ] })
50982
+ }
50983
+ )
50984
+ ] }) : /* @__PURE__ */ jsx(Spacer, {})
50900
50985
  ] })
50901
50986
  ] });
50902
50987
  };
50903
50988
  const StyledOnChainGhostButton = dt(GhostButton)`
50989
+ padding: 4px 8px;
50904
50990
  @media (max-width: 767px) {
50905
- padding: 0 5px;
50991
+ padding: 2px 6px;
50906
50992
  height: 25px;
50907
50993
  }
50908
50994
  ${({ disabled }) => disabled && "cursor: not-allowed"};
@@ -51001,6 +51087,11 @@ const StyledAssetLabel = dt(Row).attrs({
51001
51087
  p {
51002
51088
  z-index: 1;
51003
51089
  }
51090
+
51091
+ svg {
51092
+ position: relative;
51093
+ z-index: 1;
51094
+ }
51004
51095
  `;
51005
51096
  const StyledSelectTokenLabel = dt(StyledAssetLabel)`
51006
51097
  background: ${(props) => props.theme.brandColor};
@@ -51133,7 +51224,7 @@ const AssetAndChainSelectorModal = createModal(
51133
51224
  isFetching: isFetchingAssets,
51134
51225
  isPending: isPendingAssets
51135
51226
  } = useAtomValue(skipAssetsAtom);
51136
- const ibcEurekaHighlightedAssets = useAtomValue(ibcEurekaHighlightedAssetsAtom);
51227
+ const assetAnnotations = useAtomValue(assetAnnotationsAtom);
51137
51228
  const { isFetching: isFetchingChains, isPending: isPendingChains } = useAtomValue(skipChainsAtom);
51138
51229
  const isLoading = isFetchingAssets && isPendingAssets || isFetchingChains && isPendingChains;
51139
51230
  const [showSkeleton, setShowSkeleton] = useState(true);
@@ -51209,15 +51300,8 @@ const AssetAndChainSelectorModal = createModal(
51209
51300
  };
51210
51301
  const renderItem = useCallback(
51211
51302
  (item, index) => {
51212
- var _a, _b;
51213
51303
  const groupedAsset = item;
51214
- const chainWithAsset = item;
51215
- const highlightedSymbol = ibcEurekaHighlightedAssets && Object.keys(ibcEurekaHighlightedAssets);
51216
- const groupedAssetContainsEurekaAsset = highlightedSymbol == null ? void 0 : highlightedSymbol.includes(groupedAsset.id);
51217
- const chainWithAssetContainsEurekaAsset = ((_a = chainWithAsset == null ? void 0 : chainWithAsset.asset) == null ? void 0 : _a.recommendedSymbol) ? ibcEurekaHighlightedAssets && highlightedSymbol.includes(chainWithAsset.asset.recommendedSymbol) && (ibcEurekaHighlightedAssets == null ? void 0 : ibcEurekaHighlightedAssets[chainWithAsset.asset.recommendedSymbol]) === void 0 ? true : (ibcEurekaHighlightedAssets == null ? void 0 : ibcEurekaHighlightedAssets[chainWithAsset.asset.recommendedSymbol]) && ((_b = ibcEurekaHighlightedAssets == null ? void 0 : ibcEurekaHighlightedAssets[chainWithAsset.asset.recommendedSymbol]) == null ? void 0 : _b.includes(
51218
- chainWithAsset == null ? void 0 : chainWithAsset.chainId
51219
- )) : false;
51220
- const eureka = groupedAssetContainsEurekaAsset || chainWithAssetContainsEurekaAsset;
51304
+ const annotation = assetAnnotations == null ? void 0 : assetAnnotations[groupedAsset.id];
51221
51305
  return /* @__PURE__ */ jsx(
51222
51306
  AssetAndChainSelectorModalRowItem,
51223
51307
  {
@@ -51226,11 +51310,11 @@ const AssetAndChainSelectorModal = createModal(
51226
51310
  onSelect,
51227
51311
  skeleton: /* @__PURE__ */ jsx(Skeleton, {}),
51228
51312
  context,
51229
- eureka
51313
+ annotation
51230
51314
  }
51231
51315
  );
51232
51316
  },
51233
- [context, ibcEurekaHighlightedAssets, onSelect]
51317
+ [context, assetAnnotations, onSelect]
51234
51318
  );
51235
51319
  const listOfAssetsOrChains = useMemo(() => {
51236
51320
  if (selectChain || groupedAssetSelected) {
@@ -54593,7 +54677,7 @@ const useConnectToMissingCosmosChain = () => {
54593
54677
  }, [sourceAsset, wallets, extraChainIdsToConnect, addExtraChainIdsToConnectForWalletType]);
54594
54678
  return { isAskingToApproveConnection };
54595
54679
  };
54596
- const version = "3.17.4";
54680
+ const version = "3.18.0";
54597
54681
  const packageJson = {
54598
54682
  version
54599
54683
  };
@@ -56258,8 +56342,8 @@ const useInitWidget = (props = {}) => {
56258
56342
  const setSimulateTx = useSetAtom(simulateTxAtom);
56259
56343
  const setBatchSignTxs = useSetAtom(batchSignTxsAtom);
56260
56344
  const setDisableShadowDom = useSetAtom(disableShadowDomAtom);
56261
- const setIbcEurekaHighlightedAssets = useSetAtom(ibcEurekaHighlightedAssetsAtom);
56262
56345
  const setAssetSymbolsSortedToTop = useSetAtom(assetSymbolsSortedToTopAtom);
56346
+ const setAssetAnnotations = useSetAtom(assetAnnotationsAtom);
56263
56347
  const setHideAssetsUnlessWalletTypeConnected = useSetAtom(
56264
56348
  hideAssetsUnlessWalletTypeConnectedAtom
56265
56349
  );
@@ -56356,12 +56440,12 @@ const useInitWidget = (props = {}) => {
56356
56440
  if (props.disableShadowDom !== void 0) {
56357
56441
  setDisableShadowDom(props.disableShadowDom);
56358
56442
  }
56359
- if (props.ibcEurekaHighlightedAssets) {
56360
- setIbcEurekaHighlightedAssets(props.ibcEurekaHighlightedAssets);
56361
- }
56362
56443
  if (props.assetSymbolsSortedToTop) {
56363
56444
  setAssetSymbolsSortedToTop(props.assetSymbolsSortedToTop);
56364
56445
  }
56446
+ if (props.assetAnnotations) {
56447
+ setAssetAnnotations(props.assetAnnotations);
56448
+ }
56365
56449
  if (props.hideAssetsUnlessWalletTypeConnected) {
56366
56450
  setHideAssetsUnlessWalletTypeConnected(props.hideAssetsUnlessWalletTypeConnected);
56367
56451
  }
@@ -56405,10 +56489,10 @@ const useInitWidget = (props = {}) => {
56405
56489
  props.onRouteUpdated,
56406
56490
  props.disableShadowDom,
56407
56491
  setDisableShadowDom,
56408
- props.ibcEurekaHighlightedAssets,
56409
- setIbcEurekaHighlightedAssets,
56410
56492
  props.assetSymbolsSortedToTop,
56411
56493
  setAssetSymbolsSortedToTop,
56494
+ props.assetAnnotations,
56495
+ setAssetAnnotations,
56412
56496
  props.skipExplorerUrl,
56413
56497
  setSkipExplorerUrl,
56414
56498
  props.filterOut,
@@ -56747,7 +56831,7 @@ const WidgetContainer = dt.div`
56747
56831
  }
56748
56832
 
56749
56833
  * {
56750
- font-family: 'ABCDiatype', sans-serif;
56834
+ font-family: "ABCDiatype", sans-serif;
56751
56835
  -webkit-font-smoothing: antialiased;
56752
56836
  -moz-osx-font-smoothing: grayscale;
56753
56837
  text-rendering: optimizeLegibility;