@deframe-sdk/components 0.1.23 → 0.1.25

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.mjs CHANGED
@@ -2,12 +2,11 @@ import { twMerge } from 'tailwind-merge';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import { HiXMark, HiChevronUp, HiChevronDown, HiChevronLeft, HiOutlineClock, HiArrowRight, HiArrowLeft } from 'react-icons/hi2';
4
4
  import * as React6 from 'react';
5
- import React6__default, { useState, useEffect, useRef, useCallback } from 'react';
5
+ import React6__default, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
6
6
  import { motion, AnimatePresence } from 'framer-motion';
7
7
  import { MdClose, MdOutlineSearch, MdOutlineSearchOff, MdOutlineSwapHoriz, MdHistory, MdOutlineSwapVert, MdArrowRight, MdArrowDropDown, MdQrCodeScanner, MdOutlineArrowUpward, MdOutlineArrowDownward, MdCheckCircleOutline, MdErrorOutline, MdWarningAmber, MdInfoOutline, MdArrowUpward, MdArrowDownward } from 'react-icons/md';
8
8
  import { IoAlertCircleOutline, IoTimeOutline, IoCheckmarkOutline } from 'react-icons/io5';
9
9
  import { PiClockCountdownBold } from 'react-icons/pi';
10
- import Link2 from 'next/link';
11
10
 
12
11
  var __defProp = Object.defineProperty;
13
12
  var __defProps = Object.defineProperties;
@@ -7419,6 +7418,45 @@ var SwapWidgetFallbackView = ({
7419
7418
  }
7420
7419
  );
7421
7420
  };
7421
+ var Chip = ({
7422
+ label,
7423
+ selected = false,
7424
+ onClick,
7425
+ className
7426
+ }) => {
7427
+ const baseStyles = [
7428
+ "h-8 px-4 rounded-sm",
7429
+ "flex items-center justify-center gap-2",
7430
+ "text-xs font-normal font-poppins leading-5",
7431
+ "transition-colors duration-200 cursor-pointer"
7432
+ ].join(" ");
7433
+ const selectedStyles = selected ? "bg-[var(--deframe-widget-color-brand-secondary)] text-[var(--deframe-widget-color-text-inverse)]" : "bg-transparent border border-[var(--deframe-widget-color-border-default)] text-[var(--deframe-widget-color-text-secondary)] hover:bg-[var(--deframe-widget-color-bg-subtle)]";
7434
+ return /* @__PURE__ */ jsx(
7435
+ "button",
7436
+ {
7437
+ type: "button",
7438
+ onClick,
7439
+ className: twMerge(baseStyles, selectedStyles, className),
7440
+ children: label
7441
+ }
7442
+ );
7443
+ };
7444
+ var ChipGroup = ({
7445
+ options,
7446
+ selected,
7447
+ onSelect,
7448
+ className
7449
+ }) => {
7450
+ return /* @__PURE__ */ jsx("div", { className: twMerge("flex flex-row flex-wrap gap-2", className), children: options.map((option) => /* @__PURE__ */ jsx(
7451
+ Chip,
7452
+ {
7453
+ label: option.label,
7454
+ selected: selected === option.value,
7455
+ onClick: () => onSelect(option.value)
7456
+ },
7457
+ option.value
7458
+ )) });
7459
+ };
7422
7460
  var ApyRange = ({ children }) => {
7423
7461
  return /* @__PURE__ */ jsx("div", { className: "text-right justify-center text-text-highlight text-xs font-normal leading-4", children });
7424
7462
  };
@@ -7544,80 +7582,403 @@ var EarnBalanceCard = ({
7544
7582
  ] })
7545
7583
  ] });
7546
7584
  };
7547
- var EarnInvestmentSummaryView = ({
7548
- overviewDescription,
7549
- totalInvestedLabel,
7550
- totalInvestedValue,
7551
- totalReturnLabel,
7552
- totalReturnValue,
7553
- processingBadgeLabel,
7554
- processingBadgeTitle,
7555
- className
7585
+ var GroupLabel = ({ children }) => /* @__PURE__ */ jsx("div", { className: "text-text-secondary dark:text-text-secondary-dark text-sm font-medium font-poppins py-3", children });
7586
+ var GroupedStrategyListView = ({
7587
+ isLoading,
7588
+ loadingLabel,
7589
+ error,
7590
+ errorLabel,
7591
+ investedLabel,
7592
+ investedItems,
7593
+ bestPerformanceLabel,
7594
+ bestPerformanceItems,
7595
+ allStrategiesLabel,
7596
+ allStrategiesItems
7556
7597
  }) => {
7557
- return /* @__PURE__ */ jsxs("section", { className: twMerge("flex flex-col gap-md p-lg bg-[var(--deframe-widget-color-bg-subtle)] rounded", className), children: [
7558
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "text-text-secondary dark:text-text-secondary-dark", children: overviewDescription }),
7559
- /* @__PURE__ */ jsx(
7560
- WalletBalances,
7561
- {
7562
- cards: [
7563
- {
7564
- label: totalInvestedLabel,
7565
- value: totalInvestedValue,
7566
- badge: processingBadgeLabel ? /* @__PURE__ */ jsx(
7567
- ProcessingBadge,
7598
+ const hasInvested = investedItems.length > 0;
7599
+ const hasBestPerformance = bestPerformanceItems.length > 0;
7600
+ const hasAllStrategies = allStrategiesItems.length > 0;
7601
+ if (isLoading) {
7602
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center py-md", children: [
7603
+ loadingLabel,
7604
+ " ",
7605
+ /* @__PURE__ */ jsx(LoadingDots, {})
7606
+ ] });
7607
+ }
7608
+ if (error) {
7609
+ return /* @__PURE__ */ jsxs("div", { className: "p-4 text-center text-red-500", children: [
7610
+ errorLabel,
7611
+ ": ",
7612
+ error.message
7613
+ ] });
7614
+ }
7615
+ return /* @__PURE__ */ jsxs("div", { className: "w-full flex flex-col gap-sm flex-1 min-h-0 overflow-y-auto", children: [
7616
+ hasInvested && /* @__PURE__ */ jsxs(Fragment, { children: [
7617
+ /* @__PURE__ */ jsx(GroupLabel, { children: investedLabel }),
7618
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: investedItems.map((item) => /* @__PURE__ */ jsxs(
7619
+ ListItem,
7620
+ {
7621
+ onClick: () => item.onClick(),
7622
+ children: [
7623
+ /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7624
+ "img",
7568
7625
  {
7569
- label: processingBadgeLabel,
7570
- title: processingBadgeTitle
7626
+ src: item.logoUrl,
7627
+ alt: item.subtitle,
7628
+ className: "w-10 h-10 rounded-full"
7571
7629
  }
7572
- ) : void 0
7573
- },
7574
- { label: totalReturnLabel, value: totalReturnValue }
7575
- ],
7576
- variant: "raised",
7577
- className: "grid grid-cols-2 gap-md !mt-0"
7630
+ ) }),
7631
+ /* @__PURE__ */ jsxs(ListItemContent, { children: [
7632
+ /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7633
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7634
+ ] }),
7635
+ /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7636
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end", children: [
7637
+ /* @__PURE__ */ jsx(TextBody, { children: item.balanceFormatted }),
7638
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.profitFormatted })
7639
+ ] }),
7640
+ /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7641
+ ] }) })
7642
+ ]
7643
+ },
7644
+ `invested-${item.id}`
7645
+ )) })
7646
+ ] }),
7647
+ hasBestPerformance && /* @__PURE__ */ jsxs(Fragment, { children: [
7648
+ /* @__PURE__ */ jsx(GroupLabel, { children: bestPerformanceLabel }),
7649
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: bestPerformanceItems.map((item) => /* @__PURE__ */ jsxs(
7650
+ ListItem,
7651
+ {
7652
+ onClick: () => item.onClick(),
7653
+ children: [
7654
+ /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7655
+ "img",
7656
+ {
7657
+ src: item.logoUrl,
7658
+ alt: item.subtitle,
7659
+ className: "w-10 h-10 rounded-full"
7660
+ }
7661
+ ) }),
7662
+ /* @__PURE__ */ jsxs(ListItemContent, { children: [
7663
+ /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7664
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7665
+ ] }),
7666
+ /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7667
+ /* @__PURE__ */ jsx(ApyRange, { children: item.apyFormatted }),
7668
+ /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7669
+ ] }) })
7670
+ ]
7671
+ },
7672
+ `best-${item.id}`
7673
+ )) })
7674
+ ] }),
7675
+ hasAllStrategies && /* @__PURE__ */ jsxs(Fragment, { children: [
7676
+ /* @__PURE__ */ jsx(GroupLabel, { children: allStrategiesLabel }),
7677
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: allStrategiesItems.map((item) => /* @__PURE__ */ jsxs(
7678
+ ListItem,
7679
+ {
7680
+ onClick: () => item.onClick(),
7681
+ children: [
7682
+ /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7683
+ "img",
7684
+ {
7685
+ src: item.logoUrl,
7686
+ alt: item.subtitle,
7687
+ className: "w-10 h-10 rounded-full"
7688
+ }
7689
+ ) }),
7690
+ /* @__PURE__ */ jsxs(ListItemContent, { children: [
7691
+ /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7692
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7693
+ ] }),
7694
+ /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7695
+ /* @__PURE__ */ jsx(ApyRange, { children: item.apyFormatted }),
7696
+ /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7697
+ ] }) })
7698
+ ]
7699
+ },
7700
+ `all-${item.id}`
7701
+ )) })
7702
+ ] })
7703
+ ] });
7704
+ };
7705
+ var DateLabel = ({ children }) => {
7706
+ return /* @__PURE__ */ jsx("div", { className: "text-text-sm-mobile font-poppins text-text-secondary dark:text-text-secondary-dark", children });
7707
+ };
7708
+ var ArrowBadge = ({ isDeposit }) => {
7709
+ return /* @__PURE__ */ jsx("div", { className: "absolute bottom-[-2px] right-[-2px] w-[15px] h-[15px] rounded-full bg-bg-subtle dark:bg-bg-subtle-dark flex items-center justify-center border border-bg-subtle dark:border-bg-subtle-dark", children: isDeposit ? /* @__PURE__ */ jsx(MdArrowDownward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) : /* @__PURE__ */ jsx(MdArrowUpward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) });
7710
+ };
7711
+ var TokenIconWithBadge2 = ({ src, alt, isDeposit }) => {
7712
+ const fallbackText = encodeURIComponent((alt || "TOK").slice(0, 3).toUpperCase());
7713
+ const fallbackSrc = `https://placehold.co/40x40?text=${fallbackText}`;
7714
+ const resolvedSrc = src || fallbackSrc;
7715
+ return /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
7716
+ /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-xl bg-bg-muted dark:bg-bg-muted-dark flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
7717
+ "img",
7718
+ {
7719
+ src: resolvedSrc,
7720
+ alt,
7721
+ className: "w-full h-full object-cover",
7722
+ onError: (e) => {
7723
+ e.target.src = fallbackSrc;
7724
+ }
7578
7725
  }
7579
- )
7726
+ ) }),
7727
+ /* @__PURE__ */ jsx(ArrowBadge, { isDeposit })
7580
7728
  ] });
7581
7729
  };
