@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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/SwapFormHorizontal.tsx"],"sourcesContent":["'use client';\n\nimport { type Asset, type ReviewOrderStep, type SupportedChainId } from '../internal';\nimport { useWalletModal } from '../wallet/WalletModalContext';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useShallow } from 'zustand/react/shallow';\nimport { useWidgetConfig } from '../context/WidgetConfigContext';\nimport { useRfq } from '../providers/RfqProvider';\nimport { useSwapFormContext } from '../providers/SwapFormProvider';\n\nimport { useWidgetSwapUIStore } from '../stores/swapUIStore';\nimport { useWalletState } from '../wallet/useWalletState';\nimport AssetAmountInput from './AssetAmountInput';\nimport AssetSelection from './AssetSelection';\nimport AssetSelectionMenu from './AssetSelectionMenu';\nimport ChainSelectionMenu from './ChainSelectionMenu';\nimport QuoteLoader from './QuoteLoader';\nimport RecipientForm from './RecipientForm';\nimport { SwapButton } from './states/SwapButton';\nimport TxStatusDisplay from './states/TxStatusDisplay';\n\nconst NOOP = () => {};\n\ninterface ReviewActionProps {\n base: Asset;\n quote: Asset;\n baseAmount: number;\n quoteAmount: number;\n userAddress: string;\n}\n\ninterface SwapFormHorizontalProps {\n onSwapComplete?: (orderHash: string) => void;\n onSwapInitiated?: () => void;\n onBackToSwap?: () => void;\n onMoreChainsClick?: () => void;\n}\n\nconst SwapFormHorizontal: React.FC<SwapFormHorizontalProps> = ({\n onSwapComplete,\n onSwapInitiated,\n onBackToSwap,\n onMoreChainsClick,\n}) => {\n const {\n web3ConnectionType,\n hasConnectHandler,\n lockBase,\n lockQuote,\n disableInverting,\n swapButtonVariant,\n tokenDisplay,\n tokenBadgeOrientation,\n widgetType,\n assetMenuVariant,\n } = useWidgetConfig();\n const isOverlayToken = tokenDisplay === 'pill' || tokenDisplay === 'ghost';\n const isCompactMode = widgetType === 'compact';\n const {\n baseToken,\n quoteToken,\n baseAmount,\n quoteAmount,\n isBaseGasToken,\n isQuoteGasToken,\n isWrappingPair,\n isUnwrappingPair,\n baseBalance,\n quoteBalance,\n setBaseAmount,\n setQuoteAmount,\n swapTokens,\n clearForm,\n } = useSwapFormContext();\n\n const {\n rfqQuote,\n status: rfqStatus,\n handleInputChange,\n ensureForParams,\n stop,\n clear,\n refresh,\n } = useRfq();\n const { address: userAddress } = useWalletState();\n const { openConnectModal: openWalletModal } = useWalletModal();\n const {\n isRecipientInputOpen,\n txStatus,\n view,\n selectedChainFilterChainId,\n } = useWidgetSwapUIStore(\n useShallow((state) => ({\n isRecipientInputOpen: state.isRecipientInputOpen,\n txStatus: state.txStatus,\n view: state.view,\n selectedChainFilterChainId: state.selectedChainFilter?.chainId ?? null,\n })),\n );\n\n const [reviewState, setReviewState] = useState<ReviewOrderStep | null>(null);\n const [trackedOrderHash, setTrackedOrderHash] = useState<string | null>(null);\n const isHandlingStaleRestart = useRef(false);\n const isPlacingOrder = false;\n\n const reviewActionProps = useMemo((): ReviewActionProps | null => {\n if (!baseToken || !quoteToken || typeof baseAmount !== 'number' || !quoteAmount || !userAddress) return null;\n if (parseFloat(baseBalance.formatted) < baseAmount) return null;\n return { base: baseToken, quote: quoteToken, baseAmount, quoteAmount, userAddress };\n }, [baseToken, quoteToken, baseAmount, quoteAmount, userAddress, baseBalance.formatted]);\n\n const onOrderSubmitted = useCallback((orderHash: string) => {\n setTrackedOrderHash(orderHash);\n useWidgetSwapUIStore.getState().startTracking(orderHash);\n }, []);\n\n const onStaleQuoteRestart = useCallback(() => {\n isHandlingStaleRestart.current = true;\n refresh();\n }, [refresh]);\n\n useEffect(() => {\n if (reviewState !== null) return;\n if (!baseToken || !quoteToken) return;\n if (!baseAmount || baseAmount <= 0) {\n handleInputChange({ amount: null, inputToken: baseToken, outputToken: quoteToken, setOutputAmount: setQuoteAmount });\n return;\n }\n if (isWrappingPair || isUnwrappingPair) {\n setQuoteAmount(baseAmount);\n return;\n }\n handleInputChange({\n amount: baseAmount,\n inputToken: baseToken,\n outputToken: quoteToken,\n setOutputAmount: setQuoteAmount,\n });\n }, [\n reviewState,\n baseAmount,\n baseToken,\n quoteToken,\n isWrappingPair,\n isUnwrappingPair,\n handleInputChange,\n setQuoteAmount,\n ]);\n\n const handleToggleBaseSelection = useCallback(() => {\n useWidgetSwapUIStore.getState().setView('baseSelection');\n }, []);\n\n const handleToggleQuoteSelection = useCallback(() => {\n useWidgetSwapUIStore.getState().setView('quoteSelection');\n }, []);\n\n const handleInvert = useCallback(() => {\n swapTokens();\n setQuoteAmount(null);\n }, [swapTokens, setQuoteAmount]);\n\n const handleMax = useCallback(() => {\n if (!baseBalance.formatted || !baseToken || !quoteToken) return;\n const balNum = parseFloat(baseBalance.formatted);\n if (!balNum || balNum <= 0) return;\n const adjusted = balNum * 0.9999999999;\n if (isWrappingPair || isUnwrappingPair) {\n setBaseAmount(adjusted);\n setQuoteAmount(adjusted);\n clear();\n } else {\n setBaseAmount(adjusted);\n setQuoteAmount(null);\n ensureForParams({\n inputToken: baseToken,\n outputToken: quoteToken,\n inputAmount: adjusted.toString(),\n setOutputAmount: (amount) => setQuoteAmount(amount),\n });\n }\n }, [\n baseBalance.formatted,\n baseToken,\n quoteToken,\n isWrappingPair,\n isUnwrappingPair,\n setBaseAmount,\n setQuoteAmount,\n clear,\n ensureForParams,\n ]);\n\n const handleClear = useCallback(() => {\n clear();\n clearForm();\n }, [clear, clearForm]);\n\n const baseBalanceNum = baseBalance.formatted\n ? parseFloat(baseBalance.formatted)\n : null;\n const hasAmount = !!(baseAmount || quoteAmount);\n\n // Inline selection (split assetMenuVariant): the respective column renders the menu\n const isSplitMenuMode = assetMenuVariant === 'split';\n const isBaseSelecting =\n isSplitMenuMode &&\n (view === 'baseSelection' || view === 'baseChainSelection');\n const isQuoteSelecting =\n isSplitMenuMode &&\n (view === 'quoteSelection' || view === 'quoteChainSelection');\n\n const handleInlineChainSelect = useCallback((chainId: SupportedChainId) => {\n const currentView = useWidgetSwapUIStore.getState().view;\n const side = currentView === 'baseChainSelection' ? 'base' : 'quote';\n useWidgetSwapUIStore.getState().setChainFilter({ chainId, side });\n useWidgetSwapUIStore.getState().pushRecentChain(chainId);\n useWidgetSwapUIStore\n .getState()\n .transitionToView(\n side === 'base' ? 'baseSelection' : 'quoteSelection',\n 'chainSelection',\n );\n }, []);\n\n const handleInlineMoreChainsBase = useCallback(() => {\n useWidgetSwapUIStore\n .getState()\n .transitionToView('baseChainSelection', 'chainSelection');\n }, []);\n\n const handleInlineMoreChainsQuote = useCallback(() => {\n useWidgetSwapUIStore\n .getState()\n .transitionToView('quoteChainSelection', 'chainSelection');\n }, []);\n\n const baseUsd =\n baseToken?.price && baseAmount\n ? `$${(baseToken.price * baseAmount).toFixed(2)}`\n : '$0.00';\n const quoteUsd =\n quoteToken?.price && quoteAmount\n ? `$${(quoteToken.price * quoteAmount).toFixed(2)}`\n : '$0.00';\n\n const isShowingTxStatus =\n reviewState === 'trackingTx' &&\n !!trackedOrderHash &&\n !!baseToken &&\n !!quoteToken &&\n !!baseAmount &&\n !!quoteAmount;\n\n const connectButtonStyle: React.CSSProperties = {\n backgroundColor:\n swapButtonVariant === 'default' ? 'var(--widget-primary)' : 'transparent',\n color:\n swapButtonVariant === 'default'\n ? 'var(--widget-primary-foreground)'\n : 'var(--widget-primary)',\n border:\n swapButtonVariant !== 'default'\n ? '1px solid var(--widget-primary)'\n : 'none',\n borderRadius: 'var(--widget-radius)',\n };\n\n return (\n <div className=\"flex flex-col w-full\">\n {/* ── TX STATUS or TWO-COLUMN TOKEN SECTIONS ─────────── */}\n {isShowingTxStatus &&\n trackedOrderHash &&\n baseToken &&\n quoteToken &&\n baseAmount &&\n quoteAmount ? (\n <div className=\"flex-1 min-h-0 overflow-hidden\">\n <TxStatusDisplay\n orderHash={trackedOrderHash}\n base={baseToken}\n quote={quoteToken}\n baseAmount={baseAmount}\n quoteAmount={quoteAmount}\n status={txStatus}\n />\n </div>\n ) : (\n <div\n className={`grid grid-cols-[1fr_auto_1fr] items-stretch px-4 ${isCompactMode ? 'pt-3 pb-1' : 'pt-4 pb-2'} gap-2`}\n >\n {/* BASE column */}\n <div\n className={`relative flex flex-col gap-1 p-3 rounded-lg overflow-hidden ${isBaseSelecting ? 'h-[380px]' : ''}`}\n style={{\n border: '1px solid var(--widget-border)',\n backgroundColor: 'var(--widget-card)',\n }}\n >\n {isBaseSelecting ? (\n view === 'baseChainSelection' ? (\n <ChainSelectionMenu\n toggle={onBackToSwap ?? NOOP}\n side=\"base\"\n onChainSelect={handleInlineChainSelect}\n />\n ) : (\n <AssetSelectionMenu\n toggle={onBackToSwap ?? NOOP}\n side=\"base\"\n otherAsset={quoteToken}\n onMoreChainsClick={handleInlineMoreChainsBase}\n selectedChainFilter={selectedChainFilterChainId}\n />\n )\n ) : (\n <>\n {isOverlayToken ? (\n isCompactMode ? (\n <div\n className={`flex items-center gap-2 ${tokenBadgeOrientation === 'right' ? 'flex-row-reverse' : 'flex-row'}`}\n >\n <AssetSelection\n toggle={handleToggleBaseSelection}\n side=\"base\"\n asset={baseToken}\n isPlacingOrder={isPlacingOrder || lockBase}\n />\n <div className=\"flex-1 min-w-0\">\n <AssetAmountInput\n side=\"base\"\n asset={baseToken ?? null}\n otherAsset={quoteToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </div>\n </div>\n ) : (\n <div\n className={`flex flex-col ${tokenBadgeOrientation === 'right' ? 'items-end' : 'items-start'}`}\n >\n <AssetSelection\n toggle={handleToggleBaseSelection}\n side=\"base\"\n asset={baseToken}\n isPlacingOrder={isPlacingOrder || lockBase}\n />\n <AssetAmountInput\n side=\"base\"\n asset={baseToken ?? null}\n otherAsset={quoteToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </div>\n )\n ) : (\n <>\n <AssetSelection\n toggle={handleToggleBaseSelection}\n side=\"base\"\n asset={baseToken}\n isPlacingOrder={isPlacingOrder || lockBase}\n />\n <AssetAmountInput\n side=\"base\"\n asset={baseToken ?? null}\n otherAsset={quoteToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </>\n )}\n <div className=\"flex items-center justify-between\">\n <span\n className=\"mono text-xs\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n {baseUsd}\n </span>\n {userAddress &&\n baseBalanceNum !== null &&\n baseBalanceNum > 0 && (\n <button\n type=\"button\"\n onClick={handleMax}\n disabled={isPlacingOrder}\n 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)\"\n >\n Max\n </button>\n )}\n </div>\n </>\n )}\n </div>\n\n {/* Center invert button */}\n <div className=\"flex items-center justify-center px-1\">\n {!disableInverting ? (\n <button\n type=\"button\"\n onClick={handleInvert}\n aria-label=\"Swap input and output tokens\"\n 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)\"\n style={{ border: '1px solid var(--widget-border)' }}\n >\n <span className=\"text-2xs\">↔</span>\n </button>\n ) : (\n <div className=\"flex h-8 w-8 items-center justify-center opacity-20\">\n <span\n className=\"text-sm\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n →\n </span>\n </div>\n )}\n </div>\n\n {/* QUOTE column */}\n <div\n className={`relative flex flex-col gap-1 p-3 rounded-lg overflow-hidden ${isQuoteSelecting ? 'h-[380px]' : ''}`}\n style={{\n border: '1px solid var(--widget-border)',\n backgroundColor: 'var(--widget-card)',\n }}\n >\n {isQuoteSelecting ? (\n view === 'quoteChainSelection' ? (\n <ChainSelectionMenu\n toggle={onBackToSwap ?? NOOP}\n side=\"quote\"\n onChainSelect={handleInlineChainSelect}\n />\n ) : (\n <AssetSelectionMenu\n toggle={onBackToSwap ?? NOOP}\n side=\"quote\"\n otherAsset={baseToken}\n onMoreChainsClick={handleInlineMoreChainsQuote}\n selectedChainFilter={selectedChainFilterChainId}\n />\n )\n ) : (\n <>\n {isOverlayToken ? (\n isCompactMode ? (\n <div\n className={`flex items-center gap-2 ${tokenBadgeOrientation === 'right' ? 'flex-row-reverse' : 'flex-row'}`}\n >\n <AssetSelection\n toggle={handleToggleQuoteSelection}\n side=\"quote\"\n asset={quoteToken}\n isPlacingOrder={isPlacingOrder || lockQuote}\n />\n <div className=\"flex-1 min-w-0\">\n <AssetAmountInput\n side=\"quote\"\n asset={quoteToken ?? null}\n otherAsset={baseToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </div>\n </div>\n ) : (\n <div\n className={`flex flex-col ${tokenBadgeOrientation === 'right' ? 'items-end' : 'items-start'}`}\n >\n <AssetSelection\n toggle={handleToggleQuoteSelection}\n side=\"quote\"\n asset={quoteToken}\n isPlacingOrder={isPlacingOrder || lockQuote}\n />\n <AssetAmountInput\n side=\"quote\"\n asset={quoteToken ?? null}\n otherAsset={baseToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </div>\n )\n ) : (\n <>\n <AssetSelection\n toggle={handleToggleQuoteSelection}\n side=\"quote\"\n asset={quoteToken}\n isPlacingOrder={isPlacingOrder || lockQuote}\n />\n <AssetAmountInput\n side=\"quote\"\n asset={quoteToken ?? null}\n otherAsset={baseToken ?? null}\n isPlacingOrder={isPlacingOrder}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n />\n </>\n )}\n <div className=\"flex items-center justify-between\">\n <span\n className=\"mono text-xs\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n {quoteUsd}\n </span>\n {hasAmount && (\n <button\n type=\"button\"\n onClick={handleClear}\n disabled={isPlacingOrder}\n 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)\"\n >\n Clear\n </button>\n )}\n </div>\n </>\n )}\n </div>\n </div>\n )}\n\n {/* ── RECIPIENT FORM ─────────────────────────────────── */}\n <div\n className=\"flex flex-row items-center w-full overflow-hidden px-4\"\n style={{\n borderTop: isRecipientInputOpen\n ? '1px solid var(--widget-border)'\n : 'none',\n maxHeight: isRecipientInputOpen ? '60px' : '0px',\n opacity: isRecipientInputOpen ? 1 : 0,\n transition: 'max-height 0.3s ease, opacity 0.3s ease',\n }}\n >\n <RecipientForm />\n </div>\n\n {/* ── QUOTE LOADER ───────────────────────────────────── */}\n <div\n className=\"px-4\"\n style={{\n borderTop: '1px solid var(--widget-border)',\n borderBottom: '1px solid var(--widget-border)',\n }}\n >\n <QuoteLoader />\n </div>\n\n {/* ── SWAP / CONNECT BUTTON ──────────────────────────── */}\n <div className={`relative ${isShowingTxStatus ? 'px-0' : 'px-4'} py-4`}>\n {userAddress &&\n baseToken &&\n quoteToken &&\n baseAmount &&\n baseAmount > 0 ? (\n <SwapButton\n base={baseToken}\n baseAmount={baseAmount}\n quote={quoteToken}\n quoteAmount={quoteAmount ?? 0}\n userAddress={userAddress}\n isWrappingPair={isWrappingPair}\n isUnwrappingPair={isUnwrappingPair}\n isBaseGasToken={isBaseGasToken}\n isQuoteGasToken={isQuoteGasToken}\n reviewActionProps={reviewActionProps}\n reviewState={reviewState}\n setReviewState={setReviewState}\n trackedOrderHash={trackedOrderHash}\n setTrackedOrderHash={setTrackedOrderHash}\n onSwapComplete={onSwapComplete}\n onSwapInitiated={onSwapInitiated}\n onOrderSubmitted={onOrderSubmitted}\n onStaleQuoteRestart={onStaleQuoteRestart}\n txStatus={txStatus}\n />\n ) : !userAddress && hasConnectHandler ? (\n <button\n onClick={() => openWalletModal()}\n className=\"w-full py-3 text-sm font-medium cursor-pointer transition-opacity hover:opacity-80\"\n style={connectButtonStyle}\n >\n Connect Wallet\n </button>\n ) : (\n <button\n disabled\n className=\"w-full py-3 text-sm font-medium transition-colors disabled:opacity-40 cursor-not-allowed\"\n style={connectButtonStyle}\n >\n {!userAddress ? 'Connect Wallet' : 'Enter Amount'}\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default SwapFormHorizontal;\n"],"mappings":"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","names":[]}
@@ -1,573 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
- "use client";
3
-
4
-
5
- var _chunkXQINW7QPcjs = require('./chunk-XQINW7QP.cjs');
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
- var _chunkHXOGJSAIcjs = require('./chunk-HXOGJSAI.cjs');
15
-
16
-
17
- var _chunk3E6RNP2Dcjs = require('./chunk-3E6RNP2D.cjs');
18
-
19
-
20
- var _chunkB3ILUJ7Gcjs = require('./chunk-B3ILUJ7G.cjs');
21
- require('./chunk-5TH6MFQD.cjs');
22
-
23
-
24
-
25
- var _chunk6XB5R4GFcjs = require('./chunk-6XB5R4GF.cjs');
26
-
27
-
28
- var _chunkGZUTUD5Ocjs = require('./chunk-GZUTUD5O.cjs');
29
-
30
-
31
- var _chunkPGYOJ5RBcjs = require('./chunk-PGYOJ5RB.cjs');
32
- require('./chunk-NBJPKJBC.cjs');
33
-
34
- // src/components/SwapFormHorizontal.tsx
35
- var _react = require('react');
36
- var _shallow = require('zustand/react/shallow');
37
- var _jsxruntime = require('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
- } = _chunkGZUTUD5Ocjs.useWidgetConfig.call(void 0, );
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
- } = _chunk6XB5R4GFcjs.useSwapFormContext.call(void 0, );
76
- const {
77
- rfqQuote,
78
- status: rfqStatus,
79
- handleInputChange,
80
- ensureForParams,
81
- stop,
82
- clear,
83
- refresh
84
- } = _chunkHXOGJSAIcjs.useRfq.call(void 0, );
85
- const { address: userAddress } = _chunkPGYOJ5RBcjs.useWalletState.call(void 0, );
86
- const { openConnectModal: openWalletModal } = _chunkHXOGJSAIcjs.useWalletModal.call(void 0, );
87
- const {
88
- isRecipientInputOpen,
89
- txStatus,
90
- view,
91
- selectedChainFilterChainId
92
- } = _chunk6XB5R4GFcjs.useWidgetSwapUIStore.call(void 0,
93
- _shallow.useShallow.call(void 0, (state) => ({
94
- isRecipientInputOpen: state.isRecipientInputOpen,
95
- txStatus: state.txStatus,
96
- view: state.view,
97
- selectedChainFilterChainId: _nullishCoalesce(_optionalChain([state, 'access', _ => _.selectedChainFilter, 'optionalAccess', _2 => _2.chainId]), () => ( null))
98
- }))
99
- );
100
- const [reviewState, setReviewState] = _react.useState.call(void 0, null);
101
- const [trackedOrderHash, setTrackedOrderHash] = _react.useState.call(void 0, null);
102
- const isHandlingStaleRestart = _react.useRef.call(void 0, false);
103
- const isPlacingOrder = false;
104
- const reviewActionProps = _react.useMemo.call(void 0, () => {
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 = _react.useCallback.call(void 0, (orderHash) => {
110
- setTrackedOrderHash(orderHash);
111
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().startTracking(orderHash);
112
- }, []);
113
- const onStaleQuoteRestart = _react.useCallback.call(void 0, () => {
114
- isHandlingStaleRestart.current = true;
115
- refresh();
116
- }, [refresh]);
117
- _react.useEffect.call(void 0, () => {
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 = _react.useCallback.call(void 0, () => {
145
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().setView("baseSelection");
146
- }, []);
147
- const handleToggleQuoteSelection = _react.useCallback.call(void 0, () => {
148
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().setView("quoteSelection");
149
- }, []);
150
- const handleInvert = _react.useCallback.call(void 0, () => {
151
- swapTokens();
152
- setQuoteAmount(null);
153
- }, [swapTokens, setQuoteAmount]);
154
- const handleMax = _react.useCallback.call(void 0, () => {
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 = _react.useCallback.call(void 0, () => {
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 = _react.useCallback.call(void 0, (chainId) => {
194
- const currentView = _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().view;
195
- const side = currentView === "baseChainSelection" ? "base" : "quote";
196
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().setChainFilter({ chainId, side });
197
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().pushRecentChain(chainId);
198
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().transitionToView(
199
- side === "base" ? "baseSelection" : "quoteSelection",
200
- "chainSelection"
201
- );
202
- }, []);
203
- const handleInlineMoreChainsBase = _react.useCallback.call(void 0, () => {
204
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().transitionToView("baseChainSelection", "chainSelection");
205
- }, []);
206
- const handleInlineMoreChainsQuote = _react.useCallback.call(void 0, () => {
207
- _chunk6XB5R4GFcjs.useWidgetSwapUIStore.getState().transitionToView("quoteChainSelection", "chainSelection");
208
- }, []);
209
- const baseUsd = _optionalChain([baseToken, 'optionalAccess', _3 => _3.price]) && baseAmount ? `$${(baseToken.price * baseAmount).toFixed(2)}` : "$0.00";
210
- const quoteUsd = _optionalChain([quoteToken, 'optionalAccess', _4 => _4.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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col w-full", children: [
219
- isShowingTxStatus && trackedOrderHash && baseToken && quoteToken && baseAmount && quoteAmount ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
220
- _chunkHXOGJSAIcjs.TxStatusDisplay_default,
221
- {
222
- orderHash: trackedOrderHash,
223
- base: baseToken,
224
- quote: quoteToken,
225
- baseAmount,
226
- quoteAmount,
227
- status: txStatus
228
- }
229
- ) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
243
- _chunkB3ILUJ7Gcjs.ChainSelectionMenu_default,
244
- {
245
- toggle: _nullishCoalesce(onBackToSwap, () => ( NOOP)),
246
- side: "base",
247
- onChainSelect: handleInlineChainSelect
248
- }
249
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
250
- _chunk3E6RNP2Dcjs.AssetSelectionMenu_default,
251
- {
252
- toggle: _nullishCoalesce(onBackToSwap, () => ( NOOP)),
253
- side: "base",
254
- otherAsset: quoteToken,
255
- onMoreChainsClick: handleInlineMoreChainsBase,
256
- selectedChainFilter: selectedChainFilterChainId
257
- }
258
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
259
- isOverlayToken ? isCompactMode ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
260
- "div",
261
- {
262
- className: `flex items-center gap-2 ${tokenBadgeOrientation === "right" ? "flex-row-reverse" : "flex-row"}`,
263
- children: [
264
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
265
- _chunkHXOGJSAIcjs.AssetSelection_default,
266
- {
267
- toggle: handleToggleBaseSelection,
268
- side: "base",
269
- asset: baseToken,
270
- isPlacingOrder: isPlacingOrder || lockBase
271
- }
272
- ),
273
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
274
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
275
- {
276
- side: "base",
277
- asset: _nullishCoalesce(baseToken, () => ( null)),
278
- otherAsset: _nullishCoalesce(quoteToken, () => ( null)),
279
- isPlacingOrder,
280
- isWrappingPair,
281
- isUnwrappingPair
282
- }
283
- ) })
284
- ]
285
- }
286
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
287
- "div",
288
- {
289
- className: `flex flex-col ${tokenBadgeOrientation === "right" ? "items-end" : "items-start"}`,
290
- children: [
291
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
292
- _chunkHXOGJSAIcjs.AssetSelection_default,
293
- {
294
- toggle: handleToggleBaseSelection,
295
- side: "base",
296
- asset: baseToken,
297
- isPlacingOrder: isPlacingOrder || lockBase
298
- }
299
- ),
300
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
301
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
302
- {
303
- side: "base",
304
- asset: _nullishCoalesce(baseToken, () => ( null)),
305
- otherAsset: _nullishCoalesce(quoteToken, () => ( null)),
306
- isPlacingOrder,
307
- isWrappingPair,
308
- isUnwrappingPair
309
- }
310
- )
311
- ]
312
- }
313
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
314
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
315
- _chunkHXOGJSAIcjs.AssetSelection_default,
316
- {
317
- toggle: handleToggleBaseSelection,
318
- side: "base",
319
- asset: baseToken,
320
- isPlacingOrder: isPlacingOrder || lockBase
321
- }
322
- ),
323
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
324
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
325
- {
326
- side: "base",
327
- asset: _nullishCoalesce(baseToken, () => ( null)),
328
- otherAsset: _nullishCoalesce(quoteToken, () => ( null)),
329
- isPlacingOrder,
330
- isWrappingPair,
331
- isUnwrappingPair
332
- }
333
- )
334
- ] }),
335
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
336
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center px-1", children: !disableInverting ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-2xs", children: "\u2194" })
367
- }
368
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-8 w-8 items-center justify-center opacity-20", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
369
- "span",
370
- {
371
- className: "text-sm",
372
- style: { color: "var(--widget-muted-foreground)" },
373
- children: "\u2192"
374
- }
375
- ) }) }),
376
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
385
- _chunkB3ILUJ7Gcjs.ChainSelectionMenu_default,
386
- {
387
- toggle: _nullishCoalesce(onBackToSwap, () => ( NOOP)),
388
- side: "quote",
389
- onChainSelect: handleInlineChainSelect
390
- }
391
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
392
- _chunk3E6RNP2Dcjs.AssetSelectionMenu_default,
393
- {
394
- toggle: _nullishCoalesce(onBackToSwap, () => ( NOOP)),
395
- side: "quote",
396
- otherAsset: baseToken,
397
- onMoreChainsClick: handleInlineMoreChainsQuote,
398
- selectedChainFilter: selectedChainFilterChainId
399
- }
400
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
401
- isOverlayToken ? isCompactMode ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
402
- "div",
403
- {
404
- className: `flex items-center gap-2 ${tokenBadgeOrientation === "right" ? "flex-row-reverse" : "flex-row"}`,
405
- children: [
406
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
407
- _chunkHXOGJSAIcjs.AssetSelection_default,
408
- {
409
- toggle: handleToggleQuoteSelection,
410
- side: "quote",
411
- asset: quoteToken,
412
- isPlacingOrder: isPlacingOrder || lockQuote
413
- }
414
- ),
415
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
416
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
417
- {
418
- side: "quote",
419
- asset: _nullishCoalesce(quoteToken, () => ( null)),
420
- otherAsset: _nullishCoalesce(baseToken, () => ( null)),
421
- isPlacingOrder,
422
- isWrappingPair,
423
- isUnwrappingPair
424
- }
425
- ) })
426
- ]
427
- }
428
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
429
- "div",
430
- {
431
- className: `flex flex-col ${tokenBadgeOrientation === "right" ? "items-end" : "items-start"}`,
432
- children: [
433
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
434
- _chunkHXOGJSAIcjs.AssetSelection_default,
435
- {
436
- toggle: handleToggleQuoteSelection,
437
- side: "quote",
438
- asset: quoteToken,
439
- isPlacingOrder: isPlacingOrder || lockQuote
440
- }
441
- ),
442
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
443
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
444
- {
445
- side: "quote",
446
- asset: _nullishCoalesce(quoteToken, () => ( null)),
447
- otherAsset: _nullishCoalesce(baseToken, () => ( null)),
448
- isPlacingOrder,
449
- isWrappingPair,
450
- isUnwrappingPair
451
- }
452
- )
453
- ]
454
- }
455
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
456
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
457
- _chunkHXOGJSAIcjs.AssetSelection_default,
458
- {
459
- toggle: handleToggleQuoteSelection,
460
- side: "quote",
461
- asset: quoteToken,
462
- isPlacingOrder: isPlacingOrder || lockQuote
463
- }
464
- ),
465
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
466
- _chunkHXOGJSAIcjs.AssetAmountInput_default,
467
- {
468
- side: "quote",
469
- asset: _nullishCoalesce(quoteToken, () => ( null)),
470
- otherAsset: _nullishCoalesce(baseToken, () => ( null)),
471
- isPlacingOrder,
472
- isWrappingPair,
473
- isUnwrappingPair
474
- }
475
- )
476
- ] }),
477
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
478
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
479
- "span",
480
- {
481
- className: "mono text-xs",
482
- style: { color: "var(--widget-muted-foreground)" },
483
- children: quoteUsd
484
- }
485
- ),
486
- hasAmount && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, _chunkHXOGJSAIcjs.RecipientForm_default, {})
514
- }
515
- ),
516
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, _chunkXQINW7QPcjs.QuoteLoader_default, {})
525
- }
526
- ),
527
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `relative ${isShowingTxStatus ? "px-0" : "px-4"} py-4`, children: userAddress && baseToken && quoteToken && baseAmount && baseAmount > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
528
- _chunkHXOGJSAIcjs.SwapButton,
529
- {
530
- base: baseToken,
531
- baseAmount,
532
- quote: quoteToken,
533
- quoteAmount: _nullishCoalesce(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__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
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
-
571
-
572
- exports.default = SwapFormHorizontal_default;
573
- //# sourceMappingURL=SwapFormHorizontal-WG3Z3CFT.cjs.map