@deframe-sdk/components 0.1.30 → 0.1.31

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
@@ -1759,7 +1759,7 @@ var BannerNotification = (_a) => {
1759
1759
  const bannerClasses = twMerge(
1760
1760
  baseClasses,
1761
1761
  typeClasses[t],
1762
- variantTextClasses[v],
1762
+ t === "toast" ? "text-white" : variantTextClasses[v],
1763
1763
  isExiting && "opacity-0 -translate-y-2",
1764
1764
  className
1765
1765
  );
@@ -7593,6 +7593,68 @@ var StrategyGridCard = ({
7593
7593
  ]
7594
7594
  }
7595
7595
  );
7596
+ var strategyCardClasses = [
7597
+ "w-full",
7598
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
7599
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
7600
+ "rounded-[var(--deframe-widget-size-radius-md)]",
7601
+ "p-[var(--deframe-widget-size-padding-x-md)]",
7602
+ "flex flex-row items-center justify-between",
7603
+ "gap-[var(--deframe-widget-size-gap-md)]",
7604
+ "hover:border-[color:var(--deframe-widget-color-border-primary)]",
7605
+ "transition-colors"
7606
+ ].join(" ");
7607
+ var StrategyGridCardSimple = ({
7608
+ logoUrl,
7609
+ title,
7610
+ chainName,
7611
+ apyFormatted,
7612
+ riskLevel,
7613
+ onInvestClick,
7614
+ labels
7615
+ }) => {
7616
+ var _a, _b, _c, _d, _e;
7617
+ const investLabel = (_a = labels == null ? void 0 : labels.investLabel) != null ? _a : "Depositar";
7618
+ const riskBadgeMap = {
7619
+ low: /* @__PURE__ */ jsx(LowRiskBadge, { label: (_b = labels == null ? void 0 : labels.riskLow) != null ? _b : "Risco Baixo" }),
7620
+ medium: /* @__PURE__ */ jsx(MediumRiskBadge, { label: (_c = labels == null ? void 0 : labels.riskMedium) != null ? _c : "Risco M\xE9dio" }),
7621
+ high: /* @__PURE__ */ jsx(HighRiskBadge, { label: (_d = labels == null ? void 0 : labels.riskHigh) != null ? _d : "Risco Alto" })
7622
+ };
7623
+ return /* @__PURE__ */ jsxs(
7624
+ "article",
7625
+ {
7626
+ "data-slot": "strategy-grid-card-simple",
7627
+ "data-test-id": "strategy-grid-card-simple",
7628
+ className: strategyCardClasses,
7629
+ children: [
7630
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] min-w-0", children: [
7631
+ /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-full bg-[var(--deframe-widget-color-bg-tertiary)] flex items-center justify-center overflow-hidden shrink-0", children: /* @__PURE__ */ jsx("img", { alt: title, src: logoUrl, referrerPolicy: "no-referrer", className: "w-full h-full object-contain" }) }),
7632
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0", children: [
7633
+ /* @__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: title }),
7634
+ /* @__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: chainName })
7635
+ ] })
7636
+ ] }),
7637
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
7638
+ /* @__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)]", children: (_e = labels == null ? void 0 : labels.apyLabel) != null ? _e : "Rendimento" }),
7639
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-lg)] [font-weight:var(--deframe-widget-font-weight-bold)] text-[color:var(--deframe-widget-color-brand-primary)] font-[var(--deframe-widget-font-family)] leading-none mt-[2px]", children: apyFormatted })
7640
+ ] }),
7641
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] flex-shrink-0", children: [
7642
+ /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 whitespace-nowrap", children: riskBadgeMap[riskLevel] }),
7643
+ /* @__PURE__ */ jsx(
7644
+ PrimaryButton,
7645
+ {
7646
+ "data-test-id": "strategy-grid-card-simple-invest",
7647
+ "aria-label": `${investLabel} ${title}`,
7648
+ onClick: onInvestClick,
7649
+ className: "h-9 text-[13px] px-[var(--deframe-widget-size-padding-x-md)]",
7650
+ children: investLabel
7651
+ }
7652
+ )
7653
+ ] })
7654
+ ]
7655
+ }
7656
+ );
7657
+ };
7596
7658
  var BackButton = ({ onClick, ariaLabel = "Back", className }) => {
7597
7659
  const baseClasses = "w-12 h-12 rounded-[var(--deframe-widget-size-radius-full)] flex items-center justify-center text-[color:var(--deframe-widget-color-text-secondary)] hover:text-[color:var(--deframe-widget-color-brand-primary)] transition-colors cursor-pointer";
7598
7660
  return /* @__PURE__ */ jsx(
@@ -7754,6 +7816,770 @@ var GroupedStrategyListView = ({
7754
7816
  ] })
7755
7817
  ] });
7756
7818
  };