7582
- var EarnInvestedSectionView = ({
7583
- sectionTitle,
7584
- items,
7585
- onItemClick,
7586
- className
7730
+ var SwapIconWithBadge = ({ src, alt }) => {
7731
+ const fallbackText = encodeURIComponent((alt || "TOK").slice(0, 3).toUpperCase());
7732
+ const fallbackSrc = `https://placehold.co/40x40?text=${fallbackText}`;
7733
+ const resolvedSrc = src || fallbackSrc;
7734
+ return /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
7735
+ /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-xl bg-bg-muted dark:bg-bg-muted-dark flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
7736
+ "img",
7737
+ {
7738
+ src: resolvedSrc,
7739
+ alt,
7740
+ className: "w-full h-full object-cover",
7741
+ onError: (e) => {
7742
+ e.target.src = fallbackSrc;
7743
+ }
7744
+ }
7745
+ ) }),
7746
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-[-2px] right-[-2px] w-[15px] h-[15px] rounded-full bg-bg-subtle dark:bg-bg-subtle-dark flex items-center justify-center border border-bg-subtle dark:border-bg-subtle-dark", children: /* @__PURE__ */ jsx(MdArrowUpward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) })
7747
+ ] });
7748
+ };
7749
+ var AmountDisplay = ({ amount, usdAmount }) => {
7750
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
7751
+ /* @__PURE__ */ jsx(Label, { className: "text-accent-sm-mobile whitespace-nowrap", children: amount }),
7752
+ usdAmount ? /* @__PURE__ */ jsx(Label, { variant: "secondary", className: "whitespace-nowrap", children: usdAmount }) : null
7753
+ ] });
7754
+ };
7755
+ var HistoryListView = ({
7756
+ groups,
7757
+ showLoadMore,
7758
+ onLoadMore,
7759
+ loadMoreLabel,
7760
+ itemClassName
7587
7761
  }) => {
7588
- if (items.length === 0) {
7762
+ if (groups.length === 0) {
7589
7763
  return null;
7590
7764
  }
7591
- return /* @__PURE__ */ jsxs(
7592
- "section",
7593
- {
7594
- className: twMerge(
7595
- "flex flex-col gap-[var(--deframe-widget-size-gap-md)] p-[var(--deframe-widget-size-padding-x-lg)]",
7596
- "bg-[var(--deframe-widget-color-bg-subtle)] rounded-[var(--deframe-widget-size-radius-sm)]",
7597
- className
7598
- ),
7599
- children: [
7600
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: sectionTitle }),
7601
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-md)]", children: items.map((item, index) => {
7602
- const isLast = index === items.length - 1;
7603
- return /* @__PURE__ */ jsxs(
7604
- "button",
7605
- {
7606
- type: "button",
7607
- onClick: () => onItemClick == null ? void 0 : onItemClick(item.strategyId),
7608
- className: twMerge(
7609
- "flex items-center gap-[var(--deframe-widget-size-gap-md)] p-[var(--deframe-widget-size-padding-x-md)] bg-[var(--deframe-widget-color-bg-raised)] rounded-[var(--deframe-widget-size-radius-sm)]",
7610
- "transition-colors cursor-pointer text-left w-full",
7611
- !isLast && "border-b border-[var(--deframe-widget-color-border-secondary)]"
7612
- ),
7613
- children: [
7614
- /* @__PURE__ */ jsx(
7615
- "img",
7616
- {
7617
- src: item.logoUrl,
7618
- alt: item.assetName,
7619
- className: "w-10 h-10 rounded-[var(--deframe-widget-size-radius-full)] flex-shrink-0"
7620
- }
7765
+ return /* @__PURE__ */ jsxs("div", { className: "self-stretch flex flex-col gap-[16px]", children: [
7766
+ groups.map((group) => /* @__PURE__ */ jsxs("div", { className: "self-stretch flex flex-col gap-sm", children: [
7767
+ /* @__PURE__ */ jsx(DateLabel, { children: group.dateLabel }),
7768
+ group.items.map((item) => /* @__PURE__ */ jsxs(
7769
+ ListItem,
7770
+ {
7771
+ onClick: () => item.onClick(),
7772
+ containerClassName: twMerge("!rounded-xs !border-0 !min-h-[72px]", itemClassName),
7773
+ children: [
7774
+ /* @__PURE__ */ jsx(ListItemLeftSide, { children: item.isSwap ? /* @__PURE__ */ jsx(SwapIconWithBadge, { src: item.iconUrl, alt: item.iconAlt }) : /* @__PURE__ */ jsx(
7775
+ TokenIconWithBadge2,
7776
+ {
7777
+ src: item.iconUrl,
7778
+ alt: item.iconAlt,
7779
+ isDeposit: item.isDeposit
7780
+ }
7781
+ ) }),
7782
+ /* @__PURE__ */ jsxs(ListItemContent, { children: [
7783
+ /* @__PURE__ */ jsx(Label, { className: "text-text-lg-mobile", children: item.title }),
7784
+ /* @__PURE__ */ jsx(Label, { variant: "secondary", className: "text-text-tertiary dark:text-text-tertiary-dark", children: item.subtitle }),
7785
+ item.status === "PENDING" && item.statusLabel ? /* @__PURE__ */ jsx("div", { className: "mt-[6px]", children: /* @__PURE__ */ jsx(
7786
+ ProcessingBadge,
7787
+ {
7788
+ label: item.statusLabel,
7789
+ title: item.statusTitle,
7790
+ size: "compact"
7791
+ }
7792
+ ) }) : null
7793
+ ] }),
7794
+ /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsx(AmountDisplay, { amount: item.amountFormatted, usdAmount: item.amountUsd }) })
7795
+ ]
7796
+ },
7797
+ item.id
7798
+ ))
7799
+ ] }, group.dateLabel)),
7800
+ showLoadMore && /* @__PURE__ */ jsx("div", { className: "flex justify-center pt-sm", children: /* @__PURE__ */ jsx(TertiaryButton, { onClick: onLoadMore, children: loadMoreLabel }) })
7801
+ ] });
7802
+ };
7803
+ var OverviewEarnWidgetTabSkeleton = () => {
7804
+ return /* @__PURE__ */ jsxs("div", { className: "w-full flex flex-col gap-md", children: [
7805
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "40px", variant: "rect" }),
7806
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-sm", children: [
7807
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "144px", variant: "rect" }),
7808
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "144px", variant: "rect" })
7809
+ ] }),
7810
+ /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
7811
+ /* @__PURE__ */ jsx(Skeleton, { width: "128px", height: "20px", variant: "text", className: "mb-sm" }),
7812
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "80px", variant: "rect" })
7813
+ ] }),
7814
+ /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
7815
+ /* @__PURE__ */ jsx(Skeleton, { width: "96px", height: "20px", variant: "text", className: "mb-sm" }),
7816
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-sm", children: [
7817
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "64px", variant: "rect" }),
7818
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "64px", variant: "rect" }),
7819
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "64px", variant: "rect" }),
7820
+ /* @__PURE__ */ jsx(Skeleton, { width: "100%", height: "64px", variant: "rect" })
7821
+ ] })
7822
+ ] })
7823
+ ] });
7824
+ };
7825
+ var EarnOverviewView = ({
7826
+ selectedTab,
7827
+ onTabChange,
7828
+ labels,
7829
+ overview,
7830
+ explore,
7831
+ history
7832
+ }) => {
7833
+ return /* @__PURE__ */ jsx(BackgroundContainer, { className: "flex flex-col flex-1 min-h-0 px-0", children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, onValueChange: onTabChange, variant: "default", className: "flex flex-col flex-1 min-h-0", children: [
7834
+ /* @__PURE__ */ jsxs(TabsList, { className: "justify-between w-full", children: [
7835
+ /* @__PURE__ */ jsx(TabsTrigger, { value: "overview", className: "flex-1", children: labels.tabs.overview }),
7836
+ /* @__PURE__ */ jsx(TabsTrigger, { value: "explore", className: "flex-1", children: labels.tabs.explore }),
7837
+ /* @__PURE__ */ jsx(TabsTrigger, { value: "history", className: "flex-1", children: labels.tabs.history })
7838
+ ] }),
7839
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 w-full min-h-0 px-md pt-md", children: [
7840
+ /* @__PURE__ */ jsx(TabsContent, { value: "overview", className: "flex flex-col flex-1 min-h-0", children: overview.isLoading ? /* @__PURE__ */ jsx(OverviewEarnWidgetTabSkeleton, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
7841
+ /* @__PURE__ */ jsx(WalletBalances, { cards: overview.walletBalances }),
7842
+ /* @__PURE__ */ jsx(GroupedStrategyListView, __spreadValues({}, overview.groupedStrategies))
7843
+ ] }) }),
7844
+ /* @__PURE__ */ jsxs(TabsContent, { value: "explore", children: [
7845
+ /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-full mb-4 h-12", children: /* @__PURE__ */ jsx(
7846
+ SearchInput,
7847
+ {
7848
+ value: explore.searchValue,
7849
+ onChange: (value) => explore.onSearchChange(value),
7850
+ placeholder: explore.searchPlaceholder
7851
+ }
7852
+ ) }),
7853
+ explore.isLoading ? /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
7854
+ explore.loadingLabel,
7855
+ /* @__PURE__ */ jsx(LoadingDots, {})
7856
+ ] }) : explore.error ? /* @__PURE__ */ jsxs("div", { className: "p-4 text-center text-red-500", children: [
7857
+ explore.errorLabel,
7858
+ ": ",
7859
+ explore.error.message
7860
+ ] }) : explore.hasFilters && explore.strategies.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "w-full py-md bg-bg-default dark:bg-bg-default-dark rounded-lg flex flex-col gap-sm flex-shrink-0", children: [
7861
+ /* @__PURE__ */ jsx(
7862
+ ChipGroup,
7863
+ {
7864
+ options: explore.chipOptions,
7865
+ selected: explore.selectedCategory,
7866
+ onSelect: (value) => explore.onCategorySelect(value)
7867
+ }
7868
+ ),
7869
+ /* @__PURE__ */ jsx(SearchEmptyState, { title: explore.emptySearchTitle, description: explore.emptySearchDescription })
7870
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "w-full py-md bg-bg-default dark:bg-bg-default-dark rounded-lg flex flex-col gap-sm flex-shrink-0", children: [
7871
+ /* @__PURE__ */ jsx(
7872
+ ChipGroup,
7873
+ {
7874
+ options: explore.chipOptions,
7875
+ selected: explore.selectedCategory,
7876
+ onSelect: (value) => explore.onCategorySelect(value)
7877
+ }
7878
+ ),
7879
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h5", children: explore.bestPerformanceLabel }),
7880
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: explore.strategies.map((s) => /* @__PURE__ */ jsxs(ListItem, { onClick: () => s.onClick(), children: [
7881
+ /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx("img", { src: s.logoUrl, alt: s.subtitle, className: "w-10 h-10 rounded-full" }) }),
7882
+ /* @__PURE__ */ jsxs(ListItemContent, { children: [
7883
+ /* @__PURE__ */ jsx(TextBody, { children: s.title }),
7884
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: s.subtitle })
7885
+ ] }),
7886
+ /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsx(TextBody, { children: s.apyFormatted }) })
7887
+ ] }, s.id)) })
7888
+ ] })
7889
+ ] }),
7890
+ /* @__PURE__ */ jsx(TabsContent, { value: "history", children: history.isLoading ? /* @__PURE__ */ jsx(HistoryListSkeleton, {}) : history.isEmpty ? /* @__PURE__ */ jsx("div", { className: "w-full h-[90vh] py-md bg-bg-default dark:bg-bg-default-dark rounded-lg flex flex-col justify-center items-center gap-sm overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "w-full flex flex-col justify-center items-center gap-md", children: [
7891
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center items-center gap-md text-center", children: [
7892
+ /* @__PURE__ */ jsx("div", { className: "w-20 h-20 bg-bg-muted dark:bg-bg-muted-dark rounded-full flex justify-center items-center", children: /* @__PURE__ */ jsx(PiClockCountdownBold, { className: "w-10 h-10 text-text-tertiary dark:text-text-tertiary-dark" }) }),
7893
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h3", children: history.emptyTitle })
7894
+ ] }),
7895
+ /* @__PURE__ */ jsx("div", { className: "self-stretch text-center", children: /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: history.emptyDescription }) })
7896
+ ] }) }) : /* @__PURE__ */ jsx(
7897
+ HistoryListView,
7898
+ {
7899
+ groups: history.groups,
7900
+ showLoadMore: history.showLoadMore,
7901
+ onLoadMore: () => history.onLoadMore(),
7902
+ loadMoreLabel: history.loadMoreLabel
7903
+ }
7904
+ ) })
7905
+ ] })
7906
+ ] }) });
7907
+ };
7908
+ var EarnInvestmentSummaryView = ({
7909
+ overviewDescription,
7910
+ totalInvestedLabel,
7911
+ totalInvestedValue,
7912
+ totalReturnLabel,
7913
+ totalReturnValue,
7914
+ processingBadgeLabel,
7915
+ processingBadgeTitle,
7916
+ className
7917
+ }) => {
7918
+ return /* @__PURE__ */ jsxs("section", { className: twMerge("flex flex-col gap-md p-lg bg-[var(--deframe-widget-color-bg-subtle)] rounded", className), children: [
7919
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "text-text-secondary dark:text-text-secondary-dark", children: overviewDescription }),
7920
+ /* @__PURE__ */ jsx(
7921
+ WalletBalances,
7922
+ {
7923
+ cards: [
7924
+ {
7925
+ label: totalInvestedLabel,
7926
+ value: totalInvestedValue,
7927
+ badge: processingBadgeLabel ? /* @__PURE__ */ jsx(
7928
+ ProcessingBadge,
7929
+ {
7930
+ label: processingBadgeLabel,
7931
+ title: processingBadgeTitle
7932
+ }
7933
+ ) : void 0
7934
+ },
7935
+ { label: totalReturnLabel, value: totalReturnValue }
7936
+ ],
7937
+ variant: "raised",
7938
+ className: "grid grid-cols-2 gap-md !mt-0"
7939
+ }
7940
+ )
7941
+ ] });
7942
+ };
7943
+ var EarnInvestedSectionView = ({
7944
+ sectionTitle,
7945
+ items,
7946
+ onItemClick,
7947
+ className
7948
+ }) => {
7949
+ if (items.length === 0) {
7950
+ return null;
7951
+ }
7952
+ return /* @__PURE__ */ jsxs(
7953
+ "section",
7954
+ {
7955
+ className: twMerge(
7956
+ "flex flex-col gap-[var(--deframe-widget-size-gap-md)] p-[var(--deframe-widget-size-padding-x-lg)]",
7957
+ "bg-[var(--deframe-widget-color-bg-subtle)] rounded-[var(--deframe-widget-size-radius-sm)]",
7958
+ className
7959
+ ),
7960
+ children: [
7961
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: sectionTitle }),
7962
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-md)]", children: items.map((item, index) => {
7963
+ const isLast = index === items.length - 1;
7964
+ return /* @__PURE__ */ jsxs(
7965
+ "button",
7966
+ {
7967
+ type: "button",
7968
+ onClick: () => onItemClick == null ? void 0 : onItemClick(item.strategyId),
7969
+ className: twMerge(
7970
+ "flex items-center gap-[var(--deframe-widget-size-gap-md)] p-[var(--deframe-widget-size-padding-x-md)] bg-[var(--deframe-widget-color-bg-raised)] rounded-[var(--deframe-widget-size-radius-sm)]",
7971
+ "transition-colors cursor-pointer text-left w-full",
7972
+ !isLast && "border-b border-[var(--deframe-widget-color-border-secondary)]"
7973
+ ),
7974
+ children: [
7975
+ /* @__PURE__ */ jsx(
7976
+ "img",
7977
+ {
7978
+ src: item.logoUrl,
7979
+ alt: item.assetName,
7980
+ className: "w-10 h-10 rounded-[var(--deframe-widget-size-radius-full)] flex-shrink-0"
7981
+ }
7621
7982
  ),
7622
7983
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-w-0", children: [
7623
7984
  /* @__PURE__ */ jsx(TextBody, { className: "font-medium truncate", children: item.assetName }),
@@ -7870,289 +8231,71 @@ var EarnInvestmentDetailsView = (props) => {
7870
8231
  ] }) })
