@aurora-is-near/intents-swap-widget 3.18.1 → 3.18.3

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 (180) hide show
  1. package/dist/components/Accordion.js +34 -35
  2. package/dist/components/Accordion.js.map +1 -1
  3. package/dist/components/Banner.js +33 -19
  4. package/dist/components/Banner.js.map +1 -1
  5. package/dist/components/BlockingError.js +11 -16
  6. package/dist/components/BlockingError.js.map +1 -1
  7. package/dist/components/Button.d.ts +10 -2
  8. package/dist/components/Button.js +53 -43
  9. package/dist/components/Button.js.map +1 -1
  10. package/dist/components/CloseButton.js +6 -6
  11. package/dist/components/CloseButton.js.map +1 -1
  12. package/dist/components/CopyButton.d.ts +5 -2
  13. package/dist/components/CopyButton.js +11 -7
  14. package/dist/components/CopyButton.js.map +1 -1
  15. package/dist/components/DirectionSwitcher.js +12 -11
  16. package/dist/components/DirectionSwitcher.js.map +1 -1
  17. package/dist/components/Input.d.ts +5 -3
  18. package/dist/components/Input.js +16 -16
  19. package/dist/components/Input.js.map +1 -1
  20. package/dist/components/Notes.js +1 -1
  21. package/dist/components/Notes.js.map +1 -1
  22. package/dist/components/StatusWidget.js +8 -21
  23. package/dist/components/StatusWidget.js.map +1 -1
  24. package/dist/{config-DJObWR7Z.js → config-BMvXuF1-.js} +692 -673
  25. package/dist/config-BMvXuF1-.js.map +1 -0
  26. package/dist/config.js +21 -6
  27. package/dist/config.js.map +1 -1
  28. package/dist/errors.js +1 -1
  29. package/dist/ext/alchemy/index.js +1 -1
  30. package/dist/ext/index.js +1 -1
  31. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  32. package/dist/features/BalanceRpcLoader/index.js +1 -1
  33. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  34. package/dist/features/ChainsDropdown/AllNetworksIcon.js +3 -3
  35. package/dist/features/ChainsDropdown/AllNetworksIcon.js.map +1 -1
  36. package/dist/features/ChainsDropdown/ChainItem.js +7 -7
  37. package/dist/features/ChainsDropdown/ChainItem.js.map +1 -1
  38. package/dist/features/ChainsDropdown/index.js +45 -33
  39. package/dist/features/ChainsDropdown/index.js.map +1 -1
  40. package/dist/features/DepositMethodSwitcher.js +18 -17
  41. package/dist/features/DepositMethodSwitcher.js.map +1 -1
  42. package/dist/features/ErrorBoundary.js +1 -1
  43. package/dist/features/ExternalDeposit.js +22 -15
  44. package/dist/features/ExternalDeposit.js.map +1 -1
  45. package/dist/features/SendAddress/index.js +15 -14
  46. package/dist/features/SendAddress/index.js.map +1 -1
  47. package/dist/features/SendAddress/useNotification.js +1 -1
  48. package/dist/features/SubmitButton/index.js +1 -1
  49. package/dist/features/SuccessScreen/CopyableValue.d.ts +5 -0
  50. package/dist/features/SuccessScreen/CopyableValue.js +11 -0
  51. package/dist/features/SuccessScreen/CopyableValue.js.map +1 -0
  52. package/dist/features/SuccessScreen/TokenRow.d.ts +8 -0
  53. package/dist/features/SuccessScreen/TokenRow.js +20 -0
  54. package/dist/features/SuccessScreen/TokenRow.js.map +1 -0
  55. package/dist/features/SuccessScreen/index.d.ts +5 -4
  56. package/dist/features/SuccessScreen/index.js +151 -49
  57. package/dist/features/SuccessScreen/index.js.map +1 -1
  58. package/dist/features/SuccessScreen/useSummaryItemsCount.d.ts +1 -0
  59. package/dist/features/SuccessScreen/useSummaryItemsCount.js +14 -0
  60. package/dist/features/SuccessScreen/useSummaryItemsCount.js.map +1 -0
  61. package/dist/features/SwapDirectionSwitcher.js +1 -1
  62. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  63. package/dist/features/SwapQuote/index.js +1 -1
  64. package/dist/features/TokenInput/TokenInput.js +1 -1
  65. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  66. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  67. package/dist/features/TokenInput/TokenInputTarget.js +2 -2
  68. package/dist/features/TokenInput/WalletBalance.js +1 -1
  69. package/dist/features/TokenInput/hooks/index.js +1 -1
  70. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  71. package/dist/features/TokenInput/index.js +1 -1
  72. package/dist/features/TokensList/TokenItem.js +2 -2
  73. package/dist/features/TokensList/TokensList.js +1 -1
  74. package/dist/features/TokensList/index.js +1 -1
  75. package/dist/features/TokensModal.js +11 -11
  76. package/dist/features/TokensModal.js.map +1 -1
  77. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +19 -6
  78. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js.map +1 -1
  79. package/dist/features/WalletCompatibilityCheck/index.js +1 -1
  80. package/dist/features/index.js +1 -1
  81. package/dist/hooks/index.js +1 -1
  82. package/dist/hooks/useAllTokens.js +1 -1
  83. package/dist/hooks/useChains.js +1 -1
  84. package/dist/hooks/useCompatibilityCheck.js +1 -1
  85. package/dist/hooks/useDefaultToken.js +1 -1
  86. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  87. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  88. package/dist/hooks/useIntentsBalance.js +1 -1
  89. package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
  90. package/dist/hooks/useMakeDepositAddress.js +1 -1
  91. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  92. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  93. package/dist/hooks/useMakeQuote.js +1 -1
  94. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  95. package/dist/hooks/useMakeTransfer.js +1 -1
  96. package/dist/hooks/useMergedBalance.js +1 -1
  97. package/dist/hooks/useSwitchChain.js +1 -1
  98. package/dist/hooks/useTheme.js +1 -1
  99. package/dist/hooks/useTokenInputPair.js +1 -1
  100. package/dist/hooks/useTokens.js +1 -1
  101. package/dist/hooks/useTokensFiltered.js +1 -1
  102. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/machine/effects/index.js +1 -1
  105. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  106. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  107. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  108. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  109. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  110. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  111. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  112. package/dist/machine/events/index.js +1 -1
  113. package/dist/machine/events/reset.d.ts +1 -0
  114. package/dist/machine/events/reset.js +2 -2
  115. package/dist/machine/events/reset.js.map +1 -1
  116. package/dist/machine/events/tokenSelect.js +1 -1
  117. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  118. package/dist/machine/events/validateInputs.js +1 -1
  119. package/dist/machine/index.js +1 -1
  120. package/dist/machine/snap.js +1 -1
  121. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  122. package/dist/machine/subscriptions/index.js +1 -1
  123. package/dist/styles.css +1 -1
  124. package/dist/tailwind.css +9 -0
  125. package/dist/theme/ThemeProvider.js +1 -1
  126. package/dist/types/localisation.d.ts +1 -1
  127. package/dist/utils/intents/signers/near.js +1 -1
  128. package/dist/utils/intents/signers/privy.js +1 -1
  129. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  130. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +79 -71
  131. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  132. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  133. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +94 -81
  134. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  135. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  136. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +79 -67
  137. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  138. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  139. package/package.json +1 -2
  140. package/src/components/Accordion.tsx +8 -9
  141. package/src/components/Banner.tsx +17 -8
  142. package/src/components/BlockingError.tsx +4 -6
  143. package/src/components/Button.tsx +26 -7
  144. package/src/components/CloseButton.tsx +2 -2
  145. package/src/components/CopyButton.tsx +14 -4
  146. package/src/components/DirectionSwitcher.tsx +4 -4
  147. package/src/components/Input.tsx +5 -4
  148. package/src/components/Notes.tsx +1 -1
  149. package/src/components/StatusWidget.tsx +4 -11
  150. package/src/features/ChainsDropdown/AllNetworksIcon.tsx +2 -2
  151. package/src/features/ChainsDropdown/ChainItem.tsx +2 -2
  152. package/src/features/ChainsDropdown/index.tsx +9 -3
  153. package/src/features/DepositMethodSwitcher.tsx +4 -3
  154. package/src/features/ExternalDeposit.tsx +2 -2
  155. package/src/features/SendAddress/index.tsx +3 -2
  156. package/src/features/SuccessScreen/CopyableValue.tsx +13 -0
  157. package/src/features/SuccessScreen/TokenRow.tsx +26 -0
  158. package/src/features/SuccessScreen/index.tsx +161 -55
  159. package/src/features/SuccessScreen/useSummaryItemsCount.ts +33 -0
  160. package/src/features/TokensModal.tsx +2 -2
  161. package/src/features/WalletCompatibilityCheck/WalletCompatibilityModal.tsx +8 -9
  162. package/src/machine/events/reset.ts +6 -3
  163. package/src/tailwind.css +9 -0
  164. package/src/types/localisation.ts +10 -3
  165. package/src/widgets/WidgetDeposit/WidgetDepositContent.tsx +6 -4
  166. package/src/widgets/WidgetSwap/WidgetSwapContent.tsx +7 -4
  167. package/src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx +7 -4
  168. package/dist/config-DJObWR7Z.js.map +0 -1
  169. package/dist/features/SuccessScreen/CheckIcon.d.ts +0 -1
  170. package/dist/features/SuccessScreen/CheckIcon.js +0 -7
  171. package/dist/features/SuccessScreen/CheckIcon.js.map +0 -1
  172. package/dist/features/SuccessScreen/ExternalAction.d.ts +0 -5
  173. package/dist/features/SuccessScreen/ExternalAction.js +0 -16
  174. package/dist/features/SuccessScreen/ExternalAction.js.map +0 -1
  175. package/dist/features/SuccessScreen/SummaryItem.d.ts +0 -8
  176. package/dist/features/SuccessScreen/SummaryItem.js +0 -21
  177. package/dist/features/SuccessScreen/SummaryItem.js.map +0 -1
  178. package/src/features/SuccessScreen/CheckIcon.tsx +0 -7
  179. package/src/features/SuccessScreen/ExternalAction.tsx +0 -15
  180. package/src/features/SuccessScreen/SummaryItem.tsx +0 -28