7819
+ var DEFAULT_COLOR_TOKEN = "var(--deframe-widget-color-brand-primary)";
7820
+ var ImageBannerCard = ({
7821
+ imageUrl,
7822
+ alt,
7823
+ onClick,
7824
+ apyFormatted,
7825
+ description,
7826
+ colorToken = DEFAULT_COLOR_TOKEN
7827
+ }) => {
7828
+ const isClickable = !!onClick;
7829
+ return /* @__PURE__ */ jsx(
7830
+ "button",
7831
+ {
7832
+ type: "button",
7833
+ "data-slot": "image-banner-card",
7834
+ "data-test-id": "image-banner-card",
7835
+ "aria-label": alt,
7836
+ onClick,
7837
+ className: twMerge(
7838
+ "relative w-full overflow-hidden text-left",
7839
+ "rounded-[var(--deframe-widget-size-radius-md)]",
7840
+ "border",
7841
+ "transition-[transform,opacity] duration-150",
7842
+ isClickable ? "cursor-pointer active:scale-[0.98]" : "cursor-default"
7843
+ ),
7844
+ style: {
7845
+ background: `linear-gradient(to right, color-mix(in srgb, ${colorToken} 10%, #080a0e) 0%, #080a0e 55%, #050507 100%)`,
7846
+ borderColor: `color-mix(in srgb, ${colorToken} 22%, transparent)`
7847
+ },
7848
+ children: /* @__PURE__ */ jsxs("div", { className: "relative flex flex-row items-stretch w-full", children: [
7849
+ /* @__PURE__ */ jsxs(
7850
+ "div",
7851
+ {
7852
+ className: "flex flex-col gap-[var(--deframe-widget-size-gap-xs)] z-[1] px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-xl)]",
7853
+ style: { flex: imageUrl ? "0 0 55%" : "1 1 auto" },
7854
+ children: [
7855
+ /* @__PURE__ */ jsx(
7856
+ "span",
7857
+ {
7858
+ "data-test-id": "image-banner-card-name",
7859
+ className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] font-[var(--deframe-widget-font-family)] uppercase tracking-[0.08em]",
7860
+ style: { color: `color-mix(in srgb, ${colorToken} 80%, var(--deframe-widget-color-text-secondary))` },
7861
+ children: alt
7862
+ }
7863
+ ),
7864
+ apyFormatted && /* @__PURE__ */ jsxs("div", { "data-test-id": "image-banner-card-apy", className: "flex items-baseline gap-[4px]", children: [
7865
+ /* @__PURE__ */ jsx(
7866
+ "span",
7867
+ {
7868
+ className: "text-[38px] [font-weight:var(--deframe-widget-font-weight-bold)] font-[var(--deframe-widget-font-family)] leading-[1]",
7869
+ style: { color: colorToken },
7870
+ children: apyFormatted
7871
+ }
7872
+ ),
7873
+ /* @__PURE__ */ jsx(
7874
+ "span",
7875
+ {
7876
+ className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-semibold)] font-[var(--deframe-widget-font-family)] uppercase tracking-[0.1em]",
7877
+ style: { color: `color-mix(in srgb, ${colorToken} 60%, transparent)` },
7878
+ children: "APY"
7879
+ }
7880
+ )
7881
+ ] }),
7882
+ description && /* @__PURE__ */ jsx(
7883
+ "span",
7884
+ {
7885
+ "data-test-id": "image-banner-card-description",
7886
+ className: "text-[length:var(--deframe-widget-font-size-xs)] leading-[var(--deframe-widget-font-leading-sm)] text-[color:var(--deframe-widget-color-text-tertiary)] font-[var(--deframe-widget-font-family)]",
7887
+ children: description
7888
+ }
7889
+ )
7890
+ ]
7891
+ }
7892
+ ),
7893
+ imageUrl && /* @__PURE__ */ jsxs(
7894
+ "div",
7895
+ {
7896
+ "data-test-id": "image-banner-card-image-wrapper",
7897
+ className: "relative flex-1 overflow-hidden",
7898
+ style: { minHeight: 160 },
7899
+ children: [
7900
+ /* @__PURE__ */ jsx(
7901
+ "img",
7902
+ {
7903
+ "data-test-id": "image-banner-card-image",
7904
+ src: imageUrl,
7905
+ alt: "",
7906
+ "aria-hidden": "true",
7907
+ className: "absolute inset-0 w-full h-full object-cover object-center"
7908
+ }
7909
+ ),
7910
+ /* @__PURE__ */ jsx(
7911
+ "div",
7912
+ {
7913
+ className: "absolute inset-0",
7914
+ style: {
7915
+ background: "linear-gradient(to right, #080a0e 0%, transparent 40%)"
7916
+ }
7917
+ }
7918
+ )
7919
+ ]
7920
+ }
7921
+ )
7922
+ ] })
7923
+ }
7924
+ );
7925
+ };
7926
+ var GRID_COLS = "grid grid-cols-[1fr_100px_130px] gap-x-[var(--deframe-widget-size-gap-md)]";
7927
+ var HISTORY_PAGE_SIZE = 5;
7928
+ var HISTORY_CONFIG = {
7929
+ deposit: { label: "Depositado", color: "var(--deframe-widget-color-state-info)" },
7930
+ withdraw: { label: "Sacado", color: "var(--deframe-widget-color-text-secondary)" },
7931
+ interest: { label: "Juros Recebidos", color: "var(--deframe-widget-color-brand-primary)" }
7932
+ };
7933
+ var EarnHubStrategyCard = ({
7934
+ logoUrl,
7935
+ assetName,
7936
+ network,
7937
+ investedFormatted,
7938
+ earningsFormatted,
7939
+ isLoading,
7940
+ onInvestClick,
7941
+ onWithdrawClick,
7942
+ history = [],
7943
+ labels
7944
+ }) => {
7945
+ var _a, _b, _c, _d, _e;
7946
+ const [expanded, setExpanded] = React6__default.useState(false);
7947
+ const [showAll, setShowAll] = React6__default.useState(false);
7948
+ const investLabel = (_a = labels == null ? void 0 : labels.investLabel) != null ? _a : "Depositar";
7949
+ const withdrawLabel = (_b = labels == null ? void 0 : labels.withdrawLabel) != null ? _b : "Sacar";
7950
+ const historyTitle = (_c = labels == null ? void 0 : labels.historyTitle) != null ? _c : "Hist\xF3rico";
7951
+ const visibleHistory = showAll ? history : history.slice(0, HISTORY_PAGE_SIZE);
7952
+ const hasMore = history.length > HISTORY_PAGE_SIZE && !showAll;
7953
+ return /* @__PURE__ */ jsxs(
7954
+ "li",
7955
+ {
7956
+ "data-slot": "earn-hub-strategy-card",
7957
+ "data-test-id": "earn-hub-strategy-card",
7958
+ className: "border-t border-[color:var(--deframe-widget-color-border-secondary)] list-none",
7959
+ children: [
7960
+ /* @__PURE__ */ jsxs(
7961
+ "div",
7962
+ {
7963
+ "data-slot": "earn-hub-strategy-card-main",
7964
+ onClick: () => setExpanded((v) => !v),
7965
+ className: twMerge(
7966
+ GRID_COLS,
7967
+ "items-center cursor-pointer",
7968
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[13px]",
7969
+ "transition-colors duration-150",
7970
+ "hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_60%,transparent)]"
7971
+ ),
7972
+ children: [
7973
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] min-w-0", children: [
7974
+ /* @__PURE__ */ jsx("div", { className: "w-[36px] h-[36px] rounded-full bg-[var(--deframe-widget-color-bg-tertiary)] flex items-center justify-center overflow-hidden shrink-0", children: /* @__PURE__ */ jsx("img", { alt: assetName, src: logoUrl, referrerPolicy: "no-referrer", className: "w-full h-full object-contain" }) }),
7975
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0", children: [
7976
+ /* @__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: assetName }),
7977
+ network && /* @__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: network })
7978
+ ] })
7979
+ ] }),
7980
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 40, height: 16 }) : /* @__PURE__ */ jsx(
7981
+ "span",
7982
+ {
7983
+ className: "text-[length:var(--deframe-widget-font-size-md)] [font-weight:var(--deframe-widget-font-weight-bold)] font-[var(--deframe-widget-font-family)] leading-none",
7984
+ style: { color: "var(--deframe-widget-color-brand-primary)" },
7985
+ children: earningsFormatted
7986
+ }
7987
+ ) }),
7988
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-[var(--deframe-widget-size-gap-xs)]", children: [
7989
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col items-end", children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: 60, height: 16 }) : investedFormatted ? /* @__PURE__ */ jsxs(Fragment, { children: [
7990
+ /* @__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: investedFormatted }),
7991
+ /* @__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: (_d = labels == null ? void 0 : labels.investedLabel) != null ? _d : "investido" })
7992
+ ] }) : /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] text-[color:var(--deframe-widget-color-text-tertiary)]", children: "\u2014" }) }),
7993
+ /* @__PURE__ */ jsx(
7994
+ "svg",
7995
+ {
7996
+ width: "16",
7997
+ height: "16",
7998
+ viewBox: "0 0 16 16",
7999
+ fill: "none",
8000
+ "aria-hidden": "true",
8001
+ className: twMerge(
8002
+ "flex-shrink-0 text-[color:var(--deframe-widget-color-text-tertiary)] transition-transform duration-200",
8003
+ expanded && "rotate-180"
8004
+ ),
8005
+ children: /* @__PURE__ */ jsx("path", { d: "M4 6L8 10L12 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
8006
+ }
8007
+ )
8008
+ ] })
8009
+ ]
8010
+ }
8011
+ ),
8012
+ expanded && /* @__PURE__ */ jsxs(
8013
+ "div",
8014
+ {
8015
+ "data-test-id": "earn-hub-strategy-card-detail",
8016
+ className: "px-[var(--deframe-widget-size-padding-x-md)] pb-[var(--deframe-widget-size-padding-y-md)]",
8017
+ children: [
8018
+ /* @__PURE__ */ jsxs(
8019
+ "div",
8020
+ {
8021
+ className: "flex gap-[var(--deframe-widget-size-gap-sm)] mb-[var(--deframe-widget-size-gap-md)]",
8022
+ onClick: (e) => e.stopPropagation(),
8023
+ children: [
8024
+ onWithdrawClick != null && /* @__PURE__ */ jsx(
8025
+ SecondaryButton,
8026
+ {
8027
+ className: "h-9 text-[13px] flex-1",
8028
+ onClick: onWithdrawClick,
8029
+ children: withdrawLabel
8030
+ }
8031
+ ),
8032
+ onInvestClick != null && /* @__PURE__ */ jsx(
8033
+ PrimaryButton,
8034
+ {
8035
+ className: "h-9 text-[13px] flex-1",
8036
+ onClick: onInvestClick,
8037
+ children: investLabel
8038
+ }
8039
+ )
8040
+ ]
8041
+ }
8042
+ ),
8043
+ history.length > 0 && /* @__PURE__ */ jsxs("div", { "data-test-id": "earn-hub-strategy-card-history", children: [
8044
+ /* @__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)]", children: historyTitle }),
8045
+ /* @__PURE__ */ jsx("ol", { className: "list-none m-0 p-0", children: visibleHistory.map((entry) => {
8046
+ var _a2;
8047
+ const config = (_a2 = HISTORY_CONFIG[entry.type]) != null ? _a2 : HISTORY_CONFIG.deposit;
8048
+ const isClickable = !!entry.onClick;
8049
+ return /* @__PURE__ */ jsxs(
8050
+ "li",
8051
+ {
8052
+ "data-test-id": "earn-hub-strategy-card-history-entry",
8053
+ onClick: entry.onClick ? () => entry.onClick() : void 0,
8054
+ className: twMerge(
8055
+ "flex items-center justify-between gap-[var(--deframe-widget-size-gap-md)]",
8056
+ "py-[10px]",
8057
+ "border-t border-[color:var(--deframe-widget-color-border-tertiary)]",
8058
+ isClickable && "cursor-pointer hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_40%,transparent)] rounded-[var(--deframe-widget-size-radius-xs)]"
8059
+ ),
8060
+ children: [
8061
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] min-w-0", children: [
8062
+ /* @__PURE__ */ jsx(
8063
+ "span",
8064
+ {
8065
+ className: "w-[6px] h-[6px] rounded-full flex-shrink-0",
8066
+ style: { background: config.color }
8067
+ }
8068
+ ),
8069
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] text-[color:var(--deframe-widget-color-text-tertiary)] font-[var(--deframe-widget-font-family)] leading-none flex-shrink-0", children: entry.date }),
8070
+ /* @__PURE__ */ jsx(
8071
+ "span",
8072
+ {
8073
+ className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)] font-[var(--deframe-widget-font-family)] leading-none",
8074
+ style: { color: config.color },
8075
+ children: config.label
8076
+ }
8077
+ )
8078
+ ] }),
8079
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)] font-[var(--deframe-widget-font-family)] leading-none flex-shrink-0", children: entry.amount })
8080
+ ]
8081
+ },
8082
+ entry.id
8083
+ );
8084
+ }) }),
8085
+ hasMore && /* @__PURE__ */ jsx(
8086
+ "button",
8087
+ {
8088
+ type: "button",
8089
+ onClick: () => setShowAll(true),
8090
+ className: twMerge(
8091
+ "mt-[var(--deframe-widget-size-gap-sm)] w-full",
8092
+ "text-[length:var(--deframe-widget-font-size-xs)] [font-weight:var(--deframe-widget-font-weight-medium)]",
8093
+ "text-[color:var(--deframe-widget-color-text-secondary)]",
8094
+ "font-[var(--deframe-widget-font-family)]",
8095
+ "hover:text-[color:var(--deframe-widget-color-brand-primary)]",
8096
+ "transition-colors duration-150 cursor-pointer",
8097
+ "py-[var(--deframe-widget-size-padding-y-xs)]",
8098
+ "border-t border-[color:var(--deframe-widget-color-border-tertiary)]",
8099
+ "outline-none bg-transparent border-x-0 border-b-0"
8100
+ ),
8101
+ children: (_e = labels == null ? void 0 : labels.showMoreLabel) != null ? _e : `Ver mais (${history.length - HISTORY_PAGE_SIZE} itens)`
8102
+ }
8103
+ )
8104
+ ] })
8105
+ ]
8106
+ }
8107
+ )
8108
+ ]
8109
+ }
8110
+ );
8111
+ };
8112
+ var SimpleEmptyState = () => {
8113
+ return /* @__PURE__ */ jsxs(
8114
+ "div",
8115
+ {
8116
+ "data-slot": "earn-empty-state",
8117
+ "data-test-id": "earn-empty-state",
8118
+ className: "flex flex-col items-center justify-center gap-[var(--deframe-widget-size-gap-sm)] px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-xl)] border-t border-[color:var(--deframe-widget-color-border-secondary)]",
8119
+ children: [
8120
+ /* @__PURE__ */ jsx(
8121
+ "div",
8122
+ {
8123
+ className: "flex h-[48px] w-[48px] items-center justify-center rounded-full",
8124
+ style: {
8125
+ background: "color-mix(in srgb, var(--deframe-widget-color-brand-primary) 10%, transparent)",
8126
+ color: "var(--deframe-widget-color-brand-primary)"
8127
+ },
8128
+ children: /* @__PURE__ */ jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
8129
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "8", r: "4", stroke: "currentColor", strokeWidth: "1.5" }),
8130
+ /* @__PURE__ */ jsx("path", { d: "M4 20c0-4 3.6-7 8-7s8 3 8 7", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
8131
+ ] })
8132
+ }
8133
+ ),
8134
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-[var(--deframe-widget-size-gap-xs)] text-center", children: [
8135
+ /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-md)] [font-weight:var(--deframe-widget-font-weight-semibold)] text-[color:var(--deframe-widget-color-text-primary)] font-[var(--deframe-widget-font-family)]", children: "Nenhuma caixinha ativa" }),
8136
+ /* @__PURE__ */ jsx("span", { className: "max-w-[240px] text-[length:var(--deframe-widget-font-size-sm)] leading-[var(--deframe-widget-font-leading-sm)] text-[color:var(--deframe-widget-color-text-tertiary)] font-[var(--deframe-widget-font-family)]", children: "Escolha uma das caixinhas acima para come\xE7ar a render." })
8137
+ ] })
8138
+ ]
8139
+ }
8140
+ );
8141
+ };
8142
+ var EARN_CATEGORY_DEFINITIONS = [
8143
+ {
8144
+ id: "dolar",
8145
+ imageUrl: "/mascot-usd.png",
8146
+ alt: "Caixinha de D\xF3lar",
8147
+ title: "Caixinha de D\xF3lar",
8148
+ assetFilter: ["USDC", "USDT", "DAI", "thbill"]
8149
+ },
8150
+ {
8151
+ id: "real",
8152
+ imageUrl: "/mascot-brl.png",
8153
+ alt: "Caixinha de Real",
8154
+ title: "Caixinha de Real",
8155
+ assetFilter: ["BRLA"]
8156
+ }
8157
+ ];
8158
+ var wrapperBaseClasses = [
8159
+ "w-full max-w-[900px] mx-auto flex flex-col",
8160
+ "gap-[var(--deframe-widget-size-gap-md)]"
8161
+ ].join(" ");
8162
+ var statCardClasses = [
8163
+ "w-full self-start flex flex-col gap-[var(--deframe-widget-size-gap-sm)]",
8164
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
8165
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
8166
+ "rounded-[var(--deframe-widget-size-radius-md)]",
8167
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-md)]"
8168
+ ].join(" ");
8169
+ var statCardLabelClasses = [
8170
+ "text-[color:var(--deframe-widget-color-text-tertiary)]",
8171
+ "text-[11px] [font-weight:var(--deframe-widget-font-weight-medium)]",
8172
+ "uppercase tracking-[0.08em] [line-height:1.4]"
8173
+ ].join(" ");
8174
+ var statCardValueDefaultClasses = [
8175
+ "text-[color:var(--deframe-widget-color-text-primary)]",
8176
+ "text-[28px] [font-weight:var(--deframe-widget-font-weight-bold)] [line-height:1.15]"
8177
+ ].join(" ");
8178
+ var statCardValuePositiveClasses = [
8179
+ "text-[color:var(--deframe-widget-color-brand-primary)]",
8180
+ "text-[28px] [font-weight:var(--deframe-widget-font-weight-bold)] [line-height:1.15]"
8181
+ ].join(" ");
8182
+ var statCardDescriptionClasses = [
8183
+ "text-[color:var(--deframe-widget-color-text-secondary)]",
8184
+ "text-[13px] [line-height:1.45]"
8185
+ ].join(" ");
8186
+ var listPanelClasses = [
8187
+ "w-full self-start flex flex-col",
8188
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
8189
+ "border border-[color:var(--deframe-widget-color-border-secondary)]",
8190
+ "rounded-[var(--deframe-widget-size-radius-md)]",
8191
+ "overflow-hidden"
8192
+ ].join(" ");
8193
+ var sectionHeaderClasses = [
8194
+ "flex items-center justify-between",
8195
+ "px-[var(--deframe-widget-size-padding-x-md)]",
8196
+ "pt-[var(--deframe-widget-size-padding-y-md)]",
8197
+ "pb-[var(--deframe-widget-size-padding-y-sm)]"
8198
+ ].join(" ");
8199
+ var sectionTitleClasses = [
8200
+ "text-[color:var(--deframe-widget-color-text-primary)]",
8201
+ "text-[length:var(--deframe-widget-font-size-md)]",
8202
+ "[font-weight:var(--deframe-widget-font-weight-semibold)]",
8203
+ "font-[var(--deframe-widget-font-family)]",
8204
+ "leading-[var(--deframe-widget-font-leading-md)]"
8205
+ ].join(" ");
8206
+ var columnHeaderClasses = [
8207
+ "text-[length:var(--deframe-widget-font-size-xs)]",
8208
+ "[font-weight:var(--deframe-widget-font-weight-medium)]",
8209
+ "uppercase tracking-[0.08em]",
8210
+ "text-[color:var(--deframe-widget-color-text-tertiary)]",
8211
+ "leading-[var(--deframe-widget-font-leading-xs)]"
8212
+ ].join(" ");
8213
+ var GRID_COLS2 = "grid grid-cols-[1fr_100px_130px] gap-x-[var(--deframe-widget-size-gap-md)]";
8214
+ var BANNER_COLORS = [
8215
+ "var(--deframe-widget-color-brand-primary)",
8216
+ "var(--deframe-widget-color-brand-secondary)"
8217
+ ];
8218
+ var STABLECOIN_SYMBOLS = /* @__PURE__ */ new Set(["USDC", "USDT", "DAI"]);
8219
+ var DEFAULT_POSITIONS = { positions: [], summary: { totalUnderlyingBalanceUSD: 0, totalProfitInUSD: 0 } };
8220
+ var defaultFormatCurrency = (amount) => `$${amount.toFixed(2)}`;
8221
+ var EarnDesktopViewSimple = ({
8222
+ positions = DEFAULT_POSITIONS,
8223
+ strategies = [],
8224
+ historyItems = [],
8225
+ formatCurrency = defaultFormatCurrency,
8226
+ locale = "pt-BR",
8227
+ onDeposit,
8228
+ onWithdraw,
8229
+ onDetails,
8230
+ onHistoryDetail,
8231
+ onHistory,
8232
+ isLoading,
8233
+ className
8234
+ }) => {
8235
+ const [activeCategoryId, setActiveCategoryId] = React6__default.useState(null);
8236
+ const totalEarnings = React6__default.useMemo(
8237
+ () => positions.positions.reduce((sum, p) => sum + p.spotPosition.profitInUSD, 0),
8238
+ [positions.positions]
8239
+ );
8240
+ const statsCards = React6__default.useMemo(() => [
8241
+ { label: "Total Investido", value: formatCurrency(positions.summary.totalUnderlyingBalanceUSD), badge: "Soma de todos os dep\xF3sitos ativos." },
8242
+ { label: "Juros Acumulados", value: formatCurrency(totalEarnings), badge: "Rendimentos acumulados desde o in\xEDcio." }
8243
+ ], [positions.summary.totalUnderlyingBalanceUSD, totalEarnings, formatCurrency]);
8244
+ const categoryBanners = React6__default.useMemo(() => {
8245
+ return EARN_CATEGORY_DEFINITIONS.map((cat) => {
8246
+ var _a;
8247
+ const upperFilter = new Set(cat.assetFilter.map((a) => a.toUpperCase()));
8248
+ let bestApy = null;
8249
+ for (const s of strategies) {
8250
+ if (upperFilter.has(s.assetName.toUpperCase()) && s.apy > ((_a = bestApy == null ? void 0 : bestApy.apy) != null ? _a : 0)) {
8251
+ bestApy = s;
8252
+ }
8253
+ }
8254
+ const isStablecoin = cat.assetFilter.some((a) => STABLECOIN_SYMBOLS.has(a.toUpperCase()));
8255
+ return {
8256
+ id: cat.id,
8257
+ imageUrl: cat.imageUrl,
8258
+ alt: cat.title,
8259
+ apyFormatted: bestApy == null ? void 0 : bestApy.apyFormatted,
8260
+ description: isStablecoin ? "Rendimento em stablecoins" : "Rendimento em reais",
8261
+ handleClick: () => setActiveCategoryId(cat.id)
8262
+ };
8263
+ });
8264
+ }, [strategies]);
8265
+ const historyByAsset = React6__default.useMemo(() => {
8266
+ var _a, _b, _c, _d;
8267
+ const map = /* @__PURE__ */ new Map();
8268
+ for (const item of historyItems) {
8269
+ const isDeposit = item.type.includes("DEPOSIT");
8270
+ const assetIn = (_a = item.amounts) == null ? void 0 : _a.assetIn;
8271
+ const symbol = (_d = assetIn && "token" in assetIn ? (_c = (_b = assetIn.token) == null ? void 0 : _b.symbol) == null ? void 0 : _c.toUpperCase() : null) != null ? _d : "";
8272
+ if (!symbol) continue;
8273
+ const amount = assetIn && "amountInUSD" in assetIn && assetIn.amountInUSD ? formatCurrency(parseFloat(assetIn.amountInUSD)) : assetIn && "amountHumanized" in assetIn ? `${assetIn.amountHumanized} ${symbol}` : "";
8274
+ const date = new Date(item.createdAt).toLocaleString(locale, {
8275
+ day: "2-digit",
8276
+ month: "2-digit",
8277
+ year: "numeric",
8278
+ hour: "2-digit",
8279
+ minute: "2-digit"
8280
+ });
8281
+ const entry = {
8282
+ id: item.id,
8283
+ date,
8284
+ type: isDeposit ? "deposit" : "withdraw",
8285
+ amount,
8286
+ onClick: onHistoryDetail ? () => onHistoryDetail(item.id, isDeposit) : void 0
8287
+ };
8288
+ if (!map.has(symbol)) map.set(symbol, []);
8289
+ map.get(symbol).push(entry);
8290
+ }
8291
+ return map;
8292
+ }, [historyItems, locale, formatCurrency, onHistoryDetail]);
8293
+ const strategyRows = React6__default.useMemo(() => {
8294
+ return positions.positions.filter((p) => p.spotPosition.underlyingBalanceUSD > 0.01).map((p) => {
8295
+ var _a;
8296
+ return {
8297
+ logoUrl: p.strategy.logourl,
8298
+ assetName: p.strategy.assetName,
8299
+ network: p.strategy.network,
8300
+ investedFormatted: formatCurrency(p.spotPosition.underlyingBalanceUSD),
8301
+ earningsFormatted: `${(p.spotPosition.apy * 100).toFixed(2)}%`,
8302
+ isLoading: false,
8303
+ history: (_a = historyByAsset.get(p.strategy.assetName.toUpperCase())) != null ? _a : [],
8304
+ onInvestClick: onDeposit ? () => onDeposit(p.strategy.id) : () => {
8305
+ },
8306
+ onWithdrawClick: onWithdraw ? () => onWithdraw(p.strategy.id) : () => {
8307
+ },
8308
+ onDetailsClick: onDetails ? () => onDetails(p.strategy.id) : () => {
8309
+ }
8310
+ };
8311
+ });
8312
+ }, [positions.positions, formatCurrency, historyByAsset, onDeposit, onWithdraw, onDetails]);
8313
+ if (isLoading) {
8314
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": "earn-hub-view-simple-loading", className: twMerge(wrapperBaseClasses, className), children: [
8315
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-[var(--deframe-widget-size-gap-sm)]", children: [0, 1].map((i) => /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "100%", height: 100 }, i)) }),
8316
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-[var(--deframe-widget-size-gap-sm)]", children: [0, 1].map((i) => /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "100%", height: 160 }, i)) }),
8317
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "100%", height: 200 })
8318
+ ] });
8319
+ }
8320
+ if (activeCategoryId) {
8321
+ return /* @__PURE__ */ jsx(
8322
+ GroupedStrategyListViewSimple,
8323
+ {
8324
+ categoryId: activeCategoryId,
8325
+ strategies,
8326
+ isLoading,
8327
+ onBack: () => setActiveCategoryId(null),
8328
+ onDeposit,
8329
+ onWithdraw,
8330
+ className
8331
+ }
8332
+ );
8333
+ }
8334
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": "earn-hub-view-simple", className: twMerge(wrapperBaseClasses, className), children: [
8335
+ /* @__PURE__ */ jsx(
8336
+ "div",
8337
+ {
8338
+ "data-test-id": "earn-hub-view-simple-header",
8339
+ className: "flex items-center justify-between gap-[var(--deframe-widget-size-gap-md)]",
8340
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[var(--deframe-widget-size-gap-xs)]", children: [
8341
+ /* @__PURE__ */ jsx(
8342
+ "h1",
8343
+ {
8344
+ "data-test-id": "earn-hub-view-simple-title",
8345
+ 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)]",
8346
+ children: "Caixinha"
8347
+ }
8348
+ ),
8349
+ /* @__PURE__ */ jsx(
8350
+ "p",
8351
+ {
8352
+ "data-test-id": "earn-hub-view-simple-subtitle",
8353
+ 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)]",
8354
+ children: "Invista e deixe seu dinheiro render."
8355
+ }
8356
+ )
8357
+ ] })
8358
+ }
8359
+ ),
8360
+ /* @__PURE__ */ jsx(
8361
+ "div",
8362
+ {
8363
+ "data-test-id": "earn-hub-view-simple-stats",
8364
+ className: "grid grid-cols-2 gap-[var(--deframe-widget-size-gap-sm)]",
8365
+ children: statsCards.map((card, i) => /* @__PURE__ */ jsxs("article", { className: twMerge(statCardClasses, "self-stretch"), children: [
8366
+ /* @__PURE__ */ jsx("p", { className: statCardLabelClasses, children: card.label }),
8367
+ /* @__PURE__ */ jsx("p", { className: i > 0 ? statCardValuePositiveClasses : statCardValueDefaultClasses, children: card.value }),
8368
+ /* @__PURE__ */ jsx("p", { className: statCardDescriptionClasses, children: card.badge })
8369
+ ] }, card.label))
8370
+ }
8371
+ ),
8372
+ /* @__PURE__ */ jsx(
8373
+ "div",
8374
+ {
8375
+ "data-test-id": "earn-hub-view-simple-categories",
8376
+ className: "grid grid-cols-2 gap-[var(--deframe-widget-size-gap-sm)]",
8377
+ children: categoryBanners.map((cat, i) => /* @__PURE__ */ jsx(
8378
+ ImageBannerCard,
8379
+ {
8380
+ imageUrl: cat.imageUrl,
8381
+ alt: cat.alt,
8382
+ apyFormatted: cat.apyFormatted,
8383
+ description: cat.description,
8384
+ onClick: cat.handleClick,
8385
+ colorToken: BANNER_COLORS[i % BANNER_COLORS.length]
8386
+ },
8387
+ cat.alt
8388
+ ))
8389
+ }
8390
+ ),
8391
+ /* @__PURE__ */ jsxs("div", { className: listPanelClasses, children: [
8392
+ /* @__PURE__ */ jsxs("div", { className: sectionHeaderClasses, children: [
8393
+ /* @__PURE__ */ jsx("h3", { "data-test-id": "earn-hub-view-simple-strategies-title", className: sectionTitleClasses, children: "Suas Caixinhas" }),
8394
+ onHistory && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)] flex-shrink-0", children: /* @__PURE__ */ jsx(
8395
+ "button",
8396
+ {
8397
+ type: "button",
8398
+ "aria-label": "Hist\xF3rico",
8399
+ "data-test-id": "earn-hub-simple-history-button",
8400
+ onClick: onHistory,
8401
+ className: twMerge(
8402
+ "inline-flex items-center justify-center",
8403
+ "w-9 h-9",
8404
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
8405
+ "border-none bg-transparent",
8406
+ "cursor-pointer outline-none flex-shrink-0",
8407
+ "text-[color:var(--deframe-widget-color-text-secondary)]",
8408
+ "hover:bg-[color:color-mix(in_srgb,var(--deframe-widget-color-bg-tertiary)_92%,transparent)]",
8409
+ "transition-[background] duration-150"
8410
+ ),
8411
+ children: /* @__PURE__ */ jsxs(
8412
+ "svg",
8413
+ {
8414
+ viewBox: "0 0 24 24",
8415
+ width: "20",
8416
+ height: "20",
8417
+ fill: "none",
8418
+ stroke: "currentColor",
8419
+ strokeWidth: "2",
8420
+ strokeLinecap: "round",
8421
+ strokeLinejoin: "round",
8422
+ "aria-hidden": "true",
8423
+ children: [
8424
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
8425
+ /* @__PURE__ */ jsx("polyline", { points: "12 6 12 12 16 14" })
8426
+ ]
8427
+ }
8428
+ )
8429
+ }
8430
+ ) })
8431
+ ] }),
8432
+ strategyRows.length === 0 ? /* @__PURE__ */ jsx(SimpleEmptyState, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
8433
+ /* @__PURE__ */ jsx(
8434
+ "div",
8435
+ {
8436
+ "data-test-id": "earn-hub-view-simple-columns",
8437
+ className: twMerge(
8438
+ GRID_COLS2,
8439
+ "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-sm)]",
8440
+ "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
8441
+ ),
8442
+ children: ["CAIXINHA", "RENDIMENTO", "INVESTIDO"].map((label, i) => /* @__PURE__ */ jsx(
8443
+ "span",
8444
+ {
8445
+ className: twMerge(
8446
+ columnHeaderClasses,
8447
+ i === 1 && "text-center",
8448
+ i === 2 && "text-right"
8449
+ ),
8450
+ children: label
8451
+ },
8452
+ label
8453
+ ))
8454
+ }
8455
+ ),
8456
+ /* @__PURE__ */ jsx("ol", { "data-test-id": "earn-hub-view-simple-strategy-list", className: "list-none m-0 p-0", children: strategyRows.map((s) => /* @__PURE__ */ jsx(EarnHubStrategyCard, __spreadValues({}, s), s.assetName)) })
8457
+ ] })
8458
+ ] })
8459
+ ] });
8460
+ };
8461
+ var wrapperBaseClasses2 = [
8462
+ "w-full flex flex-col",
8463
+ "gap-[var(--deframe-widget-size-gap-md)]",
8464
+ "font-[var(--deframe-widget-font-family)]"
8465
+ ].join(" ");
8466
+ var titleClasses = [
8467
+ "text-[color:var(--deframe-widget-color-text-primary)]",
8468
+ "text-[length:var(--deframe-widget-font-size-xxl)]",
8469
+ "[font-weight:var(--deframe-widget-font-weight-bold)]",
8470
+ "leading-[var(--deframe-widget-font-leading-xxl)]",
8471
+ "font-[var(--deframe-widget-font-family)]"
8472
+ ].join(" ");
8473
+ var backButtonClasses = [
8474
+ "inline-flex items-center gap-[var(--deframe-widget-size-gap-xs)]",
8475
+ "text-[color:var(--deframe-widget-color-text-secondary)]",
8476
+ "hover:text-[color:var(--deframe-widget-color-text-primary)]",
8477
+ "text-[length:var(--deframe-widget-font-size-sm)]",
8478
+ "[font-weight:var(--deframe-widget-font-weight-medium)]",
8479
+ "transition-colors cursor-pointer",
8480
+ "font-[var(--deframe-widget-font-family)]",
8481
+ "border-none bg-transparent outline-none p-0"
8482
+ ].join(" ");
8483
+ var emptyBoxClasses = [
8484
+ "w-full flex flex-col items-center justify-center",
8485
+ "gap-[var(--deframe-widget-size-gap-sm)]",
8486
+ "px-[var(--deframe-widget-size-padding-x-md)]",
8487
+ "py-[var(--deframe-widget-size-padding-y-xl)]",
8488
+ "rounded-[var(--deframe-widget-size-radius-md)]",
8489
+ "border border-dashed border-[color:var(--deframe-widget-color-border-secondary)]",
8490
+ "bg-[color:var(--deframe-widget-color-bg-secondary)]"
8491
+ ].join(" ");
8492
+ var GroupedStrategyListViewSimple = ({
8493
+ categoryId,
8494
+ strategies = [],
8495
+ isLoading,
8496
+ onBack,
8497
+ onDeposit,
8498
+ onWithdraw,
8499
+ className
8500
+ }) => {
8501
+ var _a;
8502
+ const category = EARN_CATEGORY_DEFINITIONS.find((c) => c.id === categoryId);
8503
+ const categoryTitle = (_a = category == null ? void 0 : category.title) != null ? _a : "Estrat\xE9gias";
8504
+ const allClaimedAssets = React6__default.useMemo(() => {
8505
+ const claimed = /* @__PURE__ */ new Set();
8506
+ for (const cat of EARN_CATEGORY_DEFINITIONS) {
8507
+ if (cat.assetFilter.length > 0) {
8508
+ for (const symbol of cat.assetFilter) {
8509
+ claimed.add(symbol.toUpperCase());
8510
+ }
8511
+ }
8512
+ }
8513
+ return claimed;
8514
+ }, []);
8515
+ const filteredStrategies = React6__default.useMemo(() => {
8516
+ const assetFilter = category == null ? void 0 : category.assetFilter;
8517
+ if (!assetFilter || assetFilter.length === 0) {
8518
+ return strategies.filter((s) => !allClaimedAssets.has(s.assetName.toUpperCase()));
8519
+ }
8520
+ const upperFilter = new Set(assetFilter.map((a) => a.toUpperCase()));
8521
+ return strategies.filter((s) => upperFilter.has(s.assetName.toUpperCase()));
8522
+ }, [strategies, category, allClaimedAssets]);
8523
+ if (isLoading) {
8524
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": "grouped-strategy-list-view-simple-loading", className: twMerge(wrapperBaseClasses2, className), children: [
8525
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "40%", height: 24 }),
8526
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "100%", height: 80 }),
8527
+ /* @__PURE__ */ jsx(Skeleton, { variant: "rect", width: "100%", height: 80 })
8528
+ ] });
8529
+ }
8530
+ return /* @__PURE__ */ jsxs("div", { "data-test-id": "grouped-strategy-list-view-simple", className: twMerge(wrapperBaseClasses2, className), children: [
8531
+ /* @__PURE__ */ jsxs("div", { "data-test-id": "grouped-strategy-list-view-simple-header", children: [
8532
+ /* @__PURE__ */ jsxs(
8533
+ "button",
8534
+ {
8535
+ type: "button",
8536
+ "data-test-id": "grouped-strategy-list-view-simple-back",
8537
+ "aria-label": "Voltar",
8538
+ onClick: onBack,
8539
+ className: backButtonClasses,
8540
+ children: [
8541
+ /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M10 4L6 8L10 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }),
8542
+ "Voltar"
8543
+ ]
8544
+ }
8545
+ ),
8546
+ /* @__PURE__ */ jsx("h2", { "data-test-id": "grouped-strategy-list-view-simple-title", className: twMerge(titleClasses, "mt-[var(--deframe-widget-size-gap-sm)]"), children: categoryTitle }),
8547
+ /* @__PURE__ */ jsx(
8548
+ TextBody,
8549
+ {
8550
+ "data-test-id": "grouped-strategy-list-view-simple-subtitle",
8551
+ variant: "text-small",
8552
+ className: "text-[color:var(--deframe-widget-color-text-secondary)] mt-[var(--deframe-widget-size-gap-xs)]",
8553
+ children: "Escolha uma estrat\xE9gia para investir."
8554
+ }
8555
+ )
8556
+ ] }),
8557
+ filteredStrategies.length === 0 ? /* @__PURE__ */ jsx("div", { "data-test-id": "grouped-strategy-list-view-simple-empty", className: emptyBoxClasses, children: /* @__PURE__ */ jsx("span", { className: "text-[length:var(--deframe-widget-font-size-sm)] text-[color:var(--deframe-widget-color-text-tertiary)] font-[var(--deframe-widget-font-family)]", children: "Nenhuma estrat\xE9gia dispon\xEDvel no momento." }) }) : /* @__PURE__ */ jsx(
8558
+ "div",
8559
+ {
8560
+ "data-test-id": "grouped-strategy-list-view-simple-items",
8561
+ className: "flex flex-col gap-[var(--deframe-widget-size-gap-sm)]",
8562
+ children: filteredStrategies.map((s) => /* @__PURE__ */ jsx(
8563
+ StrategyGridCardSimple,
8564
+ {
8565
+ logoUrl: s.logourl,
8566
+ title: s.assetName,
8567
+ subtitle: s.assetName,
8568
+ chainName: s.network,
8569
+ apyFormatted: s.apyFormatted,
8570
+ apyLabel: "Rendimento",
8571
+ riskLevel: "low",
8572
+ onInvestClick: onDeposit ? () => onDeposit(s.id) : () => {
8573
+ },
8574
+ onWithdrawClick: onWithdraw ? () => onWithdraw(s.id) : () => {
8575
+ }
8576
+ },
8577
+ s.id
8578
+ ))
8579
+ }
8580
+ )
8581
+ ] });
8582
+ };
7757
8583
  var DateLabel = ({ children }) => {
7758
8584
  return /* @__PURE__ */ jsx("div", { className: "text-text-sm-mobile font-poppins text-[color:var(--deframe-widget-color-text-secondary)] dark:text-[color:var(--deframe-widget-color-text-secondary-dark)]", children });
7759
8585
  };