7871
8232
  ] });
7872
8233
  };
7873
- var GroupLabel = ({ children }) => /* @__PURE__ */ jsx("div", { className: "text-text-secondary dark:text-text-secondary-dark text-sm font-medium font-poppins py-3", children });
7874
- var GroupedStrategyListView = ({
8234
+ var EarnTokenSelectorView = ({
8235
+ selectedToken,
8236
+ onTokenClick,
8237
+ onNetworkClick,
7875
8238
  isLoading,
7876
- loadingLabel,
7877
- error,
7878
- errorLabel,
7879
- investedLabel,
7880
- investedItems,
7881
- bestPerformanceLabel,
7882
- bestPerformanceItems,
7883
- allStrategiesLabel,
7884
- allStrategiesItems
8239
+ selectTokenLabel,
8240
+ chainLabel,
8241
+ chainImage,
8242
+ chainDirectionLabel,
8243
+ chainDisabledTitle,
8244
+ isNetworkDisabled = false,
8245
+ currentNetworkSelected
8246
+ }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[10px]", children: [
8247
+ /* @__PURE__ */ jsx("div", { className: "flex gap-[10px] w-full", children: /* @__PURE__ */ jsx(
8248
+ "button",
8249
+ {
8250
+ type: "button",
8251
+ onClick: onTokenClick,
8252
+ className: "flex-1 h-[56px] border border-[var(--deframe-widget-color-border-primary)] rounded overflow-hidden hover:border-[var(--deframe-widget-color-border-primary)] transition-colors",
8253
+ children: /* @__PURE__ */ jsxs("div", { className: "flex h-full items-center justify-between px-[var(--deframe-widget-size-padding-x-sm)] py-[6px]", children: [
8254
+ /* @__PURE__ */ jsx("div", { className: "flex gap-[var(--deframe-widget-size-gap-sm)] items-center", children: (selectedToken == null ? void 0 : selectedToken.logoURI) ? /* @__PURE__ */ jsxs(Fragment, { children: [
8255
+ /* @__PURE__ */ jsx(
8256
+ "img",
8257
+ {
8258
+ src: selectedToken.logoURI,
8259
+ alt: selectedToken.symbol,
8260
+ className: "w-6 h-6 rounded-full"
8261
+ }
8262
+ ),
8263
+ /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-primary)]", children: selectedToken.symbol })
8264
+ ] }) : isLoading ? /* @__PURE__ */ jsx(LoadingDots, {}) : /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: selectTokenLabel }) }),
8265
+ /* @__PURE__ */ jsx("div", { className: "w-[18px] h-[18px] flex items-center justify-center", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
8266
+ ] })
8267
+ }
8268
+ ) }),
8269
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-[var(--deframe-widget-size-gap-sm)] items-center", children: [
8270
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-tertiary)]", children: chainDirectionLabel }),
8271
+ /* @__PURE__ */ jsxs(
8272
+ "button",
8273
+ {
8274
+ type: "button",
8275
+ onClick: () => onNetworkClick == null ? void 0 : onNetworkClick(currentNetworkSelected),
8276
+ disabled: isNetworkDisabled,
8277
+ title: chainDisabledTitle,
8278
+ className: `bg-[var(--deframe-widget-color-bg-tertiary)] border border-[var(--deframe-widget-color-border-secondary)] rounded-lg flex gap-[var(--deframe-widget-size-gap-xs)] items-center px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] transition-colors ${isNetworkDisabled ? "opacity-60 cursor-not-allowed" : "cursor-pointer hover:border-[var(--deframe-widget-color-border-primary)]"}`,
8279
+ children: [
8280
+ chainImage && /* @__PURE__ */ jsx("img", { src: chainImage, alt: "", className: "w-3 h-3 rounded-full" }),
8281
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: chainLabel }),
8282
+ /* @__PURE__ */ jsx("div", { className: `w-[18px] h-[18px] flex items-center justify-center ${isNetworkDisabled ? "opacity-50" : ""}`, children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
8283
+ ]
8284
+ }
8285
+ )
8286
+ ] })
8287
+ ] });
8288
+ var EarnAmountInputView = ({
8289
+ value,
8290
+ onChange,
8291
+ ariaLabel,
8292
+ dollarAmountFormatted,
8293
+ availableBalanceFormatted
7885
8294
  }) => {
7886
- const hasInvested = investedItems.length > 0;
7887
- const hasBestPerformance = bestPerformanceItems.length > 0;
7888
- const hasAllStrategies = allStrategiesItems.length > 0;
7889
- if (isLoading) {
7890
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center py-md", children: [
7891
- loadingLabel,
7892
- " ",
7893
- /* @__PURE__ */ jsx(LoadingDots, {})
7894
- ] });
7895
- }
7896
- if (error) {
7897
- return /* @__PURE__ */ jsxs("div", { className: "p-4 text-center text-red-500", children: [
7898
- errorLabel,
7899
- ": ",
7900
- error.message
7901
- ] });
7902
- }
7903
- return /* @__PURE__ */ jsxs("div", { className: "w-full flex flex-col gap-sm flex-1 min-h-0 overflow-y-auto", children: [
7904
- hasInvested && /* @__PURE__ */ jsxs(Fragment, { children: [
7905
- /* @__PURE__ */ jsx(GroupLabel, { children: investedLabel }),
7906
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: investedItems.map((item) => /* @__PURE__ */ jsxs(
7907
- ListItem,
7908
- {
7909
- onClick: () => item.onClick(),
7910
- children: [
7911
- /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7912
- "img",
7913
- {
7914
- src: item.logoUrl,
7915
- alt: item.subtitle,
7916
- className: "w-10 h-10 rounded-full"
7917
- }
7918
- ) }),
7919
- /* @__PURE__ */ jsxs(ListItemContent, { children: [
7920
- /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7921
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7922
- ] }),
7923
- /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7924
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end", children: [
7925
- /* @__PURE__ */ jsx(TextBody, { children: item.balanceFormatted }),
7926
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.profitFormatted })
7927
- ] }),
7928
- /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7929
- ] }) })
7930
- ]
7931
- },
7932
- `invested-${item.id}`
7933
- )) })
7934
- ] }),
7935
- hasBestPerformance && /* @__PURE__ */ jsxs(Fragment, { children: [
7936
- /* @__PURE__ */ jsx(GroupLabel, { children: bestPerformanceLabel }),
7937
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: bestPerformanceItems.map((item) => /* @__PURE__ */ jsxs(
7938
- ListItem,
7939
- {
7940
- onClick: () => item.onClick(),
7941
- children: [
7942
- /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7943
- "img",
7944
- {
7945
- src: item.logoUrl,
7946
- alt: item.subtitle,
7947
- className: "w-10 h-10 rounded-full"
7948
- }
7949
- ) }),
7950
- /* @__PURE__ */ jsxs(ListItemContent, { children: [
7951
- /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7952
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7953
- ] }),
7954
- /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7955
- /* @__PURE__ */ jsx(ApyRange, { children: item.apyFormatted }),
7956
- /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7957
- ] }) })
7958
- ]
7959
- },
7960
- `best-${item.id}`
7961
- )) })
7962
- ] }),
7963
- hasAllStrategies && /* @__PURE__ */ jsxs(Fragment, { children: [
7964
- /* @__PURE__ */ jsx(GroupLabel, { children: allStrategiesLabel }),
7965
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-sm", children: allStrategiesItems.map((item) => /* @__PURE__ */ jsxs(
7966
- ListItem,
7967
- {
7968
- onClick: () => item.onClick(),
7969
- children: [
7970
- /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
7971
- "img",
7972
- {
7973
- src: item.logoUrl,
7974
- alt: item.subtitle,
7975
- className: "w-10 h-10 rounded-full"
7976
- }
7977
- ) }),
7978
- /* @__PURE__ */ jsxs(ListItemContent, { children: [
7979
- /* @__PURE__ */ jsx(TextBody, { children: item.title }),
7980
- /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.subtitle })
7981
- ] }),
7982
- /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between items-center", children: [
7983
- /* @__PURE__ */ jsx(ApyRange, { children: item.apyFormatted }),
7984
- /* @__PURE__ */ jsx(MdArrowRight, { className: "w-6 h-6" })
7985
- ] }) })
7986
- ]
7987
- },
7988
- `all-${item.id}`
7989
- )) })
7990
- ] })
7991
- ] });
7992
- };
7993
- var DateLabel = ({ children }) => {
7994
- return /* @__PURE__ */ jsx("div", { className: "text-text-sm-mobile font-poppins text-text-secondary dark:text-text-secondary-dark", children });
7995
- };
7996
- var ArrowBadge = ({ isDeposit }) => {
7997
- return /* @__PURE__ */ jsx("div", { className: "absolute bottom-[-2px] right-[-2px] w-[15px] h-[15px] rounded-full bg-bg-subtle dark:bg-bg-subtle-dark flex items-center justify-center border border-bg-subtle dark:border-bg-subtle-dark", children: isDeposit ? /* @__PURE__ */ jsx(MdArrowDownward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) : /* @__PURE__ */ jsx(MdArrowUpward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) });
7998
- };
7999
- var TokenIconWithBadge2 = ({ src, alt, isDeposit }) => {
8000
- const fallbackText = encodeURIComponent((alt || "TOK").slice(0, 3).toUpperCase());
8001
- const fallbackSrc = `https://placehold.co/40x40?text=${fallbackText}`;
8002
- const resolvedSrc = src || fallbackSrc;
8003
- return /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
8004
- /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-xl bg-bg-muted dark:bg-bg-muted-dark flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
8005
- "img",
8006
- {
8007
- src: resolvedSrc,
8008
- alt,
8009
- className: "w-full h-full object-cover",
8010
- onError: (e) => {
8011
- e.target.src = fallbackSrc;
8012
- }
8013
- }
8014
- ) }),
8015
- /* @__PURE__ */ jsx(ArrowBadge, { isDeposit })
8016
- ] });
8017
- };
8018
- var SwapIconWithBadge = ({ src, alt }) => {
8019
- const fallbackText = encodeURIComponent((alt || "TOK").slice(0, 3).toUpperCase());
8020
- const fallbackSrc = `https://placehold.co/40x40?text=${fallbackText}`;
8021
- const resolvedSrc = src || fallbackSrc;
8022
- return /* @__PURE__ */ jsxs("div", { className: "relative flex-shrink-0", children: [
8023
- /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-xl bg-bg-muted dark:bg-bg-muted-dark flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
8024
- "img",
8025
- {
8026
- src: resolvedSrc,
8027
- alt,
8028
- className: "w-full h-full object-cover",
8029
- onError: (e) => {
8030
- e.target.src = fallbackSrc;
8031
- }
8032
- }
8033
- ) }),
8034
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-[-2px] right-[-2px] w-[15px] h-[15px] rounded-full bg-bg-subtle dark:bg-bg-subtle-dark flex items-center justify-center border border-bg-subtle dark:border-bg-subtle-dark", children: /* @__PURE__ */ jsx(MdArrowUpward, { className: "w-3 h-3 text-text-primary dark:text-text-primary-dark" }) })
8035
- ] });
8036
- };
8037
- var AmountDisplay = ({ amount, usdAmount }) => {
8038
- return /* @__PURE__ */ jsxs(Fragment, { children: [
8039
- /* @__PURE__ */ jsx(Label, { className: "text-accent-sm-mobile whitespace-nowrap", children: amount }),
8040
- usdAmount ? /* @__PURE__ */ jsx(Label, { variant: "secondary", className: "whitespace-nowrap", children: usdAmount }) : null
8041
- ] });
8042
- };
8043
- var HistoryListView = ({
8044
- groups,
8045
- showLoadMore,
8046
- onLoadMore,
8047
- loadMoreLabel,
8048
- itemClassName
8049
- }) => {
8050
- if (groups.length === 0) {
8051
- return null;
8052
- }
8053
- return /* @__PURE__ */ jsxs("div", { className: "self-stretch flex flex-col gap-[16px]", children: [
8054
- groups.map((group) => /* @__PURE__ */ jsxs("div", { className: "self-stretch flex flex-col gap-sm", children: [
8055
- /* @__PURE__ */ jsx(DateLabel, { children: group.dateLabel }),
8056
- group.items.map((item) => /* @__PURE__ */ jsxs(
8057
- ListItem,
8058
- {
8059
- onClick: () => item.onClick(),
8060
- containerClassName: twMerge("!rounded-xs !border-0 !min-h-[72px]", itemClassName),
8061
- children: [
8062
- /* @__PURE__ */ jsx(ListItemLeftSide, { children: item.isSwap ? /* @__PURE__ */ jsx(SwapIconWithBadge, { src: item.iconUrl, alt: item.iconAlt }) : /* @__PURE__ */ jsx(
8063
- TokenIconWithBadge2,
8064
- {
8065
- src: item.iconUrl,
8066
- alt: item.iconAlt,
8067
- isDeposit: item.isDeposit
8068
- }
8069
- ) }),
8070
- /* @__PURE__ */ jsxs(ListItemContent, { children: [
8071
- /* @__PURE__ */ jsx(Label, { className: "text-text-lg-mobile", children: item.title }),
8072
- /* @__PURE__ */ jsx(Label, { variant: "secondary", className: "text-text-tertiary dark:text-text-tertiary-dark", children: item.subtitle }),
8073
- item.status === "PENDING" && item.statusLabel ? /* @__PURE__ */ jsx("div", { className: "mt-[6px]", children: /* @__PURE__ */ jsx(
8074
- ProcessingBadge,
8075
- {
8076
- label: item.statusLabel,
8077
- title: item.statusTitle,
8078
- size: "compact"
8079
- }
8080
- ) }) : null
8081
- ] }),
8082
- /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsx(AmountDisplay, { amount: item.amountFormatted, usdAmount: item.amountUsd }) })
8083
- ]
8084
- },
8085
- item.id
8086
- ))
8087
- ] }, group.dateLabel)),
8088
- showLoadMore && /* @__PURE__ */ jsx("div", { className: "flex justify-center pt-sm", children: /* @__PURE__ */ jsx(TertiaryButton, { onClick: onLoadMore, children: loadMoreLabel }) })
8089
- ] });
8090
- };
8091
- var EarnTokenSelectorView = ({
8092
- selectedToken,
8093
- onTokenClick,
8094
- onNetworkClick,
8095
- isLoading,
8096
- selectTokenLabel,
8097
- chainLabel,
8098
- chainImage,
8099
- chainDirectionLabel,
8100
- chainDisabledTitle,
8101
- isNetworkDisabled = false,
8102
- currentNetworkSelected
8103
- }) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[10px]", children: [
8104
- /* @__PURE__ */ jsx("div", { className: "flex gap-[10px] w-full", children: /* @__PURE__ */ jsx(
8105
- "button",
8106
- {
8107
- type: "button",
8108
- onClick: onTokenClick,
8109
- className: "flex-1 h-[56px] border border-[var(--deframe-widget-color-border-primary)] rounded overflow-hidden hover:border-[var(--deframe-widget-color-border-primary)] transition-colors",
8110
- children: /* @__PURE__ */ jsxs("div", { className: "flex h-full items-center justify-between px-[var(--deframe-widget-size-padding-x-sm)] py-[6px]", children: [
8111
- /* @__PURE__ */ jsx("div", { className: "flex gap-[var(--deframe-widget-size-gap-sm)] items-center", children: (selectedToken == null ? void 0 : selectedToken.logoURI) ? /* @__PURE__ */ jsxs(Fragment, { children: [
8112
- /* @__PURE__ */ jsx(
8113
- "img",
8114
- {
8115
- src: selectedToken.logoURI,
8116
- alt: selectedToken.symbol,
8117
- className: "w-6 h-6 rounded-full"
8118
- }
8119
- ),
8120
- /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-primary)]", children: selectedToken.symbol })
8121
- ] }) : isLoading ? /* @__PURE__ */ jsx(LoadingDots, {}) : /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: selectTokenLabel }) }),
8122
- /* @__PURE__ */ jsx("div", { className: "w-[18px] h-[18px] flex items-center justify-center", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
8123
- ] })
8124
- }
8125
- ) }),
8126
- /* @__PURE__ */ jsxs("div", { className: "flex gap-[var(--deframe-widget-size-gap-sm)] items-center", children: [
8127
- /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-tertiary)]", children: chainDirectionLabel }),
8128
- /* @__PURE__ */ jsxs(
8129
- "button",
8130
- {
8131
- type: "button",
8132
- onClick: () => onNetworkClick == null ? void 0 : onNetworkClick(currentNetworkSelected),
8133
- disabled: isNetworkDisabled,
8134
- title: chainDisabledTitle,
8135
- className: `bg-[var(--deframe-widget-color-bg-tertiary)] border border-[var(--deframe-widget-color-border-secondary)] rounded-lg flex gap-[var(--deframe-widget-size-gap-xs)] items-center px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)] transition-colors ${isNetworkDisabled ? "opacity-60 cursor-not-allowed" : "cursor-pointer hover:border-[var(--deframe-widget-color-border-primary)]"}`,
8136
- children: [
8137
- chainImage && /* @__PURE__ */ jsx("img", { src: chainImage, alt: "", className: "w-3 h-3 rounded-full" }),
8138
- /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-[color:var(--deframe-widget-color-text-secondary)]", children: chainLabel }),
8139
- /* @__PURE__ */ jsx("div", { className: `w-[18px] h-[18px] flex items-center justify-center ${isNetworkDisabled ? "opacity-50" : ""}`, children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-[color:var(--deframe-widget-color-text-tertiary)]" }) })
8140
- ]
8141
- }
8142
- )
8143
- ] })
8144
- ] });
8145
- var EarnAmountInputView = ({
8146
- value,
8147
- onChange,
8148
- ariaLabel,
8149
- dollarAmountFormatted,
8150
- availableBalanceFormatted
8151
- }) => {
8152
- return /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col items-end justify-between min-h-[86px] text-right", children: [
8153
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end text-[color:var(--deframe-widget-color-text-secondary)]", children: [
8154
- /* @__PURE__ */ jsx(
8155
- "input",
8295
+ return /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col items-end justify-between min-h-[86px] text-right", children: [
8296
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end text-[color:var(--deframe-widget-color-text-secondary)]", children: [
8297
+ /* @__PURE__ */ jsx(
8298
+ "input",
8156
8299
  {
8157
8300
  placeholder: "0.00",
8158
8301
  type: "text",
@@ -9109,7 +9252,7 @@ var DashboardBalancesBreakdown = ({
9109
9252
  }) => {
9110
9253
  if (layout === "horizontal") {
9111
9254
  return /* @__PURE__ */ jsx("div", { "data-test-id": "dashboard-balances-breakdown-horizontal", className: "hidden lg:block w-full mt-8", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full gap-4 items-stretch", children: [
9112
- /* @__PURE__ */ jsxs("div", { className: "flex-1 basis-0 min-w-0 bg-[var(--deframe-widget-color-bg-secondary)] rounded p-4 flex flex-col", children: [
9255
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 basis-0 min-w-0 bg-[var(--deframe-widget-color-bg-raised)] rounded p-4 flex flex-col", children: [
9113
9256
  /* @__PURE__ */ jsx(Text_default, { children: "Cripto" }),
9114
9257
  /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: isLoadingBalances ? /* @__PURE__ */ jsx("div", { className: "h-5 bg-[var(--deframe-widget-color-bg-muted)] rounded w-32 animate-pulse mt-2" }, "skeleton-crypto") : /* @__PURE__ */ jsx(
9115
9258
  motion.div,
@@ -9124,7 +9267,7 @@ var DashboardBalancesBreakdown = ({
9124
9267
  "crypto-value"
9125
9268
  ) })
9126
9269
  ] }),
9127
- /* @__PURE__ */ jsxs("div", { className: "flex-1 basis-0 min-w-0 bg-[var(--deframe-widget-color-bg-secondary)] rounded p-4 flex flex-col", children: [
9270
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 basis-0 min-w-0 bg-[var(--deframe-widget-color-bg-raised)] rounded p-4 flex flex-col", children: [
9128
9271
  /* @__PURE__ */ jsx(Text_default, { children: "Investimentos" }),
9129
9272
  /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: isLoadingBalances ? /* @__PURE__ */ jsx("div", { className: "h-5 bg-[var(--deframe-widget-color-bg-muted)] rounded w-32 animate-pulse mt-2" }, "skeleton-earn") : /* @__PURE__ */ jsx(
9130
9273
  motion.div,
@@ -9333,7 +9476,7 @@ var DashboardStrategiesListView = ({
9333
9476
  children: /* @__PURE__ */ jsxs(
9334
9477
  ListItem,
9335
9478
  {
9336
- containerClassName: `${index > 0 ? "mt-4" : ""}`,
9479
+ containerClassName: `bg-[var(--deframe-widget-color-bg-raised)] ${index > 0 ? "mt-4" : ""}`,
9337
9480
  onClick: () => onStrategyClick(strategy.id),
9338
9481
  children: [
9339
9482
  /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx(
@@ -9389,15 +9532,15 @@ var DashboardPortfolioView = ({
9389
9532
  "value"
9390
9533
  ) }) }),
9391
9534
  /* @__PURE__ */ jsxs("div", { className: "flex lg:hidden flex-row gap-2 sm:gap-4 mt-6 w-full", children: [
9392
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-deposit-mobile", href: "/dashboard/deposit", className: "flex-1 min-w-0 cursor-pointer", onClick: onDepositClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9535
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-deposit-mobile", className: "flex-1 min-w-0 cursor-pointer", onClick: onDepositClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9393
9536
  /* @__PURE__ */ jsx(MdOutlineArrowUpward, { className: "w-4 h-4 shrink-0" }),
9394
9537
  "Depositar"
9395
9538
  ] }) }),
9396
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-withdraw-mobile", href: "/dashboard/withdraw", className: "flex-1 min-w-0 cursor-pointer", onClick: onWithdrawClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9539
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-withdraw-mobile", className: "flex-1 min-w-0 cursor-pointer", onClick: onWithdrawClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9397
9540
  /* @__PURE__ */ jsx(MdOutlineArrowDownward, { className: "w-4 h-4 shrink-0" }),
9398
9541
  "Sacar"
9399
9542
  ] }) }),
9400
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-swap-mobile", href: "/dashboard/swap", className: "flex-1 min-w-0 cursor-pointer", onClick: onSwapClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9543
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-swap-mobile", className: "flex-1 min-w-0 cursor-pointer", onClick: onSwapClick, children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9401
9544
  /* @__PURE__ */ jsx(MdOutlineSwapHoriz, { className: "w-4 h-4 shrink-0" }),
9402
9545
  "Trocar"
9403
9546
  ] }) })
@@ -9422,17 +9565,112 @@ var DashboardPortfolioView = ({
9422
9565
  ) })
9423
9566
  ] }) });