@@ -1,27 +1,29 @@
1
- import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
- import { useState as w, useEffect as b } from "react";
3
- import { useTokenModal as B } from "../../hooks/useTokenModal.js";
1
+ import { jsx as t, jsxs as w } from "react/jsx-runtime";
2
+ import { useState as _, useEffect as b } from "react";
3
+ import { useTokenModal as N } from "../../hooks/useTokenModal.js";
4
4
  import { WidgetWithdrawSkeleton as y } from "./WidgetWithdrawSkeleton.js";
5
- import { useTypedTranslation as D } from "../../localisation.js";
6
- import { b as N, u as O, y as Q, n as j, c as q, p as S, o as F, S as U } from "../../config-DJObWR7Z.js";
5
+ import { useTypedTranslation as O } from "../../localisation.js";
6
+ import { b as Q, u as j, y as q, n as F, c as U, p as T, o as K, S as P } from "../../config-BMvXuF1-.js";
7
7
  import "@tanstack/react-query";
8
8
  import "@headlessui/react";
9
+ import "@material-symbols-svg/react-rounded/icons/chevron-left";
9
10
  import "framer-motion";
10
- import "lucide-react";
11
11
  import "../../features/ChainsDropdown/ChainItem.js";
12
+ import "@material-symbols-svg/react-rounded/icons/target";
12
13
  import "../../utils/cn.js";
