@aori/mega-swap-widget 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +404 -0
- package/dist/AssetSelectionMenu-Y3EB32BT.cjs +13 -0
- package/dist/AssetSelectionMenu-Y3EB32BT.cjs.map +1 -0
- package/dist/AssetSelectionMenu-ZRG42UCZ.js +13 -0
- package/dist/AssetSelectionMenu-ZRG42UCZ.js.map +1 -0
- package/dist/ChainSelectionMenu-FBAPPFKI.cjs +11 -0
- package/dist/ChainSelectionMenu-FBAPPFKI.cjs.map +1 -0
- package/dist/ChainSelectionMenu-QO3H4TNR.js +11 -0
- package/dist/ChainSelectionMenu-QO3H4TNR.js.map +1 -0
- package/dist/SwapFormHorizontal-JDJUDFNX.js +573 -0
- package/dist/SwapFormHorizontal-JDJUDFNX.js.map +1 -0
- package/dist/SwapFormHorizontal-WG3Z3CFT.cjs +573 -0
- package/dist/SwapFormHorizontal-WG3Z3CFT.cjs.map +1 -0
- package/dist/SwapFormSplit-7CHTPLEQ.js +441 -0
- package/dist/SwapFormSplit-7CHTPLEQ.js.map +1 -0
- package/dist/SwapFormSplit-VDDIRQUQ.cjs +441 -0
- package/dist/SwapFormSplit-VDDIRQUQ.cjs.map +1 -0
- package/dist/WalletPlaceholderPanel-7YDQ4FT6.js +57 -0
- package/dist/WalletPlaceholderPanel-7YDQ4FT6.js.map +1 -0
- package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs +57 -0
- package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs.map +1 -0
- package/dist/WidgetWalletPanel-D7I5TAU3.js +789 -0
- package/dist/WidgetWalletPanel-D7I5TAU3.js.map +1 -0
- package/dist/WidgetWalletPanel-T7H6FGVN.cjs +789 -0
- package/dist/WidgetWalletPanel-T7H6FGVN.cjs.map +1 -0
- package/dist/chunk-3E6RNP2D.cjs +389 -0
- package/dist/chunk-3E6RNP2D.cjs.map +1 -0
- package/dist/chunk-5TH6MFQD.cjs +122 -0
- package/dist/chunk-5TH6MFQD.cjs.map +1 -0
- package/dist/chunk-5XSCUUOW.js +101 -0
- package/dist/chunk-5XSCUUOW.js.map +1 -0
- package/dist/chunk-6Q7MSCKS.js +2199 -0
- package/dist/chunk-6Q7MSCKS.js.map +1 -0
- package/dist/chunk-6XB5R4GF.cjs +368 -0
- package/dist/chunk-6XB5R4GF.cjs.map +1 -0
- package/dist/chunk-6YLNOZ7P.js +389 -0
- package/dist/chunk-6YLNOZ7P.js.map +1 -0
- package/dist/chunk-7AWG6OWF.js +27 -0
- package/dist/chunk-7AWG6OWF.js.map +1 -0
- package/dist/chunk-ARMW5POL.js +3082 -0
- package/dist/chunk-ARMW5POL.js.map +1 -0
- package/dist/chunk-B3ILUJ7G.cjs +101 -0
- package/dist/chunk-B3ILUJ7G.cjs.map +1 -0
- package/dist/chunk-GGM3MDFM.js +32 -0
- package/dist/chunk-GGM3MDFM.js.map +1 -0
- package/dist/chunk-GZUTUD5O.cjs +2199 -0
- package/dist/chunk-GZUTUD5O.cjs.map +1 -0
- package/dist/chunk-HXOGJSAI.cjs +3082 -0
- package/dist/chunk-HXOGJSAI.cjs.map +1 -0
- package/dist/chunk-LTA7IG3J.js +122 -0
- package/dist/chunk-LTA7IG3J.js.map +1 -0
- package/dist/chunk-NBJPKJBC.cjs +32 -0
- package/dist/chunk-NBJPKJBC.cjs.map +1 -0
- package/dist/chunk-PGYOJ5RB.cjs +27 -0
- package/dist/chunk-PGYOJ5RB.cjs.map +1 -0
- package/dist/chunk-QHW27RMH.js +199 -0
- package/dist/chunk-QHW27RMH.js.map +1 -0
- package/dist/chunk-TMC4SUEV.js +368 -0
- package/dist/chunk-TMC4SUEV.js.map +1 -0
- package/dist/chunk-XQINW7QP.cjs +199 -0
- package/dist/chunk-XQINW7QP.cjs.map +1 -0
- package/dist/index.cjs +1780 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1424 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +555 -0
- package/dist/index.d.ts +555 -0
- package/dist/index.js +1780 -0
- package/dist/index.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/flooreyes/mega-swap-widget/dist/chunk-XQINW7QP.cjs","../src/components/QuoteLoader.tsx"],"names":[],"mappings":"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","file":"/Users/flooreyes/mega-swap-widget/dist/chunk-XQINW7QP.cjs","sourcesContent":[null,"'use client';\n\nimport { ThreeDots, TokenImage } from '../internal';\nimport React, { useEffect, useState } from 'react';\nimport { useWidgetConfig } from '../context/WidgetConfigContext';\nimport { useRfq } from '../providers/RfqProvider';\nimport { useSwapFormContext } from '../providers/SwapFormProvider';\n\nfunction formatRate(rate: number): string {\n if (rate === 0) return '0';\n const abs = Math.abs(rate);\n if (abs >= 10000) return rate.toFixed(0);\n if (abs >= 1000) return rate.toFixed(1);\n if (abs >= 100) return rate.toFixed(2);\n if (abs >= 1) return rate.toFixed(4);\n if (abs >= 0.01) return rate.toFixed(6);\n return rate.toExponential(3);\n}\n\nconst QuoteLoader = React.memo(() => {\n const [isOpen, setIsOpen] = useState(false);\n const { liquidityError, routingError } = useRfq();\n const {\n baseAmount,\n baseToken: base,\n quoteAmount,\n quoteToken: quote,\n } = useSwapFormContext();\n const { quoteLoaderVariant, widgetType } = useWidgetConfig();\n const isCompact = widgetType === 'compact';\n\n // Derive inline so it resets to 0 the moment quoteAmount is cleared —\n // prevents a one-frame flash of the stale rate after clear() or cancel().\n const exchangeRate =\n baseAmount && quoteAmount && parseFloat(quoteAmount.toString())\n ? parseFloat(baseAmount.toString()) / parseFloat(quoteAmount.toString())\n : 0;\n\n const hasQuoteError = liquidityError || routingError;\n const hasValidQuote =\n base &&\n quote &&\n baseAmount &&\n parseFloat(baseAmount.toString()) &&\n quoteAmount;\n\n // Auto-open expanded panel when a valid quote arrives\n useEffect(() => {\n if (quoteLoaderVariant === 'expanded' && hasValidQuote) {\n setIsOpen(true);\n }\n }, [quoteLoaderVariant, hasValidQuote]);\n\n // ── none variant ──────────────────────────────────────────────────────────\n if (quoteLoaderVariant === 'none') return null;\n\n // ── default (rate) variant ────────────────────────────────────────────────\n if (quoteLoaderVariant === 'default') {\n return (\n <div className={`relative box-border flex flex-row pt-1 h-8 w-full items-center${isCompact ? ' justify-start overflow-x-auto' : ' justify-center'}`}>\n <div\n className={`flex h-full items-center${isCompact ? ' min-w-max' : ' w-full overflow-hidden'}`}\n style={{ color: 'var(--widget-foreground)' }}\n >\n {base && quote ? (\n baseAmount && parseFloat(baseAmount.toString()) ? (\n quoteAmount ? (\n <div className=\"translate-y-px font-mono flex flex-row items-center gap-2 whitespace-nowrap\">\n <div className=\"flex flex-row items-center gap-1\">\n <TokenImage asset={quote} size=\"3xs\" noChain className=\"mb-0.5\" />\n <span className=\"text-xs uppercase\">1 {quote?.symbol}</span>\n </div>\n <span className=\"text-xs\" style={{ color: 'var(--widget-muted-foreground)' }}>=</span>\n <div className=\"flex flex-row items-center gap-1\">\n <TokenImage asset={base} size=\"3xs\" noChain className=\"mb-0.5\" />\n <span className=\"text-xs uppercase\">{formatRate(exchangeRate)} {base?.symbol}</span>\n </div>\n <span className=\"text-xs\" style={{ color: 'var(--widget-muted-foreground)' }}>\n {base?.price ? `≈ $${(base.price * exchangeRate).toFixed(2)}` : ''}\n </span>\n </div>\n ) : hasQuoteError ? (\n <div className=\"flex h-full w-full flex-row pb-1 items-center justify-between\">\n <p className=\"text-xs\" style={{ color: 'var(--widget-destructive)' }}>\n Quote not found\n </p>\n <ThreeDots className=\"h-8 w-8\" style={{ color: 'var(--widget-destructive)' }} />\n </div>\n ) : (\n <div className=\"flex h-full w-full flex-row pb-1 items-center justify-between\">\n <p className=\"text-xs\" style={{ color: 'var(--widget-accent)' }}>\n Searching For Quote\n </p>\n <ThreeDots className=\"h-8 w-8\" style={{ color: 'var(--widget-accent)' }} />\n </div>\n )\n ) : (\n <div className=\"text-xs pb-1\" style={{ color: 'var(--widget-foreground)', opacity: 0.4 }}>\n Enter Amount\n </div>\n )\n ) : (\n <div className=\"text-xs pb-1\" style={{ color: 'var(--widget-foreground)', opacity: 0.4 }}>\n Enter Amount\n </div>\n )}\n </div>\n </div>\n );\n }\n\n // ── expanded variant ──────────────────────────────────────────────────────\n return (\n <div className=\"flex flex-col w-full\">\n {/* Rate row — same as default, but clickable to expand */}\n <div\n className={`relative box-border flex flex-row pt-1 h-8 w-full items-center cursor-pointer${isCompact ? ' overflow-x-auto' : ''}`}\n role=\"button\"\n tabIndex={0}\n onClick={() => hasValidQuote && setIsOpen((v) => !v)}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); hasValidQuote && setIsOpen((v) => !v); } }}\n >\n <div\n className={`flex h-full items-center${isCompact ? ' min-w-max overflow-x-auto' : ' w-full overflow-hidden'}`}\n style={{ color: 'var(--widget-foreground)' }}\n >\n {base && quote ? (\n baseAmount && parseFloat(baseAmount.toString()) ? (\n quoteAmount ? (\n <div className=\"translate-y-px font-mono flex w-full flex-row items-center justify-between\">\n <div className=\"flex flex-row items-center gap-2 whitespace-nowrap\">\n <div className=\"flex flex-row items-center gap-1\">\n <TokenImage asset={quote} size=\"3xs\" noChain className=\"mb-0.5\" />\n <span className=\"text-xs uppercase\">1 {quote?.symbol}</span>\n </div>\n <span className=\"text-xs\" style={{ color: 'var(--widget-muted-foreground)' }}>=</span>\n <div className=\"flex flex-row items-center gap-1\">\n <TokenImage asset={base} size=\"3xs\" noChain className=\"mb-0.5\" />\n <span className=\"text-xs uppercase\">{formatRate(exchangeRate)} {base?.symbol}</span>\n </div>\n <span className=\"text-xs\" style={{ color: 'var(--widget-muted-foreground)' }}>\n {base?.price ? `≈ $${(base.price * exchangeRate).toFixed(2)}` : ''}\n </span>\n </div>\n <span\n className=\"text-xs ml-2 transition-transform duration-200 shrink-0\"\n style={{\n color: 'var(--widget-muted-foreground)',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n display: 'inline-block',\n }}\n >\n ▾\n </span>\n </div>\n ) : hasQuoteError ? (\n <div className=\"flex h-full w-full flex-row pb-1 items-center justify-between\">\n <p className=\"text-xs\" style={{ color: 'var(--widget-destructive)' }}>\n Quote not found\n </p>\n <ThreeDots className=\"h-8 w-8\" style={{ color: 'var(--widget-destructive)' }} />\n </div>\n ) : (\n <div className=\"flex h-full w-full flex-row pb-1 items-center justify-between\">\n <p className=\"text-xs\" style={{ color: 'var(--widget-accent)' }}>\n Searching For Quote\n </p>\n <ThreeDots className=\"h-8 w-8\" style={{ color: 'var(--widget-accent)' }} />\n </div>\n )\n ) : (\n <div className=\"text-xs pb-1\" style={{ color: 'var(--widget-foreground)', opacity: 0.4 }}>\n Enter Amount\n </div>\n )\n ) : (\n <div className=\"text-xs pb-1\" style={{ color: 'var(--widget-foreground)', opacity: 0.4 }}>\n Enter Amount\n </div>\n )}\n </div>\n </div>\n\n {/* Expanded detail rows */}\n <div\n className=\"overflow-hidden transition-all duration-200\"\n style={{\n maxHeight: isOpen && hasValidQuote ? '80px' : '0px',\n opacity: isOpen && hasValidQuote ? 1 : 0,\n }}\n >\n <div className=\"flex flex-col gap-0.5 pb-1 font-mono\">\n <div\n className=\"flex justify-between text-2xs\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n <span>USD Value</span>\n <span>\n $\n {base?.price && quoteAmount\n ? (\n base.price *\n exchangeRate *\n parseFloat(quoteAmount.toString())\n ).toFixed(2)\n : '—'}\n </span>\n </div>\n <div\n className=\"flex justify-between text-2xs\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n <span>Rate</span>\n <span className=\"uppercase\">\n {exchangeRate > 0\n ? `${formatRate(exchangeRate)} ${base?.symbol ?? ''}`\n : '—'}\n </span>\n </div>\n <div\n className=\"flex justify-between text-2xs\"\n style={{ color: 'var(--widget-muted-foreground)' }}\n >\n <span>Order Type</span>\n <span>RFQ (Exact Fill)</span>\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nQuoteLoader.displayName = 'QuoteLoader';\nexport default QuoteLoader;\n"]}
|