9424
9567
  };
9425
- var DashboardTokensView = ({
9426
- sortedRegularTokens,
9427
- regularTokens,
9428
- isLoadingBalances,
9429
- activeTab,
9430
- onTabChange,
9431
- strategiesContent
9568
+ var cardClasses = twMerge(
9569
+ "w-full self-start flex flex-col gap-[var(--deframe-widget-size-gap-sm)]",
9570
+ "bg-[var(--deframe-widget-color-bg-secondary)] border border-[color:var(--deframe-widget-color-border-secondary)]",
9571
+ "rounded-[var(--deframe-widget-size-radius-md)]",
9572
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-md)]"
9573
+ );
9574
+ var labelClasses = twMerge(
9575
+ "text-[color:var(--deframe-widget-color-text-tertiary)]",
9576
+ "text-[11px] [font-weight:var(--deframe-widget-font-weight-medium)] uppercase tracking-[0.08em]",
9577
+ "[line-height:1.4]"
9578
+ );
9579
+ var valueLgClasses = twMerge(
9580
+ "text-[38px] [font-weight:var(--deframe-widget-font-weight-bold)] [line-height:1.15]",
9581
+ "text-[color:var(--deframe-widget-color-text-primary)]"
9582
+ );
9583
+ var descriptionClasses = "text-[color:var(--deframe-widget-color-text-secondary)] text-[13px] [line-height:1.45]";
9584
+ function StatCardSkeletonBlock({ showDescription, className }) {
9585
+ return /* @__PURE__ */ jsxs(
9586
+ "article",
9587
+ {
9588
+ "data-test-id": "stat-card-skeleton",
9589
+ "aria-busy": "true",
9590
+ className: twMerge(cardClasses, "self-stretch", className),
9591
+ children: [
9592
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 140, height: 11 }),
9593
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "60%", height: 44 }),
9594
+ showDescription && /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "80%", height: 13 })
9595
+ ]
9596
+ }
9597
+ );
9598
+ }
9599
+ var DashboardPortfolioViewSimple = ({
9600
+ formattedTotalValue,
9601
+ isLoading,
9602
+ assetCount
9432
9603
  }) => {
9433
- return /* @__PURE__ */ jsxs(Fragment, { children: [
9434
- /* @__PURE__ */ jsx(DashboardTokenListView, { tokens: sortedRegularTokens, isLoading: isLoadingBalances, className: "hidden lg:block" }),
9435
- /* @__PURE__ */ jsx(DashboardCard, { className: "lg:hidden p-6 bg-[var(--deframe-widget-color-bg-subtle)]", children: /* @__PURE__ */ jsxs(
9604
+ if (isLoading) {
9605
+ return /* @__PURE__ */ jsxs(
9606
+ "div",
9607
+ {
9608
+ "data-test-id": "dashboard-portfolio-simple",
9609
+ className: "grid grid-cols-[1fr_auto] gap-[var(--deframe-widget-size-gap-sm)]",
9610
+ children: [
9611
+ /* @__PURE__ */ jsx(StatCardSkeletonBlock, { showDescription: true }),
9612
+ /* @__PURE__ */ jsx(StatCardSkeletonBlock, { className: "min-w-[160px]" })
9613
+ ]
9614
+ }
9615
+ );
9616
+ }
9617
+ return /* @__PURE__ */ jsxs(
9618
+ "div",
9619
+ {
9620
+ "data-test-id": "dashboard-portfolio-simple",
9621
+ className: twMerge(
9622
+ "grid gap-[var(--deframe-widget-size-gap-sm)]",
9623
+ assetCount != null ? "grid-cols-[1fr_auto]" : "grid-cols-1"
9624
+ ),
9625
+ children: [
9626
+ /* @__PURE__ */ jsxs("article", { className: twMerge(cardClasses, "self-stretch"), children: [
9627
+ /* @__PURE__ */ jsx("p", { "data-test-id": "stat-card-label", className: labelClasses, children: "Total da Carteira (USD)" }),
9628
+ /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsx(
9629
+ motion.p,
9630
+ {
9631
+ "data-test-id": "stat-card-value",
9632
+ initial: { opacity: 0, y: 10 },
9633
+ animate: { opacity: 1, y: 0 },
9634
+ exit: { opacity: 0, y: -10 },
9635
+ transition: { duration: 0.5, ease: "easeOut" },
9636
+ className: valueLgClasses,
9637
+ children: formattedTotalValue
9638
+ },
9639
+ "value"
9640
+ ) }),
9641
+ /* @__PURE__ */ jsx("p", { "data-test-id": "stat-card-description", className: descriptionClasses, children: "Soma do saldo por token (em USD)." })
9642
+ ] }),
9643
+ assetCount != null && /* @__PURE__ */ jsxs("article", { className: twMerge(cardClasses, "self-stretch min-w-[160px]"), children: [
9644
+ /* @__PURE__ */ jsx("p", { "data-test-id": "stat-card-label", className: labelClasses, children: "Ativos" }),
9645
+ /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsx(
9646
+ motion.p,
9647
+ {
9648
+ "data-test-id": "stat-card-value",
9649
+ initial: { opacity: 0, y: 10 },
9650
+ animate: { opacity: 1, y: 0 },
9651
+ exit: { opacity: 0, y: -10 },
9652
+ transition: { duration: 0.5, ease: "easeOut" },
9653
+ className: valueLgClasses,
9654
+ children: assetCount
9655
+ },
9656
+ "count-value"
9657
+ ) })
9658
+ ] })
9659
+ ]
9660
+ }
9661
+ );
9662
+ };
9663
+ var DashboardTokensView = ({
9664
+ sortedRegularTokens,
9665
+ regularTokens,
9666
+ isLoadingBalances,
9667
+ activeTab,
9668
+ onTabChange,
9669
+ strategiesContent
9670
+ }) => {
9671
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
9672
+ /* @__PURE__ */ jsx(DashboardTokenListView, { tokens: sortedRegularTokens, isLoading: isLoadingBalances, className: "hidden lg:block" }),
9673
+ /* @__PURE__ */ jsx(DashboardCard, { className: "lg:hidden p-6 bg-[var(--deframe-widget-color-bg-subtle)]", children: /* @__PURE__ */ jsxs(
9436
9674
  Tabs,
9437
9675
  {
9438
9676
  value: activeTab,
@@ -9452,6 +9690,366 @@ var DashboardTokensView = ({
9452
9690
  ) })
9453
9691
  ] });
9454
9692
  };
9693
+
9694
+ // src/utils/isDustValue.ts
9695
+ var DUST_THRESHOLD_USD = 0.01;
9696
+ function isDustValue(amountInUSD) {
9697
+ return isNaN(amountInUSD) || amountInUSD < DUST_THRESHOLD_USD;
9698
+ }
9699
+ function HistoryButton2({ onClick }) {
9700
+ return /* @__PURE__ */ jsx(
9701
+ "button",
9702
+ {
9703
+ type: "button",
9704
+ "aria-label": "Hist\xF3rico de transa\xE7\xF5es",
9705
+ "data-test-id": "dashboard-home-history-button",
9706
+ onClick,
9707
+ className: twMerge(
9708
+ "inline-flex items-center justify-center",
9709
+ "w-9 h-9",
9710
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
9711
+ "border-none bg-transparent",
9712
+ "cursor-pointer outline-none flex-shrink-0",
9713
+ "text-[color:var(--deframe-widget-color-text-secondary)]",
9714
+ "hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_92%,transparent)]",
9715
+ "transition-[background] duration-150"
9716
+ ),
9717
+ children: /* @__PURE__ */ jsxs(
9718
+ "svg",
9719
+ {
9720
+ viewBox: "0 0 24 24",
9721
+ width: "20",
9722
+ height: "20",
9723
+ fill: "none",
9724
+ stroke: "currentColor",
9725
+ strokeWidth: "2",
9726
+ strokeLinecap: "round",
9727
+ strokeLinejoin: "round",
9728
+ "aria-hidden": "true",
9729
+ children: [
9730
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
9731
+ /* @__PURE__ */ jsx("polyline", { points: "12 6 12 12 16 14" })
9732
+ ]
9733
+ }
9734
+ )
9735
+ }
9736
+ );
9737
+ }
9738
+ var GRID_COLS = "grid grid-cols-[40px_1fr_auto] sm:grid-cols-[1fr_160px_130px] gap-x-[var(--deframe-widget-size-gap-sm)] sm:gap-x-[var(--deframe-widget-size-gap-md)]";
9739
+ function IconCircle3({ item, size = 36, className }) {
9740
+ const [imgError, setImgError] = React6__default.useState(false);
9741
+ if (item.iconUrl && !imgError) {
9742
+ return /* @__PURE__ */ jsx(
9743
+ "img",
9744
+ {
9745
+ "data-test-id": "icon-circle-img",
9746
+ src: item.iconUrl,
9747
+ alt: item.name,
9748
+ width: size,
9749
+ height: size,
9750
+ className: twMerge("rounded-[var(--deframe-widget-size-radius-full)] flex-shrink-0 object-cover", className),
9751
+ onError: () => setImgError(true)
9752
+ }
9753
+ );
9754
+ }
9755
+ return /* @__PURE__ */ jsx(
9756
+ "div",
9757
+ {
9758
+ "data-test-id": "icon-circle-fallback",
9759
+ className: twMerge(
9760
+ "rounded-[var(--deframe-widget-size-radius-full)] flex-shrink-0 flex items-center justify-center",
9761
+ "[font-weight:var(--deframe-widget-font-weight-bold)] text-[color:var(--deframe-widget-color-text-primary-dark)]",
9762
+ className
9763
+ ),
9764
+ style: {
9765
+ width: size,
9766
+ height: size,
9767
+ background: item.color,
9768
+ fontSize: size * 0.33,
9769
+ letterSpacing: "-0.01em"
9770
+ },
9771
+ children: item.name.slice(0, 2).toUpperCase()
9772
+ }
9773
+ );
9774
+ }
9775
+ function TokenIcon3({ token, size = 36, badge, badgeSize = 14, className }) {
9776
+ return /* @__PURE__ */ jsxs(
9777
+ "div",
9778
+ {
9779
+ "data-test-id": "token-icon",
9780
+ className: twMerge("relative flex-shrink-0", className),
9781
+ style: { width: size, height: size },
9782
+ children: [
9783
+ /* @__PURE__ */ jsx(IconCircle3, { item: token, size }),
9784
+ badge && /* @__PURE__ */ jsx(
9785
+ "div",
9786
+ {
9787
+ "data-test-id": "token-icon-badge",
9788
+ className: "absolute -bottom-0.5 -right-0.5 rounded-[var(--deframe-widget-size-radius-full)] shadow-[0_0_0_2px_var(--deframe-widget-color-bg-secondary)]",
9789
+ children: /* @__PURE__ */ jsx(IconCircle3, { item: badge, size: badgeSize })
9790
+ }
9791
+ )
9792
+ ]
9793
+ }
9794
+ );
9795
+ }
9796
+ var directionClasses = {
9797
+ up: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-success)_12%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-success)_32%,transparent)] text-[color:var(--deframe-widget-color-state-success)]",
9798
+ down: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_16%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_32%,transparent)] text-[color:var(--deframe-widget-color-state-error)]",
9799
+ neutral: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_84%,transparent)] border-[color:var(--deframe-widget-color-border-secondary)] text-[color:var(--deframe-widget-color-text-tertiary)]"
9800
+ };
9801
+ var arrowIcons = {
9802
+ up: /* @__PURE__ */ jsx("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M5 1.5L9 7H1L5 1.5Z", fill: "currentColor" }) }),
9803
+ down: /* @__PURE__ */ jsx("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M5 8.5L1 3H9L5 8.5Z", fill: "currentColor" }) }),
9804
+ neutral: /* @__PURE__ */ jsx("svg", { width: "9", height: "9", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M2 6H10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
9805
+ };
9806
+ function AssetTrendBadge({ direction, value, className }) {
9807
+ return /* @__PURE__ */ jsxs(
9808
+ "span",
9809
+ {
9810
+ "data-test-id": "asset-trend-badge",
9811
+ className: twMerge(
9812
+ "inline-flex items-center gap-[var(--deframe-widget-size-gap-xs)]",
9813
+ "px-[var(--deframe-widget-size-padding-x-sm)] py-[var(--deframe-widget-size-padding-y-xs)]",
9814
+ "rounded-[var(--deframe-widget-size-radius-full)] border",
9815
+ "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] leading-[var(--deframe-widget-font-leading-xs)]",
9816
+ "font-[var(--deframe-widget-font-family)]",
9817
+ "whitespace-nowrap",
9818
+ directionClasses[direction],
9819
+ className
9820
+ ),
9821
+ children: [
9822
+ arrowIcons[direction],
9823
+ value
9824
+ ]
9825
+ }
9826
+ );
9827
+ }
9828
+ var SKELETON_NAME_WIDTHS = [100, 88, 112, 96, 104, 80];
9829
+ var SKELETON_SYMBOL_WIDTHS = [56, 64, 52, 68, 60, 72];
9830
+ var SKELETON_BALANCE_WIDTHS = [72, 64, 80, 68, 76, 60];
9831
+ function AssetListSkeletonRow({ index }) {
9832
+ const w = index % SKELETON_NAME_WIDTHS.length;
9833
+ return /* @__PURE__ */ jsxs(
9834
+ "div",
9835
+ {
9836
+ "data-test-id": "asset-list-skeleton-row",
9837
+ className: twMerge(
9838
+ GRID_COLS,
9839
+ "items-center",
9840
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[11px]",
9841
+ "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
9842
+ ),
9843
+ children: [
9844
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)]", children: [
9845
+ /* @__PURE__ */ jsx(Skeleton, { variant: "circle", width: 36, height: 36 }),
9846
+ /* @__PURE__ */ jsxs("div", { className: "hidden sm:flex flex-col gap-[var(--deframe-widget-size-gap-xs)]", children: [
9847
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: SKELETON_NAME_WIDTHS[w], height: 14 }),
9848
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: SKELETON_SYMBOL_WIDTHS[w], height: 11 })
9849
+ ] })
9850
+ ] }),
9851
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 88, height: 24, className: "rounded-[var(--deframe-widget-size-radius-full)]" }) }),
9852
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end gap-[var(--deframe-widget-size-gap-xs)]", children: [
9853
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: SKELETON_BALANCE_WIDTHS[w], height: 14 }),
9854
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: SKELETON_BALANCE_WIDTHS[w] - 12, height: 11 })
9855
+ ] })
9856
+ ]
9857
+ }
9858
+ );
9859
+ }
9860
+ function AssetListSkeletonContent() {
9861
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
9862
+ /* @__PURE__ */ jsxs(
9863
+ "div",
9864
+ {
9865
+ className: twMerge(
9866
+ "flex items-center justify-between",
9867
+ "px-[var(--deframe-widget-size-padding-x-md)] pt-[var(--deframe-widget-size-padding-y-md)] pb-[var(--deframe-widget-size-padding-y-sm)]"
9868
+ ),
9869
+ children: [
9870
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 108, height: 18 }),
9871
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 36, height: 36, className: "rounded-[var(--deframe-widget-size-radius-sm)]" })
9872
+ ]
9873
+ }
9874
+ ),
9875
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] px-[var(--deframe-widget-size-padding-x-md)] pb-[var(--deframe-widget-size-padding-y-sm)]", children: [
9876
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 60, height: 26, className: "rounded-[var(--deframe-widget-size-radius-full)]" }),
9877
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 104, height: 26, className: "rounded-[var(--deframe-widget-size-radius-full)]" }),
9878
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 64, height: 26, className: "rounded-[var(--deframe-widget-size-radius-full)]" })
9879
+ ] }),
9880
+ /* @__PURE__ */ jsxs(
9881
+ "div",
9882
+ {
9883
+ className: twMerge(
9884
+ GRID_COLS,
9885
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-sm)]",
9886
+ "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
9887
+ ),
9888
+ children: [
9889
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 40, height: 10, className: "hidden sm:block" }),
9890
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 72, height: 10, className: "hidden sm:block mx-auto" }),
9891
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 40, height: 10, className: "hidden sm:block ml-auto" })
9892
+ ]
9893
+ }
9894
+ ),
9895
+ Array.from({ length: 6 }, (_, i) => /* @__PURE__ */ jsx(AssetListSkeletonRow, { index: i }, i))
9896
+ ] });
9897
+ }
9898
+ var DashboardTokensViewSimple = ({
9899
+ sortedRegularTokens,
9900
+ isLoadingBalances,
9901
+ filters,
9902
+ selectedFilter,
9903
+ onFilterSelect,
9904
+ onHistoryClick
9905
+ }) => {
9906
+ if (isLoadingBalances) {
9907
+ return /* @__PURE__ */ jsx(
9908
+ "div",
9909
+ {
9910
+ "data-test-id": "asset-list-skeleton",
9911
+ "aria-busy": "true",
9912
+ "aria-label": "Carregando ativos\u2026",
9913
+ className: twMerge(
9914
+ "w-full self-start flex flex-col",
9915
+ "bg-[var(--deframe-widget-color-bg-secondary)] border border-[color:var(--deframe-widget-color-border-secondary)]",
9916
+ "rounded-[var(--deframe-widget-size-radius-md)]",
9917
+ "overflow-hidden"
9918
+ ),
9919
+ children: /* @__PURE__ */ jsx(AssetListSkeletonContent, {})
9920
+ }
9921
+ );
9922
+ }
9923
+ return /* @__PURE__ */ jsxs(
9924
+ "div",
9925
+ {
9926
+ "data-test-id": "asset-list",
9927
+ className: twMerge(
9928
+ "w-full self-start flex flex-col",
9929
+ "bg-[var(--deframe-widget-color-bg-secondary)] border border-[color:var(--deframe-widget-color-border-secondary)]",
9930
+ "rounded-[var(--deframe-widget-size-radius-md)]",
9931
+ "overflow-hidden"
9932
+ ),
9933
+ children: [
9934
+ /* @__PURE__ */ jsxs(
9935
+ "div",
9936
+ {
9937
+ "data-test-id": "asset-list-header",
9938
+ className: twMerge(
9939
+ "flex items-center justify-between",
9940
+ "px-[var(--deframe-widget-size-padding-x-md)] pt-[var(--deframe-widget-size-padding-y-md)] pb-[var(--deframe-widget-size-padding-y-sm)]"
9941
+ ),
9942
+ children: [
9943
+ /* @__PURE__ */ jsx(
9944
+ "h3",
9945
+ {
9946
+ className: "text-[color:var(--deframe-widget-color-text-primary)] text-[length:var(--deframe-widget-font-size-md)] [font-weight:var(--deframe-widget-font-weight-semibold)] font-[var(--deframe-widget-font-family)] leading-[var(--deframe-widget-font-leading-md)]",
9947
+ children: "Seus ativos"
9948
+ }
9949
+ ),
9950
+ onHistoryClick != null && /* @__PURE__ */ jsx(HistoryButton2, { onClick: onHistoryClick })
9951
+ ]
9952
+ }
9953
+ ),
9954
+ filters && filters.length > 0 && /* @__PURE__ */ jsx(
9955
+ "div",
9956
+ {
9957
+ "data-test-id": "asset-list-filter",
9958
+ className: twMerge(
9959
+ "flex items-center gap-[var(--deframe-widget-size-gap-sm)]",
9960
+ "px-[var(--deframe-widget-size-padding-x-md)] pb-[var(--deframe-widget-size-padding-y-sm)]",
9961
+ "overflow-x-auto [scrollbar-width:none]"
9962
+ ),
9963
+ children: filters.map((filter) => {
9964
+ const isSelected = filter.id === selectedFilter;
9965
+ return /* @__PURE__ */ jsx(
9966
+ "button",
9967
+ {
9968
+ type: "button",
9969
+ "data-test-id": "asset-list-filter-pill",
9970
+ onClick: () => onFilterSelect == null ? void 0 : onFilterSelect(filter.id),
9971
+ className: twMerge(
9972
+ "inline-flex items-center",
9973
+ "px-[var(--deframe-widget-size-padding-x-sm)] py-[5px]",
9974
+ "rounded-[var(--deframe-widget-size-radius-full)] border",
9975
+ "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] leading-[var(--deframe-widget-font-leading-xs)]",
9976
+ "font-[var(--deframe-widget-font-family)]",
9977
+ "cursor-pointer whitespace-nowrap flex-shrink-0",
9978
+ "outline-none transition-all duration-150",
9979
+ isSelected ? "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_12%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_32%,transparent)] text-[color:var(--deframe-widget-color-brand-primary)]" : "bg-transparent border-[color:var(--deframe-widget-color-border-secondary)] text-[color:var(--deframe-widget-color-text-secondary)] hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_60%,transparent)]"
9980
+ ),
9981
+ children: filter.label
9982
+ },
9983
+ filter.id
9984
+ );
9985
+ })
9986
+ }
9987
+ ),
9988
+ /* @__PURE__ */ jsxs(
9989
+ "div",
9990
+ {
9991
+ "data-test-id": "asset-list-columns",
9992
+ className: twMerge(
9993
+ GRID_COLS,
9994
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-sm)]",
9995
+ "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
9996
+ ),
9997
+ children: [
9998
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] uppercase tracking-[0.08em] text-[color:var(--deframe-widget-color-text-tertiary)] leading-[var(--deframe-widget-font-leading-xs)]", children: "ATIVO" }),
9999
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] uppercase tracking-[0.08em] text-[color:var(--deframe-widget-color-text-tertiary)] leading-[var(--deframe-widget-font-leading-xs)] text-center", children: "TEND\xCANCIA" }),
10000
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] uppercase tracking-[0.08em] text-[color:var(--deframe-widget-color-text-tertiary)] leading-[var(--deframe-widget-font-leading-xs)] text-right", children: "SALDO" })
10001
+ ]
10002
+ }
10003
+ ),
10004
+ sortedRegularTokens.filter((t) => !isDustValue(t.amountInUSD)).map((item) => {
10005
+ var _a, _b;
10006
+ const m = item.metadata;
10007
+ const color = (_a = m == null ? void 0 : m.color) != null ? _a : "#888";
10008
+ const trendDirection = m == null ? void 0 : m.trendDirection;
10009
+ const trendValue = m == null ? void 0 : m.trendValue;
10010
+ const networkColor = (_b = m == null ? void 0 : m.networkColor) != null ? _b : "var(--deframe-widget-color-bg-tertiary)";
10011
+ const networkBadge = item.networkName ? { name: item.networkName, color: networkColor, iconUrl: item.networkLogoUrl } : void 0;
10012
+ const handleItemClick = item.onClick;
10013
+ return /* @__PURE__ */ jsxs(
10014
+ "div",
10015
+ {
10016
+ "data-test-id": "asset-list-item",
10017
+ onClick: handleItemClick,
10018
+ className: twMerge(
10019
+ GRID_COLS,
10020
+ "items-center",
10021
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[11px]",
10022
+ "border-t border-[color:var(--deframe-widget-color-border-secondary)]",
10023
+ "transition-colors duration-150",
10024
+ "hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_60%,transparent)]",
10025
+ handleItemClick && "cursor-pointer"
10026
+ ),
10027
+ children: [
10028
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] min-w-0", children: [
10029
+ /* @__PURE__ */ jsx(TokenIcon3, { token: { name: item.name, color, iconUrl: item.logoUrl }, size: 36, badge: networkBadge, badgeSize: 14 }),
10030
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0", children: [
10031
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-sm)] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)] leading-[var(--deframe-widget-font-leading-sm)] font-[var(--deframe-widget-font-family)] truncate", children: item.name }),
10032
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] text-[color:var(--deframe-widget-color-text-secondary)] leading-[var(--deframe-widget-font-leading-xs)]", children: item.symbol })
10033
+ ] })
10034
+ ] }),
10035
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: trendDirection && trendValue ? /* @__PURE__ */ jsx(AssetTrendBadge, { direction: trendDirection, value: trendValue }) : null }),
10036
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end text-right", children: [
10037
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-sm)] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)] leading-[var(--deframe-widget-font-leading-sm)] font-[var(--deframe-widget-font-family)]", children: item.formattedFiatValue }),
10038
+ /* @__PURE__ */ jsxs("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] text-[color:var(--deframe-widget-color-text-secondary)] leading-[var(--deframe-widget-font-leading-xs)]", children: [
10039
+ item.formattedAmount,
10040
+ " ",
10041
+ item.symbol
10042
+ ] })
10043
+ ] })
10044
+ ]
10045
+ },
10046
+ item.id
10047
+ );
10048
+ })
10049
+ ]
10050
+ }
10051
+ );
10052
+ };
9455
10053
  var DashboardRecentTransactionsView = ({
9456
10054
  isLoading,
9457
10055
  isEmpty,
@@ -9461,7 +10059,7 @@ var DashboardRecentTransactionsView = ({
9461
10059
  return /* @__PURE__ */ jsx(DashboardCard, { className: "p-6 bg-[var(--deframe-widget-color-bg-subtle)]", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
9462
10060
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-start", children: [
9463
10061
  /* @__PURE__ */ jsx(TextBody, { className: "mb-6", children: "Transa\xE7\xF5es recentes" }),
9464
- /* @__PURE__ */ jsx(Link2, { href: "/dashboard/history", onClick: onViewAllClick, children: /* @__PURE__ */ jsx(TextBody, { className: "text-[var(--deframe-widget-color-brand-primary)] cursor-pointer hover:underline", children: "Ver todas" }) })
10062
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: onViewAllClick, children: /* @__PURE__ */ jsx(TextBody, { className: "text-[var(--deframe-widget-color-brand-primary)] cursor-pointer hover:underline", children: "Ver todas" }) })
9465
10063
  ] }),
9466
10064
  /* @__PURE__ */ jsx("div", { className: "space-y-2 mt-[-16px]", children: isLoading ? /* @__PURE__ */ jsx("div", { className: "space-y-4", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 p-2", children: [
9467
10065
  /* @__PURE__ */ jsx(Skeleton, { variant: "circle", width: "40px", height: "40px", shimmer: true }),
@@ -9476,12 +10074,12 @@ var DashboardRecentTransactionsView = ({
9476
10074
  return /* @__PURE__ */ jsxs(
9477
10075
  ListItem,
9478
10076
  {
9479
- containerClassName: "p-2 mt-4 bg-[var(--deframe-widget-color-bg-secondary)] cursor-pointer",
10077
+ containerClassName: "p-2 mt-4 bg-[var(--deframe-widget-color-bg-raised)] cursor-pointer",
9480
10078
  onClick: () => item.onClick(),
9481
10079
  children: [
9482
10080
  /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
9483
10081
  /* @__PURE__ */ jsx("div", { className: `w-10 h-10 rounded-full ${item.iconBgColor} flex items-center justify-center`, children: /* @__PURE__ */ jsx(MainIcon, { className: `${item.iconColor}`, size: 20 }) }),
9484
- /* @__PURE__ */ jsx("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full bg-[var(--deframe-widget-color-bg-secondary)] flex items-center justify-center border border-[var(--deframe-widget-color-border-secondary)]", children: /* @__PURE__ */ jsx(TypeIcon, { className: `${item.iconColor}`, size: 12 }) })
10082
+ /* @__PURE__ */ jsx("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full flex items-center justify-center border border-[var(--deframe-widget-color-border-secondary)]", children: /* @__PURE__ */ jsx(TypeIcon, { className: `${item.iconColor}`, size: 12 }) })
9485
10083
  ] }) }),
9486
10084
  /* @__PURE__ */ jsxs(ListItemContent, { className: "ml-4", children: [
9487
10085
  /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: item.formattedDate }),
@@ -9498,6 +10096,300 @@ var DashboardRecentTransactionsView = ({
9498
10096
  }) })
9499
10097
  ] }) });