13
14
  import "../../constants/chains.js";
14
15
  import { notReachable as r } from "../../utils/notReachable.js";
15
- import { SendAddress as K } from "../../features/SendAddress/index.js";
16
- import { SuccessScreen as P } from "../../features/SuccessScreen/index.js";
17
- import { TokensModal as Y } from "../../features/TokensModal.js";
18
- import { DirectionSwitcher as z } from "../../components/DirectionSwitcher.js";
16
+ import { SendAddress as z } from "../../features/SendAddress/index.js";
17
+ import { SuccessScreen as G } from "../../features/SuccessScreen/index.js";
18
+ import { TokensModal as H } from "../../features/TokensModal.js";
19
+ import { DirectionSwitcher as J } from "../../components/DirectionSwitcher.js";
19
20
  import "ethers";
20
21
  import "../../machine/machine.js";
21
- import { fireEvent as G } from "../../machine/events/utils/fireEvent.js";
22
+ import { fireEvent as S } from "../../machine/events/utils/fireEvent.js";
22
23
  import "qrcode.react";
23
24
  import "@defuse-protocol/one-click-sdk-typescript";
24
- import { isDebug as H } from "../../utils/checkers/isDebug.js";
25
+ import "@material-symbols-svg/react-rounded/icons/progress-activity";
26
+ import { isDebug as L } from "../../utils/checkers/isDebug.js";
25
27
  import "viem";
26
28
  import "zod";
27
29
  import "../../utils/near/rpc.js";
@@ -34,37 +36,45 @@ import "../../index-xuotMAFm.js";
34
36
  import "axios";
35
37
  import "../../network.js";
36
38
  import "viem/chains";
37
- import { useTokenInputPair as J } from "../../hooks/useTokenInputPair.js";
38
- import { useIsCompatibilityCheckRequired as L } from "../../hooks/useIsCompatibilityCheckRequired.js";
39
+ import { useTokenInputPair as V } from "../../hooks/useTokenInputPair.js";
40
+ import { useIsCompatibilityCheckRequired as X } from "../../hooks/useIsCompatibilityCheckRequired.js";
39
41
  import "browser-or-node";
40
42
  import { Card as C } from "../../components/Card.js";
41
- import { BlockingError as V } from "../../components/BlockingError.js";
43
+ import "@material-symbols-svg/react-rounded/icons/close";
44
+ import "@material-symbols-svg/react-rounded/icons/emergency";
45
+ import "@material-symbols-svg/react-rounded/icons/error";
46
+ import "@material-symbols-svg/react-rounded/icons/verified";
47
+ import { BlockingError as Y } from "../../components/BlockingError.js";
42
48
  import "copy-text-to-clipboard";
49
+ import "@material-symbols-svg/react-rounded/icons/content-copy";
43
50
  import "../../components/Input.js";
44
51
  import "../../components/InputAmount.js";
45
52
  import "../../components/Notes.js";
