@aori/mega-swap-widget 0.1.0 → 0.1.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 (99) hide show
  1. package/LICENSE +5 -12
  2. package/README.md +9 -1
  3. package/dist/AssetSelectionMenu-4E576X3D.cjs +2 -0
  4. package/dist/AssetSelectionMenu-ZFY7XFRX.js +2 -0
  5. package/dist/ChainSelectionMenu-SKXLHK3S.js +2 -0
  6. package/dist/ChainSelectionMenu-VU3SIBVL.cjs +2 -0
  7. package/dist/SwapFormHorizontal-GI4X7ISS.js +2 -0
  8. package/dist/SwapFormHorizontal-V557YBX2.cjs +2 -0
  9. package/dist/SwapFormSplit-52RBMJIO.js +2 -0
  10. package/dist/SwapFormSplit-PQCS3BPT.cjs +2 -0
  11. package/dist/WalletPlaceholderPanel-TTONBBI4.cjs +2 -0
  12. package/dist/WalletPlaceholderPanel-Z4JCFCNV.js +2 -0
  13. package/dist/WidgetWalletPanel-XYV3YL4I.js +2 -0
  14. package/dist/WidgetWalletPanel-YBMN5KZH.cjs +2 -0
  15. package/dist/chunk-34N36GUD.cjs +2 -0
  16. package/dist/chunk-46H44R7V.js +2 -0
  17. package/dist/chunk-4BQRVCQR.js +2 -0
  18. package/dist/chunk-4LJJMEOG.js +2 -0
  19. package/dist/chunk-726CI6GC.js +2 -0
  20. package/dist/chunk-73CB2I7U.js +2 -0
  21. package/dist/chunk-DUIRZSBV.cjs +2 -0
  22. package/dist/chunk-EW2OR6CJ.js +27 -0
  23. package/dist/chunk-FDQKBTWP.js +2 -0
  24. package/dist/chunk-HTWUZKYO.cjs +2 -0
  25. package/dist/chunk-KH57FLST.cjs +57 -0
  26. package/dist/chunk-LXEKOQAG.cjs +27 -0
  27. package/dist/chunk-MCT3UZTP.cjs +2 -0
  28. package/dist/chunk-OPN7WCJR.js +57 -0
  29. package/dist/chunk-T3I3AJXV.cjs +2 -0
  30. package/dist/chunk-UZWGYG2S.cjs +2 -0
  31. package/dist/chunk-XYF2YBR3.js +2 -0
  32. package/dist/chunk-XZRXVBSB.cjs +2 -0
  33. package/dist/index.cjs +2 -1772
  34. package/dist/index.css +1 -1423
  35. package/dist/index.js +2 -1772
  36. package/package.json +2 -22
  37. package/dist/AssetSelectionMenu-Y3EB32BT.cjs +0 -13
  38. package/dist/AssetSelectionMenu-Y3EB32BT.cjs.map +0 -1
  39. package/dist/AssetSelectionMenu-ZRG42UCZ.js +0 -13
  40. package/dist/AssetSelectionMenu-ZRG42UCZ.js.map +0 -1
  41. package/dist/ChainSelectionMenu-FBAPPFKI.cjs +0 -11
  42. package/dist/ChainSelectionMenu-FBAPPFKI.cjs.map +0 -1
  43. package/dist/ChainSelectionMenu-QO3H4TNR.js +0 -11
  44. package/dist/ChainSelectionMenu-QO3H4TNR.js.map +0 -1
  45. package/dist/SwapFormHorizontal-JDJUDFNX.js +0 -573
  46. package/dist/SwapFormHorizontal-JDJUDFNX.js.map +0 -1
  47. package/dist/SwapFormHorizontal-WG3Z3CFT.cjs +0 -573
  48. package/dist/SwapFormHorizontal-WG3Z3CFT.cjs.map +0 -1
  49. package/dist/SwapFormSplit-7CHTPLEQ.js +0 -441
  50. package/dist/SwapFormSplit-7CHTPLEQ.js.map +0 -1
  51. package/dist/SwapFormSplit-VDDIRQUQ.cjs +0 -441
  52. package/dist/SwapFormSplit-VDDIRQUQ.cjs.map +0 -1
  53. package/dist/WalletPlaceholderPanel-7YDQ4FT6.js +0 -57
  54. package/dist/WalletPlaceholderPanel-7YDQ4FT6.js.map +0 -1
  55. package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs +0 -57
  56. package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs.map +0 -1
  57. package/dist/WidgetWalletPanel-D7I5TAU3.js +0 -789
  58. package/dist/WidgetWalletPanel-D7I5TAU3.js.map +0 -1
  59. package/dist/WidgetWalletPanel-T7H6FGVN.cjs +0 -789
  60. package/dist/WidgetWalletPanel-T7H6FGVN.cjs.map +0 -1
  61. package/dist/chunk-3E6RNP2D.cjs +0 -389
  62. package/dist/chunk-3E6RNP2D.cjs.map +0 -1
  63. package/dist/chunk-5TH6MFQD.cjs +0 -122
  64. package/dist/chunk-5TH6MFQD.cjs.map +0 -1
  65. package/dist/chunk-5XSCUUOW.js +0 -101
  66. package/dist/chunk-5XSCUUOW.js.map +0 -1
  67. package/dist/chunk-6Q7MSCKS.js +0 -2199
  68. package/dist/chunk-6Q7MSCKS.js.map +0 -1
  69. package/dist/chunk-6XB5R4GF.cjs +0 -368
  70. package/dist/chunk-6XB5R4GF.cjs.map +0 -1
  71. package/dist/chunk-6YLNOZ7P.js +0 -389
  72. package/dist/chunk-6YLNOZ7P.js.map +0 -1
  73. package/dist/chunk-7AWG6OWF.js +0 -27
  74. package/dist/chunk-7AWG6OWF.js.map +0 -1
  75. package/dist/chunk-ARMW5POL.js +0 -3082
  76. package/dist/chunk-ARMW5POL.js.map +0 -1
  77. package/dist/chunk-B3ILUJ7G.cjs +0 -101
  78. package/dist/chunk-B3ILUJ7G.cjs.map +0 -1
  79. package/dist/chunk-GGM3MDFM.js +0 -32
  80. package/dist/chunk-GGM3MDFM.js.map +0 -1
  81. package/dist/chunk-GZUTUD5O.cjs +0 -2199
  82. package/dist/chunk-GZUTUD5O.cjs.map +0 -1
  83. package/dist/chunk-HXOGJSAI.cjs +0 -3082
  84. package/dist/chunk-HXOGJSAI.cjs.map +0 -1
  85. package/dist/chunk-LTA7IG3J.js +0 -122
  86. package/dist/chunk-LTA7IG3J.js.map +0 -1
  87. package/dist/chunk-NBJPKJBC.cjs +0 -32
  88. package/dist/chunk-NBJPKJBC.cjs.map +0 -1
  89. package/dist/chunk-PGYOJ5RB.cjs +0 -27
  90. package/dist/chunk-PGYOJ5RB.cjs.map +0 -1
  91. package/dist/chunk-QHW27RMH.js +0 -199
  92. package/dist/chunk-QHW27RMH.js.map +0 -1
  93. package/dist/chunk-TMC4SUEV.js +0 -368
  94. package/dist/chunk-TMC4SUEV.js.map +0 -1
  95. package/dist/chunk-XQINW7QP.cjs +0 -199
  96. package/dist/chunk-XQINW7QP.cjs.map +0 -1
  97. package/dist/index.cjs.map +0 -1
  98. package/dist/index.css.map +0 -1
  99. package/dist/index.js.map +0 -1