9500
10098
  };
10099
+ var variantConfig = {
10100
+ pending: {
10101
+ wrapper: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-warning)_16%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-warning)_32%,transparent)]",
10102
+ dotClass: "bg-[var(--deframe-widget-color-state-warning)]",
10103
+ labelClass: "text-[color:var(--deframe-widget-color-state-warning)]",
10104
+ label: "Pendente"
10105
+ },
10106
+ confirmed: {
10107
+ wrapper: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_12%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_32%,transparent)]",
10108
+ dotClass: "bg-[var(--deframe-widget-color-brand-primary)]",
10109
+ labelClass: "text-[color:var(--deframe-widget-color-brand-primary)]",
10110
+ label: "Confirmado"
10111
+ },
10112
+ approved: {
10113
+ wrapper: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_12%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-primary)_32%,transparent)]",
10114
+ dotClass: "bg-[var(--deframe-widget-color-brand-primary)]",
10115
+ labelClass: "text-[color:var(--deframe-widget-color-brand-primary)]",
10116
+ label: "Aprovada"
10117
+ },
10118
+ failed: {
10119
+ wrapper: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_16%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-state-error)_32%,transparent)]",
10120
+ dotClass: "bg-[var(--deframe-widget-color-state-error)]",
10121
+ labelClass: "text-[color:var(--deframe-widget-color-state-error)]",
10122
+ label: "Falhou"
10123
+ },
10124
+ processing: {
10125
+ wrapper: "bg-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-secondary)_12%,transparent)] border-[color:color-mix(in_srgb,var(--deframe-widget-color-brand-secondary)_32%,transparent)]",
10126
+ dotClass: "bg-[var(--deframe-widget-color-brand-secondary)]",
10127
+ labelClass: "text-[color:var(--deframe-widget-color-brand-secondary)]",
10128
+ label: "Processando"
10129
+ }
10130
+ };
10131
+ function StatusBadge2({ status, label, className }) {
10132
+ const config = variantConfig[status];
10133
+ return /* @__PURE__ */ jsxs(
10134
+ "span",
10135
+ {
10136
+ "data-test-id": "status-badge",
10137
+ className: twMerge(
10138
+ "inline-flex items-center gap-[5px]",
10139
+ "py-[3px] pr-[10px] pl-[7px]",
10140
+ "rounded-[var(--deframe-widget-size-radius-full)]",
10141
+ "border",
10142
+ config.wrapper,
10143
+ className
10144
+ ),
10145
+ children: [
10146
+ /* @__PURE__ */ jsx(
10147
+ "span",
10148
+ {
10149
+ "data-test-id": "status-badge-dot",
10150
+ className: twMerge(
10151
+ "w-[7px] h-[7px] rounded-[var(--deframe-widget-size-radius-full)] flex-shrink-0 inline-block",
10152
+ config.dotClass
10153
+ )
10154
+ }
10155
+ ),
10156
+ /* @__PURE__ */ jsx(
10157
+ "span",
10158
+ {
10159
+ "data-test-id": "status-badge-label",
10160
+ className: twMerge(
10161
+ "text-[11px] [font-weight:var(--deframe-widget-font-weight-medium)] font-[var(--deframe-widget-font-family)]",
10162
+ config.labelClass
10163
+ ),
10164
+ children: label != null ? label : config.label
10165
+ }
10166
+ )
10167
+ ]
10168
+ }
10169
+ );
10170
+ }
10171
+ var DashboardRecentTransactionsViewSimple = ({
10172
+ isLoading,
10173
+ isEmpty,
10174
+ transactions,
10175
+ onClose
10176
+ }) => {
10177
+ const [query, setQuery] = useState("");
10178
+ const filtered = useMemo(() => {
10179
+ const q = query.trim().toLowerCase();
10180
+ if (!q) return transactions;
10181
+ return transactions.filter(
10182
+ (tx) => tx.label.toLowerCase().includes(q) || tx.formattedDate.toLowerCase().includes(q) || tx.rightPrimary.toLowerCase().includes(q) || tx.rightSecondary.toLowerCase().includes(q)
10183
+ );
10184
+ }, [transactions, query]);
10185
+ return /* @__PURE__ */ jsxs(
10186
+ "div",
10187
+ {
10188
+ "data-test-id": "dashboard-recent-transactions-simple",
10189
+ className: twMerge(
10190
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
10191
+ "rounded-[var(--deframe-widget-size-radius-md)]",
10192
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
10193
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-md)]",
10194
+ "flex flex-col gap-[var(--deframe-widget-size-gap-md)] w-full",
10195
+ "font-[var(--deframe-widget-font-family)]"
10196
+ ),
10197
+ children: [
10198
+ /* @__PURE__ */ jsxs(
10199
+ "div",
10200
+ {
10201
+ "data-test-id": "dashboard-recent-transactions-simple-header",
10202
+ className: "flex items-start justify-between gap-[var(--deframe-widget-size-gap-sm)]",
10203
+ children: [
10204
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[4px]", children: [
10205
+ /* @__PURE__ */ jsx(
10206
+ "h2",
10207
+ {
10208
+ "data-test-id": "dashboard-recent-transactions-simple-title",
10209
+ className: twMerge(
10210
+ "m-0 text-[20px] leading-[1.25]",
10211
+ "[font-weight:var(--deframe-widget-font-weight-bold)]",
10212
+ "text-[color:var(--deframe-widget-color-text-primary)]"
10213
+ ),
10214
+ children: "Hist\xF3rico"
10215
+ }
10216
+ ),
10217
+ /* @__PURE__ */ jsx(
10218
+ "p",
10219
+ {
10220
+ "data-test-id": "dashboard-recent-transactions-simple-subtitle",
10221
+ className: "m-0 text-[13px] text-[color:var(--deframe-widget-color-text-secondary)] leading-[1.4]",
10222
+ children: "\xDAltimas transa\xE7\xF5es executadas"
10223
+ }
10224
+ )
10225
+ ] }),
10226
+ onClose && /* @__PURE__ */ jsx(
10227
+ CloseButton_default,
10228
+ {
10229
+ onClick: onClose,
10230
+ ariaLabel: "Fechar",
10231
+ className: "flex-shrink-0 mt-[-4px]"
10232
+ }
10233
+ )
10234
+ ]
10235
+ }
10236
+ ),
10237
+ /* @__PURE__ */ jsx("div", { className: "h-px bg-[var(--deframe-widget-color-border-secondary)]" }),
10238
+ /* @__PURE__ */ jsxs(
10239
+ "div",
10240
+ {
10241
+ "data-test-id": "dashboard-recent-transactions-simple-search",
10242
+ className: "relative",
10243
+ children: [
10244
+ /* @__PURE__ */ jsx(
10245
+ "input",
10246
+ {
10247
+ "data-test-id": "dashboard-recent-transactions-simple-search-input",
10248
+ type: "text",
10249
+ value: query,
10250
+ onChange: (e) => setQuery(e.target.value),
10251
+ placeholder: "Buscar por status, moeda, rede ou tx...",
10252
+ "aria-label": "Buscar transa\xE7\xE3o",
10253
+ className: [
10254
+ "w-full box-border h-10",
10255
+ "bg-[var(--deframe-widget-color-bg-tertiary)]",
10256
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
10257
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
10258
+ "py-0 pr-[var(--deframe-widget-size-padding-x-xl)] pl-[14px]",
10259
+ "text-[14px] text-[color:var(--deframe-widget-color-text-primary)]",
10260
+ "outline-none focus:outline-none",
10261
+ "focus:border-[color:var(--deframe-widget-color-brand-primary)]",
10262
+ "transition-colors duration-150",
10263
+ "font-[var(--deframe-widget-font-family)]",
10264
+ "placeholder:text-[color:var(--deframe-widget-color-text-tertiary)]"
10265
+ ].join(" ")
10266
+ }
10267
+ ),
10268
+ /* @__PURE__ */ jsx("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-[color:var(--deframe-widget-color-text-tertiary)]", children: /* @__PURE__ */ jsxs(
10269
+ "svg",
10270
+ {
10271
+ width: "15",
10272
+ height: "15",
10273
+ viewBox: "0 0 24 24",
10274
+ fill: "none",
10275
+ stroke: "currentColor",
10276
+ strokeWidth: "2",
10277
+ strokeLinecap: "round",
10278
+ "aria-hidden": "true",
10279
+ children: [
10280
+ /* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "8" }),
10281
+ /* @__PURE__ */ jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })
10282
+ ]
10283
+ }
10284
+ ) })
10285
+ ]
10286
+ }
10287
+ ),
10288
+ /* @__PURE__ */ jsx(
10289
+ "div",
10290
+ {
10291
+ "data-test-id": "dashboard-recent-transactions-simple-list",
10292
+ className: "flex flex-col gap-[var(--deframe-widget-size-gap-sm)]",
10293
+ children: isLoading ? [1, 2, 3].map((i) => /* @__PURE__ */ jsxs(
10294
+ "div",
10295
+ {
10296
+ className: twMerge(
10297
+ "flex flex-col gap-[6px]",
10298
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[14px]",
10299
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
10300
+ "border border-[color:var(--deframe-widget-color-border-secondary)]"
10301
+ ),
10302
+ children: [
10303
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
10304
+ /* @__PURE__ */ jsx(Skeleton, { width: "100px", height: "12px", shimmer: true }),
10305
+ /* @__PURE__ */ jsx(Skeleton, { width: "80px", height: "20px", shimmer: true, className: "rounded-full" })
10306
+ ] }),
10307
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
10308
+ /* @__PURE__ */ jsx(Skeleton, { width: "160px", height: "18px", shimmer: true }),
10309
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end gap-[4px]", children: [
10310
+ /* @__PURE__ */ jsx(Skeleton, { width: "96px", height: "14px", shimmer: true }),
10311
+ /* @__PURE__ */ jsx(Skeleton, { width: "72px", height: "12px", shimmer: true })
10312
+ ] })
10313
+ ] })
10314
+ ]
10315
+ },
10316
+ i
10317
+ )) : isEmpty ? /* @__PURE__ */ jsx(DashboardTransactionsPlaceholder, {}) : filtered.length === 0 ? /* @__PURE__ */ jsx(
10318
+ "div",
10319
+ {
10320
+ "data-test-id": "dashboard-recent-transactions-simple-no-results",
10321
+ className: "py-[var(--deframe-widget-size-padding-y-xl)] text-center text-[13px] text-[color:var(--deframe-widget-color-text-tertiary)]",
10322
+ children: "Nenhuma transa\xE7\xE3o encontrada"
10323
+ }
10324
+ ) : filtered.map((item) => /* @__PURE__ */ jsxs(
10325
+ "div",
10326
+ {
10327
+ "data-test-id": "dashboard-recent-transactions-simple-item",
10328
+ className: twMerge(
10329
+ "w-full flex flex-col gap-[6px]",
10330
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
10331
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
10332
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
10333
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[14px]"
10334
+ ),
10335
+ children: [
10336
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-[var(--deframe-widget-size-gap-sm)]", children: [
10337
+ /* @__PURE__ */ jsx(
10338
+ "span",
10339
+ {
10340
+ "data-test-id": "dashboard-recent-transactions-simple-item-date",
10341
+ className: "text-[12px] text-[color:var(--deframe-widget-color-text-tertiary)] leading-none",
10342
+ children: item.formattedDate
10343
+ }
10344
+ ),
10345
+ /* @__PURE__ */ jsx(StatusBadge2, { status: "approved" })
10346
+ ] }),
10347
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-[var(--deframe-widget-size-gap-sm)]", children: [
10348
+ /* @__PURE__ */ jsx(
10349
+ "span",
10350
+ {
10351
+ "data-test-id": "dashboard-recent-transactions-simple-item-label",
10352
+ className: twMerge(
10353
+ "text-[18px] leading-[1.2]",
10354
+ "[font-weight:var(--deframe-widget-font-weight-bold)]",
10355
+ "text-[color:var(--deframe-widget-color-text-primary)]"
10356
+ ),
10357
+ children: item.label
10358
+ }
10359
+ ),
10360
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end gap-[2px] flex-shrink-0", children: [
10361
+ /* @__PURE__ */ jsx(
10362
+ "span",
10363
+ {
10364
+ "data-test-id": "dashboard-recent-transactions-simple-item-primary",
10365
+ className: twMerge(
10366
+ "text-[13px] leading-[1.3]",
10367
+ "[font-weight:var(--deframe-widget-font-weight-semibold)]",
10368
+ "text-[color:var(--deframe-widget-color-text-primary)]"
10369
+ ),
10370
+ children: item.rightPrimary
10371
+ }
10372
+ ),
10373
+ item.rightSecondary && /* @__PURE__ */ jsx(
10374
+ "span",
10375
+ {
10376
+ "data-test-id": "dashboard-recent-transactions-simple-item-secondary",
10377
+ className: "text-[12px] text-[color:var(--deframe-widget-color-text-secondary)] leading-none",
10378
+ children: item.rightSecondary
10379
+ }
10380
+ )
10381
+ ] })
10382
+ ] })
10383
+ ]
10384
+ },
10385
+ item.id
10386
+ ))
10387
+ }
10388
+ )
10389
+ ]
10390
+ }
10391
+ );
10392
+ };
9501
10393
  var DashboardInvestmentOpportunitiesView = ({
9502
10394
  isLoadingBalances,
9503
10395
  formattedTotalProfit,
@@ -9506,12 +10398,12 @@ var DashboardInvestmentOpportunitiesView = ({
9506
10398
  }) => {
9507
10399
  return /* @__PURE__ */ jsx(DashboardCard, { className: "hidden lg:block p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-4", children: [
9508
10400
  /* @__PURE__ */ jsx(TextBody, { variant: "text-large", children: "Oportunidades de investimento" }),
9509
- /* @__PURE__ */ jsxs(DashboardCard, { className: "bg-[var(--deframe-widget-color-bg-secondary)] flex flex-col space-y-2 p-4", children: [
10401
+ /* @__PURE__ */ jsxs(DashboardCard, { className: "bg-[var(--deframe-widget-color-bg-raised)] flex flex-col space-y-2 p-4", children: [
9510
10402
  /* @__PURE__ */ jsx(TextBody, { children: "Rendimentos" }),
9511
10403
  isLoadingBalances ? /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-2", children: /* @__PURE__ */ jsx(Skeleton, { width: "80px", height: "24px", shimmer: true }) }) : /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-2", children: /* @__PURE__ */ jsx(TextBody, { variant: "text-large", children: formattedTotalProfit }) })
9512
10404
  ] }),
9513
10405
  /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: strategiesContent }),
9514
- /* @__PURE__ */ jsx(Link2, { href: "/dashboard/earn", className: "w-full", onClick: onViewAllStrategiesClick, children: /* @__PURE__ */ jsx(SecondaryButton, { children: "Ver todas as estrat\xE9gias" }) })
10406
+ /* @__PURE__ */ jsx("div", { className: "w-full", onClick: onViewAllStrategiesClick, children: /* @__PURE__ */ jsx(SecondaryButton, { children: "Ver todas as estrat\xE9gias" }) })
9515
10407
  ] }) });
