@velora-dex/widget 0.1.0-rc.1 → 0.1.0-rc.2

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 (66) hide show
  1. package/dist/components/widget/Details/DetailWithValueList.d.ts.map +1 -1
  2. package/dist/components/widget/Details/DetailWithValueList.js +38 -28
  3. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  4. package/dist/components/widget/Details/types.d.ts +1 -1
  5. package/dist/components/widget/Details/types.d.ts.map +1 -1
  6. package/dist/components/widget/DexesList/DexItem.d.ts +3 -0
  7. package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -0
  8. package/dist/components/widget/DexesList/DexItem.js +366 -0
  9. package/dist/components/widget/DexesList/DexItem.js.map +1 -0
  10. package/dist/components/widget/DexesList/DexesList.d.ts +10 -0
  11. package/dist/components/widget/DexesList/DexesList.d.ts.map +1 -0
  12. package/dist/components/widget/DexesList/DexesList.js +71 -0
  13. package/dist/components/widget/DexesList/DexesList.js.map +1 -0
  14. package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js +4 -0
  15. package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js.map +1 -0
  16. package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js +4 -0
  17. package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js.map +1 -0
  18. package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js +4 -0
  19. package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js.map +1 -0
  20. package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js +4 -0
  21. package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js.map +1 -0
  22. package/dist/components/widget/DexesList/assets/exchanges/icons.json.d.ts +82 -0
  23. package/dist/components/widget/DexesList/assets/exchanges/icons.json.js +159 -0
  24. package/dist/components/widget/DexesList/assets/exchanges/icons.json.js.map +1 -0
  25. package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js +4 -0
  26. package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js.map +1 -0
  27. package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js +4 -0
  28. package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js.map +1 -0
  29. package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js +4 -0
  30. package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js.map +1 -0
  31. package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js +4 -0
  32. package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js.map +1 -0
  33. package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js +4 -0
  34. package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js.map +1 -0
  35. package/dist/components/widget/DexesList/assets/gas.svg.js +12 -0
  36. package/dist/components/widget/DexesList/assets/gas.svg.js.map +1 -0
  37. package/dist/components/widget/DexesList/assets/unknown-dex.svg.js +4 -0
  38. package/dist/components/widget/DexesList/assets/unknown-dex.svg.js.map +1 -0
  39. package/dist/components/widget/DexesList/constants.d.ts +2 -0
  40. package/dist/components/widget/DexesList/constants.d.ts.map +1 -0
  41. package/dist/components/widget/DexesList/constants.js +4 -0
  42. package/dist/components/widget/DexesList/constants.js.map +1 -0
  43. package/dist/components/widget/DexesList/getDexProps.d.ts +11 -0
  44. package/dist/components/widget/DexesList/getDexProps.d.ts.map +1 -0
  45. package/dist/components/widget/DexesList/getDexProps.js +94 -0
  46. package/dist/components/widget/DexesList/getDexProps.js.map +1 -0
  47. package/dist/components/widget/DexesList/types.d.ts +15 -0
  48. package/dist/components/widget/DexesList/types.d.ts.map +1 -0
  49. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.d.ts.map +1 -1
  50. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +44 -4
  51. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  52. package/dist/core/index.js.map +1 -1
  53. package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -1
  54. package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
  55. package/dist/hooks/swap/prices/usePricesParams.js +2 -1
  56. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  57. package/dist/lib/utils/index.d.ts +2 -0
  58. package/dist/lib/utils/index.d.ts.map +1 -1
  59. package/dist/lib/utils/index.js +4 -1
  60. package/dist/lib/utils/index.js.map +1 -1
  61. package/dist/lib/utils/savedAmountUSD.d.ts +3 -0
  62. package/dist/lib/utils/savedAmountUSD.d.ts.map +1 -0
  63. package/dist/lib/utils/savedAmountUSD.js +57 -0
  64. package/dist/lib/utils/savedAmountUSD.js.map +1 -0
  65. package/dist/styles.css +18 -3
  66. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DetailWithValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGxD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqDlE,CAAC"}
1
+ {"version":3,"file":"DetailWithValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGxD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA8DlE,CAAC"}
@@ -5,7 +5,7 @@ import { DetailWithTooltip } from './DetailWithTooltip.js';
5
5
  import { Skeleton } from '../../ui/skeleton.js';
6
6
 
7
7
  const DetailWithValueList = (t0) => {
8
- const $ = distExports.c(7);
8
+ const $ = distExports.c(12);
9
9
  const {
10
10
  details,
11
11
  classes
@@ -20,41 +20,51 @@ const DetailWithValueList = (t0) => {
20
20
  t2 = $[1];
21
21
  }
22
22
  let t3;
23
- if ($[2] !== details) {
24
- t3 = details.map(_temp);
25
- $[2] = details;
26
- $[3] = t3;
23
+ if ($[2] !== classes?.title || $[3] !== classes?.value || $[4] !== details) {
24
+ let t42;
25
+ if ($[6] !== classes?.title || $[7] !== classes?.value) {
26
+ t42 = (t5, index) => {
27
+ const {
28
+ title,
29
+ value,
30
+ tooltip,
31
+ classes: detailClasses,
32
+ tooltipClasses,
33
+ key,
34
+ isLoading
35
+ } = t5;
36
+ const left = /* @__PURE__ */ jsx("div", { className: cn(classes?.title, detailClasses?.title), children: tooltip ? /* @__PURE__ */ jsx(DetailWithTooltip, { detail: title, tooltip, classes: tooltipClasses }) : title });
37
+ const right = /* @__PURE__ */ jsx("div", { className: cn("font-geist-mono dark:text-contrast-7", classes?.value, detailClasses?.value), children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { className: "min-w-[42px] h-[12px]" }) : value ?? "-" });
38
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
39
+ left,
40
+ right
41
+ ] }, key ?? index);
42
+ };
43
+ $[6] = classes?.title;
44
+ $[7] = classes?.value;
45
+ $[8] = t42;
46
+ } else {
47
+ t42 = $[8];
48
+ }
49
+ t3 = details.map(t42);
50
+ $[2] = classes?.title;
51
+ $[3] = classes?.value;
52
+ $[4] = details;
53
+ $[5] = t3;
27
54
  } else {
28
- t3 = $[3];
55
+ t3 = $[5];
29
56
  }