@@ -9852,7 +10678,7 @@ function EarnFormSkeleton() {
9852
10678
  "px-[var(--deframe-widget-size-padding-x-md)]",
9853
10679
  "py-[var(--deframe-widget-size-padding-y-md)]"
9854
10680
  ].join(" ");
9855
- const titleClasses = [
10681
+ const titleClasses2 = [
9856
10682
  "flex-1",
9857
10683
  "text-[15px]",
9858
10684
  "[font-weight:var(--deframe-widget-font-weight-semibold)]",
@@ -9882,7 +10708,7 @@ function EarnFormSkeleton() {
9882
10708
  "data-test-id": "earn-form-skeleton",
9883
10709
  className: "flex flex-col font-[var(--deframe-widget-font-family)]",
9884
10710
  children: [
9885
- /* @__PURE__ */ jsx("div", { "data-test-id": "earn-form-skeleton-header", className: headerClasses, children: /* @__PURE__ */ jsx("span", { className: titleClasses, children: "Deposit" }) }),
10711
+ /* @__PURE__ */ jsx("div", { "data-test-id": "earn-form-skeleton-header", className: headerClasses, children: /* @__PURE__ */ jsx("span", { className: titleClasses2, children: "Deposit" }) }),
9886
10712
  /* @__PURE__ */ jsx("div", { "data-test-id": "earn-form-skeleton-divider", className: dividerClasses }),
9887
10713
  /* @__PURE__ */ jsx("div", { "data-test-id": "earn-form-skeleton-body", className: bodyClasses, children: /* @__PURE__ */ jsxs("div", { "data-test-id": "earn-form-skeleton-input-card", className: inputCardClasses, children: [
9888
10714
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[var(--deframe-widget-size-gap-sm)]", children: [
@@ -9983,7 +10809,7 @@ function EarnFeedbackOverlaySimpleView({
9983
10809
  "flex flex-col items-center",
9984
10810
  "gap-[var(--deframe-widget-size-gap-sm)] text-center"
9985
10811
  );
9986
- const titleClasses = twMerge(
10812
+ const titleClasses2 = twMerge(
9987
10813
  isLoading ? "[font-size:12px] [line-height:1.25] [letter-spacing:0.10em] uppercase [font-weight:var(--deframe-widget-font-weight-semibold)] font-[var(--deframe-widget-font-family)] text-[color:var(--deframe-widget-color-brand-primary)]" : "text-[22px] font-bold text-[color:var(--deframe-widget-color-text-primary)] leading-[1.25]"
9988
10814
  );
9989
10815
  const subtitleClasses = twMerge(
@@ -10028,7 +10854,7 @@ function EarnFeedbackOverlaySimpleView({
10028
10854
  {
10029
10855
  "data-test-id": "earn-feedback-title",
10030
10856
  "data-slot": "earn-feedback-title",
10031
- className: titleClasses,
10857
+ className: titleClasses2,
10032
10858
  children: title
10033
10859
  }
10034
10860
  ),
@@ -13360,7 +14186,7 @@ function HistoryButton2({ onClick }) {
13360
14186
  }
13361
14187
  );
13362
14188
  }
13363
- 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)]";
14189
+ var GRID_COLS3 = "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)]";
13364
14190
  function IconCircle3({ item, size = 36, className }) {
13365
14191
  const [imgError, setImgError] = React6__default.useState(false);
13366
14192
  if (item.iconUrl && !imgError) {
@@ -13460,7 +14286,7 @@ function AssetListSkeletonRow({ index }) {
13460
14286
  {
13461
14287
  "data-test-id": "asset-list-skeleton-row",
13462
14288
  className: twMerge(
13463
- GRID_COLS,
14289
+ GRID_COLS3,
13464
14290
  "items-center",
13465
14291
  "px-[var(--deframe-widget-size-padding-x-md)] py-[11px]",
13466
14292
  "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
@@ -13506,7 +14332,7 @@ function AssetListSkeletonContent() {
13506
14332
  "div",
13507
14333
  {
13508
14334
  className: twMerge(
13509
- GRID_COLS,
14335
+ GRID_COLS3,
13510
14336
  "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-sm)]",
13511
14337
  "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
13512
14338
  ),
@@ -13615,7 +14441,7 @@ var DashboardTokensViewSimple = ({
13615
14441
  {
13616
14442
  "data-test-id": "asset-list-columns",
13617
14443
  className: twMerge(
13618
- GRID_COLS,
14444
+ GRID_COLS3,
13619
14445
  "px-[var(--deframe-widget-size-padding-x-md)] py-[var(--deframe-widget-size-padding-y-sm)]",
13620
14446
  "border-t border-[color:var(--deframe-widget-color-border-secondary)]"
13621
14447
  ),
@@ -13641,7 +14467,7 @@ var DashboardTokensViewSimple = ({
13641
14467
  "data-test-id": "asset-list-item",
13642
14468
  onClick: handleItemClick,
13643
14469
  className: twMerge(
13644
- GRID_COLS,
14470
+ GRID_COLS3,
13645
14471
  "items-center",
13646
14472
  "px-[var(--deframe-widget-size-padding-x-md)] py-[11px]",
13647
14473
  "border-t border-[color:var(--deframe-widget-color-border-secondary)]",
@@ -14144,6 +14970,6 @@ var DashboardViewSimple = ({
14144
14970
  );
14145
14971
  };
14146
14972
 
14147
- 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, DepositSuccessIcon, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedSimpleView, EarnDepositFailedView, EarnDepositFormView, EarnDepositFormViewSimple, EarnDepositProcessingSimpleView, EarnDepositProcessingView, EarnDepositSuccessSimpleView, EarnDepositSuccessView, EarnDepositWarningSimpleView, EarnDepositWarningView, EarnDesktopView, EarnExploreGridView, EarnFlowSkeletonSimple, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnOverviewView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedSimpleView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawFormViewSimple, EarnWithdrawProcessingSimpleView, EarnWithdrawProcessingView, EarnWithdrawSuccessSimpleView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningSimpleView, 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, OnchainDepositFormSimpleView, OnchainDepositFormView, OnchainDepositSuccessSimpleView, OnchainDepositSuccessView, OnchainWithdrawChainSelectorView, OnchainWithdrawFailedView, OnchainWithdrawFormSimpleView, OnchainWithdrawFormView, OnchainWithdrawProcessingSimpleView, OnchainWithdrawSignatureWarningSimpleView, OnchainWithdrawSignatureWarningView, OnchainWithdrawSuccessView, 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, WithdrawFailedIcon, WithdrawSuccessIcon, isDustValue, truncateAddress };
14973
+ 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, DepositSuccessIcon, DetailsHeader, EarnAmountInputView, EarnBalanceCard, EarnBytecodeErrorView, EarnDepositFailedSimpleView, EarnDepositFailedView, EarnDepositFormView, EarnDepositFormViewSimple, EarnDepositProcessingSimpleView, EarnDepositProcessingView, EarnDepositSuccessSimpleView, EarnDepositSuccessView, EarnDepositWarningSimpleView, EarnDepositWarningView, EarnDesktopView, EarnDesktopViewSimple, EarnExploreGridView, EarnFlowSkeletonSimple, EarnInvestedSectionView, EarnInvestmentDetailsView, EarnInvestmentSummaryView, EarnNoBalanceNotificationView, EarnOverviewView, EarnPercentageButtonsView, EarnPositionCardView, EarnRecentTransactionsView, EarnTokenSelectorView, EarnTxStatusCardView, EarnWithdrawFailedSimpleView, EarnWithdrawFailedView, EarnWithdrawFormView, EarnWithdrawFormViewSimple, EarnWithdrawProcessingSimpleView, EarnWithdrawProcessingView, EarnWithdrawSuccessSimpleView, EarnWithdrawSuccessView, EarnWithdrawTokenSelectorView, EarnWithdrawWarningSimpleView, 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, OnchainDepositFormSimpleView, OnchainDepositFormView, OnchainDepositSuccessSimpleView, OnchainDepositSuccessView, OnchainWithdrawChainSelectorView, OnchainWithdrawFailedView, OnchainWithdrawFormSimpleView, OnchainWithdrawFormView, OnchainWithdrawProcessingSimpleView, OnchainWithdrawSignatureWarningSimpleView, OnchainWithdrawSignatureWarningView, OnchainWithdrawSuccessView, 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, WithdrawFailedIcon, WithdrawSuccessIcon, isDustValue, truncateAddress };
14148
14974
  //# sourceMappingURL=index.mjs.map
14149
14975
  //# sourceMappingURL=index.mjs.map