9516
10408
  };
9517
10409
  var DashboardView = ({
@@ -9528,15 +10420,15 @@ var DashboardView = ({
9528
10420
  /* @__PURE__ */ jsx(DashboardCard, { "data-testid": "dashboard-quick-actions-card", className: "hidden lg:block p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-3", children: [
9529
10421
  /* @__PURE__ */ jsx(TextBody, { className: "mb-6", children: "A\xE7\xF5es r\xE1pidas" }),
9530
10422
  /* @__PURE__ */ jsxs("div", { className: "flex flex-row gap-4 w-full", children: [
9531
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-deposit", href: "/dashboard/deposit", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions.onDepositClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
10423
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-deposit", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions == null ? void 0 : quickActions.onDepositClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9532
10424
  /* @__PURE__ */ jsx(MdOutlineArrowUpward, { className: "w-4 h-4 shrink-0" }),
9533
10425
  "Depositar"
9534
10426
  ] }) }),
9535
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-withdraw", href: "/dashboard/withdraw", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions.onWithdrawClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
10427
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-withdraw", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions == null ? void 0 : quickActions.onWithdrawClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9536
10428
  /* @__PURE__ */ jsx(MdOutlineArrowDownward, { className: "w-4 h-4 shrink-0" }),
9537
10429
  "Sacar"
9538
10430
  ] }) }),
