@gearbox-protocol/ui-kit 4.5.2 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/cjs/components/base/apy-breakdown-body/apy-breakdown-body.cjs +1 -1
  2. package/dist/cjs/components/base/apy-breakdown-body/index.cjs +1 -1
  3. package/dist/cjs/components/base/info-list/info-list.cjs +1 -1
  4. package/dist/cjs/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.cjs +1 -1
  5. package/dist/cjs/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.cjs +1 -1
  6. package/dist/cjs/components/compound-apy/compound-apy.cjs +1 -1
  7. package/dist/cjs/components/link/link.cjs +1 -1
  8. package/dist/cjs/components/yield-breakdown-tooltip/yield-breakdown.cjs +1 -1
  9. package/dist/esm/components/base/apy-breakdown-body/apy-breakdown-body.js +70 -45
  10. package/dist/esm/components/base/apy-breakdown-body/index.js +8 -7
  11. package/dist/esm/components/base/info-list/info-list.js +14 -13
  12. package/dist/esm/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.js +68 -64
  13. package/dist/esm/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.js +109 -105
  14. package/dist/esm/components/compound-apy/compound-apy.js +22 -20
  15. package/dist/esm/components/link/link.js +14 -14
  16. package/dist/esm/components/yield-breakdown-tooltip/yield-breakdown.js +92 -79
  17. package/dist/types/components/base/apy-breakdown-body/apy-breakdown-body.d.ts +5 -0
  18. package/dist/types/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.d.ts +3 -1
  19. package/dist/types/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.d.ts +3 -1
  20. package/dist/types/components/compound-apy/compound-apy.d.ts +3 -1
  21. package/dist/types/components/yield-breakdown-tooltip/yield-breakdown.d.ts +3 -1
  22. package/package.json +2 -2
