@velora-dex/widget 0.8.1 → 0.8.3-dev.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/dist/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/AppHeader/state/showMoreAtom.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeListItem.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeProtocolsList.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgesList.js.map +1 -1
- package/dist/components/widget/BridgeList/hooks.d.ts +2 -2
- package/dist/components/widget/BridgeList/hooks.d.ts.map +1 -1
- package/dist/components/widget/BridgeList/hooks.js +79 -73
- package/dist/components/widget/BridgeList/hooks.js.map +1 -1
- package/dist/components/widget/BridgePreferences/BridgePreferences.js.map +1 -1
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts +2 -2
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts.map +1 -1
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -1
- package/dist/components/widget/Button/DismissButton.js.map +1 -1
- package/dist/components/widget/Button/RefreshButton.js.map +1 -1
- package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -1
- package/dist/components/widget/Details/DetailWithTooltip.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/DexesList/DexesList.js.map +1 -1
- package/dist/components/widget/DexesList/getDexProps.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Drawer/Overlay.js.map +1 -1
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Duration/Duration.js.map +1 -1
- package/dist/components/widget/Duration/utils.js.map +1 -1
- package/dist/components/widget/EnabledExchanges/EnabledExchanges.js.map +1 -1
- package/dist/components/widget/EnabledExchanges/EnabledExchangesList.js.map +1 -1
- package/dist/components/widget/EnabledList/EnabledList.js.map +1 -1
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js.map +1 -1
- package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
- package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
- package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
- package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
- package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
- package/dist/components/widget/Icon/SliderIcon.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +5 -8
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/constants.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
- package/dist/components/widget/LimitPriceInput/index.js +6 -6
- package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/ListItem/ListItemWithSwitch.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/common/NetworkItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/utils/items.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js +5 -8
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/constants.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
- package/dist/components/widget/Screen/ScreenContainer.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SettingsButton/SettingsButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRateWithTooltip.js.map +1 -1
- package/dist/components/widget/SwapRate/utils.js.map +1 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -1
- package/dist/components/widget/Tabs/Tabs.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenLink.js.map +1 -1
- package/dist/components/widget/TokenInput/InputContainer.js.map +1 -1
- package/dist/components/widget/TokenInput/InputField.js.map +1 -1
- package/dist/components/widget/TokenInput/InputFooter.js.map +1 -1
- package/dist/components/widget/TokenInput/InputHeader.js.map +1 -1
- package/dist/components/widget/TokenInput/common/Balance.js.map +1 -1
- package/dist/components/widget/TokenInput/common/MaxButtons.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts +4 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.js.map +1 -1
- package/dist/components/widget/TradeParameters/DegenModeConfirmation.js.map +1 -1
- package/dist/components/widget/TradeParameters/DegenModeParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EnabledExchangesParameters/EnabledExchangesParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/EnabledExchangesParameters/useDraftEnabledExchangesState.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamActionsAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/enabledExchanges/disabledDexesAtomFamily.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/enabledExchanges/useDisabledDexes.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/slippageParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/tradePreferencesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/components/widget/TransactionDetails/utils.js.map +1 -1
- package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -1
- package/dist/components/widget/Twap/OrderDuration.js.map +1 -1
- package/dist/components/widget/Twap/OrderSplit.js.map +1 -1
- package/dist/components/widget/Twap/RateProtection.js.map +1 -1
- package/dist/components/widget/Twap/TwapDetailWithTooltip.js.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +46 -52
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/LimitOrderDetails.js.map +1 -1
- package/dist/core/OtcOrderButton.js.map +1 -1
- package/dist/core/OtcOrderDetails.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowScreenButton.d.ts +3 -4
- package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
- package/dist/core/TradeFlowScreenButton.js.map +1 -1
- package/dist/core/TwapDetails.js.map +1 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.js.map +1 -1
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +1 -4
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +2 -2
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +2 -2
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -1
- package/dist/core/inputs/hooks/utils.d.ts.map +1 -1
- package/dist/core/inputs/hooks/utils.js +7 -5
- package/dist/core/inputs/hooks/utils.js.map +1 -1
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
- package/dist/core/limit/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/state/utils.js.map +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
- package/dist/core/limit/useLimitNotSupported.js.map +1 -1
- package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
- package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
- package/dist/core/limit/useLimitRate.d.ts +2 -3
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +54 -110
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +1 -4
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
- package/dist/core/otc/useOtcNotSupported.js.map +1 -1
- package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
- package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/screen/hooks/useInitialValue.js.map +1 -1
- package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -1
- package/dist/core/screen/hooks/useResizeObserver.js.map +1 -1
- package/dist/core/screen/hooks/useRunOnMount.js.map +1 -1
- package/dist/core/screen/state/hooks/useScreen.js.map +1 -1
- package/dist/core/screen/state/hooks/useScreenValue.js.map +1 -1
- package/dist/core/screen/state/hooks/useSetScreen.js.map +1 -1
- package/dist/core/screen/state/screenAtom.js.map +1 -1
- package/dist/core/state/apiConfigAtom.js.map +1 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/getSelectableDestChains.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/validatedPartnerConfigAtom.js.map +1 -1
- package/dist/core/state/validatedReferrerConfigAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/swapDetails/fees.d.ts.map +1 -1
- package/dist/core/swapDetails/fees.js +16 -11
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/maxToPay.d.ts.map +1 -1
- package/dist/core/swapDetails/maxToPay.js +18 -17
- package/dist/core/swapDetails/maxToPay.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/core/twap/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -1
- package/dist/core/twap/state/twapParamsAtom.js.map +1 -1
- package/dist/core/twap/state/twapSideAtom.js.map +1 -1
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +2 -2
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +1 -1
- package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -1
- package/dist/core/twap/useTwapDetailsListProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenSwitcherProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -1
- package/dist/events/effects/formInput.js.map +1 -1
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/getters/otc.js.map +1 -1
- package/dist/events/getters/settings.js.map +1 -1
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/getters/twap.js.map +1 -1
- package/dist/events/getters/widgetState.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/priceChange.d.ts +2 -2
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/events/types/swap.d.ts +2 -2
- package/dist/events/types/swap.d.ts.map +1 -1
- package/dist/events/types/twap.d.ts +2 -2
- package/dist/events/types/twap.d.ts.map +1 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__6feb48fe37bd41e9af5c8e81d5a6f4e1/external/vaul/dist/index.js.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
- package/dist/hooks/batch/useBatchWithApproveTxs.js.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
- package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/gas/utils.js.map +1 -1
- package/dist/hooks/getCode/query.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/utils.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/utils/constants.js.map +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.js.map +1 -1
- package/dist/hooks/permit/utils/detect.js.map +1 -1
- package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/permit/utils/utils.js.map +1 -1
- package/dist/hooks/sdk/useGetContracts.js.map +1 -1
- package/dist/hooks/sdk/useSpender.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts +3 -4
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts +6 -3
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.js +20 -17
- package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +5 -5
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +27 -28
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts +3 -3
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +5 -5
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +27 -28
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +5 -6
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.js +6 -6
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/types.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/effect.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/storage.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +11 -14
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +3 -3
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +6 -3
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +17 -34
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +6 -6
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/factory.d.ts.map +1 -1
- package/dist/hooks/swap/prices/factory.js +1 -1
- package/dist/hooks/swap/prices/factory.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/dexesList/useDexesList.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/errors.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/types.d.ts +2 -3
- package/dist/hooks/swap/prices/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -3
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +3 -3
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts +2 -2
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -1
- package/dist/hooks/swap/prices/useTwapPrices.d.ts +4 -5
- package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +10 -17
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +6 -6
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -5
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +119 -124
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -2
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +159 -196
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +5 -5
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js +217 -229
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.js.map +1 -1
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
- package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxFees.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/txs/queries/useTxResponse.js.map +1 -1
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -1
- package/dist/hooks/txs/queries/utils.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBreakpoints.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useBridgeProtocols.js.map +1 -1
- package/dist/hooks/useCachedQueryError.js.map +1 -1
- package/dist/hooks/useChainMatches.js.map +1 -1
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useCurrentChain.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +19 -3
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +65 -35
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/hooks/useSwitchChainWithGuard.js.map +1 -1
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/ipfs.js.map +1 -1
- package/dist/lib/queryClient.js +1 -1
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/tradeMode.js.map +1 -1
- package/dist/lib/utils/approval.js.map +1 -1
- package/dist/lib/utils/atomWithCompare.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.js.map +1 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/dexes.js.map +1 -1
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/lib/utils/fee.js.map +1 -1
- package/dist/lib/utils/formatFiatPrice.js.map +1 -1
- package/dist/lib/utils/formatPercent.js.map +1 -1
- package/dist/lib/utils/formatTokenBalance.js.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/metabase.js.map +1 -1
- package/dist/lib/utils/mobile.js.map +1 -1
- package/dist/lib/utils/price.d.ts +5 -2
- package/dist/lib/utils/price.d.ts.map +1 -1
- package/dist/lib/utils/price.js +8 -5
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/providerErrors.js.map +1 -1
- package/dist/lib/utils/rate.js.map +1 -1
- package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
- package/dist/lib/utils/savedAmountUSD.js.map +1 -1
- package/dist/lib/utils/scaleFactor.js.map +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/time.js.map +1 -1
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/utils/tradeFlow.js.map +1 -1
- package/dist/lib/utils/transactionHandlers.js.map +1 -1
- package/dist/lib/utils/tuple.js.map +1 -1
- package/dist/lib/utils/twap.d.ts +2 -2
- package/dist/lib/utils/twap.d.ts.map +1 -1
- package/dist/lib/utils/twap.js +2 -2
- package/dist/lib/utils/twap.js.map +1 -1
- package/dist/lib/utils/useDateNow.js.map +1 -1
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/external.js.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
- package/dist/lib/web3/wagmi/utils.js.map +1 -1
- package/dist/tokens/blacklist.js.map +1 -1
- package/dist/tokens/constructor.js.map +1 -1
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/stabeCoins/index.js.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
- package/dist/tokens/state/constructTokens.js.map +1 -1
- package/dist/tokens/state/fromListsAtom.js.map +1 -1
- package/dist/tokens/utils/areTokensSame.js.map +1 -1
- package/dist/tokens/utils/brand.js.map +1 -1
- package/dist/tokens/utils/eth.js.map +1 -1
- package/dist/tokens/utils/filtering.js.map +1 -1
- package/dist/tokens/utils/sets.js.map +1 -1
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
- package/dist/transactions/hash.js.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureTxResponse.js.map +1 -1
- package/dist/transactions/state/effects/finalize.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/state/transactionsAtom.js.map +1 -1
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/utils.js.map +1 -1
- package/package.json +6 -6
- package/dist/hooks/swap/prices/delta/bridge/const.d.ts +0 -8
- package/dist/hooks/swap/prices/delta/bridge/const.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/bridge/const.js +0 -13
- package/dist/hooks/swap/prices/delta/bridge/const.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DexItem.js","names":["InfoIcon","Tooltip","TooltipTrigger","TooltipContent","DexItemProps","SwapRate","formatFiatPrice","ImgHTMLAttributes","JSX","SyntheticEvent","useWidgetConfig","unknownDexSVGUrl","VeloraLightSVGUrl","VeloraDarkSVGUrl","UniswapSVGUrl","ReactComponent","GasSVG","HashflowPNGUrl","BiswapPNGUrl","CheeseswapPNGUrl","ComplusswapPNGUrl","ShibaswapPNGUrl","QuickswapPNGUrl","dexIconUrls","VeloraDex","DetailWithValueList","formatUnits","toDecimalTrimmed","isTruthy","getDestAmountAfterFeeAndSlippage","useSlippage","amountAfterSlippage","DetailWithValue","dexIconUrlsMap","Record","DexItem","t0","$","_c","price","exchange","gasCostUSD","srcAmount","destAmount","savedAmountUSD","srcToken","destToken","quote","is100Percent","dexName","renamedDexes","t1","t2","t3","t4","side","t5","t6","Symbol","for","t7","t8","t9","t10","t11","t12","t13","detailsClasses","root","value","TooltipDexInfo","resolvedSlippage","decimals","symbol","srcAmountUnit","BigInt","destAmountUnit","minMaxDetail","maxSrcAmount","toFixed","maxSrcAmountUnit","formattedMaxSrcAmount","minDestAmount","slippagePercent","minDestAmountUnit","formattedMinDestAmount","formatedSrcAmount","formatedDestAmount","title","filter","details","paraswaplimitorders","uniswapforkoptimized","onDexImageError","e","HTMLImageElement","Event","currentTarget","src","DexIcon","props","DexIconComp","loweredExchange","toLowerCase","IconComp","iconComponents","iconUrl","VeloraIcon","theme","Element","velora","augustusrfq","uniswap","quickswap","hashflow","biswap","cheeseswap","shibaswap","complusswap"],"sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"sourcesContent":["import { InfoIcon } from \"lucide-react\";\n\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport type { DexItemProps } from \"./types\";\nimport { SwapRate } from \"../SwapRate/SwapRate\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport type { ImgHTMLAttributes, JSX, SyntheticEvent } from \"react\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nimport unknownDexSVGUrl from \"./assets/unknown-dex.svg?url\";\nimport VeloraLightSVGUrl from \"./assets/exchanges/velora-light.svg?url\";\nimport VeloraDarkSVGUrl from \"./assets/exchanges/velora-dark.svg?url\";\nimport UniswapSVGUrl from \"./assets/exchanges/uniswap.svg?url\";\nimport { ReactComponent as GasSVG } from \"./assets/gas.svg\";\n\n// following icons can't be fetched from origin source because of CloudFlare protection\nimport HashflowPNGUrl from \"./assets/exchanges/hashflow.png?url\";\nimport BiswapPNGUrl from \"./assets/exchanges/biswap.png?url\";\nimport CheeseswapPNGUrl from \"./assets/exchanges/cheeseswap.png?url\";\nimport ComplusswapPNGUrl from \"./assets/exchanges/complusswap.png?url\";\nimport ShibaswapPNGUrl from \"./assets/exchanges/shibaswap.png?url\";\nimport QuickswapPNGUrl from \"./assets/exchanges/quickswap.png?url\";\n\nimport dexIconUrls from \"./assets/exchanges/icons.json\";\nimport { VeloraDex } from \"./constants\";\nimport { DetailWithValueList } from \"../Details/DetailWithValueList\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport type { DetailWithValue } from \"../Details/types\";\n\nconst dexIconUrlsMap: Record<string, string> = dexIconUrls;\n\nexport const DexItem = ({\n price,\n exchange,\n gasCostUSD,\n srcAmount,\n destAmount,\n savedAmountUSD,\n srcToken,\n destToken,\n quote,\n is100Percent,\n}: DexItemProps) => {\n const dexName = renamedDexes[exchange] ?? exchange;\n\n return (\n <div className=\"text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere\">\n <div className=\"flex items-center justify-center gap-1.5\">\n <DexIconComp exchange={exchange} />\n <div className=\"font-medium text-contrast-4 dark:text-contrast-9 overflow-hidden whitespace-nowrap text-ellipsis\">\n {dexName}\n </div>\n </div>\n <div className=\"flex items-center gap-1\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-contrast-3 dark:text-contrast-7 font-geist-mono text-end\">\n <SwapRate\n srcToken={srcToken}\n destToken={destToken}\n srcAmountWei={srcAmount}\n destAmountWei={destAmount}\n reverse={price.side === \"BUY\"}\n />\n </div>\n <div className=\"text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5\">\n <GasSVG /> {formatFiatPrice(+gasCostUSD)}\n </div>\n </div>\n <TooltipDexInfo\n price={price}\n srcAmount={srcAmount}\n srcToken={srcToken}\n destAmount={destAmount}\n destToken={destToken}\n gasCostUSD={gasCostUSD}\n savedAmountUSD={savedAmountUSD}\n quote={quote}\n is100Percent={is100Percent}\n />\n </div>\n </div>\n );\n};\n\n// tooltip\n\nconst detailsClasses = {\n root: \"min-w-[200px]\",\n value: \"dark:text-contrast-3\",\n};\n\nconst TooltipDexInfo = ({\n price,\n srcAmount,\n srcToken,\n destAmount,\n destToken,\n savedAmountUSD,\n gasCostUSD,\n quote,\n is100Percent,\n}: Omit<DexItemProps, \"exchange\">) => {\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);\n const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);\n\n let minMaxDetail: DetailWithValue;\n if (price.side === \"BUY\") {\n const maxSrcAmount = amountAfterSlippage(\n srcAmount,\n resolvedSlippage,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n srcToken.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n minMaxDetail = {\n title: \"Maximum to Pay\",\n value: `${formattedMaxSrcAmount} ${srcToken.symbol}`,\n };\n } else {\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent: resolvedSlippage,\n });\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n destToken.decimals\n );\n const formattedMinDestAmount = toDecimalTrimmed(minDestAmountUnit);\n\n minMaxDetail = {\n title: \"Minimum Received\",\n value: `${formattedMinDestAmount} ${destToken.symbol}`,\n };\n }\n\n const formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);\n const formatedDestAmount = toDecimalTrimmed(destAmountUnit);\n\n const details = [\n {\n title: \"Quote\",\n value: `${is100Percent ? \"100% \" : \"\"} ${quote}`,\n },\n {\n title: \"You Pay\",\n value: `${formatedSrcAmount} ${srcToken.symbol}`,\n },\n {\n title: \"You Receive\",\n value: `${formatedDestAmount} ${destToken.symbol}`,\n },\n minMaxDetail,\n {\n title: \"Exp. Slippage\",\n value: `${resolvedSlippage}%`,\n },\n {\n title: \"Network Fees\",\n value: `$${gasCostUSD}`,\n },\n savedAmountUSD && {\n title: \"You Save\",\n value: `🎉 ${formatFiatPrice(savedAmountUSD)}`,\n },\n ].filter(isTruthy);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon\n size={16}\n className=\"text-contrast-6 dark:text-contrast-5 cursor-pointer\"\n />\n </TooltipTrigger>\n <TooltipContent>\n <DetailWithValueList details={details} classes={detailsClasses} />\n </TooltipContent>\n </Tooltip>\n );\n};\n\n// names\n\nconst renamedDexes: Record<string, string> = {\n paraswaplimitorders: VeloraDex,\n uniswapforkoptimized: VeloraDex,\n};\n\n// icons\n\nfunction onDexImageError(e: SyntheticEvent<HTMLImageElement, Event>) {\n e.currentTarget.src = unknownDexSVGUrl;\n}\n\nconst DexIcon = (props: ImgHTMLAttributes<HTMLImageElement>) => {\n return <img {...props} className=\"w-4 h-4 rounded-[50%]\" />;\n};\n\nconst DexIconComp = ({ exchange }: { exchange: string }) => {\n const loweredExchange = exchange.toLowerCase();\n\n // component is the priority\n const IconComp = iconComponents[loweredExchange];\n if (IconComp) return <IconComp />;\n\n // then icons by URL since they may fail to load\n const iconUrl = dexIconUrlsMap[loweredExchange];\n if (iconUrl) return <DexIcon src={iconUrl} onError={onDexImageError} />;\n\n // fallback to unknown icon if no match\n return <DexIcon src={unknownDexSVGUrl} />;\n};\n\n// different Velora icon depending on theme mode\nconst VeloraIcon = () => {\n const { theme } = useWidgetConfig();\n const iconUrl = theme === \"dark\" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;\n return <DexIcon src={iconUrl} />;\n};\n\nconst iconComponents: Record<string, () => JSX.Element> = {\n velora: VeloraIcon,\n paraswaplimitorders: VeloraIcon,\n augustusrfq: VeloraIcon,\n // Uniswap icon from origin looks bad in dark mode\n uniswap: () => <DexIcon src={UniswapSVGUrl} />,\n // Quickswap blocks hotlinking (so no <img src=\"quickswap/...\"/>)\n quickswap: () => <DexIcon src={QuickswapPNGUrl} />,\n hashflow: () => <DexIcon src={HashflowPNGUrl} />,\n biswap: () => <DexIcon src={BiswapPNGUrl} />,\n cheeseswap: () => <DexIcon src={CheeseswapPNGUrl} />,\n shibaswap: () => <DexIcon src={ShibaswapPNGUrl} />,\n complusswap: () => <DexIcon src={ComplusswapPNGUrl} />,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DexItem.js","names":["InfoIcon","Tooltip","TooltipTrigger","TooltipContent","DexItemProps","SwapRate","formatFiatPrice","ImgHTMLAttributes","JSX","SyntheticEvent","useWidgetConfig","unknownDexSVGUrl","VeloraLightSVGUrl","VeloraDarkSVGUrl","UniswapSVGUrl","ReactComponent","GasSVG","HashflowPNGUrl","BiswapPNGUrl","CheeseswapPNGUrl","ComplusswapPNGUrl","ShibaswapPNGUrl","QuickswapPNGUrl","dexIconUrls","VeloraDex","DetailWithValueList","formatUnits","toDecimalTrimmed","isTruthy","getDestAmountAfterFeeAndSlippage","useSlippage","amountAfterSlippage","DetailWithValue","dexIconUrlsMap","Record","DexItem","t0","$","_c","price","exchange","gasCostUSD","srcAmount","destAmount","savedAmountUSD","srcToken","destToken","quote","is100Percent","dexName","renamedDexes","t1","t2","t3","t4","side","t5","t6","Symbol","for","t7","t8","t9","t10","t11","t12","t13","detailsClasses","root","value","TooltipDexInfo","resolvedSlippage","decimals","symbol","srcAmountUnit","BigInt","destAmountUnit","minMaxDetail","maxSrcAmount","toFixed","maxSrcAmountUnit","formattedMaxSrcAmount","minDestAmount","slippagePercent","minDestAmountUnit","formattedMinDestAmount","formatedSrcAmount","formatedDestAmount","title","filter","details","paraswaplimitorders","uniswapforkoptimized","onDexImageError","e","HTMLImageElement","Event","currentTarget","src","DexIcon","props","DexIconComp","loweredExchange","toLowerCase","IconComp","iconComponents","iconUrl","VeloraIcon","theme","Element","velora","augustusrfq","uniswap","quickswap","hashflow","biswap","cheeseswap","shibaswap","complusswap"],"sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"sourcesContent":["import { InfoIcon } from \"lucide-react\";\n\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport type { DexItemProps } from \"./types\";\nimport { SwapRate } from \"../SwapRate/SwapRate\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport type { ImgHTMLAttributes, JSX, SyntheticEvent } from \"react\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nimport unknownDexSVGUrl from \"./assets/unknown-dex.svg?url\";\nimport VeloraLightSVGUrl from \"./assets/exchanges/velora-light.svg?url\";\nimport VeloraDarkSVGUrl from \"./assets/exchanges/velora-dark.svg?url\";\nimport UniswapSVGUrl from \"./assets/exchanges/uniswap.svg?url\";\nimport { ReactComponent as GasSVG } from \"./assets/gas.svg\";\n\n// following icons can't be fetched from origin source because of CloudFlare protection\nimport HashflowPNGUrl from \"./assets/exchanges/hashflow.png?url\";\nimport BiswapPNGUrl from \"./assets/exchanges/biswap.png?url\";\nimport CheeseswapPNGUrl from \"./assets/exchanges/cheeseswap.png?url\";\nimport ComplusswapPNGUrl from \"./assets/exchanges/complusswap.png?url\";\nimport ShibaswapPNGUrl from \"./assets/exchanges/shibaswap.png?url\";\nimport QuickswapPNGUrl from \"./assets/exchanges/quickswap.png?url\";\n\nimport dexIconUrls from \"./assets/exchanges/icons.json\";\nimport { VeloraDex } from \"./constants\";\nimport { DetailWithValueList } from \"../Details/DetailWithValueList\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport type { DetailWithValue } from \"../Details/types\";\n\nconst dexIconUrlsMap: Record<string, string> = dexIconUrls;\n\nexport const DexItem = ({\n price,\n exchange,\n gasCostUSD,\n srcAmount,\n destAmount,\n savedAmountUSD,\n srcToken,\n destToken,\n quote,\n is100Percent,\n}: DexItemProps) => {\n const dexName = renamedDexes[exchange] ?? exchange;\n\n return (\n <div className=\"text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere\">\n <div className=\"flex items-center justify-center gap-1.5\">\n <DexIconComp exchange={exchange} />\n <div className=\"font-medium text-contrast-4 dark:text-contrast-9 overflow-hidden whitespace-nowrap text-ellipsis\">\n {dexName}\n </div>\n </div>\n <div className=\"flex items-center gap-1\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-contrast-3 dark:text-contrast-7 font-geist-mono text-end\">\n <SwapRate\n srcToken={srcToken}\n destToken={destToken}\n srcAmountWei={srcAmount}\n destAmountWei={destAmount}\n reverse={price.side === \"BUY\"}\n />\n </div>\n <div className=\"text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5\">\n <GasSVG /> {formatFiatPrice(+gasCostUSD)}\n </div>\n </div>\n <TooltipDexInfo\n price={price}\n srcAmount={srcAmount}\n srcToken={srcToken}\n destAmount={destAmount}\n destToken={destToken}\n gasCostUSD={gasCostUSD}\n savedAmountUSD={savedAmountUSD}\n quote={quote}\n is100Percent={is100Percent}\n />\n </div>\n </div>\n );\n};\n\n// tooltip\n\nconst detailsClasses = {\n root: \"min-w-[200px]\",\n value: \"dark:text-contrast-3\",\n};\n\nconst TooltipDexInfo = ({\n price,\n srcAmount,\n srcToken,\n destAmount,\n destToken,\n savedAmountUSD,\n gasCostUSD,\n quote,\n is100Percent,\n}: Omit<DexItemProps, \"exchange\">) => {\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);\n const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);\n\n let minMaxDetail: DetailWithValue;\n if (price.side === \"BUY\") {\n const maxSrcAmount = amountAfterSlippage(\n srcAmount,\n resolvedSlippage,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n srcToken.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n minMaxDetail = {\n title: \"Maximum to Pay\",\n value: `${formattedMaxSrcAmount} ${srcToken.symbol}`,\n };\n } else {\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent: resolvedSlippage,\n });\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n destToken.decimals\n );\n const formattedMinDestAmount = toDecimalTrimmed(minDestAmountUnit);\n\n minMaxDetail = {\n title: \"Minimum Received\",\n value: `${formattedMinDestAmount} ${destToken.symbol}`,\n };\n }\n\n const formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);\n const formatedDestAmount = toDecimalTrimmed(destAmountUnit);\n\n const details = [\n {\n title: \"Quote\",\n value: `${is100Percent ? \"100% \" : \"\"} ${quote}`,\n },\n {\n title: \"You Pay\",\n value: `${formatedSrcAmount} ${srcToken.symbol}`,\n },\n {\n title: \"You Receive\",\n value: `${formatedDestAmount} ${destToken.symbol}`,\n },\n minMaxDetail,\n {\n title: \"Exp. Slippage\",\n value: `${resolvedSlippage}%`,\n },\n {\n title: \"Network Fees\",\n value: `$${gasCostUSD}`,\n },\n savedAmountUSD && {\n title: \"You Save\",\n value: `🎉 ${formatFiatPrice(savedAmountUSD)}`,\n },\n ].filter(isTruthy);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon\n size={16}\n className=\"text-contrast-6 dark:text-contrast-5 cursor-pointer\"\n />\n </TooltipTrigger>\n <TooltipContent>\n <DetailWithValueList details={details} classes={detailsClasses} />\n </TooltipContent>\n </Tooltip>\n );\n};\n\n// names\n\nconst renamedDexes: Record<string, string> = {\n paraswaplimitorders: VeloraDex,\n uniswapforkoptimized: VeloraDex,\n};\n\n// icons\n\nfunction onDexImageError(e: SyntheticEvent<HTMLImageElement, Event>) {\n e.currentTarget.src = unknownDexSVGUrl;\n}\n\nconst DexIcon = (props: ImgHTMLAttributes<HTMLImageElement>) => {\n return <img {...props} className=\"w-4 h-4 rounded-[50%]\" />;\n};\n\nconst DexIconComp = ({ exchange }: { exchange: string }) => {\n const loweredExchange = exchange.toLowerCase();\n\n // component is the priority\n const IconComp = iconComponents[loweredExchange];\n if (IconComp) return <IconComp />;\n\n // then icons by URL since they may fail to load\n const iconUrl = dexIconUrlsMap[loweredExchange];\n if (iconUrl) return <DexIcon src={iconUrl} onError={onDexImageError} />;\n\n // fallback to unknown icon if no match\n return <DexIcon src={unknownDexSVGUrl} />;\n};\n\n// different Velora icon depending on theme mode\nconst VeloraIcon = () => {\n const { theme } = useWidgetConfig();\n const iconUrl = theme === \"dark\" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;\n return <DexIcon src={iconUrl} />;\n};\n\nconst iconComponents: Record<string, () => JSX.Element> = {\n velora: VeloraIcon,\n paraswaplimitorders: VeloraIcon,\n augustusrfq: VeloraIcon,\n // Uniswap icon from origin looks bad in dark mode\n uniswap: () => <DexIcon src={UniswapSVGUrl} />,\n // Quickswap blocks hotlinking (so no <img src=\"quickswap/...\"/>)\n quickswap: () => <DexIcon src={QuickswapPNGUrl} />,\n hashflow: () => <DexIcon src={HashflowPNGUrl} />,\n biswap: () => <DexIcon src={BiswapPNGUrl} />,\n cheeseswap: () => <DexIcon src={CheeseswapPNGUrl} />,\n shibaswap: () => <DexIcon src={ShibaswapPNGUrl} />,\n complusswap: () => <DexIcon src={ComplusswapPNGUrl} />,\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DexesList.js","names":["OptimalRate","DexItem","Token","getBestDexProps","getOtherDexesProps","DexesListProps","marketPrice","tokenFrom","tokenTo","DexesList","t0","$","_c","others","length","bestRoute","t1","t2","Symbol","for","bb0","bestDexProps","otherDexesProps","map","dexProps","index"],"sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"sourcesContent":["import { type OptimalRate } from \"@velora-dex/sdk\";\nimport { DexItem } from \"./DexItem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { getBestDexProps, getOtherDexesProps } from \"./getDexProps\";\n\ntype DexesListProps = {\n marketPrice: OptimalRate;\n tokenFrom: Token;\n tokenTo: Token;\n};\n\nexport const DexesList = ({\n marketPrice,\n tokenFrom,\n tokenTo,\n}: DexesListProps) => {\n if (marketPrice.others?.length === 0) return null;\n if (marketPrice.bestRoute.length === 0) return null;\n\n const bestDexProps = getBestDexProps(marketPrice);\n\n if (!bestDexProps) return null;\n\n const otherDexesProps = getOtherDexesProps({\n marketPrice,\n bestDexProps,\n });\n\n if (!otherDexesProps) return null;\n\n return (\n <div className=\"pt-4 px-2 flex flex-col gap-2\">\n <DexItem\n {...bestDexProps}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n {otherDexesProps.map((dexProps, index) => (\n <DexItem\n {...dexProps}\n key={index}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;AAWA,IAAaS,KAAYC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAN,gBAAAC,cAAAC,eAAAE;
|
|
1
|
+
{"version":3,"file":"DexesList.js","names":["OptimalRate","DexItem","Token","getBestDexProps","getOtherDexesProps","DexesListProps","marketPrice","tokenFrom","tokenTo","DexesList","t0","$","_c","others","length","bestRoute","t1","t2","Symbol","for","bb0","bestDexProps","otherDexesProps","map","dexProps","index"],"sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"sourcesContent":["import { type OptimalRate } from \"@velora-dex/sdk\";\nimport { DexItem } from \"./DexItem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { getBestDexProps, getOtherDexesProps } from \"./getDexProps\";\n\ntype DexesListProps = {\n marketPrice: OptimalRate;\n tokenFrom: Token;\n tokenTo: Token;\n};\n\nexport const DexesList = ({\n marketPrice,\n tokenFrom,\n tokenTo,\n}: DexesListProps) => {\n if (marketPrice.others?.length === 0) return null;\n if (marketPrice.bestRoute.length === 0) return null;\n\n const bestDexProps = getBestDexProps(marketPrice);\n\n if (!bestDexProps) return null;\n\n const otherDexesProps = getOtherDexesProps({\n marketPrice,\n bestDexProps,\n });\n\n if (!otherDexesProps) return null;\n\n return (\n <div className=\"pt-4 px-2 flex flex-col gap-2\">\n <DexItem\n {...bestDexProps}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n {otherDexesProps.map((dexProps, index) => (\n <DexItem\n {...dexProps}\n key={index}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;AAWA,IAAaS,KAAYC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAN,gBAAAC,cAAAC,eAAAE;CAMxB,IADIJ,EAAWO,QAAeC,WAAK,KAC/BR,EAAWS,UAAUD,WAAY,GAAC,OAAS;CAAK,IAAAE,GAAAC;CAAA,IAAAN,EAAA,OAAAL,KAAAK,EAAA,OAAAJ,KAAAI,EAAA,OAAAH,GAAA;EAI1BS,IAAAC,OAAIC,IAAJ,8BAAI;EAAAC,KAAA;GAF9B,IAAAC,IAAqBlB,EAAgBG,EAAY;GAEjD,IAAI,CAACe,GAAY;IAASJ,IAAA;IAAA,MAAAG;;GAE1B,IAAAE,IAAwBlB,EAAmB;IAAAE;IAAAe;IAG1C,CAAC;GAEF,IAAI,CAACC,GAAe;IAASL,IAAA;IAAA,MAAAG;;GAG3BJ,IAAA,kBAAA,OAAA;IAAe,WAAA;cAAf,CACE,kBAAC,GAAD;KAAQ,GACFK;KACGf,OAAAA;KACGC,UAAAA;KACCC,WAAAA;KAEZ,CAAA,EAAAc,EAAeC,KAAKC,GAAAC,MACnB,kBAAC,GAAD;KAAQ,GACFD;KACCC,KAAAA;KACEnB,OAAAA;KACGC,UAAAA;KACCC,WAAAA;KAEd,CAAA,CAAA,CACG;;;EAAAG,AAAAA,EAAA,KAAAL,GAAAK,EAAA,KAAAJ,GAAAI,EAAA,KAAAH,GAAAG,EAAA,KAAAK,GAAAL,EAAA,KAAAM;QAAAA,AAAAD,IAAAL,EAAA,IAAAM,IAAAN,EAAA;CAAA,OAAAM,MAAAC,OAAAC,IAAA,8BAAA,GAhBNH,IAgBMC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDexProps.js","names":["isSimplePath","isMultiSwap","isMegaSwap","OptimalRate","DexItemProps","VeloraDex","getSavedAmountUSD","DexProps","Pick","getBestDexProps","marketPrice","bestRoute","srcAmount","destAmount","gasCostUSD","savedAmountUSD","swapExchanges","swaps","exchange","length","dropDEXStable","dropDEXVersion","data","gasUSD","quote","is100Percent","percent","getOtherDexesProps","bestDexProps","maxDexes","otherDexes","others","sortedDexes","slice","sort","a","b","diff","BigInt","addedDexes","Set","uniqueDexes","forEach","dex","trimmed","has","add","push","topDexes","versionRegex","stableRegex","dexKey","replace"],"sources":["../../../../src/components/widget/DexesList/getDexProps.ts"],"sourcesContent":["import { isSimplePath, isMultiSwap, isMegaSwap } from \"@/lib/utils/dexes\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport type { DexItemProps } from \"./types\";\nimport { VeloraDex } from \"./constants\";\nimport { getSavedAmountUSD } from \"@/lib/utils/savedAmountUSD\";\n\ntype DexProps = Pick<\n DexItemProps,\n | \"exchange\"\n | \"gasCostUSD\"\n | \"srcAmount\"\n | \"destAmount\"\n | \"savedAmountUSD\"\n | \"quote\"\n | \"is100Percent\"\n>;\n\nexport function getBestDexProps(marketPrice: OptimalRate): DexProps | null {\n const { bestRoute, srcAmount, destAmount, gasCostUSD } = marketPrice;\n\n const savedAmountUSD = getSavedAmountUSD(marketPrice);\n\n if (isSimplePath(bestRoute)) {\n const swapExchanges = bestRoute[0].swaps[0].swapExchanges;\n const exchange = swapExchanges[0];\n if (swapExchanges.length === 1 && exchange) {\n return {\n srcAmount: exchange.srcAmount,\n destAmount: exchange.destAmount,\n exchange: dropDEXStable(dropDEXVersion(exchange.exchange)),\n gasCostUSD: exchange.data.gasUSD,\n savedAmountUSD,\n quote: exchange.exchange,\n is100Percent: bestRoute[0].percent === 100,\n };\n }\n return null;\n }\n\n if (isMultiSwap(bestRoute)) {\n return {\n srcAmount,\n destAmount,\n exchange: VeloraDex,\n gasCostUSD,\n savedAmountUSD,\n quote: \"MultiSwap\",\n };\n }\n\n if (isMegaSwap(bestRoute)) {\n return {\n srcAmount,\n destAmount,\n exchange: VeloraDex,\n gasCostUSD,\n savedAmountUSD,\n quote: \"MegaSwap\",\n };\n }\n\n return null;\n}\n\nexport function getOtherDexesProps({\n marketPrice,\n bestDexProps,\n maxDexes = 2,\n}: {\n marketPrice: OptimalRate;\n bestDexProps: DexProps;\n maxDexes?: number;\n}): DexProps[] | null {\n const otherDexes = marketPrice.others;\n\n if (!otherDexes || otherDexes.length === 0) return null;\n\n // 1. sort by destAmount\n const sortedDexes = otherDexes.slice().sort((a, b) => {\n const diff = BigInt(b.destAmount) - BigInt(a.destAmount);\n if (diff > 0n) return 1;\n if (diff < 0n) return -1;\n return 0;\n });\n\n // 2. filter out bestDex and repeated dexes\n const addedDexes = new Set<string>([bestDexProps.exchange]);\n // filter out repeated dexes: [UniswapV3, UniswapV4] ---> [UniswapV3]\n const uniqueDexes: DexProps[] = [];\n\n sortedDexes.forEach((dex) => {\n const trimmed = dropDEXStable(dropDEXVersion(dex.exchange));\n\n if (!addedDexes.has(trimmed)) {\n addedDexes.add(trimmed);\n uniqueDexes.push({\n srcAmount: dex.srcAmount,\n destAmount: dex.destAmount,\n exchange: trimmed,\n gasCostUSD: dex.data.gasUSD,\n quote: dex.exchange,\n is100Percent: true,\n });\n }\n });\n\n if (uniqueDexes.length === 0) return null;\n\n // 3. take first `maxDexes` items\n const topDexes = uniqueDexes.slice(0, maxDexes);\n\n return topDexes;\n}\n\nconst versionRegex = /V\\d+(?:\\.\\d+)*$/; // UniswapV2,UniswapV3,PancakeSwapV2,PancakeswapV3,TraderJoeV2,TraderJoeV2.1\nconst stableRegex = /Stable$/i; // Zyberswap,ZyberswapStable\n\nfunction dropDEXVersion(dexKey: string): string {\n return dexKey.replace(versionRegex, \"\");\n}\nfunction dropDEXStable(dexKey: string): string {\n return dexKey.replace(stableRegex, \"\");\n}\n"],"mappings":";;;;AAiBA,SAAgBS,EAAgBC,GAA2C;CACzE,IAAM,EAAEC,cAAWC,cAAWC,eAAYC,kBAAeJ,GAEnDK,IAAiBT,EAAkBI,EAAY;
|
|
1
|
+
{"version":3,"file":"getDexProps.js","names":["isSimplePath","isMultiSwap","isMegaSwap","OptimalRate","DexItemProps","VeloraDex","getSavedAmountUSD","DexProps","Pick","getBestDexProps","marketPrice","bestRoute","srcAmount","destAmount","gasCostUSD","savedAmountUSD","swapExchanges","swaps","exchange","length","dropDEXStable","dropDEXVersion","data","gasUSD","quote","is100Percent","percent","getOtherDexesProps","bestDexProps","maxDexes","otherDexes","others","sortedDexes","slice","sort","a","b","diff","BigInt","addedDexes","Set","uniqueDexes","forEach","dex","trimmed","has","add","push","topDexes","versionRegex","stableRegex","dexKey","replace"],"sources":["../../../../src/components/widget/DexesList/getDexProps.ts"],"sourcesContent":["import { isSimplePath, isMultiSwap, isMegaSwap } from \"@/lib/utils/dexes\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport type { DexItemProps } from \"./types\";\nimport { VeloraDex } from \"./constants\";\nimport { getSavedAmountUSD } from \"@/lib/utils/savedAmountUSD\";\n\ntype DexProps = Pick<\n DexItemProps,\n | \"exchange\"\n | \"gasCostUSD\"\n | \"srcAmount\"\n | \"destAmount\"\n | \"savedAmountUSD\"\n | \"quote\"\n | \"is100Percent\"\n>;\n\nexport function getBestDexProps(marketPrice: OptimalRate): DexProps | null {\n const { bestRoute, srcAmount, destAmount, gasCostUSD } = marketPrice;\n\n const savedAmountUSD = getSavedAmountUSD(marketPrice);\n\n if (isSimplePath(bestRoute)) {\n const swapExchanges = bestRoute[0].swaps[0].swapExchanges;\n const exchange = swapExchanges[0];\n if (swapExchanges.length === 1 && exchange) {\n return {\n srcAmount: exchange.srcAmount,\n destAmount: exchange.destAmount,\n exchange: dropDEXStable(dropDEXVersion(exchange.exchange)),\n gasCostUSD: exchange.data.gasUSD,\n savedAmountUSD,\n quote: exchange.exchange,\n is100Percent: bestRoute[0].percent === 100,\n };\n }\n return null;\n }\n\n if (isMultiSwap(bestRoute)) {\n return {\n srcAmount,\n destAmount,\n exchange: VeloraDex,\n gasCostUSD,\n savedAmountUSD,\n quote: \"MultiSwap\",\n };\n }\n\n if (isMegaSwap(bestRoute)) {\n return {\n srcAmount,\n destAmount,\n exchange: VeloraDex,\n gasCostUSD,\n savedAmountUSD,\n quote: \"MegaSwap\",\n };\n }\n\n return null;\n}\n\nexport function getOtherDexesProps({\n marketPrice,\n bestDexProps,\n maxDexes = 2,\n}: {\n marketPrice: OptimalRate;\n bestDexProps: DexProps;\n maxDexes?: number;\n}): DexProps[] | null {\n const otherDexes = marketPrice.others;\n\n if (!otherDexes || otherDexes.length === 0) return null;\n\n // 1. sort by destAmount\n const sortedDexes = otherDexes.slice().sort((a, b) => {\n const diff = BigInt(b.destAmount) - BigInt(a.destAmount);\n if (diff > 0n) return 1;\n if (diff < 0n) return -1;\n return 0;\n });\n\n // 2. filter out bestDex and repeated dexes\n const addedDexes = new Set<string>([bestDexProps.exchange]);\n // filter out repeated dexes: [UniswapV3, UniswapV4] ---> [UniswapV3]\n const uniqueDexes: DexProps[] = [];\n\n sortedDexes.forEach((dex) => {\n const trimmed = dropDEXStable(dropDEXVersion(dex.exchange));\n\n if (!addedDexes.has(trimmed)) {\n addedDexes.add(trimmed);\n uniqueDexes.push({\n srcAmount: dex.srcAmount,\n destAmount: dex.destAmount,\n exchange: trimmed,\n gasCostUSD: dex.data.gasUSD,\n quote: dex.exchange,\n is100Percent: true,\n });\n }\n });\n\n if (uniqueDexes.length === 0) return null;\n\n // 3. take first `maxDexes` items\n const topDexes = uniqueDexes.slice(0, maxDexes);\n\n return topDexes;\n}\n\nconst versionRegex = /V\\d+(?:\\.\\d+)*$/; // UniswapV2,UniswapV3,PancakeSwapV2,PancakeswapV3,TraderJoeV2,TraderJoeV2.1\nconst stableRegex = /Stable$/i; // Zyberswap,ZyberswapStable\n\nfunction dropDEXVersion(dexKey: string): string {\n return dexKey.replace(versionRegex, \"\");\n}\nfunction dropDEXStable(dexKey: string): string {\n return dexKey.replace(stableRegex, \"\");\n}\n"],"mappings":";;;;AAiBA,SAAgBS,EAAgBC,GAA2C;CACzE,IAAM,EAAEC,cAAWC,cAAWC,eAAYC,kBAAeJ,GAEnDK,IAAiBT,EAAkBI,EAAY;CAErD,IAAIV,EAAaW,EAAU,EAAE;EAC3B,IAAMK,IAAgBL,EAAU,GAAGM,MAAM,GAAGD,eACtCE,IAAWF,EAAc;EAY/B,OAXIA,EAAcG,WAAW,KAAKD,IACzB;GACLN,WAAWM,EAASN;GACpBC,YAAYK,EAASL;GACrBK,UAAUE,EAAcC,EAAeH,EAASA,SAAS,CAAC;GAC1DJ,YAAYI,EAASI,KAAKC;GAC1BR;GACAS,OAAON,EAASA;GAChBO,cAAcd,EAAU,GAAGe,YAAY;GACxC,GAEI;;CAyBT,OAtBIzB,EAAYU,EAAU,GACjB;EACLC;EACAC;EACAK,UAAUb;EACVS;EACAC;EACAS,OAAO;EACR,GAGCtB,EAAWS,EAAU,GAChB;EACLC;EACAC;EACAK,UAAUb;EACVS;EACAC;EACAS,OAAO;EACR,GAGI;;AAGT,SAAgBG,EAAmB,EACjCjB,gBACAkB,iBACAC,cAAW,KAKS;CACpB,IAAMC,IAAapB,EAAYqB;CAE/B,IAAI,CAACD,KAAcA,EAAWX,WAAW,GAAG,OAAO;CAGnD,IAAMa,IAAcF,EAAWG,OAAO,CAACC,MAAMC,GAAGC,MAAM;EACpD,IAAMC,IAAOC,OAAOF,EAAEvB,WAAW,GAAGyB,OAAOH,EAAEtB,WAAW;EAGxD,OAFIwB,IAAO,KAAW,IAClBA,IAAO,KAAW,KACf;GACP,EAGIE,IAAa,IAAIC,IAAY,CAACZ,EAAaV,SAAS,CAAC,EAErDuB,IAA0B,EAAE;CAuBlC,OArBAT,EAAYU,SAASC,MAAQ;EAC3B,IAAMC,IAAUxB,EAAcC,EAAesB,EAAIzB,SAAS,CAAC;EAE3D,AAAKqB,EAAWM,IAAID,EAAQ,KAC1BL,EAAWO,IAAIF,EAAQ,EACvBH,EAAYM,KAAK;GACfnC,WAAW+B,EAAI/B;GACfC,YAAY8B,EAAI9B;GAChBK,UAAU0B;GACV9B,YAAY6B,EAAIrB,KAAKC;GACrBC,OAAOmB,EAAIzB;GACXO,cAAc;GACf,CAAC;GAEJ,EAEEgB,EAAYtB,WAAW,IAAU,OAGpBsB,EAAYR,MAAM,GAAGJ,EAE/BmB;;AAGT,IAAMC,IAAe,mBACfC,IAAc;AAEpB,SAAS7B,EAAe8B,GAAwB;CAC9C,OAAOA,EAAOC,QAAQH,GAAc,GAAG;;AAEzC,SAAS7B,EAAc+B,GAAwB;CAC7C,OAAOA,EAAOC,QAAQF,GAAa,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReceiverAddressDialog.js","names":["DialogContent","Switch","ReceiverAddressProps","useState","ReceiverAddressInput","WarningWithTitle","WarningProps","Button","useAccount","isAddress","cn","useIsContractAtAddress","warningClasses","root","warningMessage","receiverWarningMessage","smartContractWarningMessage","ownAddressEnteredWarningMessage","ReceiverAddressDialog","$","_c","t0","Symbol","for","ReceiverAddressContent","onClose","address","setAddress","type","isOTC","account","value","setValue","acknowledged","setAcknowledged","isEnteredAddressContract","data","isContract","t1","isEnteredAddressValid","t2","value_0","handleValueChange","t3","toggleSwitch","t4","onContinueClick","t5","onUseMyAddressClick","t6","toLowerCase","t7","enteredOwnAddress","switchDisabled","showOwnAddressEnteredWarning","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","undefined","t18","t19","t20","t21","t22","t23","t24","t25"],"sources":["../../../../../src/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.tsx"],"sourcesContent":["import { DialogContent } from \"@/components/ui/dialog\";\nimport { Switch } from \"@/components/ui/switch\";\nimport type { ReceiverAddressProps } from \"../../ReceiverAddress/types\";\nimport { useState } from \"react\";\nimport { ReceiverAddressInput } from \"./ReceiverAddressInput\";\nimport { WarningWithTitle } from \"../../Warning/Warning\";\nimport type { WarningProps } from \"../../Warning/types\";\nimport { Button } from \"@/components/ui/button\";\nimport { useAccount } from \"wagmi\";\nimport { isAddress } from \"viem\";\nimport { cn } from \"@/lib/utils\";\nimport { useIsContractAtAddress } from \"@/hooks/getCode/useIsContractAtAddress\";\n\nconst warningClasses: WarningProps[\"classes\"] = {\n root: \"mt-6\",\n};\n\nconst warningMessage =\n \"Also, please double-check the address you fill, any tokens sent to the wrong address will be impossible to retrieve.\";\nconst receiverWarningMessage =\n \"Please do not use this feature to transfer your tokens to an address of a centralized exchange (binance, huobi...). It is not a supported feature.\";\nconst smartContractWarningMessage =\n \"The funds will be transferred to a smart contract, please double-check that the destination contract supports transfer deposits.\";\n\nconst ownAddressEnteredWarningMessage = \"You entered your own address\";\n\nexport const ReceiverAddressDialog = () => {\n return (\n <DialogContent title=\"Receiver Address\" className=\"max-w-[400px]\">\n {/* @ts-expect-error ReceiverAddressContent expecting props */}\n <ReceiverAddressContent />\n </DialogContent>\n );\n};\n\nexport const ReceiverAddressContent = ({\n onClose,\n address,\n setAddress,\n type,\n}: {\n onClose?: () => void;\n} & Omit<ReceiverAddressProps, \"classes\">) => {\n const isOTC = type === \"otc\";\n const { address: account } = useAccount();\n\n const [value, setValue] = useState<string>(address ?? \"\");\n const [acknowledged, setAcknowledged] = useState(false);\n\n const isEnteredAddressContract = useIsContractAtAddress({\n address: value,\n }).data?.isContract;\n const isEnteredAddressValid = isAddress(value);\n\n const handleValueChange = (value: string) => {\n if (acknowledged) setAcknowledged(false);\n setValue(value);\n };\n\n const toggleSwitch = () => {\n setAcknowledged(!acknowledged);\n };\n\n const onContinueClick = () => {\n if (isEnteredAddressValid && acknowledged) {\n setAddress(value);\n }\n onClose?.();\n };\n\n const onUseMyAddressClick = () => {\n if (account) handleValueChange(account);\n };\n\n const enteredOwnAddress = value.toLowerCase() === account?.toLowerCase();\n const switchDisabled = !isOTC\n ? !isEnteredAddressValid\n : !isEnteredAddressValid || enteredOwnAddress;\n\n const showOwnAddressEnteredWarning = enteredOwnAddress && isOTC;\n\n return (\n <div className=\"p-[24px] pt-0\">\n <ReceiverAddressInput\n value={value}\n handleValueChange={handleValueChange}\n />\n {showOwnAddressEnteredWarning && (\n <div className=\"text-[11px] mt-[2px] text-secondary-radical-red-1\">\n {ownAddressEnteredWarningMessage}\n </div>\n )}\n\n <WarningWithTitle\n title=\"Disclaimer\"\n message={\n <div className=\"flex flex-col gap-2\">\n <div>\n {isEnteredAddressContract\n ? smartContractWarningMessage\n : receiverWarningMessage}\n </div>\n <div>{warningMessage}</div>\n </div>\n }\n classes={warningClasses}\n />\n <div className=\"mt-7 flex items-center gap-1.5\">\n <Switch\n checked={acknowledged}\n onClick={toggleSwitch}\n className=\"cursor-pointer\"\n disabled={switchDisabled}\n />\n <div\n className={cn(\"text-sm text-contrast-4 dark:text-contrast-6\", {\n \"cursor-not-allowed\": switchDisabled,\n \"cursor-pointer\": !switchDisabled,\n })}\n onClick={switchDisabled ? undefined : toggleSwitch}\n >\n I understand the risks mentioned above\n </div>\n </div>\n <div className=\"mt-7 flex items-center justify-between gap-2\">\n {!isOTC && (\n <Button\n radius=\"xs\"\n variant=\"secondary\"\n disabled={!account || enteredOwnAddress}\n onClick={onUseMyAddressClick}\n >\n Use My Address\n </Button>\n )}\n <Button\n radius=\"xs\"\n disabled={!acknowledged || switchDisabled}\n onClick={onContinueClick}\n className={cn({\n \"flex-1\": isOTC,\n })}\n >\n Continue\n </Button>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAaA,IAAMY,KAA0C,EAC9CC,MAAM,QACP,EAEKC,KACJ,wHACIC,IACJ,sJACIC,IACJ,oIAEIC,IAAkC,gCAW3BO,KAAyBH,MAAA;CAAA,IAAAF,IAAAC,GAAA,GAAA,EAAC,EAAAK,YAAAC,YAAAC,eAAAC,YAAAP,GAQrCQ,IAAcD,MAAS,OACvB,EAAAF,SAAAI,MAA6BtB,IAAY,EAEzC,CAAAuB,GAAAC,MAA0B7B,EAAiBuB,KAAA,GAAc,EACzD,CAAAO,GAAAC,KAAwC/B,EAAS,GAAM,EAEvDgC,KAAiCxB,GAAuB,EAAAe,SAC7CK,GACV,CAAC,CAAAK,MAAiBC,YAACC;AAAA,CAAAnB,EAAA,OAAAY,IAC0BO,IAAAnB,EAAA,MAAhBmB,IAAA7B,GAAUsB,EAAM,EAAAZ,EAAA,KAAAY,GAAAZ,EAAA,KAAAmB;CAA9C,IAAAC,IAA8BD,GAAiBE;AAAA,CAAArB,EAAA,OAAAc,IAK9CO,IAAArB,EAAA,MAHyBqB,KAAAC,MAAA;AAExBT,EADIC,KAAcC,EAAgB,GAAM,EACxCF,GAASD,EAAM;IAChBZ,EAAA,KAAAc,GAAAd,EAAA,KAAAqB;CAHD,IAAAE,IAA0BF,GAGxBG;AAAA,CAAAxB,EAAA,OAAAc,IAIDU,IAAAxB,EAAA,MAFoBwB,UAAA;AACnBT,IAAgB,CAACD,EAAa;IAC/Bd,EAAA,KAAAc,GAAAd,EAAA,KAAAwB;CAFD,IAAAC,IAAqBD,GAEnBE;AAAA,CAAA1B,EAAA,OAAAc,KAAAd,EAAA,OAAAoB,KAAApB,EAAA,OAAAM,KAAAN,EAAA,OAAAQ,KAAAR,EAAA,QAAAY,KAEsBc,UAAA;AAItBpB,EAHIc,KAAAN,KACFN,EAAWI,EAAM,EAEnBN,KAAW;IACZN,EAAA,KAAAc,GAAAd,EAAA,KAAAoB,GAAApB,EAAA,KAAAM,GAAAN,EAAA,KAAAQ,GAAAR,EAAA,MAAAY,GAAAZ,EAAA,MAAA0B,KAAAA,IAAA1B,EAAA;CALD,IAAA2B,IAAwBD,GAKtBE;AAAA,CAAA5B,EAAA,QAAAW,KAAAX,EAAA,QAAAuB,KAE0BK,UAAA;AAC1B,EAAIjB,KAASY,EAAkBZ,EAAQ;IACxCX,EAAA,MAAAW,GAAAX,EAAA,MAAAuB,GAAAvB,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA;CAFD,IAAA6B,IAA4BD,GAE1BE;AAAA,CAAA9B,EAAA,QAAAY,IAE2CkB,IAAA9B,EAAA,OAAnB8B,IAAAlB,EAAKmB,aAAc,EAAA/B,EAAA,MAAAY,GAAAZ,EAAA,MAAA8B;CAAA,IAAAE;AAAA,CAAAhC,EAAA,QAAAW,IAA2BqB,IAAAhC,EAAA,OAAtBgC,IAAArB,GAAOoB,aAAe,EAAA/B,EAAA,MAAAW,GAAAX,EAAA,MAAAgC;CAAxE,IAAAC,IAA0BH,MAAwBE,GAClDE,IAAwBxB,IAEpB,CAACU,KAADa,IAFmB,CAClBb,GAGLe,IAAqCF,KAAAvB,GAA2B0B;AAAA,CAAApC,EAAA,QAAAuB,KAAAvB,EAAA,QAAAY,KAI5DwB,IAAA,kBAAC,GAAD;EACSxB;EACYW;EACnB,CAAA,EAAAvB,EAAA,MAAAuB,GAAAvB,EAAA,MAAAY,GAAAZ,EAAA,MAAAoC,KAAAA,IAAApC,EAAA;CAAA,IAAAqC;AAAA,CAAArC,EAAA,QAAAmC,IAKDE,IAAArC,EAAA,OAJAqC,IAAAF,KACC,kBAAA,OAAA;EAAe,WAAA;YACZrC;EAEJ,CAAA,EAAAE,EAAA,MAAAmC,GAAAnC,EAAA,MAAAqC;CAOQ,IAAAC,IAAAtB,KAAAnB,IAAAD,GAEyB2C;AAAA,CAAAvC,EAAA,QAAAsC,IACtBC,IAAAvC,EAAA,OAJNuC,IAAA,kBAAA,OAAA,EAAA,UACGD,GAGG,CAAA,EAAAtC,EAAA,MAAAsC,GAAAtC,EAAA,MAAAuC;CAAA,IAAAC;AAAA,CAAAxC,EAAA,QAAAG,OAAAC,IAAA,4BAAA,IACNoC,IAAA,kBAAA,OAAA,EAAA,UAAM7C,IAAqB,CAAA,EAAAK,EAAA,MAAAwC,KAAAA,IAAAxC,EAAA;CAAA,IAAAyC;AAAA,CAAAzC,EAAA,QAAAuC,IAI/BE,IAAAzC,EAAA,OAbFyC,IAAA,kBAAC,GAAD;EACQ,OAAA;EAEJ,SAAA,kBAAA,OAAA;GAAe,WAAA;aAAf,CACEF,GAKAC,EACG;;EAEE/C,SAAAA;EACT,CAAA,EAAAO,EAAA,MAAAuC,GAAAvC,EAAA,MAAAyC;CAAA,IAAAC;AAAA,CAAA1C,EAAA,QAAAc,KAAAd,EAAA,QAAAkC,KAAAlC,EAAA,QAAAyB,KAEAiB,IAAA,kBAAC,IAAD;EACW5B,SAAAA;EACAW,SAAAA;EACC,WAAA;EACAS,UAAAA;EACV,CAAA,EAAAlC,EAAA,MAAAc,GAAAd,EAAA,MAAAkC,GAAAlC,EAAA,MAAAyB,GAAAzB,EAAA,MAAA0C,KAAAA,IAAA1C,EAAA;CAIoB,IAAA2C,IAAA,CAACT,GAAcU;AAAA,CAAA5C,EAAA,QAAAkC,KAAAlC,EAAA,QAAA2C,KAFxBC,IAAArD,EAAG,gDAAgD;EAAA,sBACtC2C;EAAc,kBAClBS;EACnB,CAAC,EAAA3C,EAAA,MAAAkC,GAAAlC,EAAA,MAAA2C,GAAA3C,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA;CACO,IAAA6C,IAAAX,IAAAY,KAAAA,IAAArB,GAAyCsB;AAAA,CAAA/C,EAAA,QAAA4C,KAAA5C,EAAA,QAAA6C,KALpDE,IAAA,kBAAA,OAAA;EACa,WAAAH;EAIF,SAAAC;YACV;EAEK,CAAA,EAAA7C,EAAA,MAAA4C,GAAA5C,EAAA,MAAA6C,GAAA7C,EAAA,MAAA+C,KAAAA,IAAA/C,EAAA;CAAA,IAAAgD;AAAA,CAAAhD,EAAA,QAAA0C,KAAA1C,EAAA,QAAA+C,KAfRC,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACEN,GAMAK,EASI;KAAA/C,EAAA,MAAA0C,GAAA1C,EAAA,MAAA+C,GAAA/C,EAAA,MAAAgD,KAAAA,IAAAhD,EAAA;CAAA,IAAAiD;AAAA,CAAAjD,EAAA,QAAAW,KAAAX,EAAA,QAAAiC,KAAAjC,EAAA,QAAAU,KAAAV,EAAA,QAAA6B,KAEHoB,IAAA,CAACvC,KACA,kBAAC,GAAD;EACS,QAAA;EACC,SAAA;EACE,UAAA,CAACC,KAADsB;EACDJ,SAAAA;YACV;EAGF,CAAA,EAAA7B,EAAA,MAAAW,GAAAX,EAAA,MAAAiC,GAAAjC,EAAA,MAAAU,GAAAV,EAAA,MAAA6B,GAAA7B,EAAA,MAAAiD,KAAAA,IAAAjD,EAAA;CAGW,IAAAkD,IAAA,CAACpC,KAADoB,GAA+BiB;AAAA,CAAAnD,EAAA,QAAAU,IAIvCyC,IAAAnD,EAAA,OAFSmD,IAAA5D,EAAG,EAAA,UACFmB,GACX,CAAC,EAAAV,EAAA,MAAAU,GAAAV,EAAA,MAAAmD;CAAA,IAAAC;AAAA,CAAApD,EAAA,QAAA2B,KAAA3B,EAAA,QAAAkD,KAAAlD,EAAA,QAAAmD,KANJC,IAAA,kBAAC,GAAD;EACS,QAAA;EACG,UAAAF;EACDvB,SAAAA;EACE,WAAAwB;YAGZ;EAEQ,CAAA,EAAAnD,EAAA,MAAA2B,GAAA3B,EAAA,MAAAkD,GAAAlD,EAAA,MAAAmD,GAAAnD,EAAA,MAAAoD,KAAAA,IAAApD,EAAA;CAAA,IAAAqD;AAAA,CAAArD,EAAA,QAAAiD,KAAAjD,EAAA,QAAAoD,KApBXC,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACGJ,GAUDG,EAUI;KAAApD,EAAA,MAAAiD,GAAAjD,EAAA,MAAAoD,GAAApD,EAAA,MAAAqD,KAAAA,IAAArD,EAAA;CAAA,IAAAsD;AACF,QADEtD,EAAA,QAAAyC,KAAAzC,EAAA,QAAAgD,KAAAhD,EAAA,QAAAqD,KAAArD,EAAA,QAAAoC,KAAApC,EAAA,QAAAqC,KA/DRiB,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf;GACElB;GAICC;GAMDI;GAcAO;GAiBAK;GAsBI;KAAArD,EAAA,MAAAyC,GAAAzC,EAAA,MAAAgD,GAAAhD,EAAA,MAAAqD,GAAArD,EAAA,MAAAoC,GAAApC,EAAA,MAAAqC,GAAArC,EAAA,MAAAsD,KAAAA,IAAAtD,EAAA,KAhENsD"}
|
|
1
|
+
{"version":3,"file":"ReceiverAddressDialog.js","names":["DialogContent","Switch","ReceiverAddressProps","useState","ReceiverAddressInput","WarningWithTitle","WarningProps","Button","useAccount","isAddress","cn","useIsContractAtAddress","warningClasses","root","warningMessage","receiverWarningMessage","smartContractWarningMessage","ownAddressEnteredWarningMessage","ReceiverAddressDialog","$","_c","t0","Symbol","for","ReceiverAddressContent","onClose","address","setAddress","type","isOTC","account","value","setValue","acknowledged","setAcknowledged","isEnteredAddressContract","data","isContract","t1","isEnteredAddressValid","t2","value_0","handleValueChange","t3","toggleSwitch","t4","onContinueClick","t5","onUseMyAddressClick","t6","toLowerCase","t7","enteredOwnAddress","switchDisabled","showOwnAddressEnteredWarning","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","undefined","t18","t19","t20","t21","t22","t23","t24","t25"],"sources":["../../../../../src/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.tsx"],"sourcesContent":["import { DialogContent } from \"@/components/ui/dialog\";\nimport { Switch } from \"@/components/ui/switch\";\nimport type { ReceiverAddressProps } from \"../../ReceiverAddress/types\";\nimport { useState } from \"react\";\nimport { ReceiverAddressInput } from \"./ReceiverAddressInput\";\nimport { WarningWithTitle } from \"../../Warning/Warning\";\nimport type { WarningProps } from \"../../Warning/types\";\nimport { Button } from \"@/components/ui/button\";\nimport { useAccount } from \"wagmi\";\nimport { isAddress } from \"viem\";\nimport { cn } from \"@/lib/utils\";\nimport { useIsContractAtAddress } from \"@/hooks/getCode/useIsContractAtAddress\";\n\nconst warningClasses: WarningProps[\"classes\"] = {\n root: \"mt-6\",\n};\n\nconst warningMessage =\n \"Also, please double-check the address you fill, any tokens sent to the wrong address will be impossible to retrieve.\";\nconst receiverWarningMessage =\n \"Please do not use this feature to transfer your tokens to an address of a centralized exchange (binance, huobi...). It is not a supported feature.\";\nconst smartContractWarningMessage =\n \"The funds will be transferred to a smart contract, please double-check that the destination contract supports transfer deposits.\";\n\nconst ownAddressEnteredWarningMessage = \"You entered your own address\";\n\nexport const ReceiverAddressDialog = () => {\n return (\n <DialogContent title=\"Receiver Address\" className=\"max-w-[400px]\">\n {/* @ts-expect-error ReceiverAddressContent expecting props */}\n <ReceiverAddressContent />\n </DialogContent>\n );\n};\n\nexport const ReceiverAddressContent = ({\n onClose,\n address,\n setAddress,\n type,\n}: {\n onClose?: () => void;\n} & Omit<ReceiverAddressProps, \"classes\">) => {\n const isOTC = type === \"otc\";\n const { address: account } = useAccount();\n\n const [value, setValue] = useState<string>(address ?? \"\");\n const [acknowledged, setAcknowledged] = useState(false);\n\n const isEnteredAddressContract = useIsContractAtAddress({\n address: value,\n }).data?.isContract;\n const isEnteredAddressValid = isAddress(value);\n\n const handleValueChange = (value: string) => {\n if (acknowledged) setAcknowledged(false);\n setValue(value);\n };\n\n const toggleSwitch = () => {\n setAcknowledged(!acknowledged);\n };\n\n const onContinueClick = () => {\n if (isEnteredAddressValid && acknowledged) {\n setAddress(value);\n }\n onClose?.();\n };\n\n const onUseMyAddressClick = () => {\n if (account) handleValueChange(account);\n };\n\n const enteredOwnAddress = value.toLowerCase() === account?.toLowerCase();\n const switchDisabled = !isOTC\n ? !isEnteredAddressValid\n : !isEnteredAddressValid || enteredOwnAddress;\n\n const showOwnAddressEnteredWarning = enteredOwnAddress && isOTC;\n\n return (\n <div className=\"p-[24px] pt-0\">\n <ReceiverAddressInput\n value={value}\n handleValueChange={handleValueChange}\n />\n {showOwnAddressEnteredWarning && (\n <div className=\"text-[11px] mt-[2px] text-secondary-radical-red-1\">\n {ownAddressEnteredWarningMessage}\n </div>\n )}\n\n <WarningWithTitle\n title=\"Disclaimer\"\n message={\n <div className=\"flex flex-col gap-2\">\n <div>\n {isEnteredAddressContract\n ? smartContractWarningMessage\n : receiverWarningMessage}\n </div>\n <div>{warningMessage}</div>\n </div>\n }\n classes={warningClasses}\n />\n <div className=\"mt-7 flex items-center gap-1.5\">\n <Switch\n checked={acknowledged}\n onClick={toggleSwitch}\n className=\"cursor-pointer\"\n disabled={switchDisabled}\n />\n <div\n className={cn(\"text-sm text-contrast-4 dark:text-contrast-6\", {\n \"cursor-not-allowed\": switchDisabled,\n \"cursor-pointer\": !switchDisabled,\n })}\n onClick={switchDisabled ? undefined : toggleSwitch}\n >\n I understand the risks mentioned above\n </div>\n </div>\n <div className=\"mt-7 flex items-center justify-between gap-2\">\n {!isOTC && (\n <Button\n radius=\"xs\"\n variant=\"secondary\"\n disabled={!account || enteredOwnAddress}\n onClick={onUseMyAddressClick}\n >\n Use My Address\n </Button>\n )}\n <Button\n radius=\"xs\"\n disabled={!acknowledged || switchDisabled}\n onClick={onContinueClick}\n className={cn({\n \"flex-1\": isOTC,\n })}\n >\n Continue\n </Button>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReceiverAddressInput.js","names":["Button","CircleX","Input","ReceiverAddressInput","t0","$","_c","value","handleValueChange","t1","text","navigator","clipboard","readText","endAdornment","t2","e","target","t3"],"sources":["../../../../../src/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\nimport { CircleX } from \"lucide-react\";\n\nimport { Input } from \"@/components/ui/input\";\n\nexport const ReceiverAddressInput = ({\n value,\n handleValueChange,\n}: {\n value: string;\n handleValueChange: (value: string) => void;\n}) => {\n const endAdornment = value ? (\n <CircleX\n onClick={() => handleValueChange(\"\")}\n cursor=\"pointer\"\n size={20}\n className=\"text-contrast-6 dark:text-contrast-5\"\n />\n ) : (\n <Button\n radius=\"xs\"\n className=\"text-xs uppercase px-2 h-[24px] dark:bg-contrast-2 dark:text-contrast-6\"\n onClick={async () => {\n const text = await navigator.clipboard.readText();\n handleValueChange(text);\n }}\n >\n paste\n </Button>\n );\n\n return (\n <Input\n value={value}\n onChange={(e) => handleValueChange(e.target.value)}\n className=\"h-[48px] dark:bg-contrast-3 rounded-xs font-geist-mono placeholder:font-inter placeholder:text-contrast-6 dark:placeholder:text-contrast-5 pr-10\"\n placeholder=\"Receiver's Wallet Address\"\n endAdornment={endAdornment}\n />\n );\n};\n"],"mappings":";;;;;;AAKA,IAAaG,KAAuBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAC,UAAAC,yBAAAJ,GAMpCK;
|
|
1
|
+
{"version":3,"file":"ReceiverAddressInput.js","names":["Button","CircleX","Input","ReceiverAddressInput","t0","$","_c","value","handleValueChange","t1","text","navigator","clipboard","readText","endAdornment","t2","e","target","t3"],"sources":["../../../../../src/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\nimport { CircleX } from \"lucide-react\";\n\nimport { Input } from \"@/components/ui/input\";\n\nexport const ReceiverAddressInput = ({\n value,\n handleValueChange,\n}: {\n value: string;\n handleValueChange: (value: string) => void;\n}) => {\n const endAdornment = value ? (\n <CircleX\n onClick={() => handleValueChange(\"\")}\n cursor=\"pointer\"\n size={20}\n className=\"text-contrast-6 dark:text-contrast-5\"\n />\n ) : (\n <Button\n radius=\"xs\"\n className=\"text-xs uppercase px-2 h-[24px] dark:bg-contrast-2 dark:text-contrast-6\"\n onClick={async () => {\n const text = await navigator.clipboard.readText();\n handleValueChange(text);\n }}\n >\n paste\n </Button>\n );\n\n return (\n <Input\n value={value}\n onChange={(e) => handleValueChange(e.target.value)}\n className=\"h-[48px] dark:bg-contrast-3 rounded-xs font-geist-mono placeholder:font-inter placeholder:text-contrast-6 dark:placeholder:text-contrast-5 pr-10\"\n placeholder=\"Receiver's Wallet Address\"\n endAdornment={endAdornment}\n />\n );\n};\n"],"mappings":";;;;;;AAKA,IAAaG,KAAuBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAC,UAAAC,yBAAAJ,GAMpCK;CAAA,AAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KACsBE,IAAAF,IACnB,kBAAC,GAAD;EACW,eAAMC,EAAkB,GAAE;EAC5B,QAAA;EACD,MAAA;EACI,WAAA;EAab,CAAA,GAVC,kBAAC,GAAD;EACS,QAAA;EACG,WAAA;EACD,SAAA,YAAA;GAEPA,EAAkBE,MADCC,UAASC,UAAUC,UAAW,CAC1B;;YAE1B;EAGF,CAAA,EAAAR,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAlBD,IAAAS,IAAqBL,GAkBnBM;CAAA,AAAAV,EAAA,OAAAG,IAKoDO,IAAAV,EAAA,MAAxCU,KAAAC,MAAOR,EAAkBQ,EAACC,OAAOV,MAAO,EAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAU;CAAA,IAAAG;CAIlD,OAJkDb,EAAA,OAAAS,KAAAT,EAAA,OAAAU,KAAAV,EAAA,OAAAE,KAFpDW,IAAA,kBAAC,GAAD;EACSX;EACG,UAAAQ;EACA,WAAA;EACE,aAAA;EACED;EACd,CAAA,EAAAT,EAAA,KAAAS,GAAAT,EAAA,KAAAU,GAAAV,EAAA,KAAAE,GAAAF,EAAA,KAAAa,KAAAA,IAAAb,EAAA,IANFa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTokenDialog.js","names":["SelectTokenDialogProps","RegularTokenList","RegularTokenListProps","AcrossTokenLists","TokenSearch","useDeferredInputState","useEffect","useState","PropsWithChildren","useChainId","SupportedChainId","useLimitChainTo","useSwapChainTo","useTwapChainTo","Token","TokenCloud","useTradeMode","UseImportTokenDrawerReturn","assertProp","cn","useEnabledSrcChains","useSelectableDestChains","GenericScreen","GenericScreenHeader","GenericScreenHeaderProps","useImportTokenDrawer","useBreakpoints","NetworkSwitcherList","Prettify","ArbitraryNetworkSwitcherProps","NetworkSwitcherListProps","BridgeInfoMode","SelectTokenScreenProps","Pick","SelectTokenProps","drawerContainer","HTMLElement","headerClasses","root","title","const","SelectTokenScreen","t0","$","_c","props","t1","onClose","tokenType","onImported","onOpenImportTokenDrawer","importTokenDrawer","t2","showBackButton","onGoBack","classes","headerProps","t3","t4","SelectTokenContentProps","SelectTokenContent","tokenContentProps","SelectTokenContentComp","SelectTokenFromContent","SelectTokenToContent","onSelectImportToken","onSelect","token","selectableChains","networkSwitcherListClasses","_onSelect","_selectableChains","appChainId","selectedChainId","setSelectedChainId","enabledSrcChains","hasMultipleChains","length","isOverMd","showNetworksSidebar","effectiveInputValue","inputValue","handleInputValueChange","clearInputValue","token_0","fetchedOnChain","onConfirmAction","onSelectToken","t5","Symbol","for","chainId","t6","t7","selectedNetwork","networks","showCheckIcon","networkSwitcherProps","t8","undefined","t9","dropdownProps","align","disabled","t10","t11","input","t12","t13","t14","t15","tradeMode","isSwap","isLimit","isOTC","isTwap","acrossMode","modeSupportsCrosschain","includeNativeTokenInList","swapChainTo","limitChainTo","twapChainTo","initialChainId","fromChainId","mode","enabledDestChains","chainSwitchingDisabled","isChainSelectable","includes","chainToSet","shouldSetChainId","isCrossChain","chainId_0","t16","SelectTokenLayout","networkSwitcherListProps","children"],"sources":["../../../../../src/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.tsx"],"sourcesContent":["import type { SelectTokenDialogProps } from \"./types\";\nimport {\n RegularTokenList,\n type RegularTokenListProps,\n} from \"./TokenListBody/RegularTokenList\";\nimport { AcrossTokenLists } from \"./TokenListBody/AcrossTokenList\";\nimport { TokenSearch } from \"./TokenSearch\";\nimport { useDeferredInputState } from \"@/hooks/useDebouncedInputState\";\nimport { useEffect, useState, type PropsWithChildren } from \"react\";\nimport { useChainId } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n useLimitChainTo,\n useSwapChainTo,\n useTwapChainTo,\n} from \"@/core/state/chainToAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { TokenCloud } from \"./TokenListBody/TokenCloud\";\nimport { useTradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { UseImportTokenDrawerReturn } from \"../../ImportToken/types\";\nimport { assertProp, cn } from \"@/lib/utils\";\nimport { useEnabledSrcChains } from \"@/core/state/enabledChainsAtom\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport {\n GenericScreen,\n GenericScreenHeader,\n type GenericScreenHeaderProps,\n} from \"../../Screen/GenericScreen\";\nimport { useImportTokenDrawer } from \"../../ImportToken/useImportTokenDrawer\";\nimport { useBreakpoints } from \"@/hooks/useBreakpoints\";\nimport { NetworkSwitcherList } from \"../../NetworkSwitcher/NetworkSwitcherList\";\nimport type { Prettify } from \"ts-essentials\";\nimport type {\n ArbitraryNetworkSwitcherProps,\n NetworkSwitcherListProps,\n} from \"../../NetworkSwitcher/types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\nexport type SelectTokenScreenProps = Prettify<\n Pick<\n SelectTokenProps,\n \"onClose\" | \"onSelect\" | \"selectableChains\" | \"tokenType\"\n > & {\n drawerContainer?: HTMLElement | null;\n }\n>;\n\nconst headerClasses = {\n root: \"px-4 pt-5 pb-4\",\n title: \"text-[16px]\",\n} as const;\n\nexport const SelectTokenScreen = ({\n drawerContainer,\n ...props\n}: SelectTokenScreenProps) => {\n const { onOpenImportTokenDrawer, importTokenDrawer } = useImportTokenDrawer({\n drawerContainer,\n tokenType: props.tokenType,\n onImported: props.onClose,\n });\n\n const headerProps: GenericScreenHeaderProps = {\n title: \"Select Token\",\n showBackButton: true,\n onGoBack: props.onClose,\n classes: headerClasses,\n };\n\n return (\n <GenericScreen>\n <SelectTokenContent\n {...props}\n headerProps={headerProps}\n onSelectImportToken={onOpenImportTokenDrawer}\n />\n {importTokenDrawer}\n </GenericScreen>\n );\n};\n\ntype SelectTokenProps = SelectTokenDialogProps & SelectTokenContentProps;\n\nconst SelectTokenContent = ({\n tokenType,\n ...tokenContentProps\n}: SelectTokenProps) => {\n const SelectTokenContentComp =\n tokenType === \"from\" ? SelectTokenFromContent : SelectTokenToContent;\n\n return <SelectTokenContentComp {...tokenContentProps} />;\n};\n\ntype SelectTokenContentProps = {\n onSelectImportToken: UseImportTokenDrawerReturn[\"onOpenImportTokenDrawer\"];\n onClose?: () => void;\n onSelect?: (token: Token) => void;\n selectableChains?: SupportedChainId[];\n headerProps: GenericScreenHeaderProps;\n};\n\nconst networkSwitcherListClasses = {\n root: \"rounded-r-xxl\",\n} as const;\n\nconst SelectTokenFromContent = ({\n onClose,\n onSelect: _onSelect,\n onSelectImportToken,\n selectableChains: _selectableChains,\n headerProps,\n}: SelectTokenContentProps) => {\n const appChainId = useChainId();\n\n const [selectedChainId, setSelectedChainId] =\n useState<SupportedChainId>(appChainId);\n\n const enabledSrcChains = useEnabledSrcChains();\n const selectableChains = _selectableChains ?? enabledSrcChains;\n const hasMultipleChains = selectableChains.length > 1;\n\n const { isOverMd } = useBreakpoints();\n const showNetworksSidebar = isOverMd && hasMultipleChains;\n\n useEffect(() => {\n // keep selectedChainId in sync with appChainId\n setSelectedChainId(appChainId);\n }, [appChainId]);\n\n const {\n effectiveInputValue,\n inputValue,\n handleInputValueChange,\n clearInputValue,\n } = useDeferredInputState();\n\n const onSelect = (token: Token) => {\n onClose?.();\n _onSelect?.(token);\n };\n\n const onSelectToken: RegularTokenListProps[\"onSelectToken\"] = (token) => {\n if (token.fetchedOnChain) {\n assertProp(token, \"symbol\");\n\n onSelectImportToken({ token, onConfirmAction: \"set-token-from\" });\n } else {\n onSelect(token);\n }\n };\n\n const networkSwitcherProps: ArbitraryNetworkSwitcherProps = {\n onSelect: (chainId) => chainId !== \"all\" && setSelectedChainId(chainId),\n selectedNetwork: selectedChainId,\n networks: selectableChains,\n showCheckIcon: !showNetworksSidebar,\n };\n\n return (\n <SelectTokenLayout\n showNetworksSidebar={showNetworksSidebar}\n headerProps={headerProps}\n networkSwitcherListProps={\n showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n classes: networkSwitcherListClasses,\n }\n : undefined\n }\n >\n <TokenSearch\n value={inputValue}\n onChange={handleInputValueChange}\n clearSearch={clearInputValue}\n compactNetworkSwitcherProps={\n !showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n dropdownProps: { align: \"end\" },\n disabled: !hasMultipleChains,\n }\n : undefined\n }\n classes={{\n input: cn({\n \"pr-[42px] h-[40px] dark:bg-contrast-2\": showNetworksSidebar,\n }),\n }}\n />\n <TokenCloud\n onSelectToken={onSelect}\n forcedChainId={selectedChainId}\n showNetworkIcon\n />\n <RegularTokenList\n tokenFilter={effectiveInputValue}\n onSelectToken={onSelectToken}\n forcedChainId={selectedChainId}\n className=\"flex-1\"\n />\n </SelectTokenLayout>\n );\n};\n\nconst SelectTokenToContent = ({\n onClose,\n onSelect: _onSelect,\n onSelectImportToken,\n selectableChains: _selectableChains,\n headerProps,\n}: SelectTokenContentProps) => {\n const tradeMode = useTradeMode();\n const isSwap = tradeMode === \"swap\";\n const isLimit = tradeMode === \"limit\";\n const isOTC = tradeMode === \"otc\";\n const isTwap = tradeMode === \"twap\";\n\n // types also expect \"otc\" here,\n // but only \"swap\", \"limit\" and \"twap\" are actually possible for across mode\n let acrossMode: BridgeInfoMode;\n if (isLimit) {\n acrossMode = \"limit\";\n } else if (isTwap) {\n acrossMode = \"twap\";\n } else {\n acrossMode = \"swap\";\n }\n\n // @TODO reenable TWAP crosschain when ready on the API\n const modeSupportsCrosschain = isSwap || isLimit; /* || isTwap */\n\n // otc doesn't support destToken=ETH\n const includeNativeTokenInList = !isOTC;\n\n const appChainId = useChainId();\n const swapChainTo = useSwapChainTo();\n const limitChainTo = useLimitChainTo();\n const twapChainTo = useTwapChainTo();\n\n let initialChainId = appChainId;\n if (isSwap && swapChainTo) {\n initialChainId = swapChainTo;\n } else if (isLimit && limitChainTo) {\n initialChainId = limitChainTo;\n } else if (isTwap && twapChainTo) {\n initialChainId = twapChainTo;\n }\n const [selectedChainId, setSelectedChainId] =\n useState<SupportedChainId>(initialChainId);\n\n const enabledDestChains = useSelectableDestChains({\n fromChainId: appChainId,\n mode: acrossMode,\n }).selectableChains;\n const selectableChains = _selectableChains ?? enabledDestChains;\n const hasMultipleChains = selectableChains.length > 1;\n\n const { isOverMd } = useBreakpoints();\n\n const chainSwitchingDisabled = !modeSupportsCrosschain || !hasMultipleChains;\n const showNetworksSidebar = isOverMd && !chainSwitchingDisabled;\n\n const isChainSelectable = (chainId: SupportedChainId) =>\n selectableChains?.includes(chainId) ?? false;\n\n // keep track if selectedChainId is still selectable\n // - if yes, keep it and don't change\n // - if not, try to set to appChainId\n // - else set to first selectable chain\n const chainToSet = isChainSelectable(selectedChainId)\n ? selectedChainId\n : isChainSelectable(appChainId)\n ? appChainId\n : selectableChains[0];\n const shouldSetChainId = chainToSet !== selectedChainId;\n\n useEffect(() => {\n if (!shouldSetChainId) return;\n\n if (chainToSet) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSelectedChainId(chainToSet);\n } else {\n onClose?.();\n }\n }, [chainToSet, onClose, shouldSetChainId]);\n\n const {\n effectiveInputValue,\n inputValue,\n handleInputValueChange,\n clearInputValue,\n } = useDeferredInputState();\n\n const onSelect = (token: Token) => {\n onClose?.();\n _onSelect?.(token);\n };\n\n const isCrossChain = selectedChainId !== appChainId;\n\n const onSelectToken: RegularTokenListProps[\"onSelectToken\"] = (token) => {\n if (token.fetchedOnChain) {\n assertProp(token, \"symbol\");\n\n onSelectImportToken({ token, onConfirmAction: \"set-token-to\" });\n } else {\n onSelect(token);\n }\n };\n\n const networkSwitcherProps: ArbitraryNetworkSwitcherProps = {\n onSelect: (chainId) => chainId !== \"all\" && setSelectedChainId(chainId),\n selectedNetwork: selectedChainId,\n networks: selectableChains,\n showCheckIcon: !showNetworksSidebar,\n };\n\n return (\n <SelectTokenLayout\n showNetworksSidebar={showNetworksSidebar}\n headerProps={headerProps}\n networkSwitcherListProps={\n showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n classes: networkSwitcherListClasses,\n }\n : undefined\n }\n >\n <TokenSearch\n value={inputValue}\n onChange={handleInputValueChange}\n clearSearch={clearInputValue}\n compactNetworkSwitcherProps={\n !showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n disabled: chainSwitchingDisabled,\n dropdownProps: {\n align: \"end\",\n },\n }\n : undefined\n }\n classes={{\n input: cn({\n \"pr-[42px] h-[40px] dark:bg-contrast-2\": showNetworksSidebar,\n }),\n }}\n />\n {!isCrossChain ? (\n <>\n <TokenCloud\n onSelectToken={onSelect}\n forcedChainId={selectedChainId}\n showNetworkIcon\n withETH={includeNativeTokenInList}\n />\n <RegularTokenList\n tokenFilter={effectiveInputValue}\n onSelectToken={onSelectToken}\n forcedChainId={selectedChainId}\n className=\"flex-1\"\n withETH={includeNativeTokenInList}\n // when crosschain disallowed, don't search on other chains by tokenFilter\n singleChainTokensOnly={chainSwitchingDisabled}\n selectableChains={selectableChains}\n />\n </>\n ) : (\n <AcrossTokenLists\n tokenFilter={effectiveInputValue}\n onSelect={onSelect}\n fromChainId={appChainId}\n toChainId={selectedChainId}\n className=\"flex-1\"\n mode={acrossMode}\n />\n )}\n </SelectTokenLayout>\n );\n};\n\nconst SelectTokenLayout = ({\n showNetworksSidebar,\n networkSwitcherListProps,\n headerProps,\n children,\n}: PropsWithChildren<{\n showNetworksSidebar: boolean;\n networkSwitcherListProps?: NetworkSwitcherListProps;\n headerProps: GenericScreenHeaderProps;\n}>) => {\n return (\n <div\n className={cn({\n \"grid grid-cols-[auto_minmax(0,140px)] bg-contrast-9 dark:bg-contrast-2 rounded-xxl\":\n showNetworksSidebar,\n })}\n >\n <div\n className={cn({\n \"bg-contrast-8 dark:bg-contrast-1 rounded-xxl\": showNetworksSidebar,\n })}\n >\n <GenericScreenHeader {...headerProps} />\n {/* 448px height to fit search bar + two rows of token cloud + five token rows */}\n <div className=\"flex flex-col gap-y-3 h-[448px] pb-6\">{children}</div>\n </div>\n {showNetworksSidebar && networkSwitcherListProps && (\n <NetworkSwitcherList {...networkSwitcherListProps} />\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectTokenDialog.js","names":["SelectTokenDialogProps","RegularTokenList","RegularTokenListProps","AcrossTokenLists","TokenSearch","useDeferredInputState","useEffect","useState","PropsWithChildren","useChainId","SupportedChainId","useLimitChainTo","useSwapChainTo","useTwapChainTo","Token","TokenCloud","useTradeMode","UseImportTokenDrawerReturn","assertProp","cn","useEnabledSrcChains","useSelectableDestChains","GenericScreen","GenericScreenHeader","GenericScreenHeaderProps","useImportTokenDrawer","useBreakpoints","NetworkSwitcherList","Prettify","ArbitraryNetworkSwitcherProps","NetworkSwitcherListProps","BridgeInfoMode","SelectTokenScreenProps","Pick","SelectTokenProps","drawerContainer","HTMLElement","headerClasses","root","title","const","SelectTokenScreen","t0","$","_c","props","t1","onClose","tokenType","onImported","onOpenImportTokenDrawer","importTokenDrawer","t2","showBackButton","onGoBack","classes","headerProps","t3","t4","SelectTokenContentProps","SelectTokenContent","tokenContentProps","SelectTokenContentComp","SelectTokenFromContent","SelectTokenToContent","onSelectImportToken","onSelect","token","selectableChains","networkSwitcherListClasses","_onSelect","_selectableChains","appChainId","selectedChainId","setSelectedChainId","enabledSrcChains","hasMultipleChains","length","isOverMd","showNetworksSidebar","effectiveInputValue","inputValue","handleInputValueChange","clearInputValue","token_0","fetchedOnChain","onConfirmAction","onSelectToken","t5","Symbol","for","chainId","t6","t7","selectedNetwork","networks","showCheckIcon","networkSwitcherProps","t8","undefined","t9","dropdownProps","align","disabled","t10","t11","input","t12","t13","t14","t15","tradeMode","isSwap","isLimit","isOTC","isTwap","acrossMode","modeSupportsCrosschain","includeNativeTokenInList","swapChainTo","limitChainTo","twapChainTo","initialChainId","fromChainId","mode","enabledDestChains","chainSwitchingDisabled","isChainSelectable","includes","chainToSet","shouldSetChainId","isCrossChain","chainId_0","t16","SelectTokenLayout","networkSwitcherListProps","children"],"sources":["../../../../../src/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.tsx"],"sourcesContent":["import type { SelectTokenDialogProps } from \"./types\";\nimport {\n RegularTokenList,\n type RegularTokenListProps,\n} from \"./TokenListBody/RegularTokenList\";\nimport { AcrossTokenLists } from \"./TokenListBody/AcrossTokenList\";\nimport { TokenSearch } from \"./TokenSearch\";\nimport { useDeferredInputState } from \"@/hooks/useDebouncedInputState\";\nimport { useEffect, useState, type PropsWithChildren } from \"react\";\nimport { useChainId } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n useLimitChainTo,\n useSwapChainTo,\n useTwapChainTo,\n} from \"@/core/state/chainToAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { TokenCloud } from \"./TokenListBody/TokenCloud\";\nimport { useTradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { UseImportTokenDrawerReturn } from \"../../ImportToken/types\";\nimport { assertProp, cn } from \"@/lib/utils\";\nimport { useEnabledSrcChains } from \"@/core/state/enabledChainsAtom\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport {\n GenericScreen,\n GenericScreenHeader,\n type GenericScreenHeaderProps,\n} from \"../../Screen/GenericScreen\";\nimport { useImportTokenDrawer } from \"../../ImportToken/useImportTokenDrawer\";\nimport { useBreakpoints } from \"@/hooks/useBreakpoints\";\nimport { NetworkSwitcherList } from \"../../NetworkSwitcher/NetworkSwitcherList\";\nimport type { Prettify } from \"ts-essentials\";\nimport type {\n ArbitraryNetworkSwitcherProps,\n NetworkSwitcherListProps,\n} from \"../../NetworkSwitcher/types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\nexport type SelectTokenScreenProps = Prettify<\n Pick<\n SelectTokenProps,\n \"onClose\" | \"onSelect\" | \"selectableChains\" | \"tokenType\"\n > & {\n drawerContainer?: HTMLElement | null;\n }\n>;\n\nconst headerClasses = {\n root: \"px-4 pt-5 pb-4\",\n title: \"text-[16px]\",\n} as const;\n\nexport const SelectTokenScreen = ({\n drawerContainer,\n ...props\n}: SelectTokenScreenProps) => {\n const { onOpenImportTokenDrawer, importTokenDrawer } = useImportTokenDrawer({\n drawerContainer,\n tokenType: props.tokenType,\n onImported: props.onClose,\n });\n\n const headerProps: GenericScreenHeaderProps = {\n title: \"Select Token\",\n showBackButton: true,\n onGoBack: props.onClose,\n classes: headerClasses,\n };\n\n return (\n <GenericScreen>\n <SelectTokenContent\n {...props}\n headerProps={headerProps}\n onSelectImportToken={onOpenImportTokenDrawer}\n />\n {importTokenDrawer}\n </GenericScreen>\n );\n};\n\ntype SelectTokenProps = SelectTokenDialogProps & SelectTokenContentProps;\n\nconst SelectTokenContent = ({\n tokenType,\n ...tokenContentProps\n}: SelectTokenProps) => {\n const SelectTokenContentComp =\n tokenType === \"from\" ? SelectTokenFromContent : SelectTokenToContent;\n\n return <SelectTokenContentComp {...tokenContentProps} />;\n};\n\ntype SelectTokenContentProps = {\n onSelectImportToken: UseImportTokenDrawerReturn[\"onOpenImportTokenDrawer\"];\n onClose?: () => void;\n onSelect?: (token: Token) => void;\n selectableChains?: SupportedChainId[];\n headerProps: GenericScreenHeaderProps;\n};\n\nconst networkSwitcherListClasses = {\n root: \"rounded-r-xxl\",\n} as const;\n\nconst SelectTokenFromContent = ({\n onClose,\n onSelect: _onSelect,\n onSelectImportToken,\n selectableChains: _selectableChains,\n headerProps,\n}: SelectTokenContentProps) => {\n const appChainId = useChainId();\n\n const [selectedChainId, setSelectedChainId] =\n useState<SupportedChainId>(appChainId);\n\n const enabledSrcChains = useEnabledSrcChains();\n const selectableChains = _selectableChains ?? enabledSrcChains;\n const hasMultipleChains = selectableChains.length > 1;\n\n const { isOverMd } = useBreakpoints();\n const showNetworksSidebar = isOverMd && hasMultipleChains;\n\n useEffect(() => {\n // keep selectedChainId in sync with appChainId\n setSelectedChainId(appChainId);\n }, [appChainId]);\n\n const {\n effectiveInputValue,\n inputValue,\n handleInputValueChange,\n clearInputValue,\n } = useDeferredInputState();\n\n const onSelect = (token: Token) => {\n onClose?.();\n _onSelect?.(token);\n };\n\n const onSelectToken: RegularTokenListProps[\"onSelectToken\"] = (token) => {\n if (token.fetchedOnChain) {\n assertProp(token, \"symbol\");\n\n onSelectImportToken({ token, onConfirmAction: \"set-token-from\" });\n } else {\n onSelect(token);\n }\n };\n\n const networkSwitcherProps: ArbitraryNetworkSwitcherProps = {\n onSelect: (chainId) => chainId !== \"all\" && setSelectedChainId(chainId),\n selectedNetwork: selectedChainId,\n networks: selectableChains,\n showCheckIcon: !showNetworksSidebar,\n };\n\n return (\n <SelectTokenLayout\n showNetworksSidebar={showNetworksSidebar}\n headerProps={headerProps}\n networkSwitcherListProps={\n showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n classes: networkSwitcherListClasses,\n }\n : undefined\n }\n >\n <TokenSearch\n value={inputValue}\n onChange={handleInputValueChange}\n clearSearch={clearInputValue}\n compactNetworkSwitcherProps={\n !showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n dropdownProps: { align: \"end\" },\n disabled: !hasMultipleChains,\n }\n : undefined\n }\n classes={{\n input: cn({\n \"pr-[42px] h-[40px] dark:bg-contrast-2\": showNetworksSidebar,\n }),\n }}\n />\n <TokenCloud\n onSelectToken={onSelect}\n forcedChainId={selectedChainId}\n showNetworkIcon\n />\n <RegularTokenList\n tokenFilter={effectiveInputValue}\n onSelectToken={onSelectToken}\n forcedChainId={selectedChainId}\n className=\"flex-1\"\n />\n </SelectTokenLayout>\n );\n};\n\nconst SelectTokenToContent = ({\n onClose,\n onSelect: _onSelect,\n onSelectImportToken,\n selectableChains: _selectableChains,\n headerProps,\n}: SelectTokenContentProps) => {\n const tradeMode = useTradeMode();\n const isSwap = tradeMode === \"swap\";\n const isLimit = tradeMode === \"limit\";\n const isOTC = tradeMode === \"otc\";\n const isTwap = tradeMode === \"twap\";\n\n // types also expect \"otc\" here,\n // but only \"swap\", \"limit\" and \"twap\" are actually possible for across mode\n let acrossMode: BridgeInfoMode;\n if (isLimit) {\n acrossMode = \"limit\";\n } else if (isTwap) {\n acrossMode = \"twap\";\n } else {\n acrossMode = \"swap\";\n }\n\n // @TODO reenable TWAP crosschain when ready on the API\n const modeSupportsCrosschain = isSwap || isLimit; /* || isTwap */\n\n // otc doesn't support destToken=ETH\n const includeNativeTokenInList = !isOTC;\n\n const appChainId = useChainId();\n const swapChainTo = useSwapChainTo();\n const limitChainTo = useLimitChainTo();\n const twapChainTo = useTwapChainTo();\n\n let initialChainId = appChainId;\n if (isSwap && swapChainTo) {\n initialChainId = swapChainTo;\n } else if (isLimit && limitChainTo) {\n initialChainId = limitChainTo;\n } else if (isTwap && twapChainTo) {\n initialChainId = twapChainTo;\n }\n const [selectedChainId, setSelectedChainId] =\n useState<SupportedChainId>(initialChainId);\n\n const enabledDestChains = useSelectableDestChains({\n fromChainId: appChainId,\n mode: acrossMode,\n }).selectableChains;\n const selectableChains = _selectableChains ?? enabledDestChains;\n const hasMultipleChains = selectableChains.length > 1;\n\n const { isOverMd } = useBreakpoints();\n\n const chainSwitchingDisabled = !modeSupportsCrosschain || !hasMultipleChains;\n const showNetworksSidebar = isOverMd && !chainSwitchingDisabled;\n\n const isChainSelectable = (chainId: SupportedChainId) =>\n selectableChains?.includes(chainId) ?? false;\n\n // keep track if selectedChainId is still selectable\n // - if yes, keep it and don't change\n // - if not, try to set to appChainId\n // - else set to first selectable chain\n const chainToSet = isChainSelectable(selectedChainId)\n ? selectedChainId\n : isChainSelectable(appChainId)\n ? appChainId\n : selectableChains[0];\n const shouldSetChainId = chainToSet !== selectedChainId;\n\n useEffect(() => {\n if (!shouldSetChainId) return;\n\n if (chainToSet) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSelectedChainId(chainToSet);\n } else {\n onClose?.();\n }\n }, [chainToSet, onClose, shouldSetChainId]);\n\n const {\n effectiveInputValue,\n inputValue,\n handleInputValueChange,\n clearInputValue,\n } = useDeferredInputState();\n\n const onSelect = (token: Token) => {\n onClose?.();\n _onSelect?.(token);\n };\n\n const isCrossChain = selectedChainId !== appChainId;\n\n const onSelectToken: RegularTokenListProps[\"onSelectToken\"] = (token) => {\n if (token.fetchedOnChain) {\n assertProp(token, \"symbol\");\n\n onSelectImportToken({ token, onConfirmAction: \"set-token-to\" });\n } else {\n onSelect(token);\n }\n };\n\n const networkSwitcherProps: ArbitraryNetworkSwitcherProps = {\n onSelect: (chainId) => chainId !== \"all\" && setSelectedChainId(chainId),\n selectedNetwork: selectedChainId,\n networks: selectableChains,\n showCheckIcon: !showNetworksSidebar,\n };\n\n return (\n <SelectTokenLayout\n showNetworksSidebar={showNetworksSidebar}\n headerProps={headerProps}\n networkSwitcherListProps={\n showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n classes: networkSwitcherListClasses,\n }\n : undefined\n }\n >\n <TokenSearch\n value={inputValue}\n onChange={handleInputValueChange}\n clearSearch={clearInputValue}\n compactNetworkSwitcherProps={\n !showNetworksSidebar\n ? {\n ...networkSwitcherProps,\n disabled: chainSwitchingDisabled,\n dropdownProps: {\n align: \"end\",\n },\n }\n : undefined\n }\n classes={{\n input: cn({\n \"pr-[42px] h-[40px] dark:bg-contrast-2\": showNetworksSidebar,\n }),\n }}\n />\n {!isCrossChain ? (\n <>\n <TokenCloud\n onSelectToken={onSelect}\n forcedChainId={selectedChainId}\n showNetworkIcon\n withETH={includeNativeTokenInList}\n />\n <RegularTokenList\n tokenFilter={effectiveInputValue}\n onSelectToken={onSelectToken}\n forcedChainId={selectedChainId}\n className=\"flex-1\"\n withETH={includeNativeTokenInList}\n // when crosschain disallowed, don't search on other chains by tokenFilter\n singleChainTokensOnly={chainSwitchingDisabled}\n selectableChains={selectableChains}\n />\n </>\n ) : (\n <AcrossTokenLists\n tokenFilter={effectiveInputValue}\n onSelect={onSelect}\n fromChainId={appChainId}\n toChainId={selectedChainId}\n className=\"flex-1\"\n mode={acrossMode}\n />\n )}\n </SelectTokenLayout>\n );\n};\n\nconst SelectTokenLayout = ({\n showNetworksSidebar,\n networkSwitcherListProps,\n headerProps,\n children,\n}: PropsWithChildren<{\n showNetworksSidebar: boolean;\n networkSwitcherListProps?: NetworkSwitcherListProps;\n headerProps: GenericScreenHeaderProps;\n}>) => {\n return (\n <div\n className={cn({\n \"grid grid-cols-[auto_minmax(0,140px)] bg-contrast-9 dark:bg-contrast-2 rounded-xxl\":\n showNetworksSidebar,\n })}\n >\n <div\n className={cn({\n \"bg-contrast-8 dark:bg-contrast-1 rounded-xxl\": showNetworksSidebar,\n })}\n >\n <GenericScreenHeader {...headerProps} />\n {/* 448px height to fit search bar + two rows of token cloud + five token rows */}\n <div className=\"flex flex-col gap-y-3 h-[448px] pb-6\">{children}</div>\n </div>\n {showNetworksSidebar && networkSwitcherListProps && (\n <NetworkSwitcherList {...networkSwitcherListProps} />\n )}\n </div>\n );\n};\n"],"mappings":"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"}
|
package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcrossTokenList.js","names":["useAcrossTokenLists","SupportedChainId","TokenListBody","TokenListBodyProps","BridgeInfoMode","AcrossTokenListsProps","Pick","tokenFilter","fromChainId","toChainId","className","mode","AcrossTokenLists","t0","$","_c","onSelect","t1","tokenRows","t2"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.tsx"],"sourcesContent":["import { useAcrossTokenLists } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nimport { TokenListBody } from \"./TokenListBody\";\nimport type { TokenListBodyProps } from \"./types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\ntype AcrossTokenListsProps = Pick<TokenListBodyProps, \"onSelect\"> & {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n className?: string;\n mode: BridgeInfoMode;\n};\n\nexport const AcrossTokenLists = ({\n tokenFilter,\n onSelect,\n fromChainId,\n toChainId,\n className,\n mode,\n}: AcrossTokenListsProps) => {\n const tokenRows = useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n });\n\n return (\n <TokenListBody\n onSelect={onSelect}\n tokenRows={tokenRows}\n visibleRows={8}\n className={className}\n />\n );\n};\n"],"mappings":";;;;;AAeA,IAAaY,KAAmBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAR,gBAAAS,aAAAR,gBAAAC,cAAAC,cAAAC,YAAAE,GAOTI;
|
|
1
|
+
{"version":3,"file":"AcrossTokenList.js","names":["useAcrossTokenLists","SupportedChainId","TokenListBody","TokenListBodyProps","BridgeInfoMode","AcrossTokenListsProps","Pick","tokenFilter","fromChainId","toChainId","className","mode","AcrossTokenLists","t0","$","_c","onSelect","t1","tokenRows","t2"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.tsx"],"sourcesContent":["import { useAcrossTokenLists } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nimport { TokenListBody } from \"./TokenListBody\";\nimport type { TokenListBodyProps } from \"./types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/types\";\n\ntype AcrossTokenListsProps = Pick<TokenListBodyProps, \"onSelect\"> & {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n className?: string;\n mode: BridgeInfoMode;\n};\n\nexport const AcrossTokenLists = ({\n tokenFilter,\n onSelect,\n fromChainId,\n toChainId,\n className,\n mode,\n}: AcrossTokenListsProps) => {\n const tokenRows = useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n });\n\n return (\n <TokenListBody\n onSelect={onSelect}\n tokenRows={tokenRows}\n visibleRows={8}\n className={className}\n />\n );\n};\n"],"mappings":";;;;;AAeA,IAAaY,KAAmBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAR,gBAAAS,aAAAR,gBAAAC,cAAAC,cAAAC,YAAAE,GAOTI;CAAA,AAAAH,EAAA,OAAAN,KAAAM,EAAA,OAAAH,KAAAG,EAAA,OAAAL,KAAAK,EAAA,OAAAP,KACgBU,IAAA;EAAAV;EAAAC;EAAAC;EAAAE;EAKrC,EAAAG,EAAA,KAAAN,GAAAM,EAAA,KAAAH,GAAAG,EAAA,KAAAL,GAAAK,EAAA,KAAAP,GAAAO,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CALD,IAAAI,IAAkBlB,EAAoBiB,EAKpC,EAACE;CAQC,OARDL,EAAA,OAAAJ,KAAAI,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAGDC,IAAA,kBAAC,GAAD;EACYH;EACCE;EACE,aAAA;EACFR;EACX,CAAA,EAAAI,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IALFK"}
|
package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegularTokenList.js","names":["useAllTokensWithFilter","SupportedChainId","TokenListBody","useCombineTokensWithFetched","TokenRowForFetchedToken","RegularTokenListProps","onSelectToken","token","tokenFilter","forcedChainId","selectableChains","className","withETH","singleChainTokensOnly","RegularTokenList","t0","$","_c","t1","t2","searchOnOtherChainsIfNothingFound","allTokenRows","t3","tokenRowsCombined","t4"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.tsx"],"sourcesContent":["import { useAllTokensWithFilter } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { TokenListBody } from \"./TokenListBody\";\nimport { useCombineTokensWithFetched } from \"@/hooks/tokens/data/useCombineTokensWithFetched\";\nimport type { TokenRowForFetchedToken } from \"./TokenListRow\";\n\nexport type RegularTokenListProps = {\n onSelectToken: (token: TokenRowForFetchedToken) => void;\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n selectableChains?: SupportedChainId[];\n className?: string;\n withETH?: boolean;\n singleChainTokensOnly?: boolean; // don't search on other chains if nothing found\n};\n\nexport const RegularTokenList = ({\n tokenFilter,\n onSelectToken,\n forcedChainId,\n selectableChains,\n className,\n withETH,\n singleChainTokensOnly,\n}: RegularTokenListProps) => {\n const allTokenRows = useAllTokensWithFilter({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound: !singleChainTokensOnly,\n withETH,\n });\n\n const { tokenRowsCombined } = useCombineTokensWithFetched({\n allTokenRows,\n tokenFilter,\n // disallow fetching on other chains if singleChainTokensOnly is true\n selectableChains,\n });\n\n return (\n <TokenListBody\n onSelect={onSelectToken}\n tokenRows={tokenRowsCombined}\n className={className}\n />\n );\n};\n"],"mappings":";;;;;;AAgBA,IAAac,KAAmBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAT,gBAAAF,kBAAAG,kBAAAC,qBAAAC,cAAAC,YAAAC,6BAAAE,GAYMG,IAAA,CAACL,GAAqBM;
|
|
1
|
+
{"version":3,"file":"RegularTokenList.js","names":["useAllTokensWithFilter","SupportedChainId","TokenListBody","useCombineTokensWithFetched","TokenRowForFetchedToken","RegularTokenListProps","onSelectToken","token","tokenFilter","forcedChainId","selectableChains","className","withETH","singleChainTokensOnly","RegularTokenList","t0","$","_c","t1","t2","searchOnOtherChainsIfNothingFound","allTokenRows","t3","tokenRowsCombined","t4"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.tsx"],"sourcesContent":["import { useAllTokensWithFilter } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { TokenListBody } from \"./TokenListBody\";\nimport { useCombineTokensWithFetched } from \"@/hooks/tokens/data/useCombineTokensWithFetched\";\nimport type { TokenRowForFetchedToken } from \"./TokenListRow\";\n\nexport type RegularTokenListProps = {\n onSelectToken: (token: TokenRowForFetchedToken) => void;\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n selectableChains?: SupportedChainId[];\n className?: string;\n withETH?: boolean;\n singleChainTokensOnly?: boolean; // don't search on other chains if nothing found\n};\n\nexport const RegularTokenList = ({\n tokenFilter,\n onSelectToken,\n forcedChainId,\n selectableChains,\n className,\n withETH,\n singleChainTokensOnly,\n}: RegularTokenListProps) => {\n const allTokenRows = useAllTokensWithFilter({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound: !singleChainTokensOnly,\n withETH,\n });\n\n const { tokenRowsCombined } = useCombineTokensWithFetched({\n allTokenRows,\n tokenFilter,\n // disallow fetching on other chains if singleChainTokensOnly is true\n selectableChains,\n });\n\n return (\n <TokenListBody\n onSelect={onSelectToken}\n tokenRows={tokenRowsCombined}\n className={className}\n />\n );\n};\n"],"mappings":";;;;;;AAgBA,IAAac,KAAmBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAT,gBAAAF,kBAAAG,kBAAAC,qBAAAC,cAAAC,YAAAC,6BAAAE,GAYMG,IAAA,CAACL,GAAqBM;CAAA,AAAAH,EAAA,OAAAP,KAAAO,EAAA,OAAAE,KAAAF,EAAA,OAAAR,KAAAQ,EAAA,OAAAJ,KAHfO,IAAA;EAAAX;EAAAC;EAAAW,mCAGPF;EAAsBN;EAE1D,EAAAI,EAAA,KAAAP,GAAAO,EAAA,KAAAE,GAAAF,EAAA,KAAAR,GAAAQ,EAAA,KAAAJ,GAAAI,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CALD,IAAAK,IAAqBrB,EAAuBmB,EAK1C,EAACG;CAAA,AAAAN,EAAA,OAAAK,KAAAL,EAAA,OAAAN,KAAAM,EAAA,OAAAR,KAEuDc,IAAA;EAAAD;EAAAb;EAAAE;EAKzD,EAAAM,EAAA,KAAAK,GAAAL,EAAA,KAAAN,GAAAM,EAAA,KAAAR,GAAAQ,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CALD,IAAA,EAAAO,yBAA8BpB,EAA4BmB,EAKxD,EAACE;CAOC,OAPDR,EAAA,OAAAL,KAAAK,EAAA,QAAAV,KAAAU,EAAA,QAAAO,KAGDC,IAAA,kBAAC,GAAD;EACYlB,UAAAA;EACCiB,WAAAA;EACAZ;EACX,CAAA,EAAAK,EAAA,KAAAL,GAAAK,EAAA,MAAAV,GAAAU,EAAA,MAAAO,GAAAP,EAAA,MAAAQ,KAAAA,IAAAR,EAAA,KAJFQ"}
|
package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["chain2Tokens","TokenBadge","TokenBadgeProps","useChainId","useTokensByAddress","SupportedChainId","Token","isETH","TokenCloudElementProps","address","symbol","chainId","img","onClick","showNetworkIcon","badgeClasses","root","TokenCloudElement","t0","$","_c","t1","t2","TokenCloudProps","onSelectToken","token","excludedTokens","Pick","forcedChainId","withETH","TokenCloud","undefined","stateChainId","tokensByAddress","tokens","Set","map","_temp","excluded","t3","token_0","tokenLowercase","toLowerCase","tokenFromLists","has","t4"],"sources":["../../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.tsx"],"sourcesContent":["import { chain2Tokens } from \"./tokens\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport type { TokenBadgeProps } from \"@/components/widget/TokenBadge/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\n\ntype TokenCloudElementProps = {\n address: string;\n symbol: string;\n chainId: SupportedChainId;\n img?: string;\n onClick: () => void;\n showNetworkIcon?: boolean;\n};\n\nconst badgeClasses: TokenBadgeProps[\"classes\"] = {\n symbol: \"text-sm\",\n root: \"font-inter font-medium\",\n};\n\nconst TokenCloudElement = ({\n address,\n symbol,\n chainId,\n img,\n onClick,\n showNetworkIcon,\n}: TokenCloudElementProps) => {\n return (\n <div\n onClick={onClick}\n className=\"h-[35px] cursor-pointer flex items-center px-2 rounded-xxl dark:text-contrast-6 bg-contrast-9 dark:bg-contrast-3 hover:bg-contrast-9 dark:hover:bg-contrast-4 outline-none dark:hover:outline-1 dark:hover:outline-black transition-colors hover:shadow-[0_1px_6px_0_rgba(0,0,0,0.15)]\"\n >\n <TokenBadge\n address={address}\n symbol={symbol}\n chainId={chainId}\n img={img}\n classes={badgeClasses}\n showNetworkIcon={showNetworkIcon}\n />\n </div>\n );\n};\n\ntype TokenCloudProps = {\n onSelectToken: (token: Token) => void;\n excludedTokens?: Pick<Token, \"address\">[];\n forcedChainId?: SupportedChainId;\n showNetworkIcon?: boolean;\n withETH?: boolean;\n};\nexport const TokenCloud = ({\n onSelectToken,\n excludedTokens,\n forcedChainId,\n showNetworkIcon,\n withETH = true,\n}: TokenCloudProps) => {\n const stateChainId = useChainId();\n const chainId = forcedChainId || stateChainId;\n const tokensByAddress = useTokensByAddress(chainId);\n\n const tokens = chain2Tokens[chainId];\n const excluded = new Set(\n excludedTokens?.map((token) => token.address.toLowerCase())\n );\n\n return (\n <div className=\"flex flex-wrap gap-x-2 gap-y-3 px-4\">\n {tokens?.map((token) => {\n const tokenLowercase = token.address.toLowerCase();\n const tokenFromLists = tokensByAddress[tokenLowercase];\n\n if (!tokenFromLists || excluded.has(tokenLowercase)) return null; // this won't happen\n\n if (!withETH && isETH(tokenFromLists)) return null;\n\n const onClick = () => onSelectToken(tokenFromLists);\n\n return (\n <TokenCloudElement\n key={token.address}\n address={token.address}\n symbol={tokenFromLists.symbol || token.symbol}\n img={tokenFromLists.img}\n chainId={chainId}\n onClick={onClick}\n showNetworkIcon={showNetworkIcon}\n />\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAkBA,IAAMe,IAA2C;CAC/CL,QAAQ;CACRM,MAAM;CACP,EAEKC,KAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAX,YAAAC,WAAAC,YAAAC,QAAAC,YAAAC,uBAAAI,GAOFG;
|
|
1
|
+
{"version":3,"file":"index.js","names":["chain2Tokens","TokenBadge","TokenBadgeProps","useChainId","useTokensByAddress","SupportedChainId","Token","isETH","TokenCloudElementProps","address","symbol","chainId","img","onClick","showNetworkIcon","badgeClasses","root","TokenCloudElement","t0","$","_c","t1","t2","TokenCloudProps","onSelectToken","token","excludedTokens","Pick","forcedChainId","withETH","TokenCloud","undefined","stateChainId","tokensByAddress","tokens","Set","map","_temp","excluded","t3","token_0","tokenLowercase","toLowerCase","tokenFromLists","has","t4"],"sources":["../../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.tsx"],"sourcesContent":["import { chain2Tokens } from \"./tokens\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport type { TokenBadgeProps } from \"@/components/widget/TokenBadge/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\n\ntype TokenCloudElementProps = {\n address: string;\n symbol: string;\n chainId: SupportedChainId;\n img?: string;\n onClick: () => void;\n showNetworkIcon?: boolean;\n};\n\nconst badgeClasses: TokenBadgeProps[\"classes\"] = {\n symbol: \"text-sm\",\n root: \"font-inter font-medium\",\n};\n\nconst TokenCloudElement = ({\n address,\n symbol,\n chainId,\n img,\n onClick,\n showNetworkIcon,\n}: TokenCloudElementProps) => {\n return (\n <div\n onClick={onClick}\n className=\"h-[35px] cursor-pointer flex items-center px-2 rounded-xxl dark:text-contrast-6 bg-contrast-9 dark:bg-contrast-3 hover:bg-contrast-9 dark:hover:bg-contrast-4 outline-none dark:hover:outline-1 dark:hover:outline-black transition-colors hover:shadow-[0_1px_6px_0_rgba(0,0,0,0.15)]\"\n >\n <TokenBadge\n address={address}\n symbol={symbol}\n chainId={chainId}\n img={img}\n classes={badgeClasses}\n showNetworkIcon={showNetworkIcon}\n />\n </div>\n );\n};\n\ntype TokenCloudProps = {\n onSelectToken: (token: Token) => void;\n excludedTokens?: Pick<Token, \"address\">[];\n forcedChainId?: SupportedChainId;\n showNetworkIcon?: boolean;\n withETH?: boolean;\n};\nexport const TokenCloud = ({\n onSelectToken,\n excludedTokens,\n forcedChainId,\n showNetworkIcon,\n withETH = true,\n}: TokenCloudProps) => {\n const stateChainId = useChainId();\n const chainId = forcedChainId || stateChainId;\n const tokensByAddress = useTokensByAddress(chainId);\n\n const tokens = chain2Tokens[chainId];\n const excluded = new Set(\n excludedTokens?.map((token) => token.address.toLowerCase())\n );\n\n return (\n <div className=\"flex flex-wrap gap-x-2 gap-y-3 px-4\">\n {tokens?.map((token) => {\n const tokenLowercase = token.address.toLowerCase();\n const tokenFromLists = tokensByAddress[tokenLowercase];\n\n if (!tokenFromLists || excluded.has(tokenLowercase)) return null; // this won't happen\n\n if (!withETH && isETH(tokenFromLists)) return null;\n\n const onClick = () => onSelectToken(tokenFromLists);\n\n return (\n <TokenCloudElement\n key={token.address}\n address={token.address}\n symbol={tokenFromLists.symbol || token.symbol}\n img={tokenFromLists.img}\n chainId={chainId}\n onClick={onClick}\n showNetworkIcon={showNetworkIcon}\n />\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAkBA,IAAMe,IAA2C;CAC/CL,QAAQ;CACRM,MAAM;CACP,EAEKC,KAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAX,YAAAC,WAAAC,YAAAC,QAAAC,YAAAC,uBAAAI,GAOFG;CAAA,AAAAF,EAAA,OAAAV,KAAAU,EAAA,OAAAR,KAAAQ,EAAA,OAAAP,KAAAO,EAAA,OAAAL,KAAAK,EAAA,OAAAT,KAMnBW,IAAA,kBAAC,GAAD;EACWZ;EACDC;EACCC;EACJC;EACIG,SAAAA;EACQD;EACjB,CAAA,EAAAK,EAAA,KAAAV,GAAAU,EAAA,KAAAR,GAAAQ,EAAA,KAAAP,GAAAO,EAAA,KAAAL,GAAAK,EAAA,KAAAT,GAAAS,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAG;CACE,OADFH,EAAA,OAAAN,KAAAM,EAAA,OAAAE,KAXJC,IAAA,kBAAA,OAAA;EACWT;EACC,WAAA;YAEVQ;EAQI,CAAA,EAAAF,EAAA,KAAAN,GAAAM,EAAA,KAAAE,GAAAF,EAAA,KAAAG,KAAAA,IAAAH,EAAA,IAZNG;GAuBSQ,KAAaZ,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAI,kBAAAE,mBAAAE,kBAAAd,oBAAAe,SAAAR,MAAAH,GAKzBW,IAAAR,MAAAU,KAAAA,IAAA,KAAAV,GAEAW,IAAqB7B,GAAY,EACjCQ,IAAgBiB,KAAAI,GAChBC,IAAwB7B,EAAmBO,EAAQ,EAEnDuB,IAAelC,EAAaW,IAASW;CAAA,AAAAH,EAAA,OAAAO,IAGpCJ,IAAAH,EAAA,MAFgBG,IAAA,IAAIa,IACnBT,GAAcU,IAAMC,EACtB,CAAC,EAAAlB,EAAA,KAAAO,GAAAP,EAAA,KAAAG;CAFD,IAAAgB,IAAiBhB,GAEfiB;CAAA,AAAApB,EAAA,OAAAR,KAAAQ,EAAA,OAAAmB,KAAAnB,EAAA,OAAAK,KAAAL,EAAA,OAAAL,KAAAK,EAAA,OAAAe,KAAAf,EAAA,OAAAc,KAAAd,EAAA,OAAAU,KAIGU,IAAAL,GAAME,KAAMI,MAAA;EACX,IAAAC,IAAuBhB,EAAKhB,QAAQiC,aAAc,EAClDC,IAAuBV,EAAgBQ;EAMa,OAJhD,CAACE,KAAkBL,EAAQM,IAAKH,EAAe,IAE/C,CAACZ,KAAWtB,EAAMoC,EAAe,GAAS,OAK5C,kBAAC,GAAD;GAEW,SAAAlB,EAAKhB;GACN,QAAAkC,EAAcjC,UAAWe,EAAKf;GACjC,KAAAiC,EAAc/B;GACVD;GACAE,eATSW,EAAcmB,EAAe;GAU9B7B;GACjB,EAPKW,EAAKhB,QAOV;GAEJ,EAAAU,EAAA,KAAAR,GAAAQ,EAAA,KAAAmB,GAAAnB,EAAA,KAAAK,GAAAL,EAAA,KAAAL,GAAAK,EAAA,KAAAe,GAAAf,EAAA,KAAAc,GAAAd,EAAA,KAAAU,GAAAV,EAAA,KAAAoB,KAAAA,IAAApB,EAAA;CAAA,IAAA0B;CACE,OADF1B,EAAA,QAAAoB,IACEM,IAAA1B,EAAA,OAvBN0B,IAAA,kBAAA,OAAA;EAAe,WAAA;YACZN;EAsBG,CAAA,EAAApB,EAAA,MAAAoB,GAAApB,EAAA,MAAA0B,IAvBNA;;AAjBsB,SAAAR,EAAAZ,GAAA;CAAA,OAaSA,EAAKhB,QAAQiC,aAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListBody.js","names":["RowVirtualizerFixed","cn","RendererByType","RowRendererProps","TokenRowForFetchedToken","TokenListBodyProps","tokenRows","onSelect","visibleRows","className","TokenListBody","t0","$","_c","t1","t2","t3","row","address","network"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"sourcesContent":["import { RowVirtualizerFixed } from \"@/components/widget/RowVirtualizer/RowVirtualizerFixed\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport {\n RendererByType,\n type RowRendererProps,\n type TokenRowForFetchedToken,\n} from \"./TokenListRow\";\n\ntype TokenListBodyProps = {\n tokenRows: TokenRowForFetchedToken[];\n onSelect: RowRendererProps[\"onSelect\"];\n visibleRows?: number;\n className?: string;\n};\n\nexport const TokenListBody = ({\n tokenRows,\n onSelect,\n visibleRows,\n className,\n}: TokenListBodyProps) => {\n return (\n <RowVirtualizerFixed<TokenRowForFetchedToken>\n rowHeight={56}\n visibleRows={visibleRows} // 56*6 = 336px, to fit into fullCover drawer (when container has padding, + search field + TokenCloud)\n containerClassName={cn(\n \"w-full [scrollbar-gutter:stable_both-edges]\",\n className\n )}\n rows={tokenRows}\n rowRenderer={({ row }) => (\n <RendererByType\n row={row}\n onSelect={onSelect}\n key={`${row.address}-${row.network}`}\n />\n )}\n />\n );\n};\n"],"mappings":";;;;;;AAiBA,IAAaU,KAAgBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAP,cAAAC,aAAAC,gBAAAC,iBAAAE,GAKTG;
|
|
1
|
+
{"version":3,"file":"TokenListBody.js","names":["RowVirtualizerFixed","cn","RendererByType","RowRendererProps","TokenRowForFetchedToken","TokenListBodyProps","tokenRows","onSelect","visibleRows","className","TokenListBody","t0","$","_c","t1","t2","t3","row","address","network"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.tsx"],"sourcesContent":["import { RowVirtualizerFixed } from \"@/components/widget/RowVirtualizer/RowVirtualizerFixed\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport {\n RendererByType,\n type RowRendererProps,\n type TokenRowForFetchedToken,\n} from \"./TokenListRow\";\n\ntype TokenListBodyProps = {\n tokenRows: TokenRowForFetchedToken[];\n onSelect: RowRendererProps[\"onSelect\"];\n visibleRows?: number;\n className?: string;\n};\n\nexport const TokenListBody = ({\n tokenRows,\n onSelect,\n visibleRows,\n className,\n}: TokenListBodyProps) => {\n return (\n <RowVirtualizerFixed<TokenRowForFetchedToken>\n rowHeight={56}\n visibleRows={visibleRows} // 56*6 = 336px, to fit into fullCover drawer (when container has padding, + search field + TokenCloud)\n containerClassName={cn(\n \"w-full [scrollbar-gutter:stable_both-edges]\",\n className\n )}\n rows={tokenRows}\n rowRenderer={({ row }) => (\n <RendererByType\n row={row}\n onSelect={onSelect}\n key={`${row.address}-${row.network}`}\n />\n )}\n />\n );\n};\n"],"mappings":";;;;;;AAiBA,IAAaU,KAAgBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAP,cAAAC,aAAAC,gBAAAC,iBAAAE,GAKTG;CAAA,AAAAF,EAAA,OAAAH,IAQdK,IAAAF,EAAA,MAHmBE,IAAAb,EAClB,+CACAQ,EACD,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAE;CAAA,IAAAC;CAAA,AAAAH,EAAA,OAAAL,IAQAQ,IAAAH,EAAA,MANYG,KAAAC,MAAA;EAAC,IAAA,EAAAC,WAAAD;EAAO,OACnB,kBAAC,GAAD;GACOC;GACKV;GAEV,EADK,GAAGU,EAAGC,QAAQ,GAAID,EAAGE,UAC1B;IACHP,EAAA,KAAAL,GAAAK,EAAA,KAAAG;CAAA,IAAAC;CACD,OADCJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAAAH,EAAA,OAAAN,KAAAM,EAAA,OAAAJ,KAdHQ,IAAA,kBAAC,GAAD;EACa,WAAA;EACER;EACO,oBAAAM;EAIdR,MAAAA;EACO,aAAAS;EAOb,CAAA,EAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAN,GAAAM,EAAA,KAAAJ,GAAAI,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IAfFI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListRow.js","names":["Token","TokenMaybeWithUsdBalance","TokenBadge","formatUnits","toDecimalTrimmed","formatFiatPrice","Button","JSX","Prettify","TokenRowForFetchedToken","fetchedOnChain","RowRendererProps","row","onSelect","token","RowRenderer","props","Element","BaseRowRenderer","afterBadge","React","ReactNode","BaseRenderer","t0","$","_c","t1","undefined","t2","Symbol","for","logo","t3","address","img","network","t4","t5","DefaultRenderer","afterBalance","DefaultRowRenderer","balance","decimals","formattedBalance","BigInt","balanceToDisplay","usdBalance","formattedUsdBalance","usdBalanceToDisplay","symbol","t6","name","t7","t8","t9","t10","t11","FetchedTokenRenderer","RendererByType","Renderer"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.tsx"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { Button } from \"@/components/ui/button\";\nimport type { JSX } from \"react\";\nimport type { Prettify } from \"ts-essentials\";\n\nexport type TokenRowForFetchedToken = Prettify<\n TokenMaybeWithUsdBalance & {\n fetchedOnChain?: true;\n }\n>;\n\nexport type RowRendererProps = {\n row: TokenRowForFetchedToken;\n onSelect?: (token: Token) => void;\n};\n\nexport type RowRenderer = (props: RowRendererProps) => JSX.Element;\n\ntype BaseRowRenderer = (\n props: RowRendererProps & {\n afterBadge?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst BaseRenderer: BaseRowRenderer = ({ row, onSelect, afterBadge }) => {\n return (\n <div className=\"h-full px-1\">\n <div\n className=\"px-2 rounded-sm hover:bg-contrast-9 dark:hover:bg-contrast-3 h-full hover:cursor-pointer transition-colors\"\n onClick={\n onSelect\n ? () => {\n onSelect(row);\n }\n : undefined\n }\n >\n <div className=\"flex items-center gap-2 h-full border-b-[0.5px] border-b-contrast-7 dark:border-b-contrast-3 hover:cursor-pointer\">\n <TokenBadge\n address={row.address}\n img={row.img}\n chainId={row.network}\n showNetworkIcon\n classes={{ logo: \"size-[24px]\" }}\n />\n {afterBadge}\n </div>\n </div>\n </div>\n );\n};\n\ntype DefaultRenderer = (\n props: RowRendererProps & {\n afterBalance?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst DefaultRowRenderer: DefaultRenderer = ({\n row,\n onSelect,\n afterBalance,\n}) => {\n const formattedBalance = row.balance\n ? formatUnits(BigInt(row.balance), row.decimals)\n : undefined;\n\n const balanceToDisplay = formattedBalance\n ? toDecimalTrimmed(formattedBalance)\n : \"0\";\n\n const formattedUsdBalance = row.usdBalance\n ? formatFiatPrice(row.usdBalance)\n : undefined;\n\n const usdBalanceToDisplay =\n formattedUsdBalance === undefined\n ? \"$0\" // no usd prices or token.balance is zero\n : formattedUsdBalance === \"$0.00\"\n ? \"<$0.01\" // usd balance is less than 0.01\n : formattedUsdBalance;\n\n return (\n <BaseRenderer\n row={row}\n onSelect={onSelect}\n afterBadge={\n <>\n <div className=\"flex-1\">\n <div className=\"flex items-center justify-between text-sm gap-2 text-contrast-3\">\n <div className=\"dark:text-contrast-6 font-medium\">\n {row.symbol}\n </div>\n <div className=\"dark:text-contrast-7 font-medium break-all\">\n {balanceToDisplay}\n </div>\n </div>\n <div className=\"text-contrast-5 dark:text-contrast-5 flex items-center justify-between text-[10px]\">\n <div>{row.name}</div>\n <div>{usdBalanceToDisplay}</div>\n </div>\n </div>\n {afterBalance}\n </>\n }\n />\n );\n};\n\nconst FetchedTokenRenderer: RowRenderer = ({ row, onSelect }) => {\n return (\n <DefaultRowRenderer\n row={row}\n afterBalance={\n <Button\n onClick={onSelect ? () => onSelect(row) : undefined}\n variant={\"secondary\"}\n size=\"sm\"\n className=\"ml-2 flex-shrink-0 uppercase\"\n >\n Import\n </Button>\n }\n />\n );\n};\n\nexport const RendererByType = (props: RowRendererProps) => {\n const Renderer = props.row.fetchedOnChain\n ? FetchedTokenRenderer\n : DefaultRowRenderer;\n return <Renderer {...props} />;\n};\n"],"mappings":";;;;;;;;AA4BA,IAAMsB,KAAgCC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAb,QAAAC,aAAAM,kBAAAI,GAA6BG;
|
|
1
|
+
{"version":3,"file":"TokenListRow.js","names":["Token","TokenMaybeWithUsdBalance","TokenBadge","formatUnits","toDecimalTrimmed","formatFiatPrice","Button","JSX","Prettify","TokenRowForFetchedToken","fetchedOnChain","RowRendererProps","row","onSelect","token","RowRenderer","props","Element","BaseRowRenderer","afterBadge","React","ReactNode","BaseRenderer","t0","$","_c","t1","undefined","t2","Symbol","for","logo","t3","address","img","network","t4","t5","DefaultRenderer","afterBalance","DefaultRowRenderer","balance","decimals","formattedBalance","BigInt","balanceToDisplay","usdBalance","formattedUsdBalance","usdBalanceToDisplay","symbol","t6","name","t7","t8","t9","t10","t11","FetchedTokenRenderer","RendererByType","Renderer"],"sources":["../../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.tsx"],"sourcesContent":["import type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { TokenBadge } from \"@/components/widget/TokenBadge/TokenBadge\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { Button } from \"@/components/ui/button\";\nimport type { JSX } from \"react\";\nimport type { Prettify } from \"ts-essentials\";\n\nexport type TokenRowForFetchedToken = Prettify<\n TokenMaybeWithUsdBalance & {\n fetchedOnChain?: true;\n }\n>;\n\nexport type RowRendererProps = {\n row: TokenRowForFetchedToken;\n onSelect?: (token: Token) => void;\n};\n\nexport type RowRenderer = (props: RowRendererProps) => JSX.Element;\n\ntype BaseRowRenderer = (\n props: RowRendererProps & {\n afterBadge?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst BaseRenderer: BaseRowRenderer = ({ row, onSelect, afterBadge }) => {\n return (\n <div className=\"h-full px-1\">\n <div\n className=\"px-2 rounded-sm hover:bg-contrast-9 dark:hover:bg-contrast-3 h-full hover:cursor-pointer transition-colors\"\n onClick={\n onSelect\n ? () => {\n onSelect(row);\n }\n : undefined\n }\n >\n <div className=\"flex items-center gap-2 h-full border-b-[0.5px] border-b-contrast-7 dark:border-b-contrast-3 hover:cursor-pointer\">\n <TokenBadge\n address={row.address}\n img={row.img}\n chainId={row.network}\n showNetworkIcon\n classes={{ logo: \"size-[24px]\" }}\n />\n {afterBadge}\n </div>\n </div>\n </div>\n );\n};\n\ntype DefaultRenderer = (\n props: RowRendererProps & {\n afterBalance?: React.ReactNode;\n }\n) => JSX.Element;\n\nconst DefaultRowRenderer: DefaultRenderer = ({\n row,\n onSelect,\n afterBalance,\n}) => {\n const formattedBalance = row.balance\n ? formatUnits(BigInt(row.balance), row.decimals)\n : undefined;\n\n const balanceToDisplay = formattedBalance\n ? toDecimalTrimmed(formattedBalance)\n : \"0\";\n\n const formattedUsdBalance = row.usdBalance\n ? formatFiatPrice(row.usdBalance)\n : undefined;\n\n const usdBalanceToDisplay =\n formattedUsdBalance === undefined\n ? \"$0\" // no usd prices or token.balance is zero\n : formattedUsdBalance === \"$0.00\"\n ? \"<$0.01\" // usd balance is less than 0.01\n : formattedUsdBalance;\n\n return (\n <BaseRenderer\n row={row}\n onSelect={onSelect}\n afterBadge={\n <>\n <div className=\"flex-1\">\n <div className=\"flex items-center justify-between text-sm gap-2 text-contrast-3\">\n <div className=\"dark:text-contrast-6 font-medium\">\n {row.symbol}\n </div>\n <div className=\"dark:text-contrast-7 font-medium break-all\">\n {balanceToDisplay}\n </div>\n </div>\n <div className=\"text-contrast-5 dark:text-contrast-5 flex items-center justify-between text-[10px]\">\n <div>{row.name}</div>\n <div>{usdBalanceToDisplay}</div>\n </div>\n </div>\n {afterBalance}\n </>\n }\n />\n );\n};\n\nconst FetchedTokenRenderer: RowRenderer = ({ row, onSelect }) => {\n return (\n <DefaultRowRenderer\n row={row}\n afterBalance={\n <Button\n onClick={onSelect ? () => onSelect(row) : undefined}\n variant={\"secondary\"}\n size=\"sm\"\n className=\"ml-2 flex-shrink-0 uppercase\"\n >\n Import\n </Button>\n }\n />\n );\n};\n\nexport const RendererByType = (props: RowRendererProps) => {\n const Renderer = props.row.fetchedOnChain\n ? FetchedTokenRenderer\n : DefaultRowRenderer;\n return <Renderer {...props} />;\n};\n"],"mappings":";;;;;;;;AA4BA,IAAMsB,KAAgCC,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAb,QAAAC,aAAAM,kBAAAI,GAA6BG;CAAA,AAAAF,EAAA,OAAAX,KAAAW,EAAA,OAAAZ,KAM1Dc,IAAAb,UAAA;EAEMA,EAASD,EAAI;KAFnBe,KAAAA,GAIaH,EAAA,KAAAX,GAAAW,EAAA,KAAAZ,GAAAY,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAI;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,IASFF,IAAA,EAAAG,MAAQ,eAAe,EAAAP,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAQ;CAAA,AAAAR,EAAA,OAAAZ,EAAAqB,WAAAT,EAAA,OAAAZ,EAAAsB,OAAAV,EAAA,OAAAZ,EAAAuB,WALlCH,IAAA,kBAAC,GAAD;EACW,SAAApB,EAAGqB;EACP,KAAArB,EAAGsB;EACC,SAAAtB,EAAGuB;EACZ,iBAAA;EACS,SAAAP;EACT,CAAA,EAAAJ,EAAA,KAAAZ,EAAAqB,SAAAT,EAAA,KAAAZ,EAAAsB,KAAAV,EAAA,KAAAZ,EAAAuB,SAAAX,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAY;CAAA,AAAAZ,EAAA,OAAAL,KAAAK,EAAA,OAAAQ,KAPJI,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACEJ,GAOCb,EACG;KAAAK,EAAA,KAAAL,GAAAK,EAAA,KAAAQ,GAAAR,EAAA,MAAAY,KAAAA,IAAAZ,EAAA;CAAA,IAAAa;CAEJ,OAFIb,EAAA,QAAAE,KAAAF,EAAA,QAAAY,KApBVC,IAAA,kBAAA,OAAA;EAAe,WAAA;YACb,kBAAA,OAAA;GACY,WAAA;GAER,SAAAX;aAOFU;GAWJ,CAAA;EAAM,CAAA,EAAAZ,EAAA,MAAAE,GAAAF,EAAA,MAAAY,GAAAZ,EAAA,MAAAa,KAAAA,IAAAb,EAAA,KAtBNa;GAgCEG,KAAsCjB,MAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAC,EAAAb,QAAAC,aAAA0B,oBAAAhB,GAI5CG;CAAA,IAAAF,EAAA,OAAAZ,EAAA6B,WAAAjB,EAAA,OAAAZ,EAAA8B,UAAA;EACC,IAAAC,IAAyB/B,EAAG6B,UACxBtC,EAAYyC,OAAOhC,EAAG6B,QAAS,EAAE7B,EAAG8B,SAC3B,GAFYf,KAAAA;EAMlBH,AAFkBE,IAAAiB,IACrBvC,EAAiBuC,EACd,GAFkB,KAElBnB,EAAA,KAAAZ,EAAA6B,SAAAjB,EAAA,KAAAZ,EAAA8B,UAAAlB,EAAA,KAAAE;QAAAA,IAAAF,EAAA;CAFP,IAAAqB,IAAyBnB,GAEjBE;CAAA,AAAAJ,EAAA,OAAAZ,EAAAkC,aAIKlB,IAAAJ,EAAA,MAFeI,IAAAhB,EAAGkC,aAC3BzC,EAAgBO,EAAGkC,WACV,GAFenB,KAAAA,GAEfH,EAAA,KAAAZ,EAAAkC,YAAAtB,EAAA,KAAAI;CAFb,IAAAmB,IAA4BnB,GAI5BoB,IACED,MAAwBpB,KAAAA,IAAxB,OAEIoB,MAAwB,UAAxB,WAAAA,GAEsBf;CAAA,AAAAR,EAAA,OAAAZ,EAAAqC,SAYVjB,IAAAR,EAAA,MAFNQ,IAAA,kBAAA,OAAA;EAAe,WAAA;YACZpB,EAAGqC;EACA,CAAA,EAAAzB,EAAA,KAAAZ,EAAAqC,QAAAzB,EAAA,KAAAQ;CAAA,IAAAI;CAAA,AAAAZ,EAAA,OAAAqB,IAGAT,IAAAZ,EAAA,MAFNY,IAAA,kBAAA,OAAA;EAAe,WAAA;YACZS;EACG,CAAA,EAAArB,EAAA,KAAAqB,GAAArB,EAAA,KAAAY;CAAA,IAAAC;CAAA,AAAAb,EAAA,OAAAQ,KAAAR,EAAA,QAAAY,KANRC,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACEL,GAGAI,EAGI;KAAAZ,EAAA,KAAAQ,GAAAR,EAAA,MAAAY,GAAAZ,EAAA,MAAAa,KAAAA,IAAAb,EAAA;CAAA,IAAA0B;CAAA,AAAA1B,EAAA,QAAAZ,EAAAuC,OAEiBD,IAAA1B,EAAA,OAArB0B,IAAA,kBAAA,OAAA,EAAA,UAAMtC,EAAGuC,MAAY,CAAA,EAAA3B,EAAA,MAAAZ,EAAAuC,MAAA3B,EAAA,MAAA0B;CAAA,IAAAE;CAAA,AAAA5B,EAAA,QAAAwB,IACWI,IAAA5B,EAAA,OAAhC4B,IAAA,kBAAA,OAAA,EAAA,UAAMJ,GAA0B,CAAA,EAAAxB,EAAA,MAAAwB,GAAAxB,EAAA,MAAA4B;CAAA,IAAAC;CAAA,AAAA7B,EAAA,QAAA0B,KAAA1B,EAAA,QAAA4B,KAFlCC,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACEH,GACAE,EACI;KAAA5B,EAAA,MAAA0B,GAAA1B,EAAA,MAAA4B,GAAA5B,EAAA,MAAA6B,KAAAA,IAAA7B,EAAA;CAAA,IAAA8B;CAAA,AAAA9B,EAAA,QAAAa,KAAAb,EAAA,QAAA6B,KAZRC,IAAA,kBAAA,OAAA;EAAe,WAAA;YAAf,CACEjB,GAQAgB,EAII;KAAA7B,EAAA,MAAAa,GAAAb,EAAA,MAAA6B,GAAA7B,EAAA,MAAA8B,KAAAA,IAAA9B,EAAA;CAAA,IAAA+B;CAAA,AAAA/B,EAAA,QAAAe,KAAAf,EAAA,QAAA8B,KAdRC,IAAA,kBAAA,GAAA,EAAA,UAAA,CACED,GAcCf,EACA,EAAA,CAAA,EAAAf,EAAA,MAAAe,GAAAf,EAAA,MAAA8B,GAAA9B,EAAA,MAAA+B,KAAAA,IAAA/B,EAAA;CAAA,IAAAgC;CAEL,OAFKhC,EAAA,QAAAX,KAAAW,EAAA,QAAAZ,KAAAY,EAAA,QAAA+B,KApBPC,IAAA,kBAAC,GAAD;EACO5C;EACKC;EAER,YAAA0C;EAkBF,CAAA,EAAA/B,EAAA,MAAAX,GAAAW,EAAA,MAAAZ,GAAAY,EAAA,MAAA+B,GAAA/B,EAAA,MAAAgC,KAAAA,IAAAhC,EAAA,KAtBFgC;GA0BEC,KAAoClC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAb,QAAAC,gBAAAU,GAAiBG;CAAA,AAAAF,EAAA,OAAAX,KAAAW,EAAA,OAAAZ,KAMzCc,IAAAb,UAAiBA,EAASD,EAAgB,GAA1Ce,KAAAA,GAA0CH,EAAA,KAAAX,GAAAW,EAAA,KAAAZ,GAAAY,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAA,IAAAI;CAAA,AAAAJ,EAAA,OAAAE,IAM5CE,IAAAJ,EAAA,MAPTI,IAAA,kBAAC,GAAD;EACW,SAAAF;EACA,SAAA;EACJ,MAAA;EACK,WAAA;YACX;EAEQ,CAAA,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAI;CAAA,IAAAI;CAEX,OAFWR,EAAA,OAAAZ,KAAAY,EAAA,OAAAI,KAVbI,IAAA,kBAAC,GAAD;EACOpB;EAEH,cAAAgB;EASF,CAAA,EAAAJ,EAAA,KAAAZ,GAAAY,EAAA,KAAAI,GAAAJ,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAZFQ;GAgBS0B,KAAiB1C,MAAA;CAAA,IAAAQ,IAAAC,EAAA,EAAA,EAC5BkC,IAAiB3C,EAAKJ,IAAIF,iBAAT+C,IAAAjB,GAEMjB;CACO,OADPC,EAAA,OAAAmC,KAAAnC,EAAA,OAAAR,KAChBO,IAAA,kBAAC,GAAD,EAAS,GAAKP,GAAS,CAAA,EAAAQ,EAAA,KAAAmC,GAAAnC,EAAA,KAAAR,GAAAQ,EAAA,KAAAD,KAAAA,IAAAC,EAAA,IAAvBD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenSearch.js","names":["CompactNetworkSwitcher","TokenSearchProps","SearchInput","TokenSearch","React","FC","t0","$","_c","value","onChange","clearSearch","compactNetworkSwitcherProps","classes","t1","t2"],"sources":["../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenSearch.tsx"],"sourcesContent":["import { CompactNetworkSwitcher } from \"@/components/widget/NetworkSwitcher/CompactNetworkSwitcher\";\nimport type { TokenSearchProps } from \"./types\";\nimport { SearchInput } from \"@/components/SearchInput/SearchInput\";\n\nexport const TokenSearch: React.FC<TokenSearchProps> = ({\n value,\n onChange,\n clearSearch,\n compactNetworkSwitcherProps,\n classes,\n}) => {\n return (\n <div className=\"px-4\">\n <SearchInput\n value={value}\n onChange={onChange}\n classes={classes}\n onClear={clearSearch}\n afterClearElement={\n compactNetworkSwitcherProps && (\n <CompactNetworkSwitcher {...compactNetworkSwitcherProps} />\n )\n }\n placeholder=\"Search by name or address\"\n />\n </div>\n );\n};\n"],"mappings":";;;;;AAIA,IAAaG,KAA0CG,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAC,UAAAC,aAAAC,gBAAAC,gCAAAC,eAAAP,GAMvDQ;
|
|
1
|
+
{"version":3,"file":"TokenSearch.js","names":["CompactNetworkSwitcher","TokenSearchProps","SearchInput","TokenSearch","React","FC","t0","$","_c","value","onChange","clearSearch","compactNetworkSwitcherProps","classes","t1","t2"],"sources":["../../../../../src/components/widget/Dialog/SelectTokenDialog/TokenSearch.tsx"],"sourcesContent":["import { CompactNetworkSwitcher } from \"@/components/widget/NetworkSwitcher/CompactNetworkSwitcher\";\nimport type { TokenSearchProps } from \"./types\";\nimport { SearchInput } from \"@/components/SearchInput/SearchInput\";\n\nexport const TokenSearch: React.FC<TokenSearchProps> = ({\n value,\n onChange,\n clearSearch,\n compactNetworkSwitcherProps,\n classes,\n}) => {\n return (\n <div className=\"px-4\">\n <SearchInput\n value={value}\n onChange={onChange}\n classes={classes}\n onClear={clearSearch}\n afterClearElement={\n compactNetworkSwitcherProps && (\n <CompactNetworkSwitcher {...compactNetworkSwitcherProps} />\n )\n }\n placeholder=\"Search by name or address\"\n />\n </div>\n );\n};\n"],"mappings":";;;;;AAIA,IAAaG,KAA0CG,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAC,EAAAC,UAAAC,aAAAC,gBAAAC,gCAAAC,eAAAP,GAMvDQ;CAAA,AAAAP,EAAA,OAAAK,IAWUE,IAAAP,EAAA,MAFDO,IAAAF,KACE,kBAAC,GAAD,EAAuB,GAAKA,GAC7B,CAAA,EAAAL,EAAA,KAAAK,GAAAL,EAAA,KAAAO;CAAA,IAAAC;CAID,OAJCR,EAAA,OAAAM,KAAAN,EAAA,OAAAI,KAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAO,KAAAP,EAAA,OAAAE,KATPM,IAAA,kBAAA,OAAA;EAAe,WAAA;YACb,kBAAC,GAAD;GACSN;GACGC;GACDG;GACAF,SAAAA;GAEP,mBAAAG;GAIU,aAAA;GAEhB,CAAA;EAAM,CAAA,EAAAP,EAAA,KAAAM,GAAAN,EAAA,KAAAI,GAAAJ,EAAA,KAAAG,GAAAH,EAAA,KAAAO,GAAAP,EAAA,KAAAE,GAAAF,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAbNQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.js","names":["cn","openDrawerAtom","useSetAtom","DrawerOverlayProps","open","onClick","closeDrawerOnClick","className","InWidgetDrawerOverlay","t0","$","_c","t1","undefined","setOpenDrawer","t2","t3","t4","t5","t6"],"sources":["../../../../src/components/widget/Drawer/Overlay.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { openDrawerAtom } from \"./state/useDrawerControls\";\nimport { useSetAtom } from \"@/core/store\";\n\ntype DrawerOverlayProps = {\n open: boolean;\n onClick?: () => void;\n closeDrawerOnClick?: boolean;\n className?: string;\n};\n// Used when Partial Drawer is open,\n// darkens the Widget in the background,\n// onClick closes the Partial Drawer\nexport function InWidgetDrawerOverlay({\n open,\n onClick,\n closeDrawerOnClick = true,\n className,\n}: DrawerOverlayProps) {\n const setOpenDrawer = useSetAtom(openDrawerAtom);\n\n return (\n <div\n className={cn(\n \"absolute inset-0 bg-gray-900 z-10 transition-opacity duration-300 rounded-xxl\",\n {\n \"opacity-0\": !open,\n \"opacity-75\": open,\n // allow clicking through when no drawer is open\n \"pointer-events-none\": !open,\n },\n className\n )}\n onClick={() => {\n if (closeDrawerOnClick) {\n setOpenDrawer(null);\n }\n onClick?.();\n }}\n />\n );\n}\n"],"mappings":";;;;;;AAaA,SAAOQ,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA+B,EAAAP,SAAAC,YAAAC,oBAAAM,GAAAL,iBAAAE,GAGpCH,IAAAM,MAAAC,KAAAA,IAAA,KAAAD,GAGAE,IAAsBZ,EAAWD,EAAe,EAO3Bc,IAAA,CAACX,GAGSY,IAAA,CAACZ,GAAIa;
|
|
1
|
+
{"version":3,"file":"Overlay.js","names":["cn","openDrawerAtom","useSetAtom","DrawerOverlayProps","open","onClick","closeDrawerOnClick","className","InWidgetDrawerOverlay","t0","$","_c","t1","undefined","setOpenDrawer","t2","t3","t4","t5","t6"],"sources":["../../../../src/components/widget/Drawer/Overlay.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { openDrawerAtom } from \"./state/useDrawerControls\";\nimport { useSetAtom } from \"@/core/store\";\n\ntype DrawerOverlayProps = {\n open: boolean;\n onClick?: () => void;\n closeDrawerOnClick?: boolean;\n className?: string;\n};\n// Used when Partial Drawer is open,\n// darkens the Widget in the background,\n// onClick closes the Partial Drawer\nexport function InWidgetDrawerOverlay({\n open,\n onClick,\n closeDrawerOnClick = true,\n className,\n}: DrawerOverlayProps) {\n const setOpenDrawer = useSetAtom(openDrawerAtom);\n\n return (\n <div\n className={cn(\n \"absolute inset-0 bg-gray-900 z-10 transition-opacity duration-300 rounded-xxl\",\n {\n \"opacity-0\": !open,\n \"opacity-75\": open,\n // allow clicking through when no drawer is open\n \"pointer-events-none\": !open,\n },\n className\n )}\n onClick={() => {\n if (closeDrawerOnClick) {\n setOpenDrawer(null);\n }\n onClick?.();\n }}\n />\n );\n}\n"],"mappings":";;;;;;AAaA,SAAOQ,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA+B,EAAAP,SAAAC,YAAAC,oBAAAM,GAAAL,iBAAAE,GAGpCH,IAAAM,MAAAC,KAAAA,IAAA,KAAAD,GAGAE,IAAsBZ,EAAWD,EAAe,EAO3Bc,IAAA,CAACX,GAGSY,IAAA,CAACZ,GAAIa;CAAA,AAAAP,EAAA,OAAAH,KAAAG,EAAA,OAAAN,KAAAM,EAAA,OAAAK,KAAAL,EAAA,OAAAM,KANrBC,IAAAjB,EACT,iFACA;EAAA,aACee;EAAK,cACJX;EAAI,uBAEKY;EACxB,EACDT,EACD,EAAAG,EAAA,KAAAH,GAAAG,EAAA,KAAAN,GAAAM,EAAA,KAAAK,GAAAL,EAAA,KAAAM,GAAAN,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAQ;CAAA,AAAAR,EAAA,OAAAJ,KAAAI,EAAA,OAAAL,KAAAK,EAAA,OAAAI,KACQI,UAAA;EAIPb,AAHIC,KACFQ,EAAc,KAAK,EAErBT,KAAW;IACZK,EAAA,KAAAJ,GAAAI,EAAA,KAAAL,GAAAK,EAAA,KAAAI,GAAAJ,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAS;CACD,OADCT,EAAA,OAAAO,KAAAP,EAAA,QAAAQ,KAhBHC,IAAA,kBAAA,OAAA;EACa,WAAAF;EAUF,SAAAC;EAMT,CAAA,EAAAR,EAAA,KAAAO,GAAAP,EAAA,MAAAQ,GAAAR,EAAA,MAAAS,KAAAA,IAAAT,EAAA,KAjBFS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Drawer","DrawerClose","DrawerContent","DrawerHeader","DrawerTitle","DrawerPortal","DrawerDescription","useContainerAtom","cn","LoggerInstance","WithClasses","XIcon","ArrowLeft","ControlledDrawerProps","React","ComponentProps","open","children","ReactNode","container","HTMLElement","title","description","showGoBackButton","onGoBack","showCloseButton","logger","closeButtonReplacement","scrollIntoView","ControlledDrawer","t0","$","_c","_container","classes","props","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","dismissible","t11","t12","t13","t14","undefined","drawerContainer","shouldShowHeader","content","restoreContainer","onAnimationStart","event","maybeMoveIntoPage","element","currentTarget","onAnimationEnd","maybeScrollIntoView","onClose","isElementAbovePage","Element","rect","getBoundingClientRect","diff","Math","ceil","top","window","scrollY","isAbove","overlap","abs","MaybeMoveIntoPageProps","style","translate","isElementVisibleInViewport","innerHeight","bottom","left","innerWidth","right","behavior","block","inline","transition"],"sources":["../../../../src/components/widget/Drawer/index.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerPortal,\n DrawerDescription,\n} from \"@/components/ui/drawer\";\nimport { useContainerAtom } from \"@/core/state/containerAtom\";\nimport { cn } from \"@/lib/utils\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { WithClasses } from \"@/types/withClasses\";\nimport { XIcon, ArrowLeft } from \"lucide-react\";\n\ntype ControlledDrawerProps = React.ComponentProps<typeof Drawer> & {\n open: boolean;\n children?: React.ReactNode;\n container?: HTMLElement | null;\n title?: string;\n description?: string;\n showGoBackButton?: boolean;\n onGoBack?: () => void;\n showCloseButton?: boolean;\n logger?: LoggerInstance;\n closeButtonReplacement?: React.ReactNode;\n scrollIntoView?: boolean;\n} & WithClasses<\"content\">;\n\nexport function ControlledDrawer({\n children,\n container: _container,\n title,\n description,\n showCloseButton,\n showGoBackButton,\n onGoBack,\n closeButtonReplacement,\n logger,\n dismissible = false,\n scrollIntoView = true, // If Drawer Opened offscreen, scroll into view\n classes,\n ...props\n}: ControlledDrawerProps) {\n const drawerContainer = useContainerAtom();\n const container = _container || drawerContainer;\n\n const shouldShowHeader = !!(\n showGoBackButton ||\n title ||\n showCloseButton ||\n closeButtonReplacement\n );\n\n return (\n <Drawer\n {...props}\n container={container}\n dismissible={dismissible}\n modal={false}\n >\n <DrawerPortal>\n <DrawerContent\n className={cn(\n \"absolute p-0 bg-contrast-8 dark:bg-contrast-1\",\n classes?.content\n )}\n onAnimationStart={() => {\n if (drawerContainer && !props.open) {\n // restore container to bottom\n restoreContainer.onAnimationStart(drawerContainer);\n }\n }}\n onAnimationEnd={(event) => {\n if (drawerContainer) {\n maybeMoveIntoPage({\n element: event.currentTarget,\n open: props.open,\n drawerContainer,\n });\n // restore normal transition if it was set to none\n restoreContainer.onAnimationEnd(drawerContainer);\n }\n\n // only after animated to Open state to prevent jiggle\n if (scrollIntoView && props.open) {\n // On short screens a Drawer may open offscreen and not be noticable\n maybeScrollIntoView(event.currentTarget);\n }\n }}\n >\n {shouldShowHeader ? (\n <DrawerHeader>\n <div className=\"flex items-center justify-between\">\n <DrawerTitle className=\"flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7\">\n {showGoBackButton && (\n <ArrowLeft\n className=\"ring-offset-background cursor-pointer size-4 focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n onClick={onGoBack || props.onClose}\n />\n )}\n {title}\n </DrawerTitle>\n {closeButtonReplacement ??\n (showCloseButton && (\n <DrawerClose\n className=\"ring-offset-background cursor-pointer focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n onClick={props.onClose}\n >\n <XIcon />\n </DrawerClose>\n ))}\n </div>\n </DrawerHeader>\n ) : (\n // workaround to avoid \"DialogContent requires a DialogTitle for the component to be accessible for screen reader users\"\n // error if !shouldShowHeader\n <DrawerTitle className=\"sr-only\" />\n )}\n <DrawerDescription>{description}</DrawerDescription>\n {children}\n </DrawerContent>\n </DrawerPortal>\n </Drawer>\n );\n}\n\n// Helper function to check if an element is above the page (not viewport)\nfunction isElementAbovePage(element: Element) {\n const rect = element.getBoundingClientRect();\n const diff = Math.ceil(rect.top + window.scrollY);\n const isAbove = diff < 0;\n const overlap = isAbove ? Math.abs(diff) : 0;\n return {\n overlap,\n isAbove,\n };\n}\n\ntype MaybeMoveIntoPageProps = {\n element: Element;\n open: boolean;\n drawerContainer: HTMLElement;\n};\n\nfunction maybeMoveIntoPage({\n element,\n open,\n drawerContainer,\n}: MaybeMoveIntoPageProps) {\n if (open) {\n const { isAbove, overlap } = isElementAbovePage(element);\n if (isAbove) {\n drawerContainer.style.translate = `0 ${overlap}px`;\n }\n } else {\n drawerContainer.style.translate = \"\";\n }\n}\n\n// Helper function to check if an element is visible in the viewport\nfunction isElementVisibleInViewport(element: Element): boolean {\n const rect = element.getBoundingClientRect();\n\n return (\n rect.top <= window.innerHeight &&\n rect.bottom >= 0 &&\n rect.left <= window.innerWidth &&\n rect.right >= 0\n );\n}\n\nfunction maybeScrollIntoView(element: Element) {\n if (isElementVisibleInViewport(element)) {\n return;\n }\n element.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n}\n\nconst restoreContainer = {\n onAnimationStart: (drawerContainer: HTMLElement) => {\n // restore container to bottom\n drawerContainer.style.translate = \"\";\n // set transition to snap container to bottom, looks better when not animated, because drawer is already closing\n drawerContainer.style.transition = \"none\";\n },\n onAnimationEnd: (drawerContainer: HTMLElement) => {\n // restore normal transition if it was set to none\n drawerContainer.style.transition = \"\";\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Drawer","DrawerClose","DrawerContent","DrawerHeader","DrawerTitle","DrawerPortal","DrawerDescription","useContainerAtom","cn","LoggerInstance","WithClasses","XIcon","ArrowLeft","ControlledDrawerProps","React","ComponentProps","open","children","ReactNode","container","HTMLElement","title","description","showGoBackButton","onGoBack","showCloseButton","logger","closeButtonReplacement","scrollIntoView","ControlledDrawer","t0","$","_c","_container","classes","props","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","dismissible","t11","t12","t13","t14","undefined","drawerContainer","shouldShowHeader","content","restoreContainer","onAnimationStart","event","maybeMoveIntoPage","element","currentTarget","onAnimationEnd","maybeScrollIntoView","onClose","isElementAbovePage","Element","rect","getBoundingClientRect","diff","Math","ceil","top","window","scrollY","isAbove","overlap","abs","MaybeMoveIntoPageProps","style","translate","isElementVisibleInViewport","innerHeight","bottom","left","innerWidth","right","behavior","block","inline","transition"],"sources":["../../../../src/components/widget/Drawer/index.tsx"],"sourcesContent":["import {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerPortal,\n DrawerDescription,\n} from \"@/components/ui/drawer\";\nimport { useContainerAtom } from \"@/core/state/containerAtom\";\nimport { cn } from \"@/lib/utils\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { WithClasses } from \"@/types/withClasses\";\nimport { XIcon, ArrowLeft } from \"lucide-react\";\n\ntype ControlledDrawerProps = React.ComponentProps<typeof Drawer> & {\n open: boolean;\n children?: React.ReactNode;\n container?: HTMLElement | null;\n title?: string;\n description?: string;\n showGoBackButton?: boolean;\n onGoBack?: () => void;\n showCloseButton?: boolean;\n logger?: LoggerInstance;\n closeButtonReplacement?: React.ReactNode;\n scrollIntoView?: boolean;\n} & WithClasses<\"content\">;\n\nexport function ControlledDrawer({\n children,\n container: _container,\n title,\n description,\n showCloseButton,\n showGoBackButton,\n onGoBack,\n closeButtonReplacement,\n logger,\n dismissible = false,\n scrollIntoView = true, // If Drawer Opened offscreen, scroll into view\n classes,\n ...props\n}: ControlledDrawerProps) {\n const drawerContainer = useContainerAtom();\n const container = _container || drawerContainer;\n\n const shouldShowHeader = !!(\n showGoBackButton ||\n title ||\n showCloseButton ||\n closeButtonReplacement\n );\n\n return (\n <Drawer\n {...props}\n container={container}\n dismissible={dismissible}\n modal={false}\n >\n <DrawerPortal>\n <DrawerContent\n className={cn(\n \"absolute p-0 bg-contrast-8 dark:bg-contrast-1\",\n classes?.content\n )}\n onAnimationStart={() => {\n if (drawerContainer && !props.open) {\n // restore container to bottom\n restoreContainer.onAnimationStart(drawerContainer);\n }\n }}\n onAnimationEnd={(event) => {\n if (drawerContainer) {\n maybeMoveIntoPage({\n element: event.currentTarget,\n open: props.open,\n drawerContainer,\n });\n // restore normal transition if it was set to none\n restoreContainer.onAnimationEnd(drawerContainer);\n }\n\n // only after animated to Open state to prevent jiggle\n if (scrollIntoView && props.open) {\n // On short screens a Drawer may open offscreen and not be noticable\n maybeScrollIntoView(event.currentTarget);\n }\n }}\n >\n {shouldShowHeader ? (\n <DrawerHeader>\n <div className=\"flex items-center justify-between\">\n <DrawerTitle className=\"flex items-center gap-5 font-medium text-lg text-contrast-4 dark:text-contrast-7\">\n {showGoBackButton && (\n <ArrowLeft\n className=\"ring-offset-background cursor-pointer size-4 focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n onClick={onGoBack || props.onClose}\n />\n )}\n {title}\n </DrawerTitle>\n {closeButtonReplacement ??\n (showCloseButton && (\n <DrawerClose\n className=\"ring-offset-background cursor-pointer focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground dark:text-contrast-5 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n onClick={props.onClose}\n >\n <XIcon />\n </DrawerClose>\n ))}\n </div>\n </DrawerHeader>\n ) : (\n // workaround to avoid \"DialogContent requires a DialogTitle for the component to be accessible for screen reader users\"\n // error if !shouldShowHeader\n <DrawerTitle className=\"sr-only\" />\n )}\n <DrawerDescription>{description}</DrawerDescription>\n {children}\n </DrawerContent>\n </DrawerPortal>\n </Drawer>\n );\n}\n\n// Helper function to check if an element is above the page (not viewport)\nfunction isElementAbovePage(element: Element) {\n const rect = element.getBoundingClientRect();\n const diff = Math.ceil(rect.top + window.scrollY);\n const isAbove = diff < 0;\n const overlap = isAbove ? Math.abs(diff) : 0;\n return {\n overlap,\n isAbove,\n };\n}\n\ntype MaybeMoveIntoPageProps = {\n element: Element;\n open: boolean;\n drawerContainer: HTMLElement;\n};\n\nfunction maybeMoveIntoPage({\n element,\n open,\n drawerContainer,\n}: MaybeMoveIntoPageProps) {\n if (open) {\n const { isAbove, overlap } = isElementAbovePage(element);\n if (isAbove) {\n drawerContainer.style.translate = `0 ${overlap}px`;\n }\n } else {\n drawerContainer.style.translate = \"\";\n }\n}\n\n// Helper function to check if an element is visible in the viewport\nfunction isElementVisibleInViewport(element: Element): boolean {\n const rect = element.getBoundingClientRect();\n\n return (\n rect.top <= window.innerHeight &&\n rect.bottom >= 0 &&\n rect.left <= window.innerWidth &&\n rect.right >= 0\n );\n}\n\nfunction maybeScrollIntoView(element: Element) {\n if (isElementVisibleInViewport(element)) {\n return;\n }\n element.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n}\n\nconst restoreContainer = {\n onAnimationStart: (drawerContainer: HTMLElement) => {\n // restore container to bottom\n drawerContainer.style.translate = \"\";\n // set transition to snap container to bottom, looks better when not animated, because drawer is already closing\n drawerContainer.style.transition = \"none\";\n },\n onAnimationEnd: (drawerContainer: HTMLElement) => {\n // restore normal transition if it was set to none\n drawerContainer.style.transition = \"\";\n },\n};\n"],"mappings":";;;;;;;AA6BA,SAAO6B,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAAC,GAAAhB,GAAAiB,GAAAP,GAAAL,GAAAE,GAAAW,GAAAV,GAAAF,GAAAa,GAAAC,GAAAhB;CAAA,IAAAU,EAAA,OAAAD,GAAA;EAA0B,IAAA,EAAAb,UAAAqB,GAAAnB,WAAAoB,GAAAlB,OAAAmB,GAAAlB,aAAAmB,GAAAhB,iBAAAiB,GAAAnB,kBAAAoB,GAAAnB,UAAAoB,GAAAjB,wBAAAkB,GAAAnB,WAAAoB,aAAAC,GAAAnB,gBAAAoB,GAAAd,SAAAe,GAAA,GAAAC,MAAApB;EAcTC,AAdSd,IAAAqB,GAAAL,IAAAM,GAAAlB,IAAAmB,GAAAlB,IAAAmB,GAAAhB,IAAAiB,GAAAnB,IAAAoB,GAAAnB,IAAAoB,GAAAjB,IAAAkB,GAAAT,IAAAW,GAAAV,IAAAW,GAAAd,IAAAe,GAAAd,IAAAe,GAcTnB,EAAA,KAAAD,GAAAC,EAAA,KAAAE,GAAAF,EAAA,KAAAd,GAAAc,EAAA,KAAAG,GAAAH,EAAA,KAAAJ,GAAAI,EAAA,KAAAT,GAAAS,EAAA,KAAAP,GAAAO,EAAA,KAAAI,GAAAJ,EAAA,KAAAN,GAAAM,EAAA,KAAAR,GAAAQ,EAAA,MAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAV;QAAAA,AAAAY,IAAAF,EAAA,IAAAd,IAAAc,EAAA,IAAAG,IAAAH,EAAA,IAAAJ,IAAAI,EAAA,IAAAT,IAAAS,EAAA,IAAAP,IAAAO,EAAA,IAAAI,IAAAJ,EAAA,IAAAN,IAAAM,EAAA,IAAAR,IAAAQ,EAAA,IAAAK,IAAAL,EAAA,KAAAM,IAAAN,EAAA,KAAAV,IAAAU,EAAA;CAJtB,IAAAe,IAAAV,MAAAe,KAAAA,IAAA,KAAAf,GACAR,IAAAS,MAAAc,KAAAA,IAAA,KAAAd,GAIAe,IAAwB7C,GAAkB,EAC1CY,IAAkBc,KAAAmB,GAElBC,IAAyB,CAAC,EACxB9B,KAAAF,KAAAI,KAAAE,IAiBQW,IAAAJ,GAAOoB,SAASf;CAAA,AAAAR,EAAA,QAAAO,IACjBC,IAAAR,EAAA,OAHUQ,IAAA/B,EACT,iDACA8B,EACD,EAAAP,EAAA,MAAAO,GAAAP,EAAA,MAAAQ;CAAA,IAAAC;CAAA,AAAAT,EAAA,QAAAqB,KAAArB,EAAA,QAAAI,KACiBK,UAAA;EAChB,AAAIY,KAAA,CAAoBjB,EAAKnB,QAE3BuC,EAAgBC,iBAAkBJ,EAAgB;IAErDrB,EAAA,MAAAqB,GAAArB,EAAA,MAAAI,GAAAJ,EAAA,MAAAS,KAAAA,IAAAT,EAAA;CAAA,IAAAU;CAAA,AAAAV,EAAA,QAAAqB,KAAArB,EAAA,QAAAI,KAAAJ,EAAA,QAAAH,KACea,KAAAgB,MAAA;EAYd,AAXIL,MACFM,EAAkB;GAAAC,SACPF,EAAKG;GAAc5C,MACtBmB,EAAKnB;GAAKoC;GAEjB,CAAC,EAEFG,EAAgBM,eAAgBT,EAAgB,GAI9CxB,KAAkBO,EAAKnB,QAEzB8C,EAAoBL,EAAKG,cAAe;IAE3C7B,EAAA,MAAAqB,GAAArB,EAAA,MAAAI,GAAAJ,EAAA,MAAAH,GAAAG,EAAA,MAAAU,KAAAA,IAAAV,EAAA;CAAA,IAAAW;CAAA,AAAAX,EAAA,QAAAJ,KAAAI,EAAA,QAAAP,KAAAO,EAAA,QAAAI,KAAAJ,EAAA,QAAAsB,KAAAtB,EAAA,QAAAN,KAAAM,EAAA,QAAAR,KAAAQ,EAAA,QAAAV,KAEAqB,IAAAW,IACC,kBAAC,GAAD,EAAA,UACE,kBAAA,OAAA;EAAe,WAAA;YAAf,CACE,kBAAC,GAAD;GAAuB,WAAA;aAAvB,CACG9B,KACC,kBAAC,GAAD;IACY,WAAA;IACD,SAAAC,KAAYW,EAAK4B;IAE9B,CAAA,EACC1C,EAEF;MAAAM,MACEF,KACC,kBAAC,GAAD;GACY,WAAA;GACD,SAAAU,EAAK4B;aAEd,kBAAC,GAAD,EACF,CAAA;GACA,CAAA,EAER;KAKD,CAAA,GADC,kBAAC,GAAD,EAAuB,WAAA,WACxB,CAAA,EAAAhC,EAAA,MAAAJ,GAAAI,EAAA,MAAAP,GAAAO,EAAA,MAAAI,GAAAJ,EAAA,MAAAsB,GAAAtB,EAAA,MAAAN,GAAAM,EAAA,MAAAR,GAAAQ,EAAA,MAAAV,GAAAU,EAAA,MAAAW,KAAAA,IAAAX,EAAA;CAAA,IAAAY;CAAA,AAAAZ,EAAA,QAAAT,IACmDqB,IAAAZ,EAAA,OAApDY,IAAA,kBAAC,GAAD,EAAA,UAAoBrB,GAAgC,CAAA,EAAAS,EAAA,MAAAT,GAAAS,EAAA,MAAAY;CAAA,IAAAC;CAAA,AAAAb,EAAA,QAAAd,KAAAc,EAAA,QAAAQ,KAAAR,EAAA,QAAAS,KAAAT,EAAA,QAAAU,KAAAV,EAAA,QAAAW,KAAAX,EAAA,QAAAY,KA1DxDC,IAAA,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACa,WAAAL;EAIO,kBAAAC;EAMF,gBAAAC;YAXlB;GA6BGC;GA4BDC;GACC1B;GAEL;KAAe,CAAA,EAAAc,EAAA,MAAAd,GAAAc,EAAA,MAAAQ,GAAAR,EAAA,MAAAS,GAAAT,EAAA,MAAAU,GAAAV,EAAA,MAAAW,GAAAX,EAAA,MAAAY,GAAAZ,EAAA,MAAAa,KAAAA,IAAAb,EAAA;CAAA,IAAAc;CACR,OADQd,EAAA,QAAAZ,KAAAY,EAAA,QAAAe,KAAAf,EAAA,QAAAI,KAAAJ,EAAA,QAAAa,KAnEjBC,IAAA,kBAAC,GAAD;EAAO,GACDV;EACOhB;EACE2B;EACN,OAAA;YAEPF;EA8DO,CAAA,EAAAb,EAAA,MAAAZ,GAAAY,EAAA,MAAAe,GAAAf,EAAA,MAAAI,GAAAJ,EAAA,MAAAa,GAAAb,EAAA,MAAAc,KAAAA,IAAAd,EAAA,KApETc;;AAyEJ,SAASmB,EAAmBL,GAAkB;CAC5C,IAAMO,IAAOP,EAAQQ,uBAAuB,EACtCC,IAAOC,KAAKC,KAAKJ,EAAKK,MAAMC,OAAOC,QAAQ,EAC3CC,IAAUN,IAAO;CAEvB,OAAO;EACLO,SAFcD,IAAUL,KAAKO,IAAIR,EAAK,GAAG;EAGzCM;EACD;;AASH,SAAShB,EAAkB,EACzBC,YACA3C,SACAoC,sBACyB;CACzB,IAAIpC,GAAM;EACR,IAAM,EAAE0D,YAASC,eAAYX,EAAmBL,EAAQ;EACxD,AAAIe,MACFtB,EAAgB0B,MAAMC,YAAY,KAAKJ,EAAO;QAGhDvB,EAAgB0B,MAAMC,YAAY;;AAKtC,SAASC,EAA2BrB,GAA2B;CAC7D,IAAMO,IAAOP,EAAQQ,uBAAuB;CAE5C,OACED,EAAKK,OAAOC,OAAOS,eACnBf,EAAKgB,UAAU,KACfhB,EAAKiB,QAAQX,OAAOY,cACpBlB,EAAKmB,SAAS;;AAIlB,SAASvB,EAAoBH,GAAkB;CACzCqB,EAA2BrB,EAAQ,IAGvCA,EAAQ/B,eAAe;EACrB0D,UAAU;EACVC,OAAO;EACPC,QAAQ;EACT,CAAC;;AAGJ,IAAMjC,IAAmB;CACvBC,mBAAmBJ,MAAiC;EAIlDA,AAFAA,EAAgB0B,MAAMC,YAAY,IAElC3B,EAAgB0B,MAAMW,aAAa;;CAErC5B,iBAAiBT,MAAiC;EAEhDA,EAAgB0B,MAAMW,aAAa;;CAEtC"}
|