9539
- /* @__PURE__ */ jsx(Link2, { "data-testid": "dashboard-quick-action-swap", href: "/dashboard/swap", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions.onSwapClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
10431
+ /* @__PURE__ */ jsx("div", { "data-testid": "dashboard-quick-action-swap", className: "flex-1 min-w-0 cursor-pointer", onClick: () => quickActions == null ? void 0 : quickActions.onSwapClick(), children: /* @__PURE__ */ jsxs(PrimaryButton, { children: [
9540
10432
  /* @__PURE__ */ jsx(MdOutlineSwapHoriz, { className: "w-4 h-4 shrink-0" }),
9541
10433
  "Trocar"
9542
10434
  ] }) })
@@ -9545,18 +10437,88 @@ var DashboardView = ({
9545
10437
  /* @__PURE__ */ jsx("div", { className: "w-full bg-[#002608] rounded shadow-[0px_1px_3px_0px_rgba(0,0,0,0.1)] flex items-center justify-between cursor-pointer", children: /* @__PURE__ */ jsx(
9546
10438
  "img",
9547
10439
  {
9548
- src: banner.imageUrl,
9549
- alt: banner.altText,
10440
+ src: banner == null ? void 0 : banner.imageUrl,
10441
+ alt: banner == null ? void 0 : banner.altText,
9550
10442
  className: "w-full h-[90%] object-cover rounded"
9551
10443
  }
9552
10444
  ) }),
9553
10445
  /* @__PURE__ */ jsx(DashboardTokensView, __spreadValues({}, tokens)),
9554
- /* @__PURE__ */ jsx(DashboardRecentTransactionsView, __spreadValues({}, recentTransactions))
10446
+ recentTransactions && /* @__PURE__ */ jsx(DashboardRecentTransactionsView, __spreadValues({}, recentTransactions))
9555
10447
  ] }),
9556
- /* @__PURE__ */ jsx("div", { className: "lg:col-span-1 space-y-6", children: /* @__PURE__ */ jsx(DashboardInvestmentOpportunitiesView, __spreadValues({}, investmentOpportunities)) })
10448
+ investmentOpportunities && /* @__PURE__ */ jsx("div", { className: "lg:col-span-1 space-y-6", children: /* @__PURE__ */ jsx(DashboardInvestmentOpportunitiesView, __spreadValues({}, investmentOpportunities)) })
9557
10449
  ] }) });
