@gearbox-protocol/ui-kit 4.0.0-next.37 → 4.0.0-next.38

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.
@@ -1,25 +1,25 @@
1
- import { jsx as f, jsxs as T, Fragment as S } from "react/jsx-runtime";
2
- import { useRef as p, useState as v, useCallback as b, useMemo as w, useEffect as N } from "react";
1
+ import { jsx as f, jsxs as T, Fragment as k } from "react/jsx-runtime";
2
+ import { useRef as g, useState as v, useCallback as m, useMemo as w, useEffect as N } from "react";
3
3
  import { useNavigationAdapter as C } from "../navigation-context/navigation-context.js";
4
4
  import "@gearbox-protocol/sdk/onchain";
5
- import { cn as m } from "../../utils/cn.js";
5
+ import { cn as b } from "../../utils/cn.js";
6
6
  import "sonner";
7
7
  import "@gearbox-protocol/sdk/common-utils";
8
8
  import "luxon";
9
9
  import "../../utils/z-index.js";
10
- function U(n) {
10
+ function S(n) {
11
11
  if (!n) return null;
12
12
  const { width: r = 0, height: s = 0 } = n?.getBoundingClientRect() || {}, i = n?.offsetTop || 0, o = n?.offsetLeft || 0;
13
13
  return { width: r, height: s, left: o, top: i };
14
14
  }
15
- function $(n, r, s) {
16
- const i = p(null), [o, u] = v(null), l = p(null), c = b((e) => {
15
+ function U(n, r, s) {
16
+ const i = g(null), [o, u] = v(null), l = g(null), c = m((e) => {
17
17
  u(e), l.current = e;
18
18
  }, []);
19
19
  return N(() => {
20
20
  const e = s.current[n], d = () => {
21
- const a = U(e), h = a?.height !== l.current?.height, x = a?.width !== l.current?.width, g = a?.left !== l.current?.left, y = a?.top !== l.current?.top;
22
- (h || x || g || y) && c(a);
21
+ const a = S(e), h = a?.height !== l.current?.height, p = a?.width !== l.current?.width, x = a?.left !== l.current?.left, y = a?.top !== l.current?.top;
22
+ (h || p || x || y) && c(a);
23
23
  };
24
24
  i.current = d, d();
25
25
  const t = e ? new ResizeObserver(d) : null;
@@ -43,16 +43,16 @@ function B({
43
43
  tabItemWrapPadding: o,
44
44
  variant: u = "auto"
45
45
  }) {
46
- const l = p(null), c = p({}), e = $(
46
+ const l = g(null), c = g({}), e = U(
47
47
  s.id,
48
48
  l.current,
49
49
  c
50
50
  ), d = (t, a) => () => s.handleTabChange(t, a);
51
- return /* @__PURE__ */ f("div", { className: m("relative w-full flex flex-col flex-wrap", n), children: /* @__PURE__ */ T(
51
+ return /* @__PURE__ */ f("div", { className: b("relative w-full flex flex-col flex-wrap", n), children: /* @__PURE__ */ T(
52
52
  "div",
53
53
  {
54
54
  ref: l,
55
- className: m(
55
+ className: b(
56
56
  "relative w-full max-w-full grow-0 shrink-0 basis-full flex items-stretch overflow-x-auto overflow-y-hidden",
57
57
  "scrollbar-hidden",
58
58
  i && "after:content-[''] after:absolute after:bottom-0 after:left-0 after:right-0 after:h-px after:bg-border"
@@ -69,20 +69,26 @@ function B({
69
69
  }
70
70
  ),
71
71
  r.map((t, a, h) => {
72
- const x = a === h.length - 1;
72
+ const p = a === h.length - 1;
73
73
  return /* @__PURE__ */ f(
74
74
  "button",
75
75
  {
76
- ref: (g) => {
77
- c.current[t.id] = g;
76
+ ref: (x) => {
77
+ c.current[t.id] = x;
78
78
  },
79
79
  type: "button",
80
80
  onClick: t.disabled ? void 0 : d(t.id, a),
81
81
  disabled: t.disabled,
82
- className: m(
83
- "flex items-center bg-transparent border-none shrink-0 text-foreground outline-none",
82
+ className: b(
83
+ // `outline-none` with nothing in its place left these triggers
84
+ // with no visible focus at all: a keyboard reader tabbing the
85
+ // strip could not see where they were. The ring matches the
86
+ // Radix-backed `Tabs` trigger so the two look the same when
87
+ // focused.
88
+ "flex items-center bg-transparent border-none shrink-0 text-foreground",
89
+ "outline-none ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
84
90
  o ? "" : "p-0 pb-3.5",
85
- u === "equal" ? "grow shrink-0 basis-[0%] justify-center min-w-0" : !x && "mr-10 max-[500px]:mr-8",
91
+ u === "equal" ? "grow shrink-0 basis-[0%] justify-center min-w-0" : !p && "mr-10 max-[500px]:mr-8",
86
92
  t.disabled && "cursor-not-allowed",
87
93
  !t.disabled && "cursor-pointer",
88
94
  !t.disabled && "hover:text-foreground hover:[&>*]:text-foreground"
@@ -104,11 +110,11 @@ function F({
104
110
  textSize: i = "default",
105
111
  amount: o
106
112
  }) {
107
- return /* @__PURE__ */ T(S, { children: [
113
+ return /* @__PURE__ */ T(k, { children: [
108
114
  n && /* @__PURE__ */ f(
109
115
  "div",
110
116
  {
111
- className: m(
117
+ className: b(
112
118
  "mr-3",
113
119
  s ? "text-foreground" : "text-secondary-foreground"
114
120
  ),
@@ -118,7 +124,7 @@ function F({
118
124
  /* @__PURE__ */ f(
119
125
  "div",
120
126
  {
121
- className: m(
127
+ className: b(
122
128
  "m-0 p-0 whitespace-nowrap",
123
129
  i === "default" && "text-sm leading-[17px] font-normal",
124
130
  i === "unset" && "text-[unset] leading-[unset] font-[unset]",
@@ -131,7 +137,7 @@ function F({
131
137
  ] });
132
138
  }
133
139
  function I(n, r = 0) {
134
- const [s, i] = v(n), [o, u] = v(r), l = b((c, e) => {
140
+ const [s, i] = v(n), [o, u] = v(r), l = m((c, e) => {
135
141
  i(c), u(e);
136
142
  }, []);
137
143
  return { id: s, index: o, handleTabChange: l };
@@ -143,7 +149,7 @@ function M(n) {
143
149
  {}
144
150
  ),
145
151
  [n]
146
- ), l = w(() => i.slice(1).toLowerCase(), [i]), { id: c, index: e } = u[l] || {}, d = b(
152
+ ), l = w(() => i.slice(1).toLowerCase(), [i]), { id: c, index: e } = u[l] || {}, d = m(
147
153
  (t) => {
148
154
  o(`#${t}`);
149
155
  },
@@ -166,7 +172,7 @@ function D({
166
172
  {}
167
173
  ),
168
174
  [n]
169
- ), l = b(
175
+ ), l = m(
170
176
  (d) => {
171
177
  o(`${r}/${d}`);
172
178
  },
@@ -1,18 +1,18 @@
1
1
  import { jsxs as v, jsx as o } from "react/jsx-runtime";
2
- import { useMemo as I, useCallback as fe, useRef as C } from "react";
3
- import { toast as be } from "sonner";
4
- import { SectionHeading as we } from "../base/section-heading/section-heading.js";
5
- import { useIsMobile as he } from "../../hooks/use-media-query.js";
2
+ import { useMemo as I, useCallback as be, useRef as C } from "react";
3
+ import { toast as we } from "sonner";
4
+ import { SectionHeading as he } from "../base/section-heading/section-heading.js";
5
+ import { useIsMobile as ve } from "../../hooks/use-media-query.js";
6
6
  import "@gearbox-protocol/sdk/onchain";
7
- import { cn as ve } from "../../utils/cn.js";
7
+ import { cn as pe } from "../../utils/cn.js";
8
8
  import "@gearbox-protocol/sdk/common-utils";
9
9
  import "luxon";
10
10
  import "../../utils/z-index.js";
11
- import { DEFAULT_SERIES_COLORS as T, getSeriesColorPalette as pe, GraphLegend as xe } from "../graph/graph.js";
12
- import { GraphViewWithData as ge } from "../graph/graph-view.js";
13
- import { Select as Se, SelectTrigger as ye, SelectValue as Ae, SelectContent as Ie, SelectItem as Ce } from "../select/select.js";
14
- import { GraphDropdown as Ne } from "./graph-dropdown.js";
15
- const Me = ({ size: t = 16 }) => /* @__PURE__ */ v(
11
+ import { DEFAULT_SERIES_COLORS as T, getSeriesColorPalette as xe, GraphLegend as ge } from "../graph/graph.js";
12
+ import { GraphViewWithData as Se } from "../graph/graph-view.js";
13
+ import { Select as ye, SelectTrigger as Ae, SelectValue as Ie, SelectContent as Ce, SelectItem as Ne } from "../select/select.js";
14
+ import { GraphDropdown as ke } from "./graph-dropdown.js";
15
+ const Ee = ({ size: t = 16 }) => /* @__PURE__ */ v(
16
16
  "svg",
17
17
  {
18
18
  width: t,
@@ -29,7 +29,7 @@ const Me = ({ size: t = 16 }) => /* @__PURE__ */ v(
29
29
  /* @__PURE__ */ o("path", { d: "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" })
30
30
  ]
31
31
  }
32
- ), ke = ({ size: t = 16 }) => /* @__PURE__ */ v(
32
+ ), Me = ({ size: t = 16 }) => /* @__PURE__ */ v(
33
33
  "svg",
34
34
  {
35
35
  width: t,
@@ -46,16 +46,16 @@ const Me = ({ size: t = 16 }) => /* @__PURE__ */ v(
46
46
  /* @__PURE__ */ o("path", { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" })
47
47
  ]
48
48
  }
49
- ), Ee = {
49
+ ), Re = {
50
50
  timeScale: { borderVisible: !1 },
51
51
  rightPriceScale: { borderVisible: !1 },
52
52
  leftPriceScale: { borderVisible: !1 }
53
- }, X = "ui-kit:tradingview-series-colors:";
53
+ }, q = "ui-kit:tradingview-series-colors:";
54
54
  function j(t) {
55
55
  if (typeof window > "u" || !window.localStorage)
56
56
  return /* @__PURE__ */ new Map();
57
57
  try {
58
- const r = window.localStorage.getItem(X + t);
58
+ const r = window.localStorage.getItem(q + t);
59
59
  if (!r) return /* @__PURE__ */ new Map();
60
60
  const c = JSON.parse(r);
61
61
  return c == null || typeof c != "object" ? /* @__PURE__ */ new Map() : new Map(
@@ -67,63 +67,64 @@ function j(t) {
67
67
  return /* @__PURE__ */ new Map();
68
68
  }
69
69
  }
70
- function Re(t, r) {
70
+ function Oe(t, r) {
71
71
  if (!(typeof window > "u" || !window.localStorage))
72
72
  try {
73
73
  window.localStorage.setItem(
74
- X + t,
74
+ q + t,
75
75
  JSON.stringify(Object.fromEntries(r))
76
76
  );
77
77
  } catch {
78
78
  }
79
79
  }
80
- function $(t, r) {
80
+ function X(t, r) {
81
81
  if (r.size === 0) return;
82
82
  const c = j(t);
83
83
  for (const [n, p] of r)
84
84
  c.set(n, p);
85
- Re(t, c);
85
+ Oe(t, c);
86
86
  }
87
- function Ze({
87
+ function De({
88
88
  data: t,
89
89
  yMeasureUnit: r,
90
90
  height: c = 306,
91
91
  defaultGraph: n,
92
92
  onGraphSelected: p,
93
93
  graphs: f,
94
- isMultipleSelect: q,
95
- range: Q,
94
+ isMultipleSelect: Q,
95
+ range: Y,
96
96
  rangeList: S,
97
- setRange: Y,
97
+ setRange: Z,
98
98
  onGraphExpanded: N,
99
- isGraphExpanded: Z,
99
+ isGraphExpanded: D,
100
100
  onUnselectSeries: L,
101
- graphsWithNoData: D,
102
- loadingGraphs: M,
103
- isLoading: V,
104
- noDataMessage: _ = "No data available for this graph",
105
- currentValueDecimals: P,
106
- containerClassName: U,
107
- useSharedPriceScale: K,
108
- showCurrentValue: G,
109
- yScaleMin: ee,
110
- yScaleMinMultiple: te,
101
+ legendMarkers: V,
102
+ graphsWithNoData: P,
103
+ loadingGraphs: k,
104
+ isLoading: _,
105
+ noDataMessage: z = "No data available for this graph",
106
+ currentValueDecimals: U,
107
+ containerClassName: K,
108
+ useSharedPriceScale: G,
109
+ showCurrentValue: ee,
110
+ yScaleMin: te,
111
+ yScaleMinMultiple: re,
111
112
  seriesColorPersistenceKey: d,
112
- title: re,
113
- trailing: k,
114
- ...ne
113
+ title: ne,
114
+ trailing: E,
115
+ ...oe
115
116
  }) {
116
- const x = I(() => Array.isArray(t) ? t : t ? [t] : [], [t]), oe = I(() => Array.isArray(t) && t.length > 1, [t]), z = he(), le = fe(
117
+ const x = I(() => Array.isArray(t) ? t : t ? [t] : [], [t]), le = I(() => Array.isArray(t) && t.length > 1, [t]), F = ve(), ie = be(
117
118
  (u, y) => {
118
- be.error(_);
119
+ we.error(z);
119
120
  },
120
- [_]
121
- ), ie = I(() => {
121
+ [z]
122
+ ), se = I(() => {
122
123
  if (r)
123
124
  return Array.isArray(r) ? r[0] : r;
124
- }, [r]), se = !!(p && f && n), i = C(/* @__PURE__ */ new Map()), b = C(0), F = C(!1);
125
- if (f && f.length > 0 && !F.current) {
126
- F.current = !0;
125
+ }, [r]), ce = !!(p && f && n), i = C(/* @__PURE__ */ new Map()), b = C(0), H = C(!1);
126
+ if (f && f.length > 0 && !H.current) {
127
+ H.current = !0;
127
128
  const u = d ? j(d) : /* @__PURE__ */ new Map(), y = String(f[0].value);
128
129
  i.current.set(y, 0), b.current = 1;
129
130
  for (let e = 1; e < f.length; e++) {
@@ -132,7 +133,7 @@ function Ze({
132
133
  const g = u.get(m) ?? e;
133
134
  i.current.set(m, g), b.current = Math.max(b.current, g + 1);
134
135
  }
135
- d && $(
136
+ d && X(
136
137
  d,
137
138
  i.current
138
139
  );
@@ -163,15 +164,15 @@ function Ze({
163
164
  }
164
165
  i.current.set(R, s), b.current = s + 1;
165
166
  }
166
- const me = i.current.get(R) ?? 0, O = pe(me), ae = [...e?.data || []].sort((l, s) => {
167
+ const ae = i.current.get(R) ?? 0, O = xe(ae), fe = [...e?.data || []].sort((l, s) => {
167
168
  const a = typeof l.time == "number" ? l.time : Number(l.time), A = typeof s.time == "number" ? s.time : Number(s.time);
168
169
  return a - A;
169
170
  }).reduce((l, s) => {
170
171
  const a = s.time;
171
172
  return l.length === 0 || l[l.length - 1].time !== a ? l.push({ time: a, value: s.value }) : l[l.length - 1] = { time: a, value: s.value }, l;
172
- }, []), J = e?.lineColor ?? e?.color ?? void 0;
173
+ }, []), $ = e?.lineColor ?? e?.color ?? void 0;
173
174
  return {
174
- data: ae,
175
+ data: fe,
175
176
  label: h,
176
177
  ...e?.id != null && { id: e.id },
177
178
  yMeasureUnit: u?.[m] ?? (Array.isArray(r) ? void 0 : r),
@@ -184,8 +185,8 @@ function Ze({
184
185
  ...e?.lineStyle != null && {
185
186
  lineStyle: e.lineStyle
186
187
  },
187
- ...J != null ? {
188
- lineColor: J,
188
+ ...$ != null ? {
189
+ lineColor: $,
189
190
  ...e?.topColor != null && {
190
191
  topColor: e.topColor
191
192
  },
@@ -199,46 +200,46 @@ function Ze({
199
200
  }
200
201
  };
201
202
  });
202
- return d && i.current.size > 0 && $(
203
+ return d && i.current.size > 0 && X(
203
204
  d,
204
205
  i.current
205
206
  ), y;
206
- }, [x, n, r, d]), H = V !== void 0 ? V : M !== void 0 ? M.size > 0 : oe && x.length > 0 ? x.some((u) => !u) : !t, B = C(w);
207
- w.length > 0 && (B.current = w);
208
- const W = w.length > 0 ? w : H ? B.current : w, E = re, ce = !z && N ? !0 : S.length > 0 || se || E != null || k != null, ue = p && f && n ? /* @__PURE__ */ o(
209
- Ne,
207
+ }, [x, n, r, d]), B = _ !== void 0 ? _ : k !== void 0 ? k.size > 0 : le && x.length > 0 ? x.some((u) => !u) : !t, W = C(w);
208
+ w.length > 0 && (W.current = w);
209
+ const J = w.length > 0 ? w : B ? W.current : w, M = ne, ue = !F && N ? !0 : S.length > 0 || ce || M != null || E != null, de = p && f && n ? /* @__PURE__ */ o(
210
+ ke,
210
211
  {
211
212
  onSelected: p,
212
213
  items: f,
213
214
  defaultItem: n,
214
- multiple: q,
215
- graphsWithNoData: D,
216
- loadingGraphs: M,
217
- onNoDataSelected: le
215
+ multiple: Q,
216
+ graphsWithNoData: P,
217
+ loadingGraphs: k,
218
+ onNoDataSelected: ie
218
219
  }
219
- ) : E != null ? /* @__PURE__ */ o(we, { className: "min-w-0 truncate", children: E }) : null, de = ce && /* @__PURE__ */ v("div", { className: "flex w-full flex-row flex-wrap items-center justify-between gap-3", children: [
220
- /* @__PURE__ */ o("div", { className: "min-w-0 flex-1", children: ue }),
220
+ ) : M != null ? /* @__PURE__ */ o(he, { className: "min-w-0 truncate", children: M }) : null, me = ue && /* @__PURE__ */ v("div", { className: "flex w-full flex-row flex-wrap items-center justify-between gap-3", children: [
221
+ /* @__PURE__ */ o("div", { className: "min-w-0 flex-1", children: de }),
221
222
  /* @__PURE__ */ v("div", { className: "flex shrink-0 flex-row flex-nowrap items-center gap-3", children: [
222
- k,
223
- k != null && S.length > 0 ? /* @__PURE__ */ o("div", { className: "h-4 w-px shrink-0 bg-border" }) : null,
224
- S.length > 0 ? /* @__PURE__ */ v(Se, { value: Q, onValueChange: Y, children: [
223
+ E,
224
+ E != null && S.length > 0 ? /* @__PURE__ */ o("div", { className: "h-4 w-px shrink-0 bg-border" }) : null,
225
+ S.length > 0 ? /* @__PURE__ */ v(ye, { value: Y, onValueChange: Z, children: [
225
226
  /* @__PURE__ */ o(
226
- ye,
227
+ Ae,
227
228
  {
228
229
  size: "sm",
229
230
  className: "h-8 w-auto min-w-[4.5rem] gap-1.5 border-border bg-muted shadow-none",
230
- children: /* @__PURE__ */ o(Ae, {})
231
+ children: /* @__PURE__ */ o(Ie, {})
231
232
  }
232
233
  ),
233
- /* @__PURE__ */ o(Ie, { align: "end", children: S.map((u) => /* @__PURE__ */ o(Ce, { value: u.value, children: u.label }, u.value)) })
234
+ /* @__PURE__ */ o(Ce, { align: "end", children: S.map((u) => /* @__PURE__ */ o(Ne, { value: u.value, children: u.label }, u.value)) })
234
235
  ] }) : null,
235
- !z && N && /* @__PURE__ */ o(
236
+ !F && N && /* @__PURE__ */ o(
236
237
  "button",
237
238
  {
238
239
  type: "button",
239
240
  className: "flex min-h-[26px] min-w-[44px] cursor-pointer items-center justify-center rounded-md border border-muted bg-muted px-2.5 py-1.5 text-center text-xs font-medium leading-[14px] text-muted-foreground transition-colors hover:border-secondary focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
240
241
  onClick: N,
241
- children: Z ? /* @__PURE__ */ o(ke, { size: 16 }) : /* @__PURE__ */ o(Me, { size: 16 })
242
+ children: D ? /* @__PURE__ */ o(Me, { size: 16 }) : /* @__PURE__ */ o(Ee, { size: 16 })
242
243
  }
243
244
  )
244
245
  ] })
@@ -246,12 +247,12 @@ function Ze({
246
247
  return /* @__PURE__ */ v(
247
248
  "div",
248
249
  {
249
- className: ve(
250
+ className: pe(
250
251
  "flex w-full flex-col gap-3 rounded-lg border border-border bg-card p-4 shadow-none",
251
- U
252
+ K
252
253
  ),
253
254
  children: [
254
- de,
255
+ me,
255
256
  /* @__PURE__ */ o(
256
257
  "div",
257
258
  {
@@ -261,11 +262,11 @@ function Ze({
261
262
  },
262
263
  className: "w-full",
263
264
  children: /* @__PURE__ */ o(
264
- ge,
265
+ Se,
265
266
  {
266
- ...ne,
267
+ ...oe,
267
268
  series: w,
268
- loading: H,
269
+ loading: B,
269
270
  size: c ? "full" : "default",
270
271
  padding: "none",
271
272
  variant: "ghost",
@@ -273,22 +274,23 @@ function Ze({
273
274
  containerClassName: "h-full overflow-hidden rounded-none border-0 bg-transparent shadow-none",
274
275
  showLegend: !1,
275
276
  onUnselectSeries: L,
276
- yMeasureUnit: ie,
277
- currentValueDecimals: P,
278
- useSharedPriceScale: K,
279
- showCurrentValue: G,
280
- yScaleMin: ee,
281
- yScaleMinMultiple: te,
277
+ yMeasureUnit: se,
278
+ currentValueDecimals: U,
279
+ useSharedPriceScale: G,
280
+ showCurrentValue: ee,
281
+ yScaleMin: te,
282
+ yScaleMinMultiple: re,
282
283
  hideDefaultTooltip: !0,
283
- optionsOverrides: Ee
284
+ optionsOverrides: Re
284
285
  }
285
286
  )
286
287
  }
287
288
  ),
288
- W.length > 0 ? /* @__PURE__ */ o(
289
- xe,
289
+ J.length > 0 || (V?.length ?? 0) > 0 ? /* @__PURE__ */ o(
290
+ ge,
290
291
  {
291
- series: W,
292
+ series: J,
293
+ markers: V,
292
294
  onUnselect: L,
293
295
  inline: !0
294
296
  }
@@ -298,5 +300,5 @@ function Ze({
298
300
  );
299
301
  }
300
302
  export {
301
- Ze as TradingView
303
+ De as TradingView
302
304
  };
@@ -48,19 +48,19 @@ const e = {
48
48
  "components.filterModal.apply": "Apply",
49
49
  "components.APY.tip": "These APYs are derived from the underlying protocols’ APIs and may differ in reality. Check respective protocols for their methodology.",
50
50
  "components.creditSessionDetailedLiquidation.graph.noData": "No data",
51
- "components.creditSessionDetailedLiquidation.graph.legend.point": "Current price",
51
+ "components.creditSessionDetailedLiquidation.graph.legend.point": "Current Price",
52
52
  "components.creditSessionDetailedLiquidation.graph.legend.area": "Liquidation Area",
53
53
  "components.creditSessionDetailedLiquidation.graph.tip.hf": "Health Factor",
54
54
  "components.creditSessionDetailedLiquidation.graph.tip.price": "Price",
55
55
  "components.creditSessionDetailedLiquidation.table.noData": "No data",
56
56
  "components.creditSessionDetailedLiquidation.table.seeGraph": "See graph",
57
57
  "components.creditSessionDetailedLiquidation.table.asset": "Asset",
58
- "components.creditSessionDetailedLiquidation.table.currentPrice": "Current price",
59
- "components.creditSessionDetailedLiquidation.table.modelPrice": "Model price",
58
+ "components.creditSessionDetailedLiquidation.table.currentPrice": "Current Price",
59
+ "components.creditSessionDetailedLiquidation.table.modelPrice": "Model Price",
60
60
  "components.apyParts.features.points": "Points",
61
61
  "components.apyParts.features.incent": "Incent.",
62
62
  "components.apyParts.supplyAPY": "Organic APY",
63
- "components.apyParts.title": "APY type",
63
+ "components.apyParts.title": "APY Type",
64
64
  "components.apyParts.supplyAPY.tip": "Yield from lending funds",
65
65
  "components.apyParts.tokenYield": "Intrinsic APY",
66
66
  "components.apyParts.tokenYield.tip": "Yield from holding wstETH",
@@ -87,10 +87,10 @@ const e = {
87
87
  "components.openCopyButtons.copy": "Copy to clipboard",
88
88
  "components.openCopyButtons.explorer": "View in explorer",
89
89
  "components.poolAssetsTable.asset": "Name",
90
- "components.poolAssetsTable.rate": "Effective rate",
90
+ "components.poolAssetsTable.rate": "Effective Rate",
91
91
  "components.poolAssetsTable.exposure": "Exposure",
92
92
  "components.poolAssetsTable.cap": "Cap",
93
- "components.poolAssetsTable.capUtilization": "Cap utilization",
93
+ "components.poolAssetsTable.capUtilization": "Cap Utilization",
94
94
  "components.poolAssetsTable.usage": "{amount} of {total}",
95
95
  "components.poolAssetsTable.head.name": "Credit Manager",
96
96
  "components.poolAssetsTable.head.currentDebt": "Current Debt",
@@ -99,13 +99,13 @@ const e = {
99
99
  "components.creditManagerInfo.title": "Assets and LT’s",
100
100
  "components.creditManagerInfo.info.title": "Credit Managers",
101
101
  "components.creditManagerInfo.info.copy.tip": "Copy Credit Manager address",
102
- "components.creditManagerInfo.info.minDebt": "Min debt",
103
- "components.creditManagerInfo.info.maxDebt": "Max debt",
104
- "components.creditManagerInfo.info.liquidationFee": "Liquid. fee",
105
- "components.creditManagerInfo.info.liquidationPremium": "Liquid. premium",
106
- "components.creditManagerInfo.info.interestFee": "Interest fee",
107
- "components.creditManagerInfo.info.debtLimit": "Debt limit",
108
- "components.creditManagerInfo.info.maxEnabledTokens": "Max tokens",
102
+ "components.creditManagerInfo.info.minDebt": "Min Debt",
103
+ "components.creditManagerInfo.info.maxDebt": "Max Debt",
104
+ "components.creditManagerInfo.info.liquidationFee": "Liquid. Fee",
105
+ "components.creditManagerInfo.info.liquidationPremium": "Liquid. Premium",
106
+ "components.creditManagerInfo.info.interestFee": "Interest Fee",
107
+ "components.creditManagerInfo.info.debtLimit": "Debt Limit",
108
+ "components.creditManagerInfo.info.maxEnabledTokens": "Max Tokens",
109
109
  "dialogs.oraclesAndLTInfo.filter.hide0Quota": "Hide 0-Quota",
110
110
  "components.oraclesAndLTInfo.title": "Oracles and LTs",
111
111
  "components.oraclesAndLTTable.head.token": "Token",
@@ -140,7 +140,7 @@ const e = {
140
140
  "components.rewardsTooltip.without.extra.tip": "Any deposit through Gearbox",
141
141
  "components.rewardsTooltip.with.title": "With {leverage} Leverage",
142
142
  "components.rewardsTooltip.with.borrowRate": "{symbol} borrow rate",
143
- "components.rewardsTooltip.with.quotaRate": "Quota rate",
143
+ "components.rewardsTooltip.with.quotaRate": "Quota Rate",
144
144
  "components.rewardsTooltip.with.extra": "+ Extra APR",
145
145
  "components.rewardsTooltip.button": "Click to show rewards details",
146
146
  "components.strategiesTable.head.name": "Strategy",
@@ -164,12 +164,12 @@ const e = {
164
164
  "components.amountInput.inputTitle": "Token Amount",
165
165
  "components.leverageInput.label": "Leverage",
166
166
  "components.leverageInput.reset": "Reset",
167
- "components.leverageInput.available": "Available leverage",
168
- "components.healthFactorBlock.label": "Health factor",
167
+ "components.leverageInput.available": "Available Leverage",
168
+ "components.healthFactorBlock.label": "Health Factor",
169
169
  "components.healthFactorBlock.tip": "Health Factor is a numeric representation of your account 'health'. If your health factor drops below 1 or close to it, you might be liquidated.",
170
170
  "components.liquidationPriceBlock.label": "Liquidation Price",
171
171
  "components.liquidationPriceBlock.tip": "The asset price at which the account's health factor would reach 1 and become eligible for liquidation.",
172
- "components.timeToLiquidationBlock.label": "Time to liquidation",
172
+ "components.timeToLiquidationBlock.label": "Time to Liquidation",
173
173
  "components.timeToLiquidationBlock.tip": "Time to liquidation estimates how long the account can stay open if prices remain constant and no yield is earned—only accounting for borrow interest accrual.",
174
174
  "components.historyChart.error": "Couldn't load chart data",
175
175
  "components.historyChart.empty": "No data",
@@ -190,15 +190,15 @@ const e = {
190
190
  "components.strategyApyBreakdownCard.formula": "{leverage} × {base}",
191
191
  "components.strategyApyBreakdownCard.borrowFormula": "{leverage} × {totalRate} − {borrowRate}",
192
192
  "components.leveragePresetChips.label": "Leverage:",
193
- "components.liquidationParamsTable.lt": "Liquidation threshold",
194
- "components.liquidationParamsTable.penalty": "Liquidation discount",
195
- "components.liquidationParamsTable.premium": "Liquidation premium",
196
- "components.liquidationParamsTable.fee": "Liquidation fee",
197
- "components.borrowRateBlock.label": "Borrow rate",
193
+ "components.liquidationParamsTable.lt": "Liquidation Threshold",
194
+ "components.liquidationParamsTable.penalty": "Liquidation Discount",
195
+ "components.liquidationParamsTable.premium": "Liquidation Premium",
196
+ "components.liquidationParamsTable.fee": "Liquidation Fee",
197
+ "components.borrowRateBlock.label": "Borrow Rate",
198
198
  "components.borrowRateBlock.tip": "Borrow rate is displayed for your entire position size in total. You can reduce it in quota management.",
199
199
  "components.borrowRateBlock.description": "Your borrow rate consists of the Base Rate plus the Quota Rates for every asset separately.",
200
200
  "components.borrowRateBlock.baseRate": "Base Rate for Debt",
201
- "components.borrowRateBlock.normalization": "Rates normalization",
201
+ "components.borrowRateBlock.normalization": "Rates Normalization",
202
202
  "components.borrowRateBlock.normalization.tip": "Borrowers pay {quota} and {utilization}, which have a different base. Therefore, the total borrow rate value is normalized by Account value or Debt amount.",
203
203
  "components.transactionConfirm.previewLoading": "Parsing transaction…",
204
204
  "components.transactionConfirm.previewErrorTitle": "Preview error"