30
57
  let t4;
31
- if ($[4] !== t2 || $[5] !== t3) {
58
+ if ($[9] !== t2 || $[10] !== t3) {
32
59
  t4 = /* @__PURE__ */ jsx("div", { className: t2, children: t3 });
33
- $[4] = t2;
34
- $[5] = t3;
35
- $[6] = t4;
60
+ $[9] = t2;
61
+ $[10] = t3;
62
+ $[11] = t4;
36
63
  } else {
37
- t4 = $[6];
64
+ t4 = $[11];
38
65
  }
39
66
  return t4;
40
67
  };
41
- function _temp(t0, index) {
42
- const {
43
- title,
44
- value,
45
- tooltip,
46
- classes: classes_0,
47
- tooltipClasses,
48
- key,
49
- isLoading
50
- } = t0;
51
- const left = /* @__PURE__ */ jsx("div", { className: classes_0?.title, children: tooltip ? /* @__PURE__ */ jsx(DetailWithTooltip, { detail: title, tooltip, classes: tooltipClasses }) : title });
52
- const right = /* @__PURE__ */ jsx("div", { className: cn("font-geist-mono dark:text-contrast-7", classes_0?.value), children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { className: "min-w-[42px] h-[12px]" }) : value ?? "-" });
53
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
54
- left,
55
- right
56
- ] }, key ?? index);
57
- }
58
68
 
59
69
  export { DetailWithValueList };
60
70
  //# sourceMappingURL=DetailWithValueList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailWithValueList.js","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { DetailWithTooltip } from \"./DetailWithTooltip\";\nimport type { DetailWithValueListProps } from \"./types\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const DetailWithValueList: React.FC<DetailWithValueListProps> = ({\n details,\n classes,\n}) => {\n return (\n <div className={cn(\"flex flex-col gap-4 text-xs\", classes?.root)}>\n {details.map(\n (\n { title, value, tooltip, classes, tooltipClasses, key, isLoading },\n index\n ) => {\n const left = (\n <div className={classes?.title}>\n {tooltip ? (\n <DetailWithTooltip\n detail={title}\n tooltip={tooltip}\n classes={tooltipClasses}\n />\n ) : (\n title\n )}\n </div>\n );\n\n const right = (\n <div\n className={cn(\n \"font-geist-mono dark:text-contrast-7\",\n classes?.value\n )}\n >\n {isLoading ? (\n <Skeleton className=\"min-w-[42px] h-[12px]\" />\n ) : (\n (value ?? \"-\")\n )}\n </div>\n );\n\n return (\n <div\n key={key ?? index}\n className=\"flex items-center justify-between\"\n >\n {left}\n {right}\n </div>\n );\n }\n )}\n </div>\n );\n};\n"],"names":["DetailWithValueList","t0","$","_c","details","classes","t1","root","t2","cn","t3","map","_temp","t4","index","title","value","tooltip","classes_0","tooltipClasses","key","isLoading","left","right"],"mappings":";;;;;;AAKO,MAAMA,sBAA0DC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAKlB,EAAA,MAAAK,KAAAD,OAAAA,EAAOE,IAAAA;AAAM,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAI,EAAAA,EAAA;AAA/CE,IAAAA,EAAAA,GAAAC,EAAAA,CAAG,+BAA+BH,EAAa,CAAA;AAACJ,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAE,OAAAA,EAAA;AAC7DM,IAAAA,EAAAA,GAAAN,OAAAA,CAAOO,IAAAC,KA4CR,CAAA;AAACV,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAX,EAAA,CAAA,CAAA,KAAAM,MAAAN,CAAAA,QAAAQ,EAAAA,EAAA;AA7CHG,IAAAA,EAAAA,mBAAA,GAAA,CAAA,KAAA,EAAA,EAAgB,SAAA,EAAAL,EAAAA,EACbE,QAAAA,EAAAA,EAAAA,EA6CH,CAAA;AAAMR,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA9CNW,EAAAA;AA8CM;AAnD6D,SAAAD,KAAAA,CAAAX,IAAAa,KAAAA,EAAA;AAQ7D,EAAA,MAAA;AAAA,IAAAC,KAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAZ,OAAAA,EAAAa,SAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,GAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAApB,EAAAA;AAGA,EAAA,MAAAqB,IAAAA,mBACE,GAAA,CAAA,KAAA,EAAA,EAAgB,SAAA,EAAAjB,WAAOU,KAAAA,EACpBE,QAAAA,EAAAA,OAAAA,mBACC,GAAA,CAAC,iBAAA,EAAA,EACSF,eACCE,OAAAA,EACAE,OAAAA,kBAAc,IAGzBJ,KAAAA,EAEJ,CAAA;AAGF,EAAA,MAAAQ,wBACE,GAAA,CAAA,KAAA,EAAA,EACa,SAAA,EAAAd,EAAAA,CACT,wCACAJ,SAAAA,EAAOW,KACT,CAAA,EAECK,QAAAA,EAAAA,SAAAA,uBACE,QAAA,EAAA,EAAmB,SAAA,EAAA,uBAAA,EAAuB,CAAA,GAE1CL,SAAS,GAAA,EAEd,CAAA;AACA,EAAA,uBAGA,IAAA,UAEY,SAAA,EAAA,mCAAA,EAETM,QAAAA,EAAAA;AAAAA,IAAAA,IAAAA;AAAAA,IACAC;AAAAA,GAAAA,EAAAA,EAJIH,OAAON,KAKd,CAAA;AAAM;;;;"}