9558
10450
  };
10451
+ var DashboardViewSimple = ({
10452
+ portfolio,
10453
+ tokens,
10454
+ quickActions
10455
+ }) => {
10456
+ const assetCount = tokens.sortedRegularTokens.filter((t) => !isDustValue(t.amountInUSD)).length;
10457
+ return /* @__PURE__ */ jsxs(
10458
+ "div",
10459
+ {
10460
+ "data-test-id": "dashboard-page-simple",
10461
+ className: "w-full flex flex-col gap-[var(--deframe-widget-size-gap-md)]",
10462
+ children: [
10463
+ /* @__PURE__ */ jsxs(
10464
+ "div",
10465
+ {
10466
+ "data-test-id": "dashboard-home-header",
10467
+ className: "flex items-center justify-between gap-[var(--deframe-widget-size-gap-md)]",
10468
+ children: [
10469
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-xs)]", children: [
10470
+ /* @__PURE__ */ jsx(
10471
+ "h1",
10472
+ {
10473
+ "data-test-id": "dashboard-home-title",
10474
+ className: "text-[color:var(--deframe-widget-color-text-primary)] text-[length:var(--deframe-widget-font-size-xxl)] [font-weight:var(--deframe-widget-font-weight-bold)] leading-[var(--deframe-widget-font-leading-xxl)] font-[var(--deframe-widget-font-family)]",
10475
+ children: "Wallet"
10476
+ }
10477
+ ),
10478
+ /* @__PURE__ */ jsx(
10479
+ "p",
10480
+ {
10481
+ "data-test-id": "dashboard-home-subtitle",
10482
+ className: "text-[color:var(--deframe-widget-color-text-secondary)] text-[length:var(--deframe-widget-font-size-sm)] leading-[var(--deframe-widget-font-leading-sm)] font-[var(--deframe-widget-font-family)]",
10483
+ children: "Resumo da sua carteira e movimenta\xE7\xF5es."
10484
+ }
10485
+ )
10486
+ ] }),
10487
+ /* @__PURE__ */ jsxs(
10488
+ "div",
10489
+ {
10490
+ "data-test-id": "dashboard-home-actions",
10491
+ className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] flex-shrink-0",
10492
+ children: [
10493
+ /* @__PURE__ */ jsx(
10494
+ PrimaryButton,
10495
+ {
10496
+ className: "w-auto py-[var(--deframe-widget-size-padding-y-sm)] [font-weight:var(--deframe-widget-font-weight-medium)]",
10497
+ onClick: () => quickActions == null ? void 0 : quickActions.onDepositClick(),
10498
+ children: "Depositar"
10499
+ }
10500
+ ),
10501
+ /* @__PURE__ */ jsx(
10502
+ SecondaryButton,
10503
+ {
10504
+ className: "w-auto py-[var(--deframe-widget-size-padding-y-sm)] [font-weight:var(--deframe-widget-font-weight-medium)]",
10505
+ onClick: () => quickActions == null ? void 0 : quickActions.onWithdrawClick(),
10506
+ children: "Sacar"
10507
+ }
10508
+ )
10509
+ ]
10510
+ }
10511
+ )
10512
+ ]
10513
+ }
10514
+ ),
10515
+ /* @__PURE__ */ jsx(DashboardPortfolioViewSimple, __spreadProps(__spreadValues({}, portfolio), { assetCount })),
10516
+ /* @__PURE__ */ jsx(DashboardTokensViewSimple, __spreadValues({}, tokens))
10517
+ ]
10518
+ }
10519
+ );
10520
+ };
9559
10521
 
9560
- export { ActionButton, ActionSheet, AddressDisplay, ApyRange, BackButton, BackgroundContainer, BannerNotification, ChooseANetworkView, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, ChooseNetworkAndAssetViewSimple, CloseButton_default as CloseButton, CollapsibleInfoRow, CollapsibleSection, ConfirmSwapButtonView, ConfirmSwapButtonViewSimple, ConnectWalletList, Currency, DashboardBalancesBreakdown, DashboardCard, DashboardInvestmentOpportunitiesView, DashboardPortfolioView, DashboardRecentTransactionsView, DashboardStrategiesListView, DashboardTokenListView, DashboardTokensView, DashboardTransactionsPlaceholder, DashboardView, DeframeComponentsProvider, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedView, EarnDepositFormView, EarnDepositProcessingView, EarnDepositSuccessView, EarnDepositWarningView, EarnDesktopView, EarnExploreGridView, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawProcessingView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningView, Currency as Fiat, FlexCol, FlexRow, GroupedStrategyListView, HighRiskBadge, HistoryDepositDetailsView, HistoryListSkeleton, HistoryListView, HistorySwapDetailsView, HistoryTabEmpty, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input2 as Input, InvestmentCrossChainProcessingView, Label, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProcessingBadge, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, StrategyGridCard, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAdvancedSettingsView, SwapAmountInputView, SwapCrossChainProcessingView, SwapFormView, SwapFormViewSimple, SwapFromCardView, SwapFromCardViewSimple, SwapHistoryView, SwapProcessingView, SwapProcessingViewSimple, SwapQuoteDetailsView, SwapSignatureWarningView, SwapSignatureWarningViewSimple, SwapSuccessView, SwapSuccessViewSimple, SwapToCardView, SwapToCardViewSimple, SwapTransactionFailedView, SwapTransactionFailedViewSimple, SwapWidgetFallbackView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent, TextBody, TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletBalances, WalletConnectPanel, WalletItem, ConnectWalletList as WalletList, WalletListContainer };
10522
+ export { ActionButton, ActionSheet, AddressDisplay, ApyRange, BackButton, BackgroundContainer, BannerNotification, Chip, ChipGroup, ChooseANetworkView, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, ChooseNetworkAndAssetViewSimple, CloseButton_default as CloseButton, CollapsibleInfoRow, CollapsibleSection, ConfirmSwapButtonView, ConfirmSwapButtonViewSimple, ConnectWalletList, Currency, DashboardBalancesBreakdown, DashboardCard, DashboardInvestmentOpportunitiesView, DashboardPortfolioView, DashboardPortfolioViewSimple, DashboardRecentTransactionsView, DashboardRecentTransactionsViewSimple, DashboardStrategiesListView, DashboardTokenListView, DashboardTokensView, DashboardTokensViewSimple, DashboardTransactionsPlaceholder, DashboardView, DashboardViewSimple, DeframeComponentsProvider, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedView, EarnDepositFormView, EarnDepositProcessingView, EarnDepositSuccessView, EarnDepositWarningView, EarnDesktopView, EarnExploreGridView, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnOverviewView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawProcessingView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningView, Currency as Fiat, FlexCol, FlexRow, GroupedStrategyListView, HighRiskBadge, HistoryDepositDetailsView, HistoryListSkeleton, HistoryListView, HistorySwapDetailsView, HistoryTabEmpty, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input2 as Input, InvestmentCrossChainProcessingView, Label, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProcessingBadge, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, StrategyGridCard, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAdvancedSettingsView, SwapAmountInputView, SwapCrossChainProcessingView, SwapFormView, SwapFormViewSimple, SwapFromCardView, SwapFromCardViewSimple, SwapHistoryView, SwapProcessingView, SwapProcessingViewSimple, SwapQuoteDetailsView, SwapSignatureWarningView, SwapSignatureWarningViewSimple, SwapSuccessView, SwapSuccessViewSimple, SwapToCardView, SwapToCardViewSimple, SwapTransactionFailedView, SwapTransactionFailedViewSimple, SwapWidgetFallbackView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent, TextBody, TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletBalances, WalletConnectPanel, WalletItem, ConnectWalletList as WalletList, WalletListContainer, isDustValue };
9561
10523
  //# sourceMappingURL=index.mjs.map
9562
10524
  //# sourceMappingURL=index.mjs.map