@@ -1,140 +1,153 @@
1
- import { jsx as e, jsxs as p, Fragment as B } from "react/jsx-runtime";
2
- import { ApyBreakdownBody as A, formatBreakdownRate as c, ApyBreakdownRow as u, periodMessageId as w, ApyBreakdownDivider as v } from "../base/apy-breakdown-body/apy-breakdown-body.js";
3
- import { PoolApyBreakdownCard as h } from "../base/pool-apy-breakdown-card/pool-apy-breakdown-card.js";
4
- import { PointsIcon as b } from "../points-icon/points-icon.js";
5
- import { TokenIcon as I } from "../token-icon/token-icon.js";
6
- import { FormattedMessageTyped as a } from "../typed-intl/index.js";
7
- import { formatLeverage as P } from "../../utils/format-leverage.js";
8
- import { tokenRewardsOf as R, pointProgramsOf as T, totalApyOf as x } from "../../utils/internal/apy-breakdown.js";
9
- import { ApyBreakdownTooltip as N } from "./yield-breakdown-tooltip.js";
10
- function E({
11
- supplyApy: l,
12
- maxLeverage: r,
13
- collateralApy: y,
14
- borrowApy: s,
15
- quotaRate: i,
16
- period: t,
1
+ import { jsx as e, jsxs as r, Fragment as A } from "react/jsx-runtime";
2
+ import { ApyBreakdownBody as v, formatBreakdownRate as u, ApyBreakdownRow as y, periodMessageId as f, RewardLinks as h, ApyBreakdownDivider as b } from "../base/apy-breakdown-body/apy-breakdown-body.js";
3
+ import { PoolApyBreakdownCard as I } from "../base/pool-apy-breakdown-card/pool-apy-breakdown-card.js";
4
+ import { PointsIcon as P } from "../points-icon/points-icon.js";
5
+ import { TokenIcon as x } from "../token-icon/token-icon.js";
6
+ import { FormattedMessageTyped as s } from "../typed-intl/index.js";
7
+ import { formatLeverage as N } from "../../utils/format-leverage.js";
8
+ import { tokenRewardsOf as R, pointProgramsOf as T, totalApyOf as $ } from "../../utils/internal/apy-breakdown.js";
9
+ import { ApyBreakdownTooltip as O } from "./yield-breakdown-tooltip.js";
10
+ function H({
11
+ supplyApy: t,
12
+ maxLeverage: a,
13
+ collateralApy: g,
14
+ borrowApy: i,
15
+ quotaRate: d,
16
+ period: l,
17
+ hideRewardLinks: m = !1,
17
18
  children: n,
18
- className: d,
19
- open: g
19
+ className: p,
20
+ open: k
20
21
  }) {
21
- const m = r !== void 0 && r > 0;
22
+ const c = a !== void 0 && a > 0;
22
23
  return /* @__PURE__ */ e(
23
- N,
24
+ O,
24
25
  {
25
26
  placement: "bottom",
26
- title: /* @__PURE__ */ e("span", { className: d, children: n }),
27
- triggerClassName: d,
28
- open: g,
29
- children: m ? /* @__PURE__ */ e(
30
- $,
27
+ title: /* @__PURE__ */ e("span", { className: p, children: n }),
28
+ triggerClassName: p,
29
+ open: k,
30
+ children: c ? /* @__PURE__ */ e(
31
+ S,
31
32
  {
32
- supplyApy: l,
33
- maxLeverage: r,
34
- collateralApy: y,
35
- borrowApy: s,
36
- quotaRate: i,
37
- period: t
33
+ supplyApy: t,
34
+ maxLeverage: a,
35
+ collateralApy: g,
36
+ borrowApy: i,
37
+ quotaRate: d,
38
+ period: l,
39
+ hideRewardLinks: m
38
40
  }
39
- ) : /* @__PURE__ */ e(h, { data: l, period: t })
41
+ ) : /* @__PURE__ */ e(
42
+ I,
43
+ {
44
+ data: t,
45
+ period: l,
46
+ hideRewardLinks: m
47
+ }
48
+ )
40
49
  }
41
50
  );
42
51
  }
43
- function $({
44
- supplyApy: l,
45
- maxLeverage: r,
46
- collateralApy: y,
47
- borrowApy: s,
48
- quotaRate: i,
49
- period: t
52
+ function S({
53
+ supplyApy: t,
54
+ maxLeverage: a,
55
+ collateralApy: g,
56
+ borrowApy: i,
57
+ quotaRate: d,
58
+ period: l,
59
+ hideRewardLinks: m
50
60
  }) {
51
- const n = y, d = n ? R(n) : [], g = T(l), m = x(l), k = s != null || i != null ? (s ?? 0) + (i ?? 0) : void 0, f = g.filter((o) => o.multiplier != null);
52
- return /* @__PURE__ */ p(
53
- A,
61
+ const n = g, p = n ? R(n) : [], k = T(t), c = $(t), w = i != null || d != null ? (i ?? 0) + (d ?? 0) : void 0, B = k.filter((o) => o.multiplier != null);
62
+ return /* @__PURE__ */ r(
63
+ v,
54
64
  {
55
65
  title: /* @__PURE__ */ e(
56
- a,
66
+ s,
57
67
  {
58
- messageId: w(
59
- t,
68
+ messageId: f(
69
+ l,
60
70
  "components.yieldBreakdown.titleNetAtLeverage",
61
71
  "components.yieldBreakdown.titleNetAtLeverage7d"
62
72
  ),
63
- values: { leverage: P(r) }
73
+ values: { leverage: N(a) }
64
74
  }
65
75
  ),
66
- chip: c(m, !0),
67
- chipPositive: m > 0,
76
+ chip: u(c, !0),
77
+ chipPositive: c > 0,
68
78
  children: [
69
79
  n?.organicApy != null ? /* @__PURE__ */ e(
70
- u,
80
+ y,
71
81
  {
72
82
  muted: n.organicApy < 0,
73
83
  label: /* @__PURE__ */ e(
74
- a,
84
+ s,
75
85
  {
76
- messageId: w(
77
- t,
86
+ messageId: f(
87
+ l,
78
88
  "components.yieldBreakdown.collateralApy",
79
89
  "components.yieldBreakdown.collateralApy7d"
80
90
  )
81
91
  }
82
92
  ),
83
- value: c(n.organicApy)
93
+ value: u(n.organicApy)
84
94
  }
85
95
  ) : null,
86
- d.map(
96
+ p.map(
87
97
  (o) => o.supplyApr == null ? null : /* @__PURE__ */ e(
88
- u,
98
+ y,
89
99
  {
90
100
  muted: o.supplyApr < 0,
91
- label: /* @__PURE__ */ p("span", { className: "inline-flex items-center gap-1.5", children: [
92
- /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(
93
- a,
94
- {
95
- messageId: "components.apyParts.extraAPY",
96
- values: { symbol: o.token.symbol }
97
- }
98
- ) }),
99
- /* @__PURE__ */ e(I, { token: o.token, size: 20 })
101
+ label: /* @__PURE__ */ r("span", { className: "flex flex-col gap-0.5", children: [
102
+ /* @__PURE__ */ r("span", { className: "inline-flex items-center gap-1.5", children: [
103
+ /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(
104
+ s,
105
+ {
106
+ messageId: "components.apyParts.extraAPY",
107
+ values: { symbol: o.token.symbol }
108
+ }
109
+ ) }),
110
+ /* @__PURE__ */ e(x, { token: o.token, size: 20 })
111
+ ] }),
112
+ m ? null : /* @__PURE__ */ e(h, { links: o.links })
100
113
  ] }),
101
- value: c(o.supplyApr)
114
+ value: u(o.supplyApr)
102
115
  },
103
116
  `incentive-${o.token.address}-${o.supplyApr}`
104
117
  )
105
118
  ),
106
- k != null ? /* @__PURE__ */ e(
107
- u,
119
+ w != null ? /* @__PURE__ */ e(
120
+ y,
108
121
  {
109
122
  muted: !0,
110
123
  label: /* @__PURE__ */ e(
111
- a,
124
+ s,
112
125
  {
113
- messageId: w(
114
- t,
126
+ messageId: f(
127
+ l,
115
128
  "components.yieldBreakdown.borrowRate",
116
129
  "components.yieldBreakdown.borrowRate7d"
117
130
  )
118
131
  }
119
132
  ),
120
- value: c(k)
133
+ value: u(w)
121
134
  }
122
135
  ) : null,
123
- f.length > 0 ? /* @__PURE__ */ p(B, { children: [
124
- /* @__PURE__ */ e(v, {}),
125
- f.map((o) => /* @__PURE__ */ e(
126
- u,
136
+ B.length > 0 ? /* @__PURE__ */ r(A, { children: [
137
+ /* @__PURE__ */ e(b, {}),
138
+ B.map((o) => /* @__PURE__ */ e(
139
+ y,
127
140
  {
128
- label: /* @__PURE__ */ p("span", { className: "inline-flex items-center gap-1.5", children: [
141
+ label: /* @__PURE__ */ r("span", { className: "inline-flex items-center gap-1.5", children: [
129
142
  /* @__PURE__ */ e("span", { children: /* @__PURE__ */ e(
130
- a,
143
+ s,
131
144
  {
132
145
  messageId: "components.yieldBreakdown.programPoints",
133
146
  values: { name: o.name }
134
147
  }
135
148
  ) }),
136
149
  /* @__PURE__ */ e(
137
- b,
150
+ P,
138
151
  {
139
152
  reward: {
140
153
  name: o.name,
@@ -154,5 +167,5 @@ function $({
154
167
  );
155
168
  }
156
169
  export {
157
- E as YieldBreakdownTooltip
170
+ H as YieldBreakdownTooltip
158
171
  };
@@ -44,4 +44,9 @@ export interface ApyBreakdownRowProps {
44
44
  readonly captionTestId?: string;
45
45
  }
46
46
  export declare function ApyBreakdownRow({ label, value, subtext, muted, testId, valueTestId, captionTestId, }: ApyBreakdownRowProps): React.ReactElement;
47
+ export interface RewardLinksProps {
48
+ readonly links?: readonly string[];
49
+ }
50
+ /** "merkl.xyz ↗" under an incentive row, one link per campaign page. */
51
+ export declare function RewardLinks({ links, }: RewardLinksProps): React.ReactElement | null;
47
52
  export declare function ApyBreakdownDivider(): React.ReactElement;
@@ -7,6 +7,8 @@ export interface PoolApyBreakdownCardProps {
7
7
  readonly data?: ApyBreakdown;
8
8
  /** When `"7d"`, labels carry the averaging-window suffix. */
9
9
  readonly period?: "7d";
10
+ /** Leaves the campaign links out, where the breakdown sits in a list. */
11
+ readonly hideRewardLinks?: boolean;
10
12
  }
11
13
  /**
12
14
  * How a pool's net APY is arrived at: base yield plus incentives.
@@ -15,4 +17,4 @@ export interface PoolApyBreakdownCardProps {
15
17
  * that row is still shown as Incentive APY at 0%. Points sit under a divider
16
18
  * when present; they are not addends.
17
19
  */
18
- export declare function PoolApyBreakdownCard({ data, period, }: PoolApyBreakdownCardProps): React.ReactElement;
20
+ export declare function PoolApyBreakdownCard({ data, period, hideRewardLinks, }: PoolApyBreakdownCardProps): React.ReactElement;
@@ -24,6 +24,8 @@ export interface StrategyApyBreakdownCardProps {
24
24
  readonly showFormula?: boolean;
25
25
  /** When `"7d"`, labels carry the averaging-window suffix. */
26
26
  readonly period?: "7d";
27
+ /** Leaves the campaign links out, where the breakdown sits in a list. */
28
+ readonly hideRewardLinks?: boolean;
27
29
  }
28
30
  /**
29
31
  * How a strategy's net APY is arrived at: collateral yield on the leveraged
@@ -42,4 +44,4 @@ export interface StrategyApyBreakdownCardProps {
42
44
  * remainder, so the column adds up to the chip even when each reward rounds
43
45
  * its own way.
44
46
  */
45
- export declare function StrategyApyBreakdownCard({ data, leverage, showFormula, period, }: StrategyApyBreakdownCardProps): React.ReactElement;
47
+ export declare function StrategyApyBreakdownCard({ data, leverage, showFormula, period, hideRewardLinks, }: StrategyApyBreakdownCardProps): React.ReactElement;
@@ -35,6 +35,8 @@ export interface CompoundAPYProps {
35
35
  tooltip?: boolean;
36
36
  /** When `"7d"`, tooltip labels carry the averaging-window suffix. */
37
37
  period?: "7d";
38
+ /** Forwarded to {@link YieldBreakdownTooltip}. */
39
+ hideRewardLinks?: boolean;
38
40
  className?: string;
39
41
  }
40
42
  /**
@@ -43,4 +45,4 @@ export interface CompoundAPYProps {
43
45
  * No `tokensList`, no external APY, no 7D history, no "soon" points state.
44
46
  * For the legacy percent-based API see {@link CompoundAPYLegacy}.
45
47
  */
46
- export declare function CompoundAPY({ apy, maxLeverage, collateralApy, borrowApy, quotaRate, decimals, tooltip, period, className, }: CompoundAPYProps): import("react").JSX.Element;
48
+ export declare function CompoundAPY({ apy, maxLeverage, collateralApy, borrowApy, quotaRate, decimals, tooltip, period, hideRewardLinks, className, }: CompoundAPYProps): import("react").JSX.Element;
@@ -26,6 +26,8 @@ export interface YieldBreakdownTooltipProps {
26
26
  quotaRate?: Bps;
27
27
  /** When `"7d"`, labels carry the averaging-window suffix. */
28
28
  period?: "7d";
29
+ /** Leaves the campaign links out, where the breakdown sits in a list. */
30
+ hideRewardLinks?: boolean;
29
31
  children?: React.ReactNode;
30
32
  className?: string;
31
33
  /** Controlled open state. Specs pass it because jsdom has no hover. */
@@ -35,4 +37,4 @@ export interface YieldBreakdownTooltipProps {
35
37
  * Earn APY tooltip — a pool hands {@link PoolApyBreakdownCard}; a strategy
36
38
  * (positions list) still itemises unlevered collateral, borrow and rewards.
37
39
  */
38
- export declare function YieldBreakdownTooltip({ supplyApy, maxLeverage, collateralApy, borrowApy, quotaRate, period, children, className, open, }: YieldBreakdownTooltipProps): React.JSX.Element;
40
+ export declare function YieldBreakdownTooltip({ supplyApy, maxLeverage, collateralApy, borrowApy, quotaRate, period, hideRewardLinks, children, className, open, }: YieldBreakdownTooltipProps): React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/ui-kit",
3
- "version": "4.5.2",
3
+ "version": "4.6.1",
4
4
  "description": "Internal UI components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -110,7 +110,7 @@
110
110
  "@commitlint/cli": "^20.1.0",
111
111
  "@commitlint/config-conventional": "^20.0.0",
112
112
  "@gearbox-protocol/biome-config": "^1.0.2",
113
- "@gearbox-protocol/sdk": "16.0.0",
113
+ "@gearbox-protocol/sdk": "17.5.0",
114
114
  "@rollup/plugin-typescript": "^12.3.0",
115
115
  "@storybook/addon-a11y": "^10.0.8",
116
116
  "@storybook/addon-docs": "^10.0.8",