1
+ {"version":3,"file":"DetailWithValueList.js","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { DetailWithTooltip } from \"./DetailWithTooltip\";\nimport type { DetailWithValueListProps } from \"./types\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const DetailWithValueList: React.FC<DetailWithValueListProps> = ({\n details,\n classes,\n}) => {\n return (\n <div className={cn(\"flex flex-col gap-4 text-xs\", classes?.root)}>\n {details.map(\n (\n {\n title,\n value,\n tooltip,\n classes: detailClasses,\n tooltipClasses,\n key,\n isLoading,\n },\n index\n ) => {\n const left = (\n <div className={cn(classes?.title, detailClasses?.title)}>\n {tooltip ? (\n <DetailWithTooltip\n detail={title}\n tooltip={tooltip}\n classes={tooltipClasses}\n />\n ) : (\n title\n )}\n </div>\n );\n\n const right = (\n <div\n className={cn(\n \"font-geist-mono dark:text-contrast-7\",\n classes?.value,\n detailClasses?.value\n )}\n >\n {isLoading ? (\n <Skeleton className=\"min-w-[42px] h-[12px]\" />\n ) : (\n (value ?? \"-\")\n )}\n </div>\n );\n\n return (\n <div\n key={key ?? index}\n className=\"flex items-center justify-between gap-2\"\n >\n {left}\n {right}\n </div>\n );\n }\n )}\n </div>\n );\n};\n"],"names":["DetailWithValueList","t0","$","_c","details","classes","t1","root","t2","cn","t3","title","value","t4","t5","index","tooltip","detailClasses","tooltipClasses","key","isLoading","left","right","map"],"mappings":"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"}
@@ -13,7 +13,7 @@ export type DetailWithTooltipProps = {
13
13
  } & WithClasses<"root" | "icon">;