46
- import { WalletCompatibilityCheck as X } from "../../features/WalletCompatibilityCheck/index.js";
47
- const Ye = ({
48
- providers: u,
49
- makeTransfer: T,
50
- onMsg: a,
51
- isLoading: x
53
+ import "@material-symbols-svg/react-rounded/icons/check-circle";
54
+ import "@material-symbols-svg/react-rounded/icons/qr-code";
55
+ import "@material-symbols-svg/react-rounded/icons/wallet";
56
+ import { WalletCompatibilityCheck as Z } from "../../features/WalletCompatibilityCheck/index.js";
57
+ const tt = ({
58
+ providers: m,
59
+ makeTransfer: x,
60
+ onMsg: i,
61
+ isLoading: W
52
62
  }) => {
53
- const { t: i } = D(), { ctx: s } = N(), { isDirectNearTokenWithdrawal: v } = O(), {
54
- chainsFilter: m,
63
+ const { t: a } = O(), { ctx: s } = Q(), { isDirectNearTokenWithdrawal: v } = j(), {
64
+ chainsFilter: u,
55
65
  alchemyApiKey: I,
56
- refetchQuoteInterval: W,
66
+ refetchQuoteInterval: A,
57
67
  intentsAccountType: M,
58
- onWalletSignout: A
59
- } = Q(), { status: d, refetch: E } = j(), { tokenModalOpen: o, updateTokenModalState: n } = B({ onMsg: a }), { onChangeAmount: f, onChangeToken: c, lastChangedInput: p } = J(), k = L(), [R, l] = w(!1);
68
+ onWalletSignout: E
69
+ } = q(), { status: d, refetch: R } = F(), { tokenModalOpen: o, updateTokenModalState: n } = N({ onMsg: i }), { onChangeAmount: k, onChangeToken: c, lastChangedInput: p } = V(), f = X(), [B, l] = _(!1);
60
70
  b(() => {
61
- k && l(!0);
62
- }, [k]);
63
- const [h, g] = w();
64
- if (b(() => {
65
- G("reset", { clearWalletAddress: !0 });
66
- }, []), q({
67
- debug: H(),
71
+ f && l(!0);
72
+ }, [f]);
73
+ const [h, g] = _();
74
+ b(() => {
75
+ S("reset", { clearWalletAddress: !0 });
76
+ }, []), U({
77
+ debug: L(),
68
78
  listenTo: [
69
79
  "checkWalletConnection",
70
80
  "setSourceTokenBalance",
@@ -77,22 +87,26 @@ const Ye = ({
77
87
  {
78
88
  message: void 0,
79
89
  type: p === "target" ? "exact_out" : "exact_in",
80
- refetchQuoteInterval: W
90
+ refetchQuoteInterval: A
81
91
  }
82
92
  ],
83
93
  ["setBalancesUsingAlchemyExt", { alchemyApiKey: I }]
84
94
  ]
85
- }), x || d !== "error" && !s.sourceToken)
95
+ });
96
+ const D = () => {
97
+ S("reset", { clearWalletAddress: !1, keepSelectedTokens: !0 });
98
+ };
99
+ if (W || d !== "error" && !s.sourceToken)
86
100
  return /* @__PURE__ */ t(y, {});
87
- if (R)
101
+ if (B)
88
102
  return /* @__PURE__ */ t(
89
- X,
103
+ Z,
90
104
  {
91
- providers: u,
105
+ providers: m,
92
106
  onMsg: (e) => {
93
107
  switch (e.type) {
94
108
  case "on_sign_out":
95
- A?.(M), l(!1);
109
+ E?.(M), l(!1);
96
110
  break;
97
111
  case "on_close":
98
112
  l(!1);
@@ -105,17 +119,15 @@ const Ye = ({
105
119
  );
106
120
  if (s.state === "transfer_success" && h)
107
121
  return /* @__PURE__ */ t(
108
- P,
122
+ G,
109
123
  {
124
+ showTargetToken: !0,
125
+ title: a("transfer.success.withdrawal.title", "Withdrawal successful"),
110
126
  ...h,
111
- message: [
112
- "Your withdrawal has been successfully completed,",
113
- "and the funds have been sent to the specified destination."
114
- ],
115
127
  onMsg: (e) => {
116
128
  switch (e.type) {
117
129
  case "on_dismiss_success":
118
- g(void 0);
130
+ g(void 0), D();
119
131
  break;
120
132
  default:
121
133
  r(e.type);
@@ -126,25 +138,25 @@ const Ye = ({
126
138
  switch (d) {
127
139
  case "error":
128
140
  return /* @__PURE__ */ t(
129
- V,
141
+ Y,
130
142
  {
131
143
  message: "Couldn't load tokens list.",
132
- onClickRetry: E
144
+ onClickRetry: R
133
145
  }
134
146
  );
135
147
  case "success":
136
148
  return o !== "none" ? /* @__PURE__ */ t(
137
- Y,
149
+ H,
138
150
  {
139
151
  showBalances: !0,
140
152
  variant: o,
141
153
  showChainsSelector: o === "target",
142
154
  groupTokens: !1,
143
- chainsFilter: o === "source" ? m.source : m.target,
155
+ chainsFilter: o === "source" ? u.source : u.target,
144
156
  onMsg: (e) => {
145
157
  switch (e.type) {
146
158
  case "on_select_token":
147
- c(o, e.token), n("none"), a?.({
159
+ c(o, e.token), n("none"), i?.({
148
160
  type: e.type,
149
161
  token: e.token,
150
162
  variant: o
@@ -158,12 +170,12 @@ const Ye = ({
158
170
  }
159
171
  }
160
172
  }
161
- ) : /* @__PURE__ */ _("div", { className: "gap-sw-2xl relative flex flex-col", children: [
162
- /* @__PURE__ */ _("div", { className: "gap-[10px] relative flex flex-col", children: [
173
+ ) : /* @__PURE__ */ w("div", { className: "gap-sw-2xl relative flex flex-col", children: [
174
+ /* @__PURE__ */ w("div", { className: "gap-[10px] relative flex flex-col", children: [
163
175
  /* @__PURE__ */ t(C, { padding: "none", children: /* @__PURE__ */ t(
164
- S.Source,
176
+ T.Source,
165
177
  {
166
- heading: i(
178
+ heading: a(
167
179
  "tokenInput.heading.source.withdraw",
168
180
  "Withdraw token"
169
181
  ),
@@ -174,7 +186,7 @@ const Ye = ({
174
186
  c("source", e.token);
175
187
  break;
176
188
  case "on_change_amount":
177
- f("source", e.amount);
189
+ k("source", e.amount);
178
190
  break;
179
191
  case "on_click_select_token":
180
192
  n("source");
@@ -185,11 +197,11 @@ const Ye = ({
185
197
  }
186
198
  }
187
199
  ) }),
188
- /* @__PURE__ */ t(z, { isEnabled: !1 }),
200
+ /* @__PURE__ */ t(J, { isEnabled: !1 }),
189
201
  /* @__PURE__ */ t(C, { padding: "none", children: /* @__PURE__ */ t(
190
- S.Target,
202
+ T.Target,
191
203
  {
192
- heading: i(
204
+ heading: a(
193
205
  "tokenInput.heading.target.withdraw",
194
206
  "Receive token"
195
207
  ),
@@ -200,7 +212,7 @@ const Ye = ({
200
212
  c("target", e.token);
201
213
  break;
202
214
  case "on_change_amount":
203
- f("target", e.amount);
215
+ k("target", e.amount);
204
216
  break;
205
217
  case "on_click_select_token":
206
218
  n("target");
@@ -213,7 +225,7 @@ const Ye = ({
213
225
  ) })
214
226
  ] }),
215
227
  !!s.walletAddress && s.targetToken && !s.targetToken.isIntent && /* @__PURE__ */ t(
216
- K,
228
+ z,
217
229
  {
218
230
  onMsg: (e) => {
219
231
  switch (e.type) {
@@ -225,15 +237,15 @@ const Ye = ({
225
237
  }
226
238
  }
227
239
  ),
228
- !v && /* @__PURE__ */ t(F, {}),
240
+ !v && /* @__PURE__ */ t(K, {}),
229
241
  /* @__PURE__ */ t(
230
- U,
242
+ P,
231
243
  {
232
- providers: u,
233
- makeTransfer: T,
234
- label: i("submit.active.withdraw", "Swap & withdraw"),
244
+ providers: m,
245
+ makeTransfer: x,
246
+ label: a("submit.active.withdraw", "Swap & withdraw"),
235
247
  onSuccess: (e) => {
236
- g(e), a?.({ type: "on_transfer_success" });
248
+ g(e), i?.({ type: "on_transfer_success" });
237
249
  }
238
250
  }
239
251
  )
@@ -244,6 +256,6 @@ const Ye = ({
244
256
  }
245
257
  };
246
258
  export {
247
- Ye as WidgetWithdrawContent
259
+ tt as WidgetWithdrawContent
248
260
  };
249
261
  //# sourceMappingURL=WidgetWithdrawContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetWithdrawContent.js","sources":["../../../src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetWithdrawSkeleton } from './WidgetWithdrawSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError, Card, DirectionSwitcher } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\ntype Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetWithdrawContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { t } = useTypedTranslation();\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n [\n 'setDefaultSelectedTokens',\n { skipIntents: false, target: 'same-asset' },\n ],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetWithdrawSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n {...transferResult}\n message={[\n 'Your withdrawal has been successfully completed,',\n 'and the funds have been sent to the specified destination.',\n ]}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n variant={tokenModalOpen}\n showChainsSelector={tokenModalOpen === 'target'}\n groupTokens={false}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl relative flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <Card padding=\"none\">\n <TokenInput.Source\n heading={t(\n 'tokenInput.heading.source.withdraw',\n 'Withdraw token',\n )}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n\n <DirectionSwitcher isEnabled={false} />\n\n <Card padding=\"none\">\n <TokenInput.Target\n heading={t(\n 'tokenInput.heading.target.withdraw',\n 'Receive token',\n )}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.withdraw', 'Swap & withdraw')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetWithdrawSkeleton />;\n }\n};\n"],"names":["WidgetWithdrawContent","providers","makeTransfer","onMsg","isLoading","t","useTypedTranslation","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","useStoreSideEffects","isDebug","WidgetWithdrawSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","Card","TokenInput","DirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetWithdrawContent.js","sources":["../../../src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { CommonWidgetProps, TokenInputType } from '../types';\nimport { useTokenModal } from '../../hooks/useTokenModal';\nimport { WidgetWithdrawSkeleton } from './WidgetWithdrawSkeleton';\nimport { useTypedTranslation } from '../../localisation';\nimport {\n SendAddress,\n SubmitButton,\n SuccessScreen,\n SwapQuote,\n TokenInput,\n TokensModal,\n} from '@/features';\n\nimport { BlockingError, Card, DirectionSwitcher } from '@/components';\nimport { WalletCompatibilityCheck } from '@/features/WalletCompatibilityCheck';\n\nimport { useStoreSideEffects } from '@/machine/effects';\nimport { useComputedSnapshot, useUnsafeSnapshot } from '@/machine/snap';\nimport { fireEvent } from '@/machine/events/utils/fireEvent';\n\nimport {\n useIsCompatibilityCheckRequired,\n useTokenInputPair,\n useTokens,\n} from '@/hooks';\nimport { useConfig } from '@/config';\n\nimport { isDebug, notReachable } from '@/utils';\n\nimport type { Token, TransferResult } from '@/types';\n\ntype Msg =\n | { type: 'on_select_token'; token: Token; variant: TokenInputType }\n | { type: 'on_transfer_success' }\n | { type: 'on_tokens_modal_toggled'; isOpen: boolean };\n\nexport type Props = CommonWidgetProps<Msg>;\n\nexport const WidgetWithdrawContent = ({\n providers,\n makeTransfer,\n onMsg,\n isLoading,\n}: Props) => {\n const { t } = useTypedTranslation();\n const { ctx } = useUnsafeSnapshot();\n const { isDirectNearTokenWithdrawal } = useComputedSnapshot();\n const {\n chainsFilter,\n alchemyApiKey,\n refetchQuoteInterval,\n intentsAccountType,\n onWalletSignout,\n } = useConfig();\n\n const { status: tokensStatus, refetch: refetchTokens } = useTokens();\n const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });\n const { onChangeAmount, onChangeToken, lastChangedInput } =\n useTokenInputPair();\n\n const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();\n const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);\n\n useEffect(() => {\n if (isCompatibilityCheckRequired) {\n setIsCompatibilityOpen(true);\n }\n }, [isCompatibilityCheckRequired]);\n\n const [transferResult, setTransferResult] = useState<\n TransferResult | undefined\n >();\n\n useEffect(() => {\n fireEvent('reset', { clearWalletAddress: true });\n }, []);\n\n useStoreSideEffects({\n debug: isDebug(),\n listenTo: [\n 'checkWalletConnection',\n 'setSourceTokenBalance',\n [\n 'setDefaultSelectedTokens',\n { skipIntents: false, target: 'same-asset' },\n ],\n [\n 'makeQuote',\n {\n message: undefined,\n type: lastChangedInput === 'target' ? 'exact_out' : 'exact_in',\n refetchQuoteInterval,\n },\n ],\n ['setBalancesUsingAlchemyExt', { alchemyApiKey }],\n ],\n });\n\n const onBackToSwap = () => {\n fireEvent('reset', { clearWalletAddress: false, keepSelectedTokens: true });\n };\n\n if (!!isLoading || (tokensStatus !== 'error' && !ctx.sourceToken)) {\n return <WidgetWithdrawSkeleton />;\n }\n\n if (isCompatibilityOpen) {\n return (\n <WalletCompatibilityCheck\n providers={providers}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_sign_out':\n onWalletSignout?.(intentsAccountType);\n setIsCompatibilityOpen(false);\n break;\n case 'on_close':\n setIsCompatibilityOpen(false);\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n if (ctx.state === 'transfer_success' && !!transferResult) {\n return (\n <SuccessScreen\n showTargetToken\n title={t('transfer.success.withdrawal.title', 'Withdrawal successful')}\n {...transferResult}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_dismiss_success':\n setTransferResult(undefined);\n onBackToSwap();\n break;\n default:\n notReachable(msg.type);\n }\n }}\n />\n );\n }\n\n switch (tokensStatus) {\n case 'error':\n return (\n <BlockingError\n message=\"Couldn't load tokens list.\"\n onClickRetry={refetchTokens}\n />\n );\n\n case 'success': {\n if (tokenModalOpen !== 'none') {\n return (\n <TokensModal\n showBalances\n variant={tokenModalOpen}\n showChainsSelector={tokenModalOpen === 'target'}\n groupTokens={false}\n chainsFilter={\n tokenModalOpen === 'source'\n ? chainsFilter.source\n : chainsFilter.target\n }\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken(tokenModalOpen, msg.token);\n updateTokenModalState('none');\n onMsg?.({\n type: msg.type,\n token: msg.token,\n variant: tokenModalOpen,\n });\n break;\n case 'on_dismiss_tokens_modal':\n updateTokenModalState('none');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n );\n }\n\n return (\n <div className=\"gap-sw-2xl relative flex flex-col\">\n <div className=\"gap-[10px] relative flex flex-col\">\n <Card padding=\"none\">\n <TokenInput.Source\n heading={t(\n 'tokenInput.heading.source.withdraw',\n 'Withdraw token',\n )}\n isChanging={lastChangedInput === 'source'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('source', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('source', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('source');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n\n <DirectionSwitcher isEnabled={false} />\n\n <Card padding=\"none\">\n <TokenInput.Target\n heading={t(\n 'tokenInput.heading.target.withdraw',\n 'Receive token',\n )}\n isChanging={lastChangedInput === 'target'}\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_select_token':\n onChangeToken('target', msg.token);\n break;\n case 'on_change_amount':\n onChangeAmount('target', msg.amount);\n break;\n case 'on_click_select_token':\n updateTokenModalState('target');\n break;\n default:\n notReachable(msg);\n }\n }}\n />\n </Card>\n </div>\n\n {!!ctx.walletAddress &&\n ctx.targetToken &&\n !ctx.targetToken.isIntent && (\n <SendAddress\n onMsg={(msg) => {\n switch (msg.type) {\n case 'on_change_send_address':\n break;\n default:\n notReachable(msg.type, { throwError: false });\n }\n }}\n />\n )}\n\n {!isDirectNearTokenWithdrawal && <SwapQuote />}\n\n <SubmitButton\n providers={providers}\n makeTransfer={makeTransfer}\n label={t('submit.active.withdraw', 'Swap & withdraw')}\n onSuccess={(transfer) => {\n setTransferResult(transfer);\n onMsg?.({ type: 'on_transfer_success' });\n }}\n />\n </div>\n );\n }\n\n case 'pending':\n default:\n return <WidgetWithdrawSkeleton />;\n }\n};\n"],"names":["WidgetWithdrawContent","providers","makeTransfer","onMsg","isLoading","t","useTypedTranslation","ctx","useUnsafeSnapshot","isDirectNearTokenWithdrawal","useComputedSnapshot","chainsFilter","alchemyApiKey","refetchQuoteInterval","intentsAccountType","onWalletSignout","useConfig","tokensStatus","refetchTokens","useTokens","tokenModalOpen","updateTokenModalState","useTokenModal","onChangeAmount","onChangeToken","lastChangedInput","useTokenInputPair","isCompatibilityCheckRequired","useIsCompatibilityCheckRequired","isCompatibilityOpen","setIsCompatibilityOpen","useState","useEffect","transferResult","setTransferResult","fireEvent","useStoreSideEffects","isDebug","onBackToSwap","WidgetWithdrawSkeleton","jsx","WalletCompatibilityCheck","msg","notReachable","SuccessScreen","BlockingError","TokensModal","jsxs","Card","TokenInput","DirectionSwitcher","SendAddress","SwapQuote","SubmitButton","transfer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import o from "clsx";
3
3
  import { SkeletonBox as l } from "../../components/SkeletonBox.js";
4
- import { y as x } from "../../config-DJObWR7Z.js";
4
+ import { y as x } from "../../config-BMvXuF1-.js";
5
5
  const p = () => {
6
6
  const { hideTokenInputHeadings: s } = x();
7
7
  return /* @__PURE__ */ a("div", { className: "w-full gap-sw-xl relative flex flex-col", children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurora-is-near/intents-swap-widget",
3
- "version": "3.18.1",
3
+ "version": "3.18.3",
4
4
  "description": "Provides components and hooks to build your own Intents swap widget",
5
5
  "author": "Maksim Vashchuk",
6
6
  "license": "MIT",
@@ -82,7 +82,6 @@
82
82
  "imask": "^7.6.1",
83
83
  "jest-react-hooks-shallow": "^1.5.1",
84
84
  "lodash.once": "^4.1.1",
85
- "lucide-react": "^0.525.0",
86
85
  "near-api-js": "^6.2.5",
87
86
  "proxy-memoize": "^3.0.1",
88
87
  "qrcode.react": "^4.2.0",
@@ -1,5 +1,5 @@
1
1
  import { useState } from 'react';
2
- import * as Icons from 'lucide-react';
2
+ import { ChevronLeftW700 as ChevronLeft } from '@material-symbols-svg/react-rounded/icons/chevron-left';
3
3
  import type { ReactNode } from 'react';
4
4
 
5
5
  import { Hr } from './Hr';
@@ -29,12 +29,11 @@ export const Accordion = ({
29
29
  const [isExpanded, setIsExpanded] = useState(expandedByDefault);
30
30
 
31
31
  return (
32
- <Card
33
- isClickable
34
- className={cn('py-sw-lg', className)}
35
- onClick={() => setIsExpanded((p) => !p)}>
36
- <header className="align-center flex w-full justify-between">
37
- <span className="gap-sw-xs text-sw-label-md mt-sw-xs flex text-center text-sw-gray-200">
32
+ <Card className={cn('py-sw-xl', className)}>
33
+ <header
34
+ onClick={() => setIsExpanded((p) => !p)}
35
+ className="items-center flex w-full justify-between cursor-pointer">
36
+ <span className="gap-sw-xs text-sw-label-md flex text-center text-sw-gray-200">
38
37
  {title}
39
38
  </span>
40
39
  {isBadgeLoading ? (
@@ -44,9 +43,9 @@ export const Accordion = ({
44
43
  )}
45
44
  <button type="button" className="ml-sw-lg cursor-pointer">
46
45
  {isExpanded ? (
47
- <Icons.ChevronUp className="h-sw-2xl w-sw-2xl text-sw-gray-200" />
46
+ <ChevronLeft className="h-sw-2xl w-sw-2xl text-sw-gray-200 rotate-90" />
48
47
  ) : (
49
- <Icons.ChevronDown className="h-sw-2xl w-sw-2xl text-sw-gray-200" />
48
+ <ChevronLeft className="h-sw-2xl w-sw-2xl text-sw-gray-200 -rotate-90" />
50
49
  )}
51
50
  </button>
52
51
  </header>
@@ -1,4 +1,8 @@
1
- import * as Icons from 'lucide-react';
1
+ import { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';
2
+ import { EmergencyW700 as Emergency } from '@material-symbols-svg/react-rounded/icons/emergency';
3
+ import { ErrorFillW700 as ErrorFill } from '@material-symbols-svg/react-rounded/icons/error';
4
+ import { VerifiedFillW700 as VerifiedFill } from '@material-symbols-svg/react-rounded/icons/verified';
5
+ import { useMemo } from 'react';
2
6
 
3
7
  import { cn } from '@/utils/cn';
4
8
 
@@ -17,12 +21,17 @@ export const Banner = ({
17
21
  className,
18
22
  onDismiss,
19
23
  }: Props) => {
20
- const icon =
21
- variant === 'success' ? (
22
- <Icons.CheckCircle size={16} />
23
- ) : (
24
- <Icons.CircleAlert size={16} />
25
- );
24
+ const icon = useMemo(() => {
25
+ switch (variant) {
26
+ case 'success':
27
+ return <VerifiedFill size={16} />;
28
+ case 'error':
29
+ return <ErrorFill size={16} />;
30
+ case 'warn':
31
+ default:
32
+ return <Emergency size={16} />;
33
+ }
34
+ }, [variant]);
26
35
 
27
36
  return (
28
37
  <div
@@ -46,7 +55,7 @@ export const Banner = ({
46
55
  <div
47
56
  onClick={onDismiss}
48
57
  className="ml-auto flex cursor-pointer items-center justify-center transition-all hover:scale-125">
49
- <Icons.X size={16} strokeWidth={2.5} />
58
+ <Close size={16} />
50
59
  </div>
51
60
  )}
52
61
  </div>
@@ -1,4 +1,5 @@
1
- import * as Icons from 'lucide-react';
1
+ import { CachedW700 as Cached } from '@material-symbols-svg/react-rounded/icons/cached';
2
+ import { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';
2
3
 
3
4
  import { Button } from './Button';
4
5
  import { Card } from './Card';
@@ -13,10 +14,7 @@ export const BlockingError = ({ message, onClickRetry }: Props) => (
13
14
  <div className="gap-sw-4xl py-6xl flex min-h-[200px] flex-col items-center justify-center w-full">
14
15
  <div className="gap-sw-xl flex flex-col items-center justify-center">
15
16
  <header className="gap-sw-md flex items-center">
16
- <Icons.X
17
- strokeWidth={2.5}
18
- className="text-sw-accent-500 h-sw-4xl w-sw-4xl"
19
- />
17
+ <Close className="text-sw-accent-500 h-sw-4xl w-sw-4xl" />
20
18
  <h3 className="text-sw-value-lg text-sw-accent-500">Ooops...</h3>
21
19
  </header>
22
20
  <p className="text-sw-body-md text-center text-sw-gray-100">
@@ -26,7 +24,7 @@ export const BlockingError = ({ message, onClickRetry }: Props) => (
26
24
  <Button
27
25
  size="md"
28
26
  variant="primary"
29
- icon={Icons.RefreshCcw}
27
+ icon={Cached}
30
28
  onClick={onClickRetry}
31
29
  className="w-fit">
32
30
  Try again
@@ -1,6 +1,9 @@
1
1
  import { Button as UIButton } from '@headlessui/react';
2
- import type { LucideIcon, LucideProps } from 'lucide-react';
3
- import * as Icons from 'lucide-react';
2
+ import { ProgressActivityW700 as ProgressActivity } from '@material-symbols-svg/react-rounded/icons/progress-activity';
3
+ import type {
4
+ IconProps,
5
+ MaterialSymbolsComponent,
6
+ } from '@material-symbols-svg/react';
4
7
 
5
8
  import { cn as clsx } from '@/utils/cn';
6
9
 
@@ -17,9 +20,13 @@ type Props = {
17
20
  onClick?: () => void;
18
21
  fluid?: boolean;
19
22
  } & (
20
- | { icon: LucideIcon; iconPosition?: 'head' | 'tail' }
23
+ | { icon: MaterialSymbolsComponent; iconPosition?: 'head' | 'tail' }
21
24
  | { icon?: never; iconPosition?: never }
22
- );
25
+ ) &
26
+ (
27
+ | { as?: 'button'; href?: never; target?: never }
28
+ | { as: 'a'; href: string; target?: '_blank' | '_self' }
29
+ );
23
30
 
24
31
  const styles = {
25
32
  icon: 'h-sw-xl w-sw-xl',
@@ -50,10 +57,10 @@ const ButtonChildren = ({
50
57
  const Icon =
51
58
  hasIcon && state !== 'loading'
52
59
  ? (icon ?? (() => <span />))
53
- : ({ className, ...lucidProps }: LucideProps) => (
54
- <Icons.Loader
60
+ : ({ className, ...iconProps }: IconProps) => (
61
+ <ProgressActivity
55
62
  className={clsx(styles.icon, 'animate-spin', className)}
56
- {...lucidProps}
63
+ {...iconProps}
57
64
  />
58
65
  );
59
66
 
@@ -73,20 +80,26 @@ const ButtonPrimary = ({
73
80
  size,
74
81
  className,
75
82
  children,
83
+ as = 'button',
76
84
  state = 'default',
77
85
  onClick,
78
86
  fluid,
87
+ href,
88
+ target,
79
89
  ...props
80
90
  }: Omit<Props, 'variant'>) => {
91
+ const anchorProps = as === 'a' ? { href, target } : {};
81
92
  const isDisabled = ['disabled', 'loading', 'error'].includes(state)
82
93
  ? true
83
94
  : undefined;
84
95
 
85
96
  return (
86
97
  <UIButton
98
+ as={as}
87
99
  disabled={isDisabled}
88
100
  data-active={state === 'active' ? true : undefined}
89
101
  onClick={() => state === 'default' && onClick?.()}
102
+ {...anchorProps}
90
103
  className={clsx(
91
104
  styles.common,
92
105
  styles.width(fluid),
@@ -112,20 +125,26 @@ const ButtonOutlined = ({
112
125
  size,
113
126
  className,
114
127
  children,
128
+ as = 'button',
115
129
  state = 'default',
116
130
  onClick,
117
131
  fluid,
132
+ href,
133
+ target,
118
134
  ...props
119
135
  }: Omit<Props, 'variant'>) => {
136
+ const anchorProps = as === 'a' ? { href, target } : {};
120
137
  const isDisabled = ['disabled', 'loading', 'error'].includes(state)
121
138
  ? true
122
139
  : undefined;
123
140
 
124
141
  return (
125
142
  <UIButton
143
+ as={as}
126
144
  disabled={isDisabled}
127
145
  data-active={state === 'active' ? true : undefined}
128
146
  onClick={() => state === 'default' && onClick?.()}
147
+ {...anchorProps}
129
148
  className={clsx(
130
149
  styles.common,
131
150
  styles.width(fluid),
@@ -1,4 +1,4 @@
1
- import * as Icons from 'lucide-react';
1
+ import { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';
2
2
 
3
3
  import { cn } from '@/utils';
4
4
 
@@ -16,7 +16,7 @@ export const CloseButton = ({ className, onClick }: Props) => {
16
16
  className,
17
17
  )}
18
18
  onClick={onClick}>
19
- <Icons.X size={18} strokeWidth={3} />
19
+ <Close size={18} />
20
20
  </button>
21
21
  );
22
22
  };
@@ -1,11 +1,21 @@
1
1
  import copy from 'copy-text-to-clipboard';
2
- import * as Icons from 'lucide-react';
2
+ import { ContentCopyW700 as ContentCopy } from '@material-symbols-svg/react-rounded/icons/content-copy';
3
3
 
4
- export const CopyButton = ({ value }: { value: string }) => (
4
+ import { cn } from '@/utils/cn';
5
+
6
+ type Props = {
7
+ value: string;
8
+ className?: string;
9
+ };
10
+
11
+ export const CopyButton = ({ value, className }: Props) => (
5
12
  <button
6
13
  type="button"
7
14
  onClick={() => copy(value)}
8
- className="text-sw-gray-200 hover:text-sw-gray-50 cursor-pointer transition-all duration-300 [transition-timing-function:cubic-bezier(0.175,0.885,0.32,1.275)] active:-translate-y-1 active:scale-x-90 active:scale-y-110">
9
- <Icons.Copy size={16} />
15
+ className={cn(
16
+ 'text-sw-gray-200 hover:text-sw-gray-50 cursor-pointer transition-all duration-300 [transition-timing-function:cubic-bezier(0.175,0.885,0.32,1.275)] active:-translate-y-1 active:scale-x-90 active:scale-y-110',
17
+ className,
18
+ )}>
19
+ <ContentCopy size={16} />
10
20
  </button>
11
21
  );
@@ -1,5 +1,5 @@
1
- import * as Icons from 'lucide-react';
2
-
1
+ import { ArrowDownwardW700 as ArrowDownward } from '@material-symbols-svg/react-rounded/icons/arrow-downward';
2
+ import { ProgressActivityW700 as ProgressActivity } from '@material-symbols-svg/react-rounded/icons/progress-activity';
3
3
  import { cn } from '@/utils/cn';
4
4
 
5
5
  type Props = {
@@ -25,11 +25,11 @@ export const DirectionSwitcher = ({
25
25
  )}>
26
26
  {isLoading ? (
27
27
  <div className="group relative inline-block">
28
- <Icons.RefreshCw className="h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500" />
28
+ <ProgressActivity className="h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500" />
29
29
  </div>
30
30
  ) : (
31
31
  <div className="group relative inline-block">
32
- <Icons.ArrowDown
32
+ <ArrowDownward
33
33
  className={cn(
34
34
  'h-sw-2xl w-sw-2xl transition-transform duration-300',
35
35
  {