package/package.json CHANGED
@@ -1,28 +1,8 @@
1
1
  {
2
2
  "name": "@aori/mega-swap-widget",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Embeddable cross-chain swap widget powered by Aori",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/aori-io/mega-swap-widget.git"
9
- },
10
- "homepage": "https://github.com/aori-io/mega-swap-widget#readme",
11
- "bugs": {
12
- "url": "https://github.com/aori-io/mega-swap-widget/issues"
13
- },
14
- "keywords": [
15
- "aori",
16
- "swap",
17
- "widget",
18
- "cross-chain",
19
- "dex",
20
- "defi",
21
- "react",
22
- "ethereum",
23
- "wagmi",
24
- "viem"
25
- ],
5
+ "license": "UNLICENSED",
26
6
  "type": "module",
27
7
  "private": false,
28
8
  "publishConfig": {
@@ -1,13 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
- "use client";
3
-
4
-
5
- var _chunk3E6RNP2Dcjs = require('./chunk-3E6RNP2D.cjs');
6
- require('./chunk-6XB5R4GF.cjs');
7
- require('./chunk-GZUTUD5O.cjs');
8
- require('./chunk-PGYOJ5RB.cjs');
9
- require('./chunk-NBJPKJBC.cjs');
10
-
11
-
12
- exports.default = _chunk3E6RNP2Dcjs.AssetSelectionMenu_default;
13
- //# sourceMappingURL=AssetSelectionMenu-Y3EB32BT.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/flooreyes/mega-swap-widget/dist/AssetSelectionMenu-Y3EB32BT.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,+DAAC","file":"/Users/flooreyes/mega-swap-widget/dist/AssetSelectionMenu-Y3EB32BT.cjs"}
@@ -1,13 +0,0 @@
1
- "use client";
2
- "use client";
3
- import {
4
- AssetSelectionMenu_default
5
- } from "./chunk-6YLNOZ7P.js";
6
- import "./chunk-TMC4SUEV.js";
7
- import "./chunk-6Q7MSCKS.js";
8
- import "./chunk-7AWG6OWF.js";
9
- import "./chunk-GGM3MDFM.js";
10
- export {
11
- AssetSelectionMenu_default as default
12
- };
13
- //# sourceMappingURL=AssetSelectionMenu-ZRG42UCZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
- "use client";
3
-
4
-
5
- var _chunkB3ILUJ7Gcjs = require('./chunk-B3ILUJ7G.cjs');
6
- require('./chunk-GZUTUD5O.cjs');
7
- require('./chunk-NBJPKJBC.cjs');
8
-
9
-
10
- exports.default = _chunkB3ILUJ7Gcjs.ChainSelectionMenu_default;
11
- //# sourceMappingURL=ChainSelectionMenu-FBAPPFKI.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/flooreyes/mega-swap-widget/dist/ChainSelectionMenu-FBAPPFKI.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,+DAAC","file":"/Users/flooreyes/mega-swap-widget/dist/ChainSelectionMenu-FBAPPFKI.cjs"}
@@ -1,11 +0,0 @@
1
- "use client";
2
- "use client";
3
- import {
4
- ChainSelectionMenu_default
5
- } from "./chunk-5XSCUUOW.js";
6
- import "./chunk-6Q7MSCKS.js";
7
- import "./chunk-GGM3MDFM.js";
8
- export {
9
- ChainSelectionMenu_default as default
10
- };
11
- //# sourceMappingURL=ChainSelectionMenu-QO3H4TNR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,573 +0,0 @@
1
- "use client";
2
- "use client";
3
- import {
4
- QuoteLoader_default
5
- } from "./chunk-QHW27RMH.js";
6
- import {
7
- AssetAmountInput_default,
8
- AssetSelection_default,
9
- RecipientForm_default,
10
- SwapButton,
11
- TxStatusDisplay_default,
12
- useRfq,
13
- useWalletModal
14
- } from "./chunk-ARMW5POL.js";
15
- import {
16
- AssetSelectionMenu_default
17
- } from "./chunk-6YLNOZ7P.js";
18
- import {
19
- ChainSelectionMenu_default
20
- } from "./chunk-5XSCUUOW.js";
21
- import "./chunk-LTA7IG3J.js";
22
- import {
23
- useSwapFormContext,
24
- useWidgetSwapUIStore
25
- } from "./chunk-TMC4SUEV.js";
26
- import {
27
- useWidgetConfig
28
- } from "./chunk-6Q7MSCKS.js";
29
- import {
30
- useWalletState
31
- } from "./chunk-7AWG6OWF.js";
32
- import "./chunk-GGM3MDFM.js";
33
-
34
- // src/components/SwapFormHorizontal.tsx
35
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
36
- import { useShallow } from "zustand/react/shallow";
37
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
38
- var NOOP = () => {
39
- };
40
- var SwapFormHorizontal = ({
41
- onSwapComplete,
42
- onSwapInitiated,
43
- onBackToSwap,
44
- onMoreChainsClick
45
- }) => {
46
- const {
47
- web3ConnectionType,
48
- hasConnectHandler,
49
- lockBase,
50
- lockQuote,
51
- disableInverting,
52
- swapButtonVariant,
53
- tokenDisplay,
54
- tokenBadgeOrientation,
55
- widgetType,
56
- assetMenuVariant
57
- } = useWidgetConfig();
58
- const isOverlayToken = tokenDisplay === "pill" || tokenDisplay === "ghost";
59
- const isCompactMode = widgetType === "compact";
60
- const {
61
- baseToken,
62
- quoteToken,
63
- baseAmount,
64
- quoteAmount,
65
- isBaseGasToken,
66
- isQuoteGasToken,
67
- isWrappingPair,
68
- isUnwrappingPair,
69
- baseBalance,
70
- quoteBalance,
71
- setBaseAmount,
72
- setQuoteAmount,
73
- swapTokens,
74
- clearForm
75
- } = useSwapFormContext();
76
- const {
77
- rfqQuote,
78
- status: rfqStatus,
79
- handleInputChange,
80
- ensureForParams,
81
- stop,
82
- clear,
83
- refresh
84
- } = useRfq();
85
- const { address: userAddress } = useWalletState();
86
- const { openConnectModal: openWalletModal } = useWalletModal();
87
- const {
88
- isRecipientInputOpen,
89
- txStatus,
90
- view,
91
- selectedChainFilterChainId
92
- } = useWidgetSwapUIStore(
93
- useShallow((state) => ({
94
- isRecipientInputOpen: state.isRecipientInputOpen,
95
- txStatus: state.txStatus,
96
- view: state.view,
97
- selectedChainFilterChainId: state.selectedChainFilter?.chainId ?? null
98
- }))
99
- );
100
- const [reviewState, setReviewState] = useState(null);
101
- const [trackedOrderHash, setTrackedOrderHash] = useState(null);
102
- const isHandlingStaleRestart = useRef(false);
103
- const isPlacingOrder = false;
104
- const reviewActionProps = useMemo(() => {
105
- if (!baseToken || !quoteToken || typeof baseAmount !== "number" || !quoteAmount || !userAddress) return null;
106
- if (parseFloat(baseBalance.formatted) < baseAmount) return null;
107
- return { base: baseToken, quote: quoteToken, baseAmount, quoteAmount, userAddress };
108
- }, [baseToken, quoteToken, baseAmount, quoteAmount, userAddress, baseBalance.formatted]);
109
- const onOrderSubmitted = useCallback((orderHash) => {
110
- setTrackedOrderHash(orderHash);
111
- useWidgetSwapUIStore.getState().startTracking(orderHash);
112
- }, []);
113
- const onStaleQuoteRestart = useCallback(() => {
114
- isHandlingStaleRestart.current = true;
115
- refresh();
116
- }, [refresh]);
117
- useEffect(() => {
118
- if (reviewState !== null) return;
119
- if (!baseToken || !quoteToken) return;
120
- if (!baseAmount || baseAmount <= 0) {
121
- handleInputChange({ amount: null, inputToken: baseToken, outputToken: quoteToken, setOutputAmount: setQuoteAmount });
122
- return;
123
- }
124
- if (isWrappingPair || isUnwrappingPair) {
125
- setQuoteAmount(baseAmount);
126
- return;
127
- }
128
- handleInputChange({
129
- amount: baseAmount,
130
- inputToken: baseToken,
131
- outputToken: quoteToken,
132
- setOutputAmount: setQuoteAmount
133
- });
134
- }, [
135
- reviewState,
136
- baseAmount,
137
- baseToken,
138
- quoteToken,
139
- isWrappingPair,
140
- isUnwrappingPair,
141
- handleInputChange,
142
- setQuoteAmount
143
- ]);
144
- const handleToggleBaseSelection = useCallback(() => {
145
- useWidgetSwapUIStore.getState().setView("baseSelection");
146
- }, []);
147
- const handleToggleQuoteSelection = useCallback(() => {
148
- useWidgetSwapUIStore.getState().setView("quoteSelection");
149
- }, []);
150
- const handleInvert = useCallback(() => {
151
- swapTokens();
152
- setQuoteAmount(null);
153
- }, [swapTokens, setQuoteAmount]);
154
- const handleMax = useCallback(() => {
155
- if (!baseBalance.formatted || !baseToken || !quoteToken) return;
156
- const balNum = parseFloat(baseBalance.formatted);
157
- if (!balNum || balNum <= 0) return;
158
- const adjusted = balNum * 0.9999999999;
159
- if (isWrappingPair || isUnwrappingPair) {
160
- setBaseAmount(adjusted);
161
- setQuoteAmount(adjusted);
162
- clear();
163
- } else {
164
- setBaseAmount(adjusted);
165
- setQuoteAmount(null);
166
- ensureForParams({
167
- inputToken: baseToken,
168
- outputToken: quoteToken,
169
- inputAmount: adjusted.toString(),
170
- setOutputAmount: (amount) => setQuoteAmount(amount)
171
- });
172
- }
173
- }, [
174
- baseBalance.formatted,
175
- baseToken,
176
- quoteToken,
177
- isWrappingPair,
178
- isUnwrappingPair,
179
- setBaseAmount,
180
- setQuoteAmount,
181
- clear,
182
- ensureForParams
183
- ]);
184
- const handleClear = useCallback(() => {
185
- clear();
186
- clearForm();
187
- }, [clear, clearForm]);
188
- const baseBalanceNum = baseBalance.formatted ? parseFloat(baseBalance.formatted) : null;
189
- const hasAmount = !!(baseAmount || quoteAmount);
190
- const isSplitMenuMode = assetMenuVariant === "split";
191
- const isBaseSelecting = isSplitMenuMode && (view === "baseSelection" || view === "baseChainSelection");
192
- const isQuoteSelecting = isSplitMenuMode && (view === "quoteSelection" || view === "quoteChainSelection");
193
- const handleInlineChainSelect = useCallback((chainId) => {
194
- const currentView = useWidgetSwapUIStore.getState().view;
195
- const side = currentView === "baseChainSelection" ? "base" : "quote";
196
- useWidgetSwapUIStore.getState().setChainFilter({ chainId, side });
197
- useWidgetSwapUIStore.getState().pushRecentChain(chainId);
198
- useWidgetSwapUIStore.getState().transitionToView(
199
- side === "base" ? "baseSelection" : "quoteSelection",
200
- "chainSelection"
201
- );
202
- }, []);
203
- const handleInlineMoreChainsBase = useCallback(() => {
204
- useWidgetSwapUIStore.getState().transitionToView("baseChainSelection", "chainSelection");
205
- }, []);
206
- const handleInlineMoreChainsQuote = useCallback(() => {
207
- useWidgetSwapUIStore.getState().transitionToView("quoteChainSelection", "chainSelection");
208
- }, []);
209
- const baseUsd = baseToken?.price && baseAmount ? `$${(baseToken.price * baseAmount).toFixed(2)}` : "$0.00";
210
- const quoteUsd = quoteToken?.price && quoteAmount ? `$${(quoteToken.price * quoteAmount).toFixed(2)}` : "$0.00";
211
- const isShowingTxStatus = reviewState === "trackingTx" && !!trackedOrderHash && !!baseToken && !!quoteToken && !!baseAmount && !!quoteAmount;
212
- const connectButtonStyle = {
213
- backgroundColor: swapButtonVariant === "default" ? "var(--widget-primary)" : "transparent",
214
- color: swapButtonVariant === "default" ? "var(--widget-primary-foreground)" : "var(--widget-primary)",
215
- border: swapButtonVariant !== "default" ? "1px solid var(--widget-primary)" : "none",
216
- borderRadius: "var(--widget-radius)"
217
- };
218
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [
219
- isShowingTxStatus && trackedOrderHash && baseToken && quoteToken && baseAmount && quoteAmount ? /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ jsx(
220
- TxStatusDisplay_default,
221
- {
222
- orderHash: trackedOrderHash,
223
- base: baseToken,
224
- quote: quoteToken,
225
- baseAmount,
226
- quoteAmount,
227
- status: txStatus
228
- }
229
- ) }) : /* @__PURE__ */ jsxs(
230
- "div",
231
- {
232
- className: `grid grid-cols-[1fr_auto_1fr] items-stretch px-4 ${isCompactMode ? "pt-3 pb-1" : "pt-4 pb-2"} gap-2`,
233
- children: [
234
- /* @__PURE__ */ jsx(
235
- "div",
236
- {
237
- className: `relative flex flex-col gap-1 p-3 rounded-lg overflow-hidden ${isBaseSelecting ? "h-[380px]" : ""}`,
238
- style: {
239
- border: "1px solid var(--widget-border)",
240
- backgroundColor: "var(--widget-card)"
241
- },
242
- children: isBaseSelecting ? view === "baseChainSelection" ? /* @__PURE__ */ jsx(
243
- ChainSelectionMenu_default,
244
- {
245
- toggle: onBackToSwap ?? NOOP,
246
- side: "base",
247
- onChainSelect: handleInlineChainSelect
248
- }
249
- ) : /* @__PURE__ */ jsx(
250
- AssetSelectionMenu_default,
251
- {
252
- toggle: onBackToSwap ?? NOOP,
253
- side: "base",
254
- otherAsset: quoteToken,
255
- onMoreChainsClick: handleInlineMoreChainsBase,
256
- selectedChainFilter: selectedChainFilterChainId
257
- }
258
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
259
- isOverlayToken ? isCompactMode ? /* @__PURE__ */ jsxs(
260
- "div",
261
- {
262
- className: `flex items-center gap-2 ${tokenBadgeOrientation === "right" ? "flex-row-reverse" : "flex-row"}`,
263
- children: [
264
- /* @__PURE__ */ jsx(
265
- AssetSelection_default,
266
- {
267
- toggle: handleToggleBaseSelection,
268
- side: "base",
269
- asset: baseToken,
270
- isPlacingOrder: isPlacingOrder || lockBase
271
- }
272
- ),
273
- /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx(
274
- AssetAmountInput_default,
275
- {
276
- side: "base",
277
- asset: baseToken ?? null,
278
- otherAsset: quoteToken ?? null,
279
- isPlacingOrder,
280
- isWrappingPair,
281
- isUnwrappingPair
282
- }
283
- ) })
284
- ]
285
- }
286
- ) : /* @__PURE__ */ jsxs(
287
- "div",
288
- {
289
- className: `flex flex-col ${tokenBadgeOrientation === "right" ? "items-end" : "items-start"}`,
290
- children: [
291
- /* @__PURE__ */ jsx(
292
- AssetSelection_default,
293
- {
294
- toggle: handleToggleBaseSelection,
295
- side: "base",
296
- asset: baseToken,
297
- isPlacingOrder: isPlacingOrder || lockBase
298
- }
299
- ),
300
- /* @__PURE__ */ jsx(
301
- AssetAmountInput_default,
302
- {
303
- side: "base",
304
- asset: baseToken ?? null,
305
- otherAsset: quoteToken ?? null,
306
- isPlacingOrder,
307
- isWrappingPair,
308
- isUnwrappingPair
309
- }
310
- )
311
- ]
312
- }
313
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
314
- /* @__PURE__ */ jsx(
315
- AssetSelection_default,
316
- {
317
- toggle: handleToggleBaseSelection,
318
- side: "base",
319
- asset: baseToken,
320
- isPlacingOrder: isPlacingOrder || lockBase
321
- }
322
- ),
323
- /* @__PURE__ */ jsx(
324
- AssetAmountInput_default,
325
- {
326
- side: "base",
327
- asset: baseToken ?? null,
328
- otherAsset: quoteToken ?? null,
329
- isPlacingOrder,
330
- isWrappingPair,
331
- isUnwrappingPair
332
- }
333
- )
334
- ] }),
335
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
336
- /* @__PURE__ */ jsx(
337
- "span",
338
- {
339
- className: "mono text-xs",
340
- style: { color: "var(--widget-muted-foreground)" },
341
- children: baseUsd
342
- }
343
- ),
344
- userAddress && baseBalanceNum !== null && baseBalanceNum > 0 && /* @__PURE__ */ jsx(
345
- "button",
346
- {
347
- type: "button",
348
- onClick: handleMax,
349
- disabled: isPlacingOrder,
350
- className: "flex items-center rounded-full px-2 py-0.5 text-xs font-medium uppercase cursor-pointer disabled:opacity-40 transition-colors bg-(--widget-primary) text-(--widget-primary-foreground) hover:bg-(--widget-foreground) hover:text-(--widget-card)",
351
- children: "Max"
352
- }
353
- )
354
- ] })
355
- ] })
356
- }
357
- ),
358
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center px-1", children: !disableInverting ? /* @__PURE__ */ jsx(
359
- "button",
360
- {
361
- type: "button",
362
- onClick: handleInvert,
363
- "aria-label": "Swap input and output tokens",
364
- className: "flex h-8 w-8 items-center justify-center rounded-full cursor-pointer transition-colors bg-(--widget-card) text-(--widget-muted-foreground) hover:bg-(--widget-secondary) hover:text-(--widget-foreground)",
365
- style: { border: "1px solid var(--widget-border)" },
366
- children: /* @__PURE__ */ jsx("span", { className: "text-2xs", children: "\u2194" })
367
- }
368
- ) : /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center opacity-20", children: /* @__PURE__ */ jsx(
369
- "span",
370
- {
371
- className: "text-sm",
372
- style: { color: "var(--widget-muted-foreground)" },
373
- children: "\u2192"
374
- }
375
- ) }) }),
376
- /* @__PURE__ */ jsx(
377
- "div",
378
- {
379
- className: `relative flex flex-col gap-1 p-3 rounded-lg overflow-hidden ${isQuoteSelecting ? "h-[380px]" : ""}`,
380
- style: {
381
- border: "1px solid var(--widget-border)",
382
- backgroundColor: "var(--widget-card)"
383
- },
384
- children: isQuoteSelecting ? view === "quoteChainSelection" ? /* @__PURE__ */ jsx(
385
- ChainSelectionMenu_default,
386
- {
387
- toggle: onBackToSwap ?? NOOP,
388
- side: "quote",
389
- onChainSelect: handleInlineChainSelect
390
- }
391
- ) : /* @__PURE__ */ jsx(
392
- AssetSelectionMenu_default,
393
- {
394
- toggle: onBackToSwap ?? NOOP,
395
- side: "quote",
396
- otherAsset: baseToken,
397
- onMoreChainsClick: handleInlineMoreChainsQuote,
398
- selectedChainFilter: selectedChainFilterChainId
399
- }
400
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
401
- isOverlayToken ? isCompactMode ? /* @__PURE__ */ jsxs(
402
- "div",
403
- {
404
- className: `flex items-center gap-2 ${tokenBadgeOrientation === "right" ? "flex-row-reverse" : "flex-row"}`,
405
- children: [
406
- /* @__PURE__ */ jsx(
407
- AssetSelection_default,
408
- {
409
- toggle: handleToggleQuoteSelection,
410
- side: "quote",
411
- asset: quoteToken,
412
- isPlacingOrder: isPlacingOrder || lockQuote
413
- }
414
- ),
415
- /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx(
416
- AssetAmountInput_default,
417
- {
418
- side: "quote",
419
- asset: quoteToken ?? null,
420
- otherAsset: baseToken ?? null,
421
- isPlacingOrder,
422
- isWrappingPair,
423
- isUnwrappingPair
424
- }
425
- ) })
426
- ]
427
- }
428
- ) : /* @__PURE__ */ jsxs(
429
- "div",
430
- {
431
- className: `flex flex-col ${tokenBadgeOrientation === "right" ? "items-end" : "items-start"}`,
432
- children: [
433
- /* @__PURE__ */ jsx(
434
- AssetSelection_default,
435
- {
436
- toggle: handleToggleQuoteSelection,
437
- side: "quote",
438
- asset: quoteToken,
439
- isPlacingOrder: isPlacingOrder || lockQuote
440
- }
441
- ),
442
- /* @__PURE__ */ jsx(
443
- AssetAmountInput_default,
444
- {
445
- side: "quote",
446
- asset: quoteToken ?? null,
447
- otherAsset: baseToken ?? null,
448
- isPlacingOrder,
449
- isWrappingPair,
450
- isUnwrappingPair
451
- }
452
- )
453
- ]
454
- }
455
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
456
- /* @__PURE__ */ jsx(
457
- AssetSelection_default,
458
- {
459
- toggle: handleToggleQuoteSelection,
460
- side: "quote",
461
- asset: quoteToken,
462
- isPlacingOrder: isPlacingOrder || lockQuote
463
- }
464
- ),
465
- /* @__PURE__ */ jsx(
466
- AssetAmountInput_default,
467
- {
468
- side: "quote",
469
- asset: quoteToken ?? null,
470
- otherAsset: baseToken ?? null,
471
- isPlacingOrder,
472
- isWrappingPair,
473
- isUnwrappingPair
474
- }
475
- )
476
- ] }),
477
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
478
- /* @__PURE__ */ jsx(
479
- "span",
480
- {
481
- className: "mono text-xs",
482
- style: { color: "var(--widget-muted-foreground)" },
483
- children: quoteUsd
484
- }
485
- ),
486
- hasAmount && /* @__PURE__ */ jsx(
487
- "button",
488
- {
489
- type: "button",
490
- onClick: handleClear,
491
- disabled: isPlacingOrder,
492
- className: "flex items-center rounded-full px-2 py-0.5 text-xs font-medium uppercase cursor-pointer disabled:opacity-40 transition-colors text-(--widget-muted-foreground) hover:bg-(--widget-secondary)",
493
- children: "Clear"
494
- }
495
- )
496
- ] })
497
- ] })
498
- }
499
- )
500
- ]
501
- }
502
- ),
503
- /* @__PURE__ */ jsx(
504
- "div",
505
- {
506
- className: "flex flex-row items-center w-full overflow-hidden px-4",
507
- style: {
508
- borderTop: isRecipientInputOpen ? "1px solid var(--widget-border)" : "none",
509
- maxHeight: isRecipientInputOpen ? "60px" : "0px",
510
- opacity: isRecipientInputOpen ? 1 : 0,
511
- transition: "max-height 0.3s ease, opacity 0.3s ease"
512
- },
513
- children: /* @__PURE__ */ jsx(RecipientForm_default, {})
514
- }
515
- ),
516
- /* @__PURE__ */ jsx(
517
- "div",
518
- {
519
- className: "px-4",
520
- style: {
521
- borderTop: "1px solid var(--widget-border)",
522
- borderBottom: "1px solid var(--widget-border)"
523
- },
524
- children: /* @__PURE__ */ jsx(QuoteLoader_default, {})
525
- }
526
- ),
527
- /* @__PURE__ */ jsx("div", { className: `relative ${isShowingTxStatus ? "px-0" : "px-4"} py-4`, children: userAddress && baseToken && quoteToken && baseAmount && baseAmount > 0 ? /* @__PURE__ */ jsx(
528
- SwapButton,
529
- {
530
- base: baseToken,
531
- baseAmount,
532
- quote: quoteToken,
533
- quoteAmount: quoteAmount ?? 0,
534
- userAddress,
535
- isWrappingPair,
536
- isUnwrappingPair,
537
- isBaseGasToken,
538
- isQuoteGasToken,
539
- reviewActionProps,
540
- reviewState,
541
- setReviewState,
542
- trackedOrderHash,
543
- setTrackedOrderHash,
544
- onSwapComplete,
545
- onSwapInitiated,
546
- onOrderSubmitted,
547
- onStaleQuoteRestart,
548
- txStatus
549
- }
550
- ) : !userAddress && hasConnectHandler ? /* @__PURE__ */ jsx(
551
- "button",
552
- {
553
- onClick: () => openWalletModal(),
554
- className: "w-full py-3 text-sm font-medium cursor-pointer transition-opacity hover:opacity-80",
555
- style: connectButtonStyle,
556
- children: "Connect Wallet"
557
- }
558
- ) : /* @__PURE__ */ jsx(
559
- "button",
560
- {
561
- disabled: true,
562
- className: "w-full py-3 text-sm font-medium transition-colors disabled:opacity-40 cursor-not-allowed",
563
- style: connectButtonStyle,
564
- children: !userAddress ? "Connect Wallet" : "Enter Amount"
565
- }
566
- ) })
567
- ] });
568
- };
569
- var SwapFormHorizontal_default = SwapFormHorizontal;
570
- export {
571
- SwapFormHorizontal_default as default
572
- };
573
- //# sourceMappingURL=SwapFormHorizontal-JDJUDFNX.js.map