14
14
  export type DetailWithValueListProps = {
15
15
  details: DetailWithValue[];
16
- } & WithClasses<"root">;
16
+ } & WithClasses<"root" | "title" | "value">;
17
17
  export type DetailWithValueListExpandableProps = {
18
18
  trigger?: React.ReactNode;
19
19
  details: DetailWithValue[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;CACpD,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;CACpD,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DexItemProps } from './types';
2
+ export declare const DexItem: ({ price, exchange, gasCostUSD, srcAmount, destAmount, savedAmountUSD, srcToken, destToken, quote, is100Percent, }: DexItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=DexItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DexItem.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+B5C,eAAO,MAAM,OAAO,GAAI,mHAWrB,YAAY,4CAwCd,CAAC"}
@@ -0,0 +1,366 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { d as distExports } from '../../../_virtual/index.js';
3
+ import { InfoIcon } from 'lucide-react';
4
+ import { TooltipTrigger, Tooltip, TooltipContent } from '../../ui/tooltip.js';
5
+ import { SwapRate } from '../SwapRate/SwapRate.js';
6
+ import { formatFiatPrice } from '../../../lib/utils/formatFiatPrice.js';
7
+ import { useWidgetConfig } from '../../../core/state/configAtom.js';
8
+ import unknownDexSVGUrl from './assets/unknown-dex.svg.js';
9
+ import VeloraLightSVGUrl from './assets/exchanges/velora-light.svg.js';
10
+ import VeloraDarkSVGUrl from './assets/exchanges/velora-dark.svg.js';
11
+ import UniswapSVGUrl from './assets/exchanges/uniswap.svg.js';
12
+ import { ReactComponent as ForwardRef } from './assets/gas.svg.js';
13
+ import HashflowPNGUrl from './assets/exchanges/hashflow.png.js';
14
+ import BiswapPNGUrl from './assets/exchanges/biswap.png.js';
15
+ import CheeseswapPNGUrl from './assets/exchanges/cheeseswap.png.js';
16
+ import ComplusswapPNGUrl from './assets/exchanges/complusswap.png.js';
17
+ import ShibaswapPNGUrl from './assets/exchanges/shibaswap.png.js';
18
+ import QuickswapPNGUrl from './assets/exchanges/quickswap.png.js';
19
+ import dexIconUrls from './assets/exchanges/icons.json.js';
20
+ import { VeloraDex } from './constants.js';
21
+ import { DetailWithValueList } from '../Details/DetailWithValueList.js';
22
+ import { formatUnits } from 'viem';
23
+ import { toDecimalTrimmed } from '../../../lib/utils/toDecimal.js';
24
+ import { isTruthy } from '../../../lib/utils/index.js';
25
+ import { getDestAmountAfterFeeAndSlippage } from '../../../lib/utils/price.js';
26
+ import { useSlippage } from '../../../hooks/useSlippage.js';
27
+
28
+ const dexIconUrlsMap = dexIconUrls;
29
+ const DexItem = (t0) => {
30
+ const $ = distExports.c(37);
31
+ const {
32
+ price,
33
+ exchange,
34
+ gasCostUSD,
35
+ srcAmount,
36
+ destAmount,
37
+ savedAmountUSD,
38
+ srcToken,
39
+ destToken,
40
+ quote,
41
+ is100Percent
42
+ } = t0;
43
+ const dexName = renamedDexes[exchange] ?? exchange;
44
+ let t1;
45
+ if ($[0] !== exchange) {
46
+ t1 = /* @__PURE__ */ jsx(DexIconComp, { exchange });
47
+ $[0] = exchange;
48
+ $[1] = t1;
49
+ } else {
50
+ t1 = $[1];
51
+ }
52
+ let t2;
53
+ if ($[2] !== dexName) {
54
+ t2 = /* @__PURE__ */ jsx("div", { className: "font-medium text-contrast-4 dark:text-contrast-9", children: dexName });
55
+ $[2] = dexName;
56
+ $[3] = t2;
57
+ } else {
58
+ t2 = $[3];
59
+ }
60
+ let t3;
61
+ if ($[4] !== t1 || $[5] !== t2) {
62
+ t3 = /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-1.5", children: [
63
+ t1,
64
+ t2
65
+ ] });
66
+ $[4] = t1;
67
+ $[5] = t2;
68
+ $[6] = t3;
69
+ } else {
70
+ t3 = $[6];
71
+ }
72
+ const t4 = price.side === "BUY";
73
+ let t5;
74
+ if ($[7] !== destAmount || $[8] !== destToken || $[9] !== srcAmount || $[10] !== srcToken || $[11] !== t4) {
75
+ t5 = /* @__PURE__ */ jsx("div", { className: "text-contrast-3 dark:text-contrast-7 font-geist-mono text-end", children: /* @__PURE__ */ jsx(SwapRate, { srcToken, destToken, srcAmountWei: srcAmount, destAmountWei: destAmount, reverse: t4 }) });
76
+ $[7] = destAmount;
77
+ $[8] = destToken;
78
+ $[9] = srcAmount;
79
+ $[10] = srcToken;
80
+ $[11] = t4;
81
+ $[12] = t5;
82
+ } else {
83
+ t5 = $[12];
84
+ }
85
+ let t6;
86
+ if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
87
+ t6 = /* @__PURE__ */ jsx(ForwardRef, {});
88
+ $[13] = t6;
89
+ } else {
90
+ t6 = $[13];
91
+ }
92
+ const t7 = +gasCostUSD;
93
+ let t8;
94
+ if ($[14] !== t7) {
95
+ t8 = formatFiatPrice(t7);
96
+ $[14] = t7;
97
+ $[15] = t8;
98
+ } else {
99
+ t8 = $[15];
100
+ }
101
+ let t9;
102
+ if ($[16] !== t8) {
103
+ t9 = /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5", children: [
104
+ t6,
105
+ " ",
106
+ t8
107
+ ] });
108
+ $[16] = t8;
109
+ $[17] = t9;
110
+ } else {
111
+ t9 = $[17];
112
+ }
113
+ let t10;
114
+ if ($[18] !== t5 || $[19] !== t9) {
115
+ t10 = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
116
+ t5,
117
+ t9
118
+ ] });
119
+ $[18] = t5;
120
+ $[19] = t9;
121
+ $[20] = t10;
122
+ } else {
123
+ t10 = $[20];
124
+ }
125
+ let t11;
126
+ if ($[21] !== destAmount || $[22] !== destToken || $[23] !== gasCostUSD || $[24] !== is100Percent || $[25] !== price || $[26] !== quote || $[27] !== savedAmountUSD || $[28] !== srcAmount || $[29] !== srcToken) {
127
+ t11 = /* @__PURE__ */ jsx(TooltipDexInfo, { price, srcAmount, srcToken, destAmount, destToken, gasCostUSD, savedAmountUSD, quote, is100Percent });
128
+ $[21] = destAmount;
129
+ $[22] = destToken;
130
+ $[23] = gasCostUSD;
131
+ $[24] = is100Percent;
132
+ $[25] = price;
133
+ $[26] = quote;
134
+ $[27] = savedAmountUSD;
135
+ $[28] = srcAmount;
136
+ $[29] = srcToken;
137
+ $[30] = t11;
138
+ } else {
139
+ t11 = $[30];
140
+ }
141
+ let t12;
142
+ if ($[31] !== t10 || $[32] !== t11) {
143
+ t12 = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
144
+ t10,
145
+ t11
146
+ ] });
147
+ $[31] = t10;
148
+ $[32] = t11;
149
+ $[33] = t12;
150
+ } else {
151
+ t12 = $[33];
152
+ }
153
+ let t13;
154
+ if ($[34] !== t12 || $[35] !== t3) {
155
+ t13 = /* @__PURE__ */ jsxs("div", { className: "text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere", children: [
156
+ t3,
157
+ t12
158
+ ] });
159
+ $[34] = t12;
160
+ $[35] = t3;
161
+ $[36] = t13;
162
+ } else {
163
+ t13 = $[36];
164
+ }
165
+ return t13;
166
+ };
167
+ const detailsClasses = {
168
+ root: "min-w-[200px]",
169
+ value: "dark:text-contrast-3"
170
+ };
171
+ const TooltipDexInfo = (t0) => {
172
+ const $ = distExports.c(23);
173
+ const {
174
+ price,
175
+ srcAmount,
176
+ srcToken,
177
+ destAmount,
178
+ destToken,
179
+ savedAmountUSD,
180
+ gasCostUSD,
181
+ quote,
182
+ is100Percent
183
+ } = t0;
184
+ const {
185
+ resolvedSlippage
186
+ } = useSlippage();
187
+ let formatedDestAmount;
188
+ let formatedSrcAmount;
189
+ let t1;
190
+ if ($[0] !== destAmount || $[1] !== destToken.decimals || $[2] !== price || $[3] !== resolvedSlippage || $[4] !== srcAmount || $[5] !== srcToken.decimals) {
191
+ const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);
192
+ const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);
193
+ const minDestAmount = getDestAmountAfterFeeAndSlippage({
194
+ price,
195
+ slippagePercent: resolvedSlippage
196
+ });
197
+ const minDestAmountUnit = formatUnits(BigInt(minDestAmount), destToken.decimals);
198
+ formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);
199
+ formatedDestAmount = toDecimalTrimmed(destAmountUnit);
200
+ t1 = toDecimalTrimmed(minDestAmountUnit);
201
+ $[0] = destAmount;
202
+ $[1] = destToken.decimals;
203
+ $[2] = price;
204
+ $[3] = resolvedSlippage;
205
+ $[4] = srcAmount;
206
+ $[5] = srcToken.decimals;
207
+ $[6] = formatedDestAmount;
208
+ $[7] = formatedSrcAmount;
209
+ $[8] = t1;
210
+ } else {
211
+ formatedDestAmount = $[6];
212
+ formatedSrcAmount = $[7];
213
+ t1 = $[8];
214
+ }
215
+ const formattedMinDestAmount = t1;
216
+ const t2 = `${is100Percent ? "100% " : ""} ${quote}`;
217
+ let t3;
218
+ if ($[9] !== destToken.symbol || $[10] !== formatedDestAmount || $[11] !== formatedSrcAmount || $[12] !== formattedMinDestAmount || $[13] !== gasCostUSD || $[14] !== price.side || $[15] !== resolvedSlippage || $[16] !== savedAmountUSD || $[17] !== srcToken.symbol || $[18] !== t2) {
219
+ t3 = [{
220
+ title: "Quote",
221
+ value: t2
222
+ }, {
223
+ title: "You Pay",
224
+ value: `${formatedSrcAmount} ${srcToken.symbol}`
225
+ }, {
226
+ title: "You Receive",
227
+ value: `${formatedDestAmount} ${destToken.symbol}`
228
+ }, price.side === "SELL" && {
229
+ title: "Minimum Received",
230
+ value: `${formattedMinDestAmount} ${destToken.symbol}`
231
+ }, {
232
+ title: "Exp. Slippage",
233
+ value: `${resolvedSlippage}%`
234
+ }, {
235
+ title: "Network Fees",
236
+ value: `$${gasCostUSD}`
237
+ }, savedAmountUSD && {
238
+ title: "You Save",
239
+ value: `🎉 ${formatFiatPrice(savedAmountUSD)}`
240
+ }].filter(isTruthy);
241
+ $[9] = destToken.symbol;
242
+ $[10] = formatedDestAmount;
243
+ $[11] = formatedSrcAmount;
244
+ $[12] = formattedMinDestAmount;
245
+ $[13] = gasCostUSD;
246
+ $[14] = price.side;
247
+ $[15] = resolvedSlippage;
248
+ $[16] = savedAmountUSD;
249
+ $[17] = srcToken.symbol;
250
+ $[18] = t2;
251
+ $[19] = t3;
252
+ } else {
253
+ t3 = $[19];
254
+ }
255
+ const details = t3;
256
+ let t4;
257
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
258
+ t4 = /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(InfoIcon, { size: 16, className: "text-contrast-6 dark:text-contrast-5 cursor-pointer" }) });
259
+ $[20] = t4;
260
+ } else {
261
+ t4 = $[20];
262
+ }
263
+ let t5;
264
+ if ($[21] !== details) {
265
+ t5 = /* @__PURE__ */ jsxs(Tooltip, { children: [
266
+ t4,
267
+ /* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsx(DetailWithValueList, { details, classes: detailsClasses }) })
268
+ ] });
269
+ $[21] = details;
270
+ $[22] = t5;
271
+ } else {
272
+ t5 = $[22];
273
+ }
274
+ return t5;
275
+ };
276
+ const renamedDexes = {
277
+ paraswaplimitorders: VeloraDex,
278
+ uniswapforkoptimized: VeloraDex
279
+ };
280
+ function onDexImageError(e) {
281
+ e.currentTarget.src = unknownDexSVGUrl;
282
+ }
283
+ const DexIcon = (props) => {
284
+ const $ = distExports.c(2);
285
+ let t0;
286
+ if ($[0] !== props) {
287
+ t0 = /* @__PURE__ */ jsx("img", { ...props, className: "w-4 h-4 rounded-[50%]" });
288
+ $[0] = props;
289
+ $[1] = t0;
290
+ } else {
291
+ t0 = $[1];
292
+ }
293
+ return t0;
294
+ };
295
+ const DexIconComp = (t0) => {
296
+ const $ = distExports.c(5);
297
+ const {
298
+ exchange
299
+ } = t0;
300
+ const loweredExchange = exchange.toLowerCase();
301
+ const IconComp = iconComponents[loweredExchange];
302
+ if (IconComp) {
303
+ let t12;
304
+ if ($[0] !== IconComp) {
305
+ t12 = /* @__PURE__ */ jsx(IconComp, {});
306
+ $[0] = IconComp;
307
+ $[1] = t12;
308
+ } else {
309
+ t12 = $[1];
310
+ }
311
+ return t12;
312
+ }
313
+ const iconUrl = dexIconUrlsMap[loweredExchange];
314
+ if (iconUrl) {
315
+ let t12;
316
+ if ($[2] !== iconUrl) {
317
+ t12 = /* @__PURE__ */ jsx(DexIcon, { src: iconUrl, onError: onDexImageError });
318
+ $[2] = iconUrl;
319
+ $[3] = t12;
320
+ } else {
321
+ t12 = $[3];
322
+ }
323
+ return t12;
324
+ }
325
+ let t1;
326
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
327
+ t1 = /* @__PURE__ */ jsx(DexIcon, { src: unknownDexSVGUrl });
328
+ $[4] = t1;
329
+ } else {
330
+ t1 = $[4];
331
+ }
332
+ return t1;
333
+ };
334
+ const VeloraIcon = () => {
335
+ const $ = distExports.c(2);
336
+ const {
337
+ theme
338
+ } = useWidgetConfig();
339
+ const iconUrl = theme === "dark" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;
340
+ let t0;
341
+ if ($[0] !== iconUrl) {
342
+ t0 = /* @__PURE__ */ jsx(DexIcon, { src: iconUrl });
343
+ $[0] = iconUrl;
344
+ $[1] = t0;
345
+ } else {
346
+ t0 = $[1];
347
+ }
348
+ return t0;
349
+ };
350
+ const iconComponents = {
351
+ velora: VeloraIcon,
352
+ paraswaplimitorders: VeloraIcon,
353
+ augustusrfq: VeloraIcon,
354
+ // Uniswap icon from origin looks bad in dark mode
355
+ uniswap: () => /* @__PURE__ */ jsx(DexIcon, { src: UniswapSVGUrl }),
356
+ // Quickswap blocks hotlinking (so no <img src="quickswap/..."/>)
357
+ quickswap: () => /* @__PURE__ */ jsx(DexIcon, { src: QuickswapPNGUrl }),
358
+ hashflow: () => /* @__PURE__ */ jsx(DexIcon, { src: HashflowPNGUrl }),
359
+ biswap: () => /* @__PURE__ */ jsx(DexIcon, { src: BiswapPNGUrl }),
360
+ cheeseswap: () => /* @__PURE__ */ jsx(DexIcon, { src: CheeseswapPNGUrl }),
361
+ shibaswap: () => /* @__PURE__ */ jsx(DexIcon, { src: ShibaswapPNGUrl }),
362
+ complusswap: () => /* @__PURE__ */ jsx(DexIcon, { src: ComplusswapPNGUrl })
363
+ };
364
+
365
+ export { DexItem };
366
+ //# sourceMappingURL=DexItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DexItem.js","sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"sourcesContent":["import { InfoIcon } from \"lucide-react\";\n\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport type { DexItemProps } from \"./types\";\nimport { SwapRate } from \"../SwapRate/SwapRate\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport type { ImgHTMLAttributes, JSX, SyntheticEvent } from \"react\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nimport unknownDexSVGUrl from \"./assets/unknown-dex.svg?url\";\nimport VeloraLightSVGUrl from \"./assets/exchanges/velora-light.svg?url\";\nimport VeloraDarkSVGUrl from \"./assets/exchanges/velora-dark.svg?url\";\nimport UniswapSVGUrl from \"./assets/exchanges/uniswap.svg?url\";\nimport { ReactComponent as GasSVG } from \"./assets/gas.svg\";\n\n// following icons can't be fetched from origin source because of CloudFlare protection\nimport HashflowPNGUrl from \"./assets/exchanges/hashflow.png?url\";\nimport BiswapPNGUrl from \"./assets/exchanges/biswap.png?url\";\nimport CheeseswapPNGUrl from \"./assets/exchanges/cheeseswap.png?url\";\nimport ComplusswapPNGUrl from \"./assets/exchanges/complusswap.png?url\";\nimport ShibaswapPNGUrl from \"./assets/exchanges/shibaswap.png?url\";\nimport QuickswapPNGUrl from \"./assets/exchanges/quickswap.png?url\";\n\nimport dexIconUrls from \"./assets/exchanges/icons.json\";\nimport { VeloraDex } from \"./constants\";\nimport { DetailWithValueList } from \"../Details/DetailWithValueList\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nconst dexIconUrlsMap: Record<string, string> = dexIconUrls;\n\nexport const DexItem = ({\n price,\n exchange,\n gasCostUSD,\n srcAmount,\n destAmount,\n savedAmountUSD,\n srcToken,\n destToken,\n quote,\n is100Percent,\n}: DexItemProps) => {\n const dexName = renamedDexes[exchange] ?? exchange;\n\n return (\n <div className=\"text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere\">\n <div className=\"flex items-center justify-center gap-1.5\">\n <DexIconComp exchange={exchange} />\n <div className=\"font-medium text-contrast-4 dark:text-contrast-9\">\n {dexName}\n </div>\n </div>\n <div className=\"flex items-center gap-1\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-contrast-3 dark:text-contrast-7 font-geist-mono text-end\">\n <SwapRate\n srcToken={srcToken}\n destToken={destToken}\n srcAmountWei={srcAmount}\n destAmountWei={destAmount}\n reverse={price.side === \"BUY\"}\n />\n </div>\n <div className=\"text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5\">\n <GasSVG /> {formatFiatPrice(+gasCostUSD)}\n </div>\n </div>\n <TooltipDexInfo\n price={price}\n srcAmount={srcAmount}\n srcToken={srcToken}\n destAmount={destAmount}\n destToken={destToken}\n gasCostUSD={gasCostUSD}\n savedAmountUSD={savedAmountUSD}\n quote={quote}\n is100Percent={is100Percent}\n />\n </div>\n </div>\n );\n};\n\n// tooltip\n\nconst detailsClasses = {\n root: \"min-w-[200px]\",\n value: \"dark:text-contrast-3\",\n};\n\nconst TooltipDexInfo = ({\n price,\n srcAmount,\n srcToken,\n destAmount,\n destToken,\n savedAmountUSD,\n gasCostUSD,\n quote,\n is100Percent,\n}: Omit<DexItemProps, \"exchange\">) => {\n const { resolvedSlippage } = useSlippage();\n\n const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);\n const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent: resolvedSlippage,\n });\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n destToken.decimals\n );\n\n const formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);\n const formatedDestAmount = toDecimalTrimmed(destAmountUnit);\n const formattedMinDestAmount = toDecimalTrimmed(minDestAmountUnit);\n\n const details = [\n {\n title: \"Quote\",\n value: `${is100Percent ? \"100% \" : \"\"} ${quote}`,\n },\n {\n title: \"You Pay\",\n value: `${formatedSrcAmount} ${srcToken.symbol}`,\n },\n {\n title: \"You Receive\",\n value: `${formatedDestAmount} ${destToken.symbol}`,\n },\n price.side === \"SELL\" && {\n title: \"Minimum Received\",\n value: `${formattedMinDestAmount} ${destToken.symbol}`,\n },\n // @TODO: Max To Pay detail for BUY side\n {\n title: \"Exp. Slippage\",\n value: `${resolvedSlippage}%`,\n },\n {\n title: \"Network Fees\",\n value: `$${gasCostUSD}`,\n },\n savedAmountUSD && {\n title: \"You Save\",\n value: `🎉 ${formatFiatPrice(savedAmountUSD)}`,\n },\n ].filter(isTruthy);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon\n size={16}\n className=\"text-contrast-6 dark:text-contrast-5 cursor-pointer\"\n />\n </TooltipTrigger>\n <TooltipContent>\n <DetailWithValueList details={details} classes={detailsClasses} />\n </TooltipContent>\n </Tooltip>\n );\n};\n\n// names\n\nconst renamedDexes: Record<string, string> = {\n paraswaplimitorders: VeloraDex,\n uniswapforkoptimized: VeloraDex,\n};\n\n// icons\n\nfunction onDexImageError(e: SyntheticEvent<HTMLImageElement, Event>) {\n e.currentTarget.src = unknownDexSVGUrl;\n}\n\nconst DexIcon = (props: ImgHTMLAttributes<HTMLImageElement>) => {\n return <img {...props} className=\"w-4 h-4 rounded-[50%]\" />;\n};\n\nconst DexIconComp = ({ exchange }: { exchange: string }) => {\n const loweredExchange = exchange.toLowerCase();\n\n // component is the priority\n const IconComp = iconComponents[loweredExchange];\n if (IconComp) return <IconComp />;\n\n // then icons by URL since they may fail to load\n const iconUrl = dexIconUrlsMap[loweredExchange];\n if (iconUrl) return <DexIcon src={iconUrl} onError={onDexImageError} />;\n\n // fallback to unknown icon if no match\n return <DexIcon src={unknownDexSVGUrl} />;\n};\n\n// different Velora icon depending on theme mode\nconst VeloraIcon = () => {\n const { theme } = useWidgetConfig();\n const iconUrl = theme === \"dark\" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;\n return <DexIcon src={iconUrl} />;\n};\n\nconst iconComponents: Record<string, () => JSX.Element> = {\n velora: VeloraIcon,\n paraswaplimitorders: VeloraIcon,\n augustusrfq: VeloraIcon,\n // Uniswap icon from origin looks bad in dark mode\n uniswap: () => <DexIcon src={UniswapSVGUrl} />,\n // Quickswap blocks hotlinking (so no <img src=\"quickswap/...\"/>)\n quickswap: () => <DexIcon src={QuickswapPNGUrl} />,\n hashflow: () => <DexIcon src={HashflowPNGUrl} />,\n biswap: () => <DexIcon src={BiswapPNGUrl} />,\n cheeseswap: () => <DexIcon src={CheeseswapPNGUrl} />,\n shibaswap: () => <DexIcon src={ShibaswapPNGUrl} />,\n complusswap: () => <DexIcon src={ComplusswapPNGUrl} />,\n};\n"],"names":["dexIconUrlsMap","dexIconUrls","DexItem","t0","$","_c","price","exchange","gasCostUSD","srcAmount","destAmount","savedAmountUSD","srcToken","destToken","quote","is100Percent","dexName","renamedDexes","t1","t2","t3","t4","side","t5","t6","Symbol","for","GasSVG","t7","t8","formatFiatPrice","t9","t10","t11","t12","t13","detailsClasses","root","value","TooltipDexInfo","resolvedSlippage","useSlippage","formatedDestAmount","formatedSrcAmount","decimals","srcAmountUnit","formatUnits","BigInt","destAmountUnit","minDestAmount","getDestAmountAfterFeeAndSlippage","slippagePercent","minDestAmountUnit","toDecimalTrimmed","formattedMinDestAmount","symbol","title","filter","isTruthy","details","paraswaplimitorders","VeloraDex","uniswapforkoptimized","onDexImageError","e","currentTarget","src","unknownDexSVGUrl","DexIcon","props","DexIconComp","loweredExchange","toLowerCase","IconComp","iconComponents","iconUrl","VeloraIcon","theme","useWidgetConfig","VeloraDarkSVGUrl","VeloraLightSVGUrl","velora","augustusrfq","uniswap","UniswapSVGUrl","quickswap","QuickswapPNGUrl","hashflow","HashflowPNGUrl","biswap","BiswapPNGUrl","cheeseswap","CheeseswapPNGUrl","shibaswap","ShibaswapPNGUrl","complusswap","ComplusswapPNGUrl"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { OptimalRate } from '@velora-dex/sdk';
2
+ import { Token } from '../../../tokens/state/types';
3
+ type DexesListProps = {
4
+ marketPrice: OptimalRate;
5
+ tokenFrom: Token;
6
+ tokenTo: Token;
7
+ };
8
+ export declare const DexesList: ({ marketPrice, tokenFrom, tokenTo, }: DexesListProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
10
+ //# sourceMappingURL=DexesList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DexesList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,sCAIvB,cAAc,mDAkChB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { createElement } from 'react';
3
+ import { d as distExports } from '../../../_virtual/index.js';
4
+ import '@velora-dex/sdk';
5
+ import { DexItem } from './DexItem.js';
6
+ import { getBestDexProps, getOtherDexesProps } from './getDexProps.js';
7
+
8
+ const DexesList = (t0) => {
9
+ const $ = distExports.c(10);
10
+ const {
11
+ marketPrice,
12
+ tokenFrom,
13
+ tokenTo
14
+ } = t0;
15
+ if (marketPrice.others?.length === 0) {
16
+ return null;
17
+ }
18
+ if (marketPrice.bestRoute.length === 0) {
19
+ return null;
20
+ }
21
+ let t1;
22
+ let t2;
23
+ if ($[0] !== marketPrice || $[1] !== tokenFrom || $[2] !== tokenTo) {
24
+ t2 = Symbol.for("react.early_return_sentinel");
25
+ bb0: {
26
+ const bestDexProps = getBestDexProps(marketPrice);
27
+ if (!bestDexProps) {
28
+ t2 = null;
29
+ break bb0;
30
+ }
31
+ const otherDexesProps = getOtherDexesProps({
32
+ marketPrice,
33
+ bestDexProps
34
+ });
35
+ if (!otherDexesProps) {
36
+ t2 = null;
37
+ break bb0;
38
+ }
39
+ let t3;
40
+ if ($[5] !== bestDexProps || $[6] !== marketPrice || $[7] !== tokenFrom || $[8] !== tokenTo) {
41
+ t3 = /* @__PURE__ */ jsx(DexItem, { ...bestDexProps, price: marketPrice, srcToken: tokenFrom, destToken: tokenTo });
42
+ $[5] = bestDexProps;
43
+ $[6] = marketPrice;
44
+ $[7] = tokenFrom;
45
+ $[8] = tokenTo;
46
+ $[9] = t3;
47
+ } else {
48
+ t3 = $[9];
49
+ }
50
+ t1 = /* @__PURE__ */ jsxs("div", { className: "pt-4 px-2 flex flex-col gap-2", children: [
51
+ t3,
52
+ otherDexesProps.map((dexProps, index) => /* @__PURE__ */ createElement(DexItem, { ...dexProps, key: index, price: marketPrice, srcToken: tokenFrom, destToken: tokenTo }))
53
+ ] });
54
+ }
55
+ $[0] = marketPrice;
56
+ $[1] = tokenFrom;
57
+ $[2] = tokenTo;
58
+ $[3] = t1;
59
+ $[4] = t2;
60
+ } else {
61
+ t1 = $[3];
62
+ t2 = $[4];
63
+ }
64
+ if (t2 !== Symbol.for("react.early_return_sentinel")) {
65
+ return t2;
66
+ }
67
+ return t1;
68
+ };
69
+
70
+ export { DexesList };
71
+ //# sourceMappingURL=DexesList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DexesList.js","sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"sourcesContent":["import { type OptimalRate } from \"@velora-dex/sdk\";\nimport { DexItem } from \"./DexItem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { getBestDexProps, getOtherDexesProps } from \"./getDexProps\";\n\ntype DexesListProps = {\n marketPrice: OptimalRate;\n tokenFrom: Token;\n tokenTo: Token;\n};\n\nexport const DexesList = ({\n marketPrice,\n tokenFrom,\n tokenTo,\n}: DexesListProps) => {\n if (marketPrice.others?.length === 0) return null;\n if (marketPrice.bestRoute.length === 0) return null;\n\n const bestDexProps = getBestDexProps(marketPrice);\n\n if (!bestDexProps) return null;\n\n const otherDexesProps = getOtherDexesProps({\n marketPrice,\n bestDexProps,\n });\n\n if (!otherDexesProps) return null;\n\n return (\n <div className=\"pt-4 px-2 flex flex-col gap-2\">\n <DexItem\n {...bestDexProps}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n {otherDexesProps.map((dexProps, index) => (\n <DexItem\n {...dexProps}\n key={index}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n ))}\n </div>\n );\n};\n"],"names":["DexesList","t0","$","_c","marketPrice","tokenFrom","tokenTo","others","length","bestRoute","t1","t2","Symbol","for","bb0","bestDexProps","getBestDexProps","otherDexesProps","getOtherDexesProps","t3","map","dexProps","index"],"mappings":"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"}