@velora-dex/widget 0.0.15 → 0.0.16
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/README.md +91 -29
- package/dist/assets/circle-check.svg.js +12 -0
- package/dist/assets/circle-check.svg.js.map +1 -0
- package/dist/assets/circle-exclamation.svg.js +12 -0
- package/dist/assets/circle-exclamation.svg.js.map +1 -0
- package/dist/assets/copy.svg.js +12 -0
- package/dist/assets/copy.svg.js.map +1 -0
- package/dist/assets/external-url.svg.js +12 -0
- package/dist/assets/external-url.svg.js.map +1 -0
- package/dist/assets/logout.svg.js +12 -0
- package/dist/assets/logout.svg.js.map +1 -0
- package/dist/assets/spinner.svg.js.map +1 -0
- package/dist/assets/wS.svg.js +12 -0
- package/dist/assets/wS.svg.js.map +1 -0
- package/dist/assets/wS.svg2.js +4 -0
- package/dist/assets/wS.svg2.js.map +1 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js +1 -106
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/dialog.js +2 -116
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +3 -334
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/progress.d.ts +13 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +120 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +33 -9
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.d.ts +3 -1
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +30 -16
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +15 -4
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +98 -41
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts +2 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +92 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -0
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts +9 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +211 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +10 -6
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +2 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +126 -136
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +2 -3
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +7 -5
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +57 -46
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Line/Line.d.ts +3 -1
- package/dist/components/widget/Line/Line.d.ts.map +1 -1
- package/dist/components/widget/Line/Line.js +22 -15
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +22 -20
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js.map +1 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js.map +1 -0
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +61 -52
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +106 -88
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +1 -1
- package/dist/components/widget/Toasts/CustomToast.d.ts +8 -0
- package/dist/components/widget/Toasts/CustomToast.d.ts.map +1 -0
- package/dist/components/widget/Toasts/CustomToast.js +222 -0
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -0
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +122 -137
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +1 -0
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.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 +20 -16
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +20 -16
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step.js +1 -1
- package/dist/components/widget/TradeOverview/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +5 -40
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +35 -6
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +43 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts +6 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js +30 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +156 -101
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +8 -3
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +17 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js +56 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +25 -16
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +61 -34
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +155 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +24 -7
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts +6 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js +10 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts +8 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js +13 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js +16 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js.map +1 -0
- package/dist/components/widget/WrapEth/WrapEthContent.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js +64 -66
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +56 -47
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +2 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.d.ts.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js +97 -98
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js +1626 -0
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js.map +1 -0
- package/dist/hooks/gas/config.d.ts.map +1 -1
- package/dist/hooks/gas/config.js +9 -5
- package/dist/hooks/gas/config.js.map +1 -1
- package/dist/hooks/gas/types.d.ts +1 -1
- package/dist/hooks/gas/types.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts +8 -0
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +30 -21
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/gas/utils.d.ts +5 -0
- package/dist/hooks/gas/utils.d.ts.map +1 -1
- package/dist/hooks/gas/utils.js +5 -2
- package/dist/hooks/gas/utils.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js +21 -8
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.js → common/useSignArbitraryTypedData.js} +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.d.ts → common/useSignPermit.d.ts} +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.js → common/useSignPermit.js} +2 -2
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts +7 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js +25 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.d.ts → permit1/useGetPermitInfo.d.ts} +2 -2
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.js → permit1/useGetPermitInfo.js} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.d.ts → permit1/useGetSafePermitInfo.d.ts} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.js → permit1/useGetSafePermitInfo.js} +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.d.ts → permit1/usePermit1Nonce.d.ts} +5 -5
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.js → permit1/usePermit1Nonce.js} +4 -2
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.d.ts → permit1/useSignTokenPermit1.d.ts} +15 -14
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.js → permit1/useSignTokenPermit1.js} +75 -68
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermit1Nonce.js → permit1/useTokenFromPermit1Nonce.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.d.ts → permit1/useTokenFromPermitInfo.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.js → permit1/useTokenFromPermitInfo.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.d.ts → permit1/useTryToSignPermit1.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.js → permit1/useTryToSignPermit1.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +21 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +79 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts +76 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +143 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts +52 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +299 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +55 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/utils/abi.d.ts +173 -0
- package/dist/hooks/permit/utils/abi.d.ts.map +1 -1
- package/dist/hooks/permit/utils/abi.js +174 -1
- package/dist/hooks/permit/utils/abi.js.map +1 -1
- package/dist/hooks/permit/utils/construct.d.ts +3 -4
- package/dist/hooks/permit/utils/construct.d.ts.map +1 -1
- package/dist/hooks/permit/utils/construct.js +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.d.ts +8 -0
- package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -0
- package/dist/hooks/permit/utils/deadlines.js +15 -0
- package/dist/hooks/permit/utils/deadlines.js.map +1 -0
- package/dist/hooks/permit/utils/encodeArgs.d.ts +22 -4
- package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +33 -4
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +4 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +87 -32
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +0 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +18 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +190 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts +20 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +81 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +53 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +308 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts +25 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js +103 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +333 -397
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +31 -10
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +4 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +295 -362
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +32 -11
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +3 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js +32 -28
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts +1 -0
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +41 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/useTokenLists.d.ts +1 -0
- package/dist/hooks/tokens/useTokenLists.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokenLists.js +15 -2
- package/dist/hooks/tokens/useTokenLists.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.d.ts +12 -0
- package/dist/hooks/tokens/useTokenTaxFee.d.ts.map +1 -0
- package/dist/hooks/tokens/useTokenTaxFee.js +54 -0
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -0
- package/dist/hooks/txs/index.d.ts +1 -1
- package/dist/hooks/txs/mutations/useApprove.d.ts +5 -4
- package/dist/hooks/txs/mutations/useApprove.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js +55 -39
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js +37 -27
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.d.ts +6 -0
- package/dist/hooks/useEIP1559Enabled.d.ts.map +1 -0
- package/dist/hooks/useEIP1559Enabled.js +31 -0
- package/dist/hooks/useEIP1559Enabled.js.map +1 -0
- package/dist/index.d.ts +2 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/constants/delta.d.ts.map +1 -1
- package/dist/lib/constants/delta.js +3 -2
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/weth.d.ts.map +1 -1
- package/dist/lib/constants/weth.js +24 -17
- package/dist/lib/constants/weth.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.d.ts +2 -0
- package/dist/lib/utils/copyToClipboard.d.ts.map +1 -0
- package/dist/lib/utils/copyToClipboard.js +14 -0
- package/dist/lib/utils/copyToClipboard.js.map +1 -0
- package/dist/lib/utils/logger.js +24 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/price.js +1 -1
- package/dist/lib/utils/providerErrors.d.ts +12 -0
- package/dist/lib/utils/providerErrors.d.ts.map +1 -0
- package/dist/lib/utils/providerErrors.js +29 -0
- package/dist/lib/utils/providerErrors.js.map +1 -0
- package/dist/lib/utils/slippage.d.ts +5 -0
- package/dist/lib/utils/slippage.d.ts.map +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/toDecimal.d.ts +1 -0
- package/dist/lib/utils/toDecimal.d.ts.map +1 -1
- package/dist/lib/utils/toDecimal.js +9 -4
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +2 -0
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js +48 -27
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +333 -35
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +333 -35
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.js +5 -4
- package/dist/lib/web3/wagmi/constants.js.map +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.js +3 -2
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/styles.css +2445 -2933
- package/dist/test/Configurator.d.ts.map +1 -1
- package/dist/tokens/constants.d.ts.map +1 -1
- package/dist/tokens/constants.js +4 -3
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +44 -22
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +21 -0
- package/dist/tokens/lists/lists.json.js +21 -0
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +10 -6
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/types.d.ts +3 -2
- package/dist/tokens/lists/state/types.d.ts.map +1 -1
- package/dist/widget/ConnectWalletDrawerButton.d.ts +7 -0
- package/dist/widget/ConnectWalletDrawerButton.d.ts.map +1 -0
- package/dist/widget/ConnectWalletDrawerButton.js +95 -0
- package/dist/widget/ConnectWalletDrawerButton.js.map +1 -0
- package/dist/widget/Toaster.d.ts +2 -0
- package/dist/widget/Toaster.d.ts.map +1 -0
- package/dist/widget/Toaster.js +24 -0
- package/dist/widget/Toaster.js.map +1 -0
- package/dist/widget/TradeFlowButton.d.ts +16 -0
- package/dist/widget/TradeFlowButton.d.ts.map +1 -0
- package/dist/widget/TradeFlowButton.js +474 -0
- package/dist/widget/TradeFlowButton.js.map +1 -0
- package/dist/widget/Updaters.d.ts.map +1 -1
- package/dist/widget/Updaters.js +6 -2
- package/dist/widget/Updaters.js.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +64 -31
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/widget/constants.d.ts +1 -0
- package/dist/widget/constants.d.ts.map +1 -1
- package/dist/widget/constants.js +2 -1
- package/dist/widget/constants.js.map +1 -1
- package/dist/widget/index.d.ts +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +116 -461
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/inputs/hooks/types.d.ts +1 -1
- package/dist/widget/inputs/hooks/types.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js +66 -53
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js +46 -20
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js +1 -1
- package/dist/widget/state/chainToAtom.d.ts +2 -2
- package/dist/widget/state/chainToAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.js +3 -1
- package/dist/widget/state/configActionsAtom.js.map +1 -1
- package/dist/widget/state/configAtom.d.ts +4 -1
- package/dist/widget/state/configAtom.d.ts.map +1 -1
- package/dist/widget/state/configAtom.js +2 -1
- package/dist/widget/state/configAtom.js.map +1 -1
- package/dist/widget/state/containerAtom.js +1 -1
- package/dist/widget/state/externalProviderAtom.d.ts +23 -0
- package/dist/widget/state/externalProviderAtom.d.ts.map +1 -0
- package/dist/widget/state/externalProviderAtom.js +20 -0
- package/dist/widget/state/externalProviderAtom.js.map +1 -0
- package/dist/widget/swapDetails/youGet.d.ts.map +1 -1
- package/dist/widget/swapDetails/youGet.js +2 -3
- package/dist/widget/swapDetails/youGet.js.map +1 -1
- package/dist/widget/types.d.ts +4 -0
- package/dist/widget/types.d.ts.map +1 -1
- package/package.json +8 -66
- package/dist/components/ui/counter.js +0 -33
- package/dist/components/ui/counter.js.map +0 -1
- package/dist/components/ui/header.js +0 -21
- package/dist/components/ui/header.js.map +0 -1
- package/dist/components/ui/select.js +0 -427
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/vaul/browser.d.ts +0 -8
- package/dist/components/ui/vaul/browser.d.ts.map +0 -1
- package/dist/components/ui/vaul/browser.js +0 -27
- package/dist/components/ui/vaul/browser.js.map +0 -1
- package/dist/components/ui/vaul/constants.d.ts +0 -12
- package/dist/components/ui/vaul/constants.d.ts.map +0 -1
- package/dist/components/ui/vaul/constants.js +0 -14
- package/dist/components/ui/vaul/constants.js.map +0 -1
- package/dist/components/ui/vaul/context.d.ts +0 -38
- package/dist/components/ui/vaul/context.d.ts.map +0 -1
- package/dist/components/ui/vaul/context.js +0 -62
- package/dist/components/ui/vaul/context.js.map +0 -1
- package/dist/components/ui/vaul/helpers.d.ts +0 -17
- package/dist/components/ui/vaul/helpers.d.ts.map +0 -1
- package/dist/components/ui/vaul/helpers.js +0 -77
- package/dist/components/ui/vaul/helpers.js.map +0 -1
- package/dist/components/ui/vaul/index.d.ts +0 -140
- package/dist/components/ui/vaul/index.d.ts.map +0 -1
- package/dist/components/ui/vaul/index.js +0 -797
- package/dist/components/ui/vaul/index.js.map +0 -1
- package/dist/components/ui/vaul/types.d.ts +0 -7
- package/dist/components/ui/vaul/types.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.d.ts +0 -14
- package/dist/components/ui/vaul/use-composed-refs.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.js +0 -18
- package/dist/components/ui/vaul/use-composed-refs.js.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.d.ts +0 -9
- package/dist/components/ui/vaul/use-controllable-state.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.js +0 -124
- package/dist/components/ui/vaul/use-controllable-state.js.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.d.ts +0 -19
- package/dist/components/ui/vaul/use-position-fixed.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.js +0 -99
- package/dist/components/ui/vaul/use-position-fixed.js.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts +0 -18
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.js +0 -172
- package/dist/components/ui/vaul/use-prevent-scroll.js.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.d.ts +0 -2
- package/dist/components/ui/vaul/use-scale-background.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.js +0 -58
- package/dist/components/ui/vaul/use-scale-background.js.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.d.ts +0 -32
- package/dist/components/ui/vaul/use-snap-points.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.js +0 -212
- package/dist/components/ui/vaul/use-snap-points.js.map +0 -1
- package/dist/components/widget/Informative/Informative.js +0 -23
- package/dist/components/widget/Informative/Informative.js.map +0 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js +0 -12
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js.map +0 -1
- package/dist/components/widget/TradeOverview/assets/spinner.svg.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +0 -10
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +0 -1
- package/dist/styles2.css +0 -256
- package/dist/test/connect/AccountDisplay.js +0 -83
- package/dist/test/connect/AccountDisplay.js.map +0 -1
- package/dist/test/connect/App.js +0 -68
- package/dist/test/connect/App.js.map +0 -1
- package/dist/test/connect/ConnectWallet.js +0 -100
- package/dist/test/connect/ConnectWallet.js.map +0 -1
- package/dist/test/connect/WagmiProfile.js +0 -396
- package/dist/test/connect/WagmiProfile.js.map +0 -1
- package/dist/test/connect/WalletActions.js +0 -314
- package/dist/test/connect/WalletActions.js.map +0 -1
- package/dist/widget/DevTools.js +0 -24
- package/dist/widget/DevTools.js.map +0 -1
- /package/dist/{components/widget/TradeOverview/assets → assets}/spinner.svg.js +0 -0
- /package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.d.ts → common/useSignArbitraryTypedData.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/ui/vaul/index.tsx"],"sourcesContent":["\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport React from \"react\";\nimport { DrawerContext, useDrawerContext } from \"./context\";\nimport \"./style.css\";\nimport { usePreventScroll, isInput } from \"./use-prevent-scroll\";\nimport { useComposedRefs } from \"./use-composed-refs\";\nimport { useSnapPoints } from \"./use-snap-points\";\nimport { set, getTranslate, dampenValue, isVertical, reset } from \"./helpers\";\nimport {\n TRANSITIONS,\n VELOCITY_THRESHOLD,\n CLOSE_THRESHOLD,\n SCROLL_LOCK_TIMEOUT,\n BORDER_RADIUS,\n NESTED_DISPLACEMENT,\n WINDOW_TOP_OFFSET,\n DRAG_CLASS,\n} from \"./constants\";\nimport type { DrawerDirection } from \"./types\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useScaleBackground } from \"./use-scale-background\";\nimport { usePositionFixed } from \"./use-position-fixed\";\nimport { isIOS, isMobileFirefox } from \"./browser\";\n\nexport interface WithFadeFromProps {\n /**\n * Array of numbers from 0 to 100 that corresponds to % of the screen a given snap point should take up.\n * Should go from least visible. Example `[0.2, 0.5, 0.8]`.\n * You can also use px values, which doesn't take screen height into account.\n */\n snapPoints: (number | string)[];\n /**\n * Index of a `snapPoint` from which the overlay fade should be applied. Defaults to the last snap point.\n */\n fadeFromIndex: number;\n}\n\nexport interface WithoutFadeFromProps {\n /**\n * Array of numbers from 0 to 100 that corresponds to % of the screen a given snap point should take up.\n * Should go from least visible. Example `[0.2, 0.5, 0.8]`.\n * You can also use px values, which doesn't take screen height into account.\n */\n snapPoints?: (number | string)[];\n fadeFromIndex?: never;\n}\n\nexport type DialogProps = {\n activeSnapPoint?: number | string | null;\n setActiveSnapPoint?: (snapPoint: number | string | null) => void;\n children?: React.ReactNode;\n open?: boolean;\n /**\n * Number between 0 and 1 that determines when the drawer should be closed.\n * Example: threshold of 0.5 would close the drawer if the user swiped for 50% of the height of the drawer or more.\n * @default 0.25\n */\n closeThreshold?: number;\n /**\n * When `true` the `body` doesn't get any styles assigned from Vaul\n */\n noBodyStyles?: boolean;\n onOpenChange?: (open: boolean) => void;\n shouldScaleBackground?: boolean;\n /**\n * When `false` we don't change body's background color when the drawer is open.\n * @default true\n */\n setBackgroundColorOnScale?: boolean;\n /**\n * Duration for which the drawer is not draggable after scrolling content inside of the drawer.\n * @default 500ms\n */\n scrollLockTimeout?: number;\n /**\n * When `true`, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open\n */\n fixed?: boolean;\n /**\n * When `true` only allows the drawer to be dragged by the `<Drawer.Handle />` component.\n * @default false\n */\n handleOnly?: boolean;\n /**\n * When `false` dragging, clicking outside, pressing esc, etc. will not close the drawer.\n * Use this in comination with the `open` prop, otherwise you won't be able to open/close the drawer.\n * @default true\n */\n dismissible?: boolean;\n onDrag?: (\n event: React.PointerEvent<HTMLDivElement>,\n percentageDragged: number\n ) => void;\n onRelease?: (\n event: React.PointerEvent<HTMLDivElement>,\n open: boolean\n ) => void;\n /**\n * When `false` it allows to interact with elements outside of the drawer without closing it.\n * @default true\n */\n modal?: boolean;\n nested?: boolean;\n onClose?: () => void;\n /**\n * Direction of the drawer. Can be `top` or `bottom`, `left`, `right`.\n * @default 'bottom'\n */\n direction?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /**\n * Opened by default, skips initial enter animation. Still reacts to `open` state changes\n * @default false\n */\n defaultOpen?: boolean;\n /**\n * When set to `true` prevents scrolling on the document body on mount, and restores it on unmount.\n * @default false\n */\n disablePreventScroll?: boolean;\n /**\n * When `true` Vaul will reposition inputs rather than scroll then into view if the keyboard is in the way.\n * Setting it to `false` will fall back to the default browser behavior.\n * @default true when {@link snapPoints} is defined\n */\n repositionInputs?: boolean;\n /**\n * Disabled velocity based swiping for snap points.\n * This means that a snap point won't be skipped even if the velocity is high enough.\n * Useful if each snap point in a drawer is equally important.\n * @default false\n */\n snapToSequentialPoint?: boolean;\n container?: HTMLElement | null;\n /**\n * Gets triggered after the open or close animation ends, it receives an `open` argument with the `open` state of the drawer by the time the function was triggered.\n * Useful to revert any state changes for example.\n */\n onAnimationEnd?: (open: boolean) => void;\n preventScrollRestoration?: boolean;\n autoFocus?: boolean;\n} & (WithFadeFromProps | WithoutFadeFromProps);\n\nexport function Root({\n open: openProp,\n onOpenChange,\n children,\n onDrag: onDragProp,\n onRelease: onReleaseProp,\n snapPoints,\n shouldScaleBackground = false,\n setBackgroundColorOnScale = true,\n closeThreshold = CLOSE_THRESHOLD,\n scrollLockTimeout = SCROLL_LOCK_TIMEOUT,\n dismissible = true,\n handleOnly = false,\n fadeFromIndex = snapPoints && snapPoints.length - 1,\n activeSnapPoint: activeSnapPointProp,\n setActiveSnapPoint: setActiveSnapPointProp,\n fixed,\n modal = true,\n onClose,\n nested,\n noBodyStyles = false,\n direction = \"bottom\",\n defaultOpen = false,\n disablePreventScroll = true,\n snapToSequentialPoint = false,\n preventScrollRestoration = false,\n repositionInputs = true,\n onAnimationEnd,\n container,\n autoFocus = false,\n}: DialogProps) {\n const [isOpen = false, setIsOpen] = useControllableState({\n defaultProp: defaultOpen,\n prop: openProp,\n onChange: (o: boolean) => {\n onOpenChange?.(o);\n\n if (!o && !nested) {\n restorePositionSetting();\n }\n\n setTimeout(() => {\n onAnimationEnd?.(o);\n }, TRANSITIONS.DURATION * 1000);\n\n if (o && !modal) {\n if (typeof window !== \"undefined\") {\n window.requestAnimationFrame(() => {\n document.body.style.pointerEvents = \"auto\";\n });\n }\n }\n\n if (!o) {\n // This will be removed when the exit animation ends (`500ms`)\n document.body.style.pointerEvents = \"auto\";\n }\n },\n });\n const [hasBeenOpened, setHasBeenOpened] = React.useState<boolean>(false);\n const [isDragging, setIsDragging] = React.useState<boolean>(false);\n const [justReleased, setJustReleased] = React.useState<boolean>(false);\n const overlayRef = React.useRef<HTMLDivElement>(null);\n const openTime = React.useRef<Date | null>(null);\n const dragStartTime = React.useRef<Date | null>(null);\n const dragEndTime = React.useRef<Date | null>(null);\n const lastTimeDragPrevented = React.useRef<Date | null>(null);\n const isAllowedToDrag = React.useRef<boolean>(false);\n const nestedOpenChangeTimer = React.useRef<NodeJS.Timeout | null>(null);\n const pointerStart = React.useRef(0);\n const keyboardIsOpen = React.useRef(false);\n const shouldAnimate = React.useRef(!defaultOpen);\n const previousDiffFromInitial = React.useRef(0);\n const drawerRef = React.useRef<HTMLDivElement>(null);\n const drawerHeightRef = React.useRef(\n drawerRef.current?.getBoundingClientRect().height || 0\n );\n const drawerWidthRef = React.useRef(\n drawerRef.current?.getBoundingClientRect().width || 0\n );\n const initialDrawerHeight = React.useRef(0);\n\n const onSnapPointChange = React.useCallback(\n (activeSnapPointIndex: number) => {\n // Change openTime ref when we reach the last snap point to prevent dragging for 500ms incase it's scrollable.\n if (snapPoints && activeSnapPointIndex === snapPointsOffset.length - 1)\n openTime.current = new Date();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const {\n activeSnapPoint,\n activeSnapPointIndex,\n setActiveSnapPoint,\n onRelease: onReleaseSnapPoints,\n snapPointsOffset,\n onDrag: onDragSnapPoints,\n shouldFade,\n getPercentageDragged: getSnapPointsPercentageDragged,\n } = useSnapPoints({\n snapPoints,\n activeSnapPointProp,\n setActiveSnapPointProp,\n // @ts-expect-error: default values for context\n drawerRef,\n fadeFromIndex,\n // @ts-expect-error: default values for context\n overlayRef,\n onSnapPointChange,\n direction,\n container,\n snapToSequentialPoint,\n });\n\n usePreventScroll({\n isDisabled:\n !isOpen ||\n isDragging ||\n !modal ||\n justReleased ||\n !hasBeenOpened ||\n !repositionInputs ||\n !disablePreventScroll,\n });\n\n const { restorePositionSetting } = usePositionFixed({\n isOpen,\n modal,\n nested: nested ?? false,\n hasBeenOpened,\n preventScrollRestoration,\n noBodyStyles,\n });\n\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n\n function onPress(event: React.PointerEvent<HTMLDivElement>) {\n if (!dismissible && !snapPoints) return;\n if (drawerRef.current && !drawerRef.current.contains(event.target as Node))\n return;\n\n drawerHeightRef.current =\n drawerRef.current?.getBoundingClientRect().height || 0;\n drawerWidthRef.current =\n drawerRef.current?.getBoundingClientRect().width || 0;\n setIsDragging(true);\n dragStartTime.current = new Date();\n\n // iOS doesn't trigger mouseUp after scrolling so we need to listen to touched in order to disallow dragging\n if (isIOS()) {\n window.addEventListener(\n \"touchend\",\n () => (isAllowedToDrag.current = false),\n { once: true }\n );\n }\n // Ensure we maintain correct pointer capture even when going outside of the drawer\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n\n pointerStart.current = isVertical(direction) ? event.pageY : event.pageX;\n }\n\n function shouldDrag(el: EventTarget, isDraggingInDirection: boolean) {\n let element = el as HTMLElement;\n const highlightedText = window.getSelection()?.toString();\n const swipeAmount = drawerRef.current\n ? getTranslate(drawerRef.current, direction)\n : null;\n const date = new Date();\n\n // Fixes https://github.com/emilkowalski/vaul/issues/483\n if (element.tagName === \"SELECT\") {\n return false;\n }\n\n if (\n element.hasAttribute(\"data-vaul-no-drag\") ||\n element.closest(\"[data-vaul-no-drag]\")\n ) {\n return false;\n }\n\n if (direction === \"right\" || direction === \"left\") {\n return true;\n }\n\n // Allow scrolling when animating\n if (openTime.current && date.getTime() - openTime.current.getTime() < 500) {\n return false;\n }\n\n if (swipeAmount !== null) {\n if (direction === \"bottom\" ? swipeAmount > 0 : swipeAmount < 0) {\n return true;\n }\n }\n\n // Don't drag if there's highlighted text\n if (highlightedText && highlightedText.length > 0) {\n return false;\n }\n\n // Disallow dragging if drawer was scrolled within `scrollLockTimeout`\n if (\n lastTimeDragPrevented.current &&\n date.getTime() - lastTimeDragPrevented.current.getTime() <\n scrollLockTimeout &&\n swipeAmount === 0\n ) {\n lastTimeDragPrevented.current = date;\n return false;\n }\n\n if (isDraggingInDirection) {\n lastTimeDragPrevented.current = date;\n\n // We are dragging down so we should allow scrolling\n return false;\n }\n\n // Keep climbing up the DOM tree as long as there's a parent\n while (element) {\n // Check if the element is scrollable\n if (element.scrollHeight > element.clientHeight) {\n if (element.scrollTop !== 0) {\n lastTimeDragPrevented.current = new Date();\n\n // The element is scrollable and not scrolled to the top, so don't drag\n return false;\n }\n\n if (element.getAttribute(\"role\") === \"dialog\") {\n return true;\n }\n }\n\n // Move up to the parent element\n element = element.parentNode as HTMLElement;\n }\n\n // No scrollable parents not scrolled to the top found, so drag\n return true;\n }\n\n function onDrag(event: React.PointerEvent<HTMLDivElement>) {\n if (!drawerRef.current) {\n return;\n }\n\n // We need to know how much of the drawer has been dragged in percentages so that we can transform background accordingly\n if (isDragging) {\n const directionMultiplier =\n direction === \"bottom\" || direction === \"right\" ? 1 : -1;\n const draggedDistance =\n (pointerStart.current -\n (isVertical(direction) ? event.pageY : event.pageX)) *\n directionMultiplier;\n const isDraggingInDirection = draggedDistance > 0;\n\n // Pre condition for disallowing dragging in the close direction.\n const noCloseSnapPointsPreCondition =\n snapPoints && !dismissible && !isDraggingInDirection;\n\n // Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.\n if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) return;\n\n // We need to capture last time when drag with scroll was triggered and have a timeout between\n const absDraggedDistance = Math.abs(draggedDistance);\n const wrapper = document.querySelector(\"[data-vaul-drawer-wrapper]\");\n const drawerDimension =\n direction === \"bottom\" || direction === \"top\"\n ? drawerHeightRef.current\n : drawerWidthRef.current;\n\n // Calculate the percentage dragged, where 1 is the closed position\n let percentageDragged = absDraggedDistance / drawerDimension;\n const snapPointPercentageDragged = getSnapPointsPercentageDragged(\n absDraggedDistance,\n isDraggingInDirection\n );\n\n if (snapPointPercentageDragged !== null) {\n percentageDragged = snapPointPercentageDragged;\n }\n\n // Disallow close dragging beyond the smallest snap point.\n if (noCloseSnapPointsPreCondition && percentageDragged >= 1) {\n return;\n }\n\n if (\n !isAllowedToDrag.current &&\n !shouldDrag(event.target, isDraggingInDirection)\n )\n return;\n drawerRef.current.classList.add(DRAG_CLASS);\n // If shouldDrag gave true once after pressing down on the drawer, we set isAllowedToDrag to true and it will remain true until we let go, there's no reason to disable dragging mid way, ever, and that's the solution to it\n isAllowedToDrag.current = true;\n set(drawerRef.current, {\n transition: \"none\",\n });\n\n set(overlayRef.current, {\n transition: \"none\",\n });\n\n if (snapPoints) {\n onDragSnapPoints({ draggedDistance });\n }\n\n // Run this only if snapPoints are not defined or if we are at the last snap point (highest one)\n if (isDraggingInDirection && !snapPoints) {\n const dampenedDraggedDistance = dampenValue(draggedDistance);\n\n const translateValue =\n Math.min(dampenedDraggedDistance * -1, 0) * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction)\n ? `translate3d(0, ${translateValue}px, 0)`\n : `translate3d(${translateValue}px, 0, 0)`,\n });\n return;\n }\n\n const opacityValue = 1 - percentageDragged;\n\n if (\n shouldFade ||\n (fadeFromIndex && activeSnapPointIndex === fadeFromIndex - 1)\n ) {\n onDragProp?.(event, percentageDragged);\n\n set(\n overlayRef.current,\n {\n opacity: `${opacityValue}`,\n transition: \"none\",\n },\n true\n );\n }\n\n if (wrapper && overlayRef.current && shouldScaleBackground) {\n // Calculate percentageDragged as a fraction (0 to 1)\n const scaleValue = Math.min(\n getScale() + percentageDragged * (1 - getScale()),\n 1\n );\n const borderRadiusValue = 8 - percentageDragged * 8;\n\n const translateValue = Math.max(0, 14 - percentageDragged * 14);\n\n set(\n wrapper,\n {\n borderRadius: `${borderRadiusValue}px`,\n transform: isVertical(direction)\n ? `scale(${scaleValue}) translate3d(0, ${translateValue}px, 0)`\n : `scale(${scaleValue}) translate3d(${translateValue}px, 0, 0)`,\n transition: \"none\",\n },\n true\n );\n }\n\n if (!snapPoints) {\n const translateValue = absDraggedDistance * directionMultiplier;\n\n set(drawerRef.current, {\n transform: isVertical(direction)\n ? `translate3d(0, ${translateValue}px, 0)`\n : `translate3d(${translateValue}px, 0, 0)`,\n });\n }\n }\n }\n\n React.useEffect(() => {\n window.requestAnimationFrame(() => {\n shouldAnimate.current = true;\n });\n }, []);\n\n React.useEffect(() => {\n function onVisualViewportChange() {\n if (!drawerRef.current || !repositionInputs) return;\n\n const focusedElement = document.activeElement as HTMLElement;\n if (isInput(focusedElement) || keyboardIsOpen.current) {\n const visualViewportHeight = window.visualViewport?.height || 0;\n const totalHeight = window.innerHeight;\n // This is the height of the keyboard\n let diffFromInitial = totalHeight - visualViewportHeight;\n const drawerHeight =\n drawerRef.current.getBoundingClientRect().height || 0;\n // Adjust drawer height only if it's tall enough\n const isTallEnough = drawerHeight > totalHeight * 0.8;\n\n if (!initialDrawerHeight.current) {\n initialDrawerHeight.current = drawerHeight;\n }\n const offsetFromTop = drawerRef.current.getBoundingClientRect().top;\n\n // visualViewport height may change due to somq e subtle changes to the keyboard. Checking if the height changed by 60 or more will make sure that they keyboard really changed its open state.\n if (Math.abs(previousDiffFromInitial.current - diffFromInitial) > 60) {\n keyboardIsOpen.current = !keyboardIsOpen.current;\n }\n\n if (\n snapPoints &&\n snapPoints.length > 0 &&\n snapPointsOffset &&\n activeSnapPointIndex\n ) {\n const activeSnapPointHeight =\n snapPointsOffset[activeSnapPointIndex] || 0;\n diffFromInitial += activeSnapPointHeight;\n }\n previousDiffFromInitial.current = diffFromInitial;\n // We don't have to change the height if the input is in view, when we are here we are in the opened keyboard state so we can correctly check if the input is in view\n if (drawerHeight > visualViewportHeight || keyboardIsOpen.current) {\n const height = drawerRef.current.getBoundingClientRect().height;\n let newDrawerHeight = height;\n\n if (height > visualViewportHeight) {\n newDrawerHeight =\n visualViewportHeight -\n (isTallEnough ? offsetFromTop : WINDOW_TOP_OFFSET);\n }\n // When fixed, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open\n if (fixed) {\n drawerRef.current.style.height = `${height - Math.max(diffFromInitial, 0)}px`;\n } else {\n drawerRef.current.style.height = `${Math.max(newDrawerHeight, visualViewportHeight - offsetFromTop)}px`;\n }\n } else if (!isMobileFirefox()) {\n drawerRef.current.style.height = `${initialDrawerHeight.current}px`;\n }\n\n if (snapPoints && snapPoints.length > 0 && !keyboardIsOpen.current) {\n drawerRef.current.style.bottom = `0px`;\n } else {\n // Negative bottom value would never make sense\n drawerRef.current.style.bottom = `${Math.max(diffFromInitial, 0)}px`;\n }\n }\n }\n\n window.visualViewport?.addEventListener(\"resize\", onVisualViewportChange);\n return () =>\n window.visualViewport?.removeEventListener(\n \"resize\",\n onVisualViewportChange\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeSnapPointIndex, snapPoints, snapPointsOffset]);\n\n function closeDrawer(fromWithin?: boolean) {\n cancelDrag();\n onClose?.();\n\n if (!fromWithin) {\n setIsOpen(false);\n }\n\n setTimeout(() => {\n if (snapPoints) {\n setActiveSnapPoint(snapPoints[0]);\n }\n }, TRANSITIONS.DURATION * 1000); // seconds to ms\n }\n\n function resetDrawer() {\n if (!drawerRef.current) return;\n const wrapper = document.querySelector(\"[data-vaul-drawer-wrapper]\");\n const currentSwipeAmount = getTranslate(drawerRef.current, direction);\n\n set(drawerRef.current, {\n transform: \"translate3d(0, 0, 0)\",\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(\",\")})`,\n });\n\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(\",\")})`,\n opacity: \"1\",\n });\n\n // Don't reset background if swiped upwards\n if (\n shouldScaleBackground &&\n currentSwipeAmount &&\n currentSwipeAmount > 0 &&\n isOpen\n ) {\n set(\n wrapper,\n {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: \"hidden\",\n ...(isVertical(direction)\n ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,\n transformOrigin: \"top\",\n }\n : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,\n transformOrigin: \"left\",\n }),\n transitionProperty: \"transform, border-radius\",\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(\",\")})`,\n },\n true\n );\n }\n }\n\n function cancelDrag() {\n if (!isDragging || !drawerRef.current) return;\n\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n }\n\n function onRelease(event: React.PointerEvent<HTMLDivElement> | null) {\n if (!isDragging || !drawerRef.current) return;\n\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n const swipeAmount = getTranslate(drawerRef.current, direction);\n\n if (\n !event ||\n !shouldDrag(event.target, false) ||\n !swipeAmount ||\n Number.isNaN(swipeAmount)\n )\n return;\n\n if (dragStartTime.current === null) return;\n\n const timeTaken =\n dragEndTime.current.getTime() - dragStartTime.current.getTime();\n const distMoved =\n pointerStart.current -\n (isVertical(direction) ? event.pageY : event.pageX);\n const velocity = Math.abs(distMoved) / timeTaken;\n\n if (velocity > 0.05) {\n // `justReleased` is needed to prevent the drawer from focusing on an input when the drag ends, as it's not the intent most of the time.\n setJustReleased(true);\n\n setTimeout(() => {\n setJustReleased(false);\n }, 200);\n }\n\n if (snapPoints) {\n const directionMultiplier =\n direction === \"bottom\" || direction === \"right\" ? 1 : -1;\n onReleaseSnapPoints({\n draggedDistance: distMoved * directionMultiplier,\n closeDrawer,\n velocity,\n dismissible,\n });\n onReleaseProp?.(event, true);\n return;\n }\n\n // Moved upwards, don't do anything\n if (\n direction === \"bottom\" || direction === \"right\"\n ? distMoved > 0\n : distMoved < 0\n ) {\n resetDrawer();\n onReleaseProp?.(event, true);\n return;\n }\n\n if (velocity > VELOCITY_THRESHOLD) {\n closeDrawer();\n onReleaseProp?.(event, false);\n return;\n }\n\n const visibleDrawerHeight = Math.min(\n drawerRef.current.getBoundingClientRect().height ?? 0,\n window.innerHeight\n );\n const visibleDrawerWidth = Math.min(\n drawerRef.current.getBoundingClientRect().width ?? 0,\n window.innerWidth\n );\n\n const isHorizontalSwipe = direction === \"left\" || direction === \"right\";\n if (\n Math.abs(swipeAmount) >=\n (isHorizontalSwipe ? visibleDrawerWidth : visibleDrawerHeight) *\n closeThreshold\n ) {\n closeDrawer();\n onReleaseProp?.(event, false);\n return;\n }\n\n onReleaseProp?.(event, true);\n resetDrawer();\n }\n\n React.useEffect(() => {\n // Trigger enter animation without using CSS animation\n if (isOpen) {\n set(document.documentElement, {\n scrollBehavior: \"auto\",\n });\n\n openTime.current = new Date();\n }\n\n return () => {\n reset(document.documentElement, \"scrollBehavior\");\n };\n }, [isOpen]);\n\n function onNestedOpenChange(o: boolean) {\n const scale = o\n ? (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth\n : 1;\n\n const initialTranslate = o ? -NESTED_DISPLACEMENT : 0;\n\n if (nestedOpenChangeTimer.current) {\n window.clearTimeout(nestedOpenChangeTimer.current);\n }\n\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(\",\")})`,\n transform: isVertical(direction)\n ? `scale(${scale}) translate3d(0, ${initialTranslate}px, 0)`\n : `scale(${scale}) translate3d(${initialTranslate}px, 0, 0)`,\n });\n\n if (!o && drawerRef.current) {\n nestedOpenChangeTimer.current = setTimeout(() => {\n const translateValue = getTranslate(\n drawerRef.current as HTMLElement,\n direction\n );\n set(drawerRef.current, {\n transition: \"none\",\n transform: isVertical(direction)\n ? `translate3d(0, ${translateValue}px, 0)`\n : `translate3d(${translateValue}px, 0, 0)`,\n });\n }, 500);\n }\n }\n\n function onNestedDrag(\n _event: React.PointerEvent<HTMLDivElement>,\n percentageDragged: number\n ) {\n if (percentageDragged < 0) return;\n\n const initialScale =\n (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth;\n const newScale = initialScale + percentageDragged * (1 - initialScale);\n const newTranslate =\n -NESTED_DISPLACEMENT + percentageDragged * NESTED_DISPLACEMENT;\n\n set(drawerRef.current, {\n transform: isVertical(direction)\n ? `scale(${newScale}) translate3d(0, ${newTranslate}px, 0)`\n : `scale(${newScale}) translate3d(${newTranslate}px, 0, 0)`,\n transition: \"none\",\n });\n }\n\n function onNestedRelease(\n _event: React.PointerEvent<HTMLDivElement>,\n o: boolean\n ) {\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n const scale = o ? (dim - NESTED_DISPLACEMENT) / dim : 1;\n const translate = o ? -NESTED_DISPLACEMENT : 0;\n\n if (o) {\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(\",\")})`,\n transform: isVertical(direction)\n ? `scale(${scale}) translate3d(0, ${translate}px, 0)`\n : `scale(${scale}) translate3d(${translate}px, 0, 0)`,\n });\n }\n }\n\n React.useEffect(() => {\n if (!modal) {\n // Need to do this manually unfortunately\n window.requestAnimationFrame(() => {\n document.body.style.pointerEvents = \"auto\";\n });\n }\n }, [modal]);\n\n return (\n <DialogPrimitive.Root\n defaultOpen={defaultOpen}\n onOpenChange={(open) => {\n if (!dismissible && !open) return;\n if (open) {\n setHasBeenOpened(true);\n } else {\n closeDrawer(true);\n }\n\n setIsOpen(open);\n }}\n open={isOpen}\n modal={modal}\n >\n <DrawerContext.Provider\n value={{\n activeSnapPoint,\n snapPoints,\n setActiveSnapPoint,\n // @ts-expect-error: default values for context\n drawerRef,\n // @ts-expect-error: default values for context\n overlayRef,\n onOpenChange,\n onPress,\n onRelease,\n onDrag,\n dismissible,\n shouldAnimate,\n handleOnly,\n isOpen,\n isDragging,\n shouldFade,\n closeDrawer,\n onNestedDrag,\n onNestedOpenChange,\n onNestedRelease,\n keyboardIsOpen,\n modal,\n snapPointsOffset,\n activeSnapPointIndex,\n direction,\n shouldScaleBackground,\n setBackgroundColorOnScale,\n noBodyStyles,\n container,\n autoFocus,\n }}\n >\n {children}\n </DrawerContext.Provider>\n </DialogPrimitive.Root>\n );\n}\n\nexport const Overlay = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(function ({ ...rest }, ref) {\n const {\n overlayRef,\n snapPoints,\n onRelease,\n shouldFade,\n isOpen,\n modal,\n shouldAnimate,\n } = useDrawerContext();\n const composedRef = useComposedRefs(ref, overlayRef);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n const onMouseUp = React.useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => onRelease(event),\n [onRelease]\n );\n\n // Overlay is the component that is locking scroll, removing it will unlock the scroll without having to dig into Radix's Dialog library\n if (!modal) {\n return null;\n }\n\n return (\n <DialogPrimitive.Overlay\n onMouseUp={onMouseUp}\n ref={composedRef}\n data-vaul-overlay=\"\"\n data-vaul-snap-points={isOpen && hasSnapPoints ? \"true\" : \"false\"}\n data-vaul-snap-points-overlay={isOpen && shouldFade ? \"true\" : \"false\"}\n data-vaul-animate={shouldAnimate?.current ? \"true\" : \"false\"}\n {...rest}\n />\n );\n});\n\nOverlay.displayName = \"Drawer.Overlay\";\n\nexport type ContentProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Content\n>;\n\nexport const Content = React.forwardRef<HTMLDivElement, ContentProps>(function (\n { onPointerDownOutside, style, onOpenAutoFocus, ...rest },\n ref\n) {\n const {\n drawerRef,\n onPress,\n onRelease,\n onDrag,\n keyboardIsOpen,\n snapPointsOffset,\n activeSnapPointIndex,\n modal,\n isOpen,\n direction,\n snapPoints,\n container,\n handleOnly,\n shouldAnimate,\n autoFocus,\n } = useDrawerContext();\n // Needed to use transition instead of animations\n const [delayedSnapPoints, setDelayedSnapPoints] = React.useState(false);\n const composedRef = useComposedRefs(ref, drawerRef);\n const pointerStartRef = React.useRef<{ x: number; y: number } | null>(null);\n const lastKnownPointerEventRef =\n React.useRef<React.PointerEvent<HTMLDivElement> | null>(null);\n const wasBeyondThePointRef = React.useRef(false);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n useScaleBackground();\n\n const isDeltaInDirection = (\n delta: { x: number; y: number },\n direction: DrawerDirection,\n threshold = 0\n ) => {\n if (wasBeyondThePointRef.current) return true;\n\n const deltaY = Math.abs(delta.y);\n const deltaX = Math.abs(delta.x);\n const isDeltaX = deltaX > deltaY;\n const dFactor = [\"bottom\", \"right\"].includes(direction) ? 1 : -1;\n\n if (direction === \"left\" || direction === \"right\") {\n const isReverseDirection = delta.x * dFactor < 0;\n if (!isReverseDirection && deltaX >= 0 && deltaX <= threshold) {\n return isDeltaX;\n }\n } else {\n const isReverseDirection = delta.y * dFactor < 0;\n if (!isReverseDirection && deltaY >= 0 && deltaY <= threshold) {\n return !isDeltaX;\n }\n }\n\n wasBeyondThePointRef.current = true;\n return true;\n };\n\n React.useEffect(() => {\n if (hasSnapPoints) {\n window.requestAnimationFrame(() => {\n setDelayedSnapPoints(true);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n function handleOnPointerUp(event: React.PointerEvent<HTMLDivElement> | null) {\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n }\n\n return (\n <DialogPrimitive.Content\n data-vaul-drawer-direction={direction}\n data-vaul-drawer=\"\"\n data-vaul-delayed-snap-points={delayedSnapPoints ? \"true\" : \"false\"}\n data-vaul-snap-points={isOpen && hasSnapPoints ? \"true\" : \"false\"}\n data-vaul-custom-container={container ? \"true\" : \"false\"}\n data-vaul-animate={shouldAnimate?.current ? \"true\" : \"false\"}\n {...rest}\n ref={composedRef}\n style={\n snapPointsOffset && snapPointsOffset.length > 0\n ? ({\n \"--snap-point-height\": `${snapPointsOffset[activeSnapPointIndex ?? 0]!}px`,\n ...style,\n } as React.CSSProperties)\n : style\n }\n onPointerDown={(event) => {\n if (handleOnly) return;\n rest.onPointerDown?.(event);\n pointerStartRef.current = { x: event.pageX, y: event.pageY };\n onPress(event);\n }}\n onOpenAutoFocus={(e) => {\n onOpenAutoFocus?.(e);\n\n if (!autoFocus) {\n e.preventDefault();\n }\n }}\n onPointerDownOutside={(e) => {\n onPointerDownOutside?.(e);\n\n if (!modal || e.defaultPrevented) {\n e.preventDefault();\n return;\n }\n\n if (keyboardIsOpen.current) {\n keyboardIsOpen.current = false;\n }\n }}\n onFocusOutside={(e) => {\n if (!modal) {\n e.preventDefault();\n return;\n }\n }}\n onPointerMove={(event) => {\n lastKnownPointerEventRef.current = event;\n if (handleOnly) return;\n rest.onPointerMove?.(event);\n if (!pointerStartRef.current) return;\n const yPosition = event.pageY - pointerStartRef.current.y;\n const xPosition = event.pageX - pointerStartRef.current.x;\n\n const swipeStartThreshold = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { x: xPosition, y: yPosition };\n\n const isAllowedToSwipe = isDeltaInDirection(\n delta,\n direction,\n swipeStartThreshold\n );\n if (isAllowedToSwipe) onDrag(event);\n else if (\n Math.abs(xPosition) > swipeStartThreshold ||\n Math.abs(yPosition) > swipeStartThreshold\n ) {\n pointerStartRef.current = null;\n }\n }}\n onPointerUp={(event) => {\n rest.onPointerUp?.(event);\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n }}\n onPointerOut={(event) => {\n rest.onPointerOut?.(event);\n handleOnPointerUp(lastKnownPointerEventRef.current);\n }}\n onContextMenu={(event) => {\n rest.onContextMenu?.(event);\n if (lastKnownPointerEventRef.current) {\n handleOnPointerUp(lastKnownPointerEventRef.current);\n }\n }}\n />\n );\n});\n\nContent.displayName = \"Drawer.Content\";\n\nexport type HandleProps = React.ComponentPropsWithoutRef<\"div\"> & {\n preventCycle?: boolean;\n};\n\nconst LONG_HANDLE_PRESS_TIMEOUT = 250;\nconst DOUBLE_TAP_TIMEOUT = 120;\n\nexport const Handle = React.forwardRef<HTMLDivElement, HandleProps>(function (\n { preventCycle = false, children, ...rest },\n ref\n) {\n const {\n closeDrawer,\n isDragging,\n snapPoints,\n activeSnapPoint,\n setActiveSnapPoint,\n dismissible,\n handleOnly,\n isOpen,\n onPress,\n onDrag,\n } = useDrawerContext();\n\n const closeTimeoutIdRef = React.useRef<number | null>(null);\n const shouldCancelInteractionRef = React.useRef(false);\n\n function handleStartCycle() {\n // Stop if this is the second click of a double click\n if (shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n window.setTimeout(() => {\n handleCycleSnapPoints();\n }, DOUBLE_TAP_TIMEOUT);\n }\n\n function handleCycleSnapPoints() {\n // Prevent accidental taps while resizing drawer\n if (isDragging || preventCycle || shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n // Make sure to clear the timeout id if the user releases the handle before the cancel timeout\n handleCancelInteraction();\n\n if (!snapPoints || snapPoints.length === 0) {\n if (!dismissible) {\n closeDrawer();\n }\n return;\n }\n\n const isLastSnapPoint =\n activeSnapPoint === snapPoints[snapPoints.length - 1];\n\n if (isLastSnapPoint && dismissible) {\n closeDrawer();\n return;\n }\n\n const currentSnapIndex = snapPoints.findIndex(\n (point) => point === activeSnapPoint\n );\n if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints\n const nextSnapPoint = snapPoints[currentSnapIndex + 1];\n // @ts-expect-error: nextSnapPoint can be undefined if currentSnapIndex is the last index\n setActiveSnapPoint(nextSnapPoint);\n }\n\n function handleStartInteraction() {\n closeTimeoutIdRef.current = window.setTimeout(() => {\n // Cancel click interaction on a long press\n shouldCancelInteractionRef.current = true;\n }, LONG_HANDLE_PRESS_TIMEOUT);\n }\n\n function handleCancelInteraction() {\n if (closeTimeoutIdRef.current) {\n window.clearTimeout(closeTimeoutIdRef.current);\n }\n shouldCancelInteractionRef.current = false;\n }\n\n return (\n <div\n onClick={handleStartCycle}\n onPointerCancel={handleCancelInteraction}\n onPointerDown={(e) => {\n if (handleOnly) onPress(e);\n handleStartInteraction();\n }}\n onPointerMove={(e) => {\n if (handleOnly) onDrag(e);\n }}\n // onPointerUp is already handled by the content component\n ref={ref}\n data-vaul-drawer-visible={isOpen ? \"true\" : \"false\"}\n data-vaul-handle=\"\"\n aria-hidden=\"true\"\n {...rest}\n >\n {/* Expand handle's hit area beyond what's visible to ensure a 44x44 tap target for touch devices */}\n <span data-vaul-handle-hitarea=\"\" aria-hidden=\"true\">\n {children}\n </span>\n </div>\n );\n});\n\nHandle.displayName = \"Drawer.Handle\";\n\nexport function NestedRoot({\n onDrag,\n onOpenChange,\n open: nestedIsOpen,\n ...rest\n}: DialogProps) {\n const { onNestedDrag, onNestedOpenChange, onNestedRelease } =\n useDrawerContext();\n\n if (!onNestedDrag) {\n throw new Error(\"Drawer.NestedRoot must be placed in another drawer\");\n }\n\n return (\n <Root\n nested\n open={nestedIsOpen}\n onClose={() => {\n onNestedOpenChange(false);\n }}\n onDrag={(e, p) => {\n onNestedDrag(e, p);\n onDrag?.(e, p);\n }}\n onOpenChange={(o) => {\n if (o) {\n onNestedOpenChange(o);\n }\n onOpenChange?.(o);\n }}\n onRelease={onNestedRelease}\n {...rest}\n />\n );\n}\n\ntype PortalProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Portal\n>;\n\nexport function Portal(props: PortalProps) {\n const context = useDrawerContext();\n const { container = context.container, ...portalProps } = props;\n\n return <DialogPrimitive.Portal container={container} {...portalProps} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const Drawer = {\n Root,\n NestedRoot,\n Content,\n Overlay,\n Trigger: DialogPrimitive.Trigger,\n Portal,\n Handle,\n Close: DialogPrimitive.Close,\n Title: DialogPrimitive.Title,\n Description: DialogPrimitive.Description,\n};\n"],"names":["Root","open","openProp","onOpenChange","children","onDrag","onDragProp","onRelease","onReleaseProp","snapPoints","shouldScaleBackground","setBackgroundColorOnScale","closeThreshold","CLOSE_THRESHOLD","scrollLockTimeout","SCROLL_LOCK_TIMEOUT","dismissible","handleOnly","fadeFromIndex","length","activeSnapPoint","activeSnapPointProp","setActiveSnapPoint","setActiveSnapPointProp","fixed","modal","onClose","nested","noBodyStyles","direction","defaultOpen","disablePreventScroll","snapToSequentialPoint","preventScrollRestoration","repositionInputs","onAnimationEnd","container","autoFocus","isOpen","setIsOpen","useControllableState","defaultProp","prop","onChange","o","restorePositionSetting","setTimeout","TRANSITIONS","DURATION","window","requestAnimationFrame","document","body","style","pointerEvents","hasBeenOpened","setHasBeenOpened","React","useState","isDragging","setIsDragging","justReleased","setJustReleased","overlayRef","useRef","openTime","dragStartTime","dragEndTime","lastTimeDragPrevented","isAllowedToDrag","nestedOpenChangeTimer","pointerStart","keyboardIsOpen","shouldAnimate","previousDiffFromInitial","drawerRef","drawerHeightRef","current","getBoundingClientRect","height","drawerWidthRef","width","initialDrawerHeight","onSnapPointChange","useCallback","activeSnapPointIndex","snapPointsOffset","Date","onReleaseSnapPoints","onDragSnapPoints","shouldFade","getPercentageDragged","getSnapPointsPercentageDragged","useSnapPoints","usePreventScroll","isDisabled","usePositionFixed","getScale","innerWidth","WINDOW_TOP_OFFSET","onPress","event","contains","target","isIOS","addEventListener","once","setPointerCapture","pointerId","isVertical","pageY","pageX","shouldDrag","el","isDraggingInDirection","element","highlightedText","getSelection","toString","swipeAmount","getTranslate","date","tagName","hasAttribute","closest","getTime","scrollHeight","clientHeight","scrollTop","getAttribute","parentNode","directionMultiplier","draggedDistance","noCloseSnapPointsPreCondition","absDraggedDistance","Math","abs","wrapper","querySelector","drawerDimension","percentageDragged","snapPointPercentageDragged","classList","add","DRAG_CLASS","set","transition","dampenedDraggedDistance","dampenValue","translateValue","min","transform","opacityValue","opacity","scaleValue","borderRadiusValue","max","borderRadius","useEffect","onVisualViewportChange","focusedElement","activeElement","isInput","visualViewportHeight","visualViewport","totalHeight","innerHeight","diffFromInitial","drawerHeight","isTallEnough","offsetFromTop","top","activeSnapPointHeight","newDrawerHeight","isMobileFirefox","bottom","removeEventListener","closeDrawer","fromWithin","cancelDrag","resetDrawer","currentSwipeAmount","EASE","join","BORDER_RADIUS","overflow","transformOrigin","transitionProperty","transitionDuration","transitionTimingFunction","remove","Number","isNaN","timeTaken","distMoved","velocity","VELOCITY_THRESHOLD","visibleDrawerHeight","visibleDrawerWidth","isHorizontalSwipe","documentElement","scrollBehavior","reset","onNestedOpenChange","scale","NESTED_DISPLACEMENT","initialTranslate","clearTimeout","onNestedDrag","_event","initialScale","newScale","newTranslate","onNestedRelease","dim","translate","Overlay","forwardRef","t0","ref","$","_c","rest","useDrawerContext","composedRef","useComposedRefs","hasSnapPoints","t1","onMouseUp","t2","t3","t4","t5","displayName","Content","onPointerDownOutside","onOpenAutoFocus","delayedSnapPoints","setDelayedSnapPoints","pointerStartRef","lastKnownPointerEventRef","wasBeyondThePointRef","useScaleBackground","isDeltaInDirection","delta","threshold","deltaY","y","deltaX","x","isDeltaX","dFactor","includes","isReverseDirection","handleOnPointerUp","onPointerDown","e","preventDefault","defaultPrevented","onPointerMove","yPosition","xPosition","swipeStartThreshold","pointerType","isAllowedToSwipe","onPointerUp","onPointerOut","onContextMenu","LONG_HANDLE_PRESS_TIMEOUT","DOUBLE_TAP_TIMEOUT","Handle","preventCycle","closeTimeoutIdRef","shouldCancelInteractionRef","handleStartCycle","handleCancelInteraction","handleCycleSnapPoints","isLastSnapPoint","currentSnapIndex","findIndex","point","nextSnapPoint","handleStartInteraction","Portal","props","context","portalProps","Drawer","Close","DialogPrimitive","Title"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/vaul/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAClE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
type PossibleRef<T> = React.Ref<T> | undefined;
|
|
3
|
-
/**
|
|
4
|
-
* A utility to compose multiple refs together
|
|
5
|
-
* Accepts callback refs and RefObject(s)
|
|
6
|
-
*/
|
|
7
|
-
declare function composeRefs<T>(...refs: PossibleRef<T>[]): (node: T) => void;
|
|
8
|
-
/**
|
|
9
|
-
* A custom hook that composes multiple refs
|
|
10
|
-
* Accepts callback refs and RefObject(s)
|
|
11
|
-
*/
|
|
12
|
-
declare function useComposedRefs<T>(...refs: PossibleRef<T>[]): (node: T) => void;
|
|
13
|
-
export { composeRefs, useComposedRefs };
|
|
14
|
-
//# sourceMappingURL=use-composed-refs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-composed-refs.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/vaul/use-composed-refs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAc/C;;;GAGG;AACH,iBAAS,WAAW,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IACvC,MAAM,CAAC,UAChB;AAED;;;GAGG;AACH,iBAAS,eAAe,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,qBAGpD;AAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
function setRef(ref, value) {
|
|
4
|
-
if (typeof ref === "function") {
|
|
5
|
-
ref(value);
|
|
6
|
-
} else if (ref !== null && ref !== void 0) {
|
|
7
|
-
ref.current = value;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function composeRefs(...refs) {
|
|
11
|
-
return (node) => refs.forEach((ref) => setRef(ref, node));
|
|
12
|
-
}
|
|
13
|
-
function useComposedRefs(...refs) {
|
|
14
|
-
return React.useCallback(composeRefs(...refs), refs);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { composeRefs, useComposedRefs };
|
|
18
|
-
//# sourceMappingURL=use-composed-refs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-composed-refs.js","sources":["../../../../src/components/ui/vaul/use-composed-refs.ts"],"sourcesContent":["// This code comes from https://github.com/radix-ui/primitives/tree/main/packages/react/compose-refs\n\nimport * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject<T>).current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]) {\n return (node: T) => refs.forEach((ref) => setRef(ref, node));\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n"],"names":["setRef","ref","value","undefined","current","composeRefs","refs","node","forEach","useComposedRefs","React","useCallback"],"mappings":";;AAUA,SAASA,MAAAA,CAAUC,KAAqBC,KAAAA,EAAU;AAChD,EAAA,IAAI,OAAOD,QAAQ,UAAA,EAAY;AAC7BA,IAAAA,GAAAA,CAAIC,KAAK,CAAA;AAAA,GACX,MAAA,IAAWD,GAAAA,KAAQ,IAAA,IAAQA,GAAAA,KAAQE,MAAAA,EAAW;AAC5C,IAACF,IAAkCG,OAAAA,GAAUF,KAAAA;AAAAA;AAEjD;AAMA,SAASG,eAAkBC,IAAAA,EAAwB;AACjD,EAAA,OAAO,CAACC,SAAYD,IAAAA,CAAKE,OAAAA,CAASP,SAAQD,MAAAA,CAAOC,GAAAA,EAAKM,IAAI,CAAC,CAAA;AAC7D;AAMA,SAASE,mBAAsBH,IAAAA,EAAwB;AAErD,EAAA,OAAOI,MAAMC,WAAAA,CAAYN,WAAAA,CAAY,GAAGC,IAAI,GAAGA,IAAI,CAAA;AACrD;;;;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
type UseControllableStateParams<T> = {
|
|
3
|
-
prop?: T | undefined;
|
|
4
|
-
defaultProp?: T | undefined;
|
|
5
|
-
onChange?: (state: T) => void;
|
|
6
|
-
};
|
|
7
|
-
export declare function useControllableState<T>({ prop, defaultProp, onChange, }: UseControllableStateParams<T>): readonly [T | undefined, React.Dispatch<React.SetStateAction<T | undefined>>];
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=use-controllable-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-controllable-state.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/vaul/use-controllable-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,0BAA0B,CAAC,CAAC,IAAI;IACnC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,CAAC;AAuCF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,IAAI,EACJ,WAAW,EACX,QAAmB,GACpB,EAAE,0BAA0B,CAAC,CAAC,CAAC,iFAyB/B"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
|
|
4
|
-
function useCallbackRef(callback) {
|
|
5
|
-
const $ = distExports.c(3);
|
|
6
|
-
const callbackRef = React__default.useRef(callback);
|
|
7
|
-
let t0;
|
|
8
|
-
if ($[0] !== callback) {
|
|
9
|
-
t0 = () => {
|
|
10
|
-
callbackRef.current = callback;
|
|
11
|
-
};
|
|
12
|
-
$[0] = callback;
|
|
13
|
-
$[1] = t0;
|
|
14
|
-
} else {
|
|
15
|
-
t0 = $[1];
|
|
16
|
-
}
|
|
17
|
-
React__default.useEffect(t0);
|
|
18
|
-
let t1;
|
|
19
|
-
let t2;
|
|
20
|
-
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
21
|
-
t2 = (...t3) => {
|
|
22
|
-
const args = t3;
|
|
23
|
-
return callbackRef.current?.(...args);
|
|
24
|
-
};
|
|
25
|
-
$[2] = t2;
|
|
26
|
-
} else {
|
|
27
|
-
t2 = $[2];
|
|
28
|
-
}
|
|
29
|
-
t1 = t2;
|
|
30
|
-
return t1;
|
|
31
|
-
}
|
|
32
|
-
function useUncontrolledState(t0) {
|
|
33
|
-
const $ = distExports.c(4);
|
|
34
|
-
const {
|
|
35
|
-
defaultProp,
|
|
36
|
-
onChange
|
|
37
|
-
} = t0;
|
|
38
|
-
const uncontrolledState = React__default.useState(defaultProp);
|
|
39
|
-
const [value] = uncontrolledState;
|
|
40
|
-
const prevValueRef = React__default.useRef(value);
|
|
41
|
-
const handleChange = useCallbackRef(onChange);
|
|
42
|
-
let t1;
|
|
43
|
-
let t2;
|
|
44
|
-
if ($[0] !== handleChange || $[1] !== value) {
|
|
45
|
-
t1 = () => {
|
|
46
|
-
if (prevValueRef.current !== value) {
|
|
47
|
-
handleChange(value);
|
|
48
|
-
prevValueRef.current = value;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
t2 = [value, prevValueRef, handleChange];
|
|
52
|
-
$[0] = handleChange;
|
|
53
|
-
$[1] = value;
|
|
54
|
-
$[2] = t1;
|
|
55
|
-
$[3] = t2;
|
|
56
|
-
} else {
|
|
57
|
-
t1 = $[2];
|
|
58
|
-
t2 = $[3];
|
|
59
|
-
}
|
|
60
|
-
React__default.useEffect(t1, t2);
|
|
61
|
-
return uncontrolledState;
|
|
62
|
-
}
|
|
63
|
-
function useControllableState(t0) {
|
|
64
|
-
const $ = distExports.c(11);
|
|
65
|
-
const {
|
|
66
|
-
prop,
|
|
67
|
-
defaultProp,
|
|
68
|
-
onChange: t1
|
|
69
|
-
} = t0;
|
|
70
|
-
const onChange = t1 === void 0 ? _temp : t1;
|
|
71
|
-
let t2;
|
|
72
|
-
if ($[0] !== defaultProp || $[1] !== onChange) {
|
|
73
|
-
t2 = {
|
|
74
|
-
defaultProp,
|
|
75
|
-
onChange
|
|
76
|
-
};
|
|
77
|
-
$[0] = defaultProp;
|
|
78
|
-
$[1] = onChange;
|
|
79
|
-
$[2] = t2;
|
|
80
|
-
} else {
|
|
81
|
-
t2 = $[2];
|
|
82
|
-
}
|
|
83
|
-
const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState(t2);
|
|
84
|
-
const isControlled = prop !== void 0;
|
|
85
|
-
const value = isControlled ? prop : uncontrolledProp;
|
|
86
|
-
const handleChange = useCallbackRef(onChange);
|
|
87
|
-
let t3;
|
|
88
|
-
if ($[3] !== handleChange || $[4] !== isControlled || $[5] !== prop || $[6] !== setUncontrolledProp) {
|
|
89
|
-
t3 = (nextValue) => {
|
|
90
|
-
if (isControlled) {
|
|
91
|
-
const setter = nextValue;
|
|
92
|
-
const value_0 = typeof nextValue === "function" ? setter(prop) : nextValue;
|
|
93
|
-
if (value_0 !== prop) {
|
|
94
|
-
handleChange(value_0);
|
|
95
|
-
}
|
|
96
|
-
} else {
|
|
97
|
-
setUncontrolledProp(nextValue);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
$[3] = handleChange;
|
|
101
|
-
$[4] = isControlled;
|
|
102
|
-
$[5] = prop;
|
|
103
|
-
$[6] = setUncontrolledProp;
|
|
104
|
-
$[7] = t3;
|
|
105
|
-
} else {
|
|
106
|
-
t3 = $[7];
|
|
107
|
-
}
|
|
108
|
-
const setValue = t3;
|
|
109
|
-
let t4;
|
|
110
|
-
if ($[8] !== setValue || $[9] !== value) {
|
|
111
|
-
t4 = [value, setValue];
|
|
112
|
-
$[8] = setValue;
|
|
113
|
-
$[9] = value;
|
|
114
|
-
$[10] = t4;
|
|
115
|
-
} else {
|
|
116
|
-
t4 = $[10];
|
|
117
|
-
}
|
|
118
|
-
return t4;
|
|
119
|
-
}
|
|
120
|
-
function _temp() {
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export { useControllableState };
|
|
124
|
-
//# sourceMappingURL=use-controllable-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-controllable-state.js","sources":["../../../../src/components/ui/vaul/use-controllable-state.ts"],"sourcesContent":["// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\n\nimport React from \"react\";\n\ntype UseControllableStateParams<T> = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn<T> = (prevState?: T) => T;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction useCallbackRef<T extends (...args: any[]) => any>(\n callback: T | undefined\n): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(\n () => ((...args) => callbackRef.current?.(...args)) as T,\n []\n );\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, \"prop\">) {\n const uncontrolledState = React.useState<T | undefined>(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\nexport function useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange,\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> =\n React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn<T>;\n const value =\n typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n\n return [value, setValue] as const;\n}\n"],"names":["useCallbackRef","callback","$","_c","callbackRef","React","useRef","t0","current","useEffect","t1","t2","Symbol","for","t3","args","useUncontrolledState","defaultProp","onChange","uncontrolledState","useState","value","prevValueRef","handleChange","useControllableState","prop","undefined","_temp","uncontrolledProp","setUncontrolledProp","isControlled","nextValue","setter","value_0","setValue","t4"],"mappings":";;;AAaA,SAAAA,eAAAC,QAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAGE,EAAA,MAAAC,WAAAA,GAAoBC,cAAAA,CAAAC,MAAAA,CAAaL,QAAQ,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAD,QAAAA,EAAA;AAE3BM,IAAAA,EAAAA,GAAAA,MAAA;AACdH,MAAAA,WAAAA,CAAWI,OAAAA,GAAWP,QAAAA;AAAAA,KAAQ;AAC/BC,IAAAA,CAAAA,MAAAD,QAAAA;AAAAC,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA;AAFDG,EAAAA,cAAAA,CAAAI,UAAgBF,EAEf,CAAA;AAAC,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAU,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAIOF,IAAAA,EAAAA,GAAAA,IAAAG,EAAAA,KAAA;AAAC,MAAA,MAAAC,IAAAA,GAAAD,EAAAA;AAAO,MAAA,OAAKV,WAAAA,CAAWI,OAAAA,GAAA,GAAcO,IAAI,CAAA;AAAA,KAAA;AAACb,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA;AAAAQ,EAAAA,EAAAA,GAA3CC,EAAAA;AAAiD,EAAA,OADnDD,EAAAA;AAGN;AAGH,SAAAM,qBAAAT,EAAAA,EAAA;AAAA,EAAA,MAAAL,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAiC,EAAA,MAAA;AAAA,IAAAc,WAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAX,EAAAA;AAI/B,EAAA,MAAAY,iBAAAA,GAA0Bd,cAAAA,CAAAe,QAAAA,CAA8BH,WAAW,CAAA;AACnE,EAAA,MAAA,CAAAI,KAAA,CAAA,GAAgBF,iBAAAA;AAChB,EAAA,MAAAG,YAAAA,GAAqBjB,cAAAA,CAAAC,MAAAA,CAAae,KAAK,CAAA;AACvC,EAAA,MAAAE,YAAAA,GAAqBvB,eAAekB,QAAQ,CAAA;AAAE,EAAA,IAAAR,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAqB,gBAAArB,CAAAA,QAAAmB,KAAAA,EAAA;AAE9BX,IAAAA,EAAAA,GAAAA,MAAA;AAAA,MAAA,IACVY,YAAAA,CAAYd,YAAaa,KAAAA,EAAK;AAChCE,QAAAA,YAAAA,CAAaF,KAAU,CAAA;AACvBC,QAAAA,YAAAA,CAAYd,OAAAA,GAAWa,KAAAA;AAAAA;AAAK,KAAA;AAE7BV,IAAAA,EAAAA,GAAA,CAACU,KAAAA,EAAOC,YAAAA,EAAcC,YAAY,CAAA;AAACrB,IAAAA,CAAAA,MAAAqB,YAAAA;AAAArB,IAAAA,CAAAA,MAAAmB,KAAAA;AAAAnB,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,GAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAAS,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA;AALtCG,EAAAA,cAAAA,CAAAI,SAAAA,CAAgBC,IAKbC,EAAmC,CAAA;AAAC,EAAA,OAEhCQ,iBAAAA;AAAiB;AAEnB,SAAAK,qBAAAjB,EAAAA,EAAA;AAAA,EAAA,MAAAL,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAiC,EAAA,MAAA;AAAA,IAAAsB,IAAAA;AAAAA,IAAAR,WAAAA;AAAAA,IAAAC,QAAAA,EAAAR;AAAAA,GAAA,GAAAH,EAAAA;AAGtC,EAAA,MAAAW,QAAAA,GAAAR,EAAAA,KAAmBgB,MAAAA,GAAAC,KAAAA,GAAnBjB,EAAAA;AAAmB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAe,eAAAf,CAAAA,QAAAgB,QAAAA,EAAA;AAEkDP,IAAAA,EAAAA,GAAA;AAAA,MAAAM,WAAAA;AAAAA,MAAAC;AAAAA,KAAA;AAGpEhB,IAAAA,CAAAA,MAAAe,WAAAA;AAAAf,IAAAA,CAAAA,MAAAgB,QAAAA;AAAAhB,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA;AAHD,EAAA,MAAA,CAAA0B,gBAAAA,EAAAC,mBAAA,CAAA,GAAgDb,qBAAqBL,EAGpE,CAAA;AACD,EAAA,MAAAmB,eAAqBL,IAAAA,KAAIC,MAAAA;AACzB,EAAA,MAAAL,KAAAA,GAAcS,eAAeL,IAAAA,GAAOG,gBAAAA;AACpC,EAAA,MAAAL,YAAAA,GAAqBvB,eAAekB,QAAQ,CAAA;AAAE,EAAA,IAAAJ,EAAAA;AAAA,EAAA,IAAAZ,CAAAA,CAAA,CAAA,CAAA,KAAAqB,YAAAA,IAAArB,EAAA,CAAA,CAAA,KAAA4B,YAAAA,IAAA5B,CAAAA,CAAA,CAAA,CAAA,KAAAuB,IAAAA,IAAAvB,CAAAA,QAAA2B,mBAAAA,EAAA;AAI1Cf,IAAAA,EAAAA,GAAAiB,CAAAA,SAAAA,KAAA;AAAA,MAAA,IACMD,YAAAA,EAAY;AACd,QAAA,MAAAE,MAAAA,GAAeD,SAAAA;AACf,QAAA,MAAAE,UACE,OAAOF,SAAAA,KAAc,UAAA,GAAaC,MAAAA,CAAOP,IAAI,CAAA,GAAIM,SAAAA;AAAU,QAAA,IACzDV,YAAUI,IAAAA,EAAI;AAAEF,UAAAA,YAAAA,CAAaF,OAAU,CAAA;AAAA;AAAC,OAAA,MAAA;AAE5CQ,QAAAA,mBAAAA,CAAoBE,SAAS,CAAA;AAAA;AAAC,KAAA;AAEjC7B,IAAAA,CAAAA,MAAAqB,YAAAA;AAAArB,IAAAA,CAAAA,MAAA4B,YAAAA;AAAA5B,IAAAA,CAAAA,MAAAuB,IAAAA;AAAAvB,IAAAA,CAAAA,MAAA2B,mBAAAA;AAAA3B,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA;AAXL,EAAA,MAAAgC,QAAAA,GACEpB,EAAAA;AAYE,EAAA,IAAAqB,EAAAA;AAAA,EAAA,IAAAjC,EAAA,CAAA,CAAA,KAAAgC,YAAAhC,CAAAA,QAAAmB,KAAAA,EAAA;AAEGc,IAAAA,EAAAA,GAAA,CAACd,OAAOa,QAAQ,CAAA;AAAChC,IAAAA,CAAAA,MAAAgC,QAAAA;AAAAhC,IAAAA,CAAAA,MAAAmB,KAAAA;AAAAnB,IAAAA,CAAAA,OAAAiC,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjC,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OAAjBiC,EAAAA;AAA0B;AA5B5B,SAAAR,KAAAA,GAAA;AAAA;;;;"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This hook is necessary to prevent buggy behavior on iOS devices (need to test on Android).
|
|
3
|
-
* I won't get into too much detail about what bugs it solves, but so far I've found that setting the body to `position: fixed` is the most reliable way to prevent those bugs.
|
|
4
|
-
* Issues that this hook solves:
|
|
5
|
-
* https://github.com/emilkowalski/vaul/issues/435
|
|
6
|
-
* https://github.com/emilkowalski/vaul/issues/433
|
|
7
|
-
* And more that I discovered, but were just not reported.
|
|
8
|
-
*/
|
|
9
|
-
export declare function usePositionFixed({ isOpen, modal, nested, hasBeenOpened, preventScrollRestoration, noBodyStyles, }: {
|
|
10
|
-
isOpen: boolean;
|
|
11
|
-
modal: boolean;
|
|
12
|
-
nested: boolean;
|
|
13
|
-
hasBeenOpened: boolean;
|
|
14
|
-
preventScrollRestoration: boolean;
|
|
15
|
-
noBodyStyles: boolean;
|
|
16
|
-
}): {
|
|
17
|
-
restorePositionSetting: () => void;
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=use-position-fixed.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-position-fixed.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/vaul/use-position-fixed.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAa,EACb,wBAAwB,EACxB,YAAY,GACb,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACvB;;EAmIA"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { isSafari } from './browser.js';
|
|
3
|
-
|
|
4
|
-
let previousBodyPosition = null;
|
|
5
|
-
function usePositionFixed({
|
|
6
|
-
isOpen,
|
|
7
|
-
modal,
|
|
8
|
-
nested,
|
|
9
|
-
hasBeenOpened,
|
|
10
|
-
preventScrollRestoration,
|
|
11
|
-
noBodyStyles
|
|
12
|
-
}) {
|
|
13
|
-
const [activeUrl, setActiveUrl] = React__default.useState(() => typeof window !== "undefined" ? window.location.href : "");
|
|
14
|
-
const scrollPos = React__default.useRef(0);
|
|
15
|
-
const setPositionFixed = React__default.useCallback(() => {
|
|
16
|
-
if (!isSafari()) return;
|
|
17
|
-
if (previousBodyPosition === null && isOpen && !noBodyStyles) {
|
|
18
|
-
previousBodyPosition = {
|
|
19
|
-
position: document.body.style.position,
|
|
20
|
-
top: document.body.style.top,
|
|
21
|
-
left: document.body.style.left,
|
|
22
|
-
height: document.body.style.height,
|
|
23
|
-
right: "unset"
|
|
24
|
-
};
|
|
25
|
-
const {
|
|
26
|
-
scrollX,
|
|
27
|
-
innerHeight
|
|
28
|
-
} = window;
|
|
29
|
-
document.body.style.setProperty("position", "fixed", "important");
|
|
30
|
-
Object.assign(document.body.style, {
|
|
31
|
-
top: `${-scrollPos.current}px`,
|
|
32
|
-
left: `${-scrollX}px`,
|
|
33
|
-
right: "0px",
|
|
34
|
-
height: "auto"
|
|
35
|
-
});
|
|
36
|
-
window.setTimeout(() => window.requestAnimationFrame(() => {
|
|
37
|
-
const bottomBarHeight = innerHeight - window.innerHeight;
|
|
38
|
-
if (bottomBarHeight && scrollPos.current >= innerHeight) {
|
|
39
|
-
document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;
|
|
40
|
-
}
|
|
41
|
-
}), 300);
|
|
42
|
-
}
|
|
43
|
-
}, [isOpen]);
|
|
44
|
-
const restorePositionSetting = React__default.useCallback(() => {
|
|
45
|
-
if (!isSafari()) return;
|
|
46
|
-
if (previousBodyPosition !== null && !noBodyStyles) {
|
|
47
|
-
const y = -parseInt(document.body.style.top, 10);
|
|
48
|
-
const x = -parseInt(document.body.style.left, 10);
|
|
49
|
-
Object.assign(document.body.style, previousBodyPosition);
|
|
50
|
-
window.requestAnimationFrame(() => {
|
|
51
|
-
if (preventScrollRestoration && activeUrl !== window.location.href) {
|
|
52
|
-
setActiveUrl(window.location.href);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
window.scrollTo(x, y);
|
|
56
|
-
});
|
|
57
|
-
previousBodyPosition = null;
|
|
58
|
-
}
|
|
59
|
-
}, [activeUrl]);
|
|
60
|
-
React__default.useEffect(() => {
|
|
61
|
-
function onScroll() {
|
|
62
|
-
scrollPos.current = window.scrollY;
|
|
63
|
-
}
|
|
64
|
-
onScroll();
|
|
65
|
-
window.addEventListener("scroll", onScroll);
|
|
66
|
-
return () => {
|
|
67
|
-
window.removeEventListener("scroll", onScroll);
|
|
68
|
-
};
|
|
69
|
-
}, []);
|
|
70
|
-
React__default.useEffect(() => {
|
|
71
|
-
if (!modal) return;
|
|
72
|
-
return () => {
|
|
73
|
-
if (typeof document === "undefined") return;
|
|
74
|
-
const hasDrawerOpened = !!document.querySelector("[data-vaul-drawer]");
|
|
75
|
-
if (hasDrawerOpened) return;
|
|
76
|
-
restorePositionSetting();
|
|
77
|
-
};
|
|
78
|
-
}, [modal, restorePositionSetting]);
|
|
79
|
-
React__default.useEffect(() => {
|
|
80
|
-
if (nested || !hasBeenOpened) return;
|
|
81
|
-
if (isOpen) {
|
|
82
|
-
const isStandalone = window.matchMedia("(display-mode: standalone)").matches;
|
|
83
|
-
!isStandalone && setPositionFixed();
|
|
84
|
-
if (!modal) {
|
|
85
|
-
window.setTimeout(() => {
|
|
86
|
-
restorePositionSetting();
|
|
87
|
-
}, 500);
|
|
88
|
-
}
|
|
89
|
-
} else {
|
|
90
|
-
restorePositionSetting();
|
|
91
|
-
}
|
|
92
|
-
}, [isOpen, hasBeenOpened, activeUrl, modal, nested, setPositionFixed, restorePositionSetting]);
|
|
93
|
-
return {
|
|
94
|
-
restorePositionSetting
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export { usePositionFixed };
|
|
99
|
-
//# sourceMappingURL=use-position-fixed.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-position-fixed.js","sources":["../../../../src/components/ui/vaul/use-position-fixed.ts"],"sourcesContent":["import React from \"react\";\nimport { isSafari } from \"./browser\";\n\nlet previousBodyPosition: Record<string, string> | null = null;\n\n/**\n * This hook is necessary to prevent buggy behavior on iOS devices (need to test on Android).\n * I won't get into too much detail about what bugs it solves, but so far I've found that setting the body to `position: fixed` is the most reliable way to prevent those bugs.\n * Issues that this hook solves:\n * https://github.com/emilkowalski/vaul/issues/435\n * https://github.com/emilkowalski/vaul/issues/433\n * And more that I discovered, but were just not reported.\n */\n\nexport function usePositionFixed({\n isOpen,\n modal,\n nested,\n hasBeenOpened,\n preventScrollRestoration,\n noBodyStyles,\n}: {\n isOpen: boolean;\n modal: boolean;\n nested: boolean;\n hasBeenOpened: boolean;\n preventScrollRestoration: boolean;\n noBodyStyles: boolean;\n}) {\n const [activeUrl, setActiveUrl] = React.useState(() =>\n typeof window !== \"undefined\" ? window.location.href : \"\"\n );\n const scrollPos = React.useRef(0);\n\n const setPositionFixed = React.useCallback(() => {\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === null && isOpen && !noBodyStyles) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left,\n height: document.body.style.height,\n right: \"unset\",\n };\n\n // Update the dom inside an animation frame\n const { scrollX, innerHeight } = window;\n\n document.body.style.setProperty(\"position\", \"fixed\", \"important\");\n Object.assign(document.body.style, {\n top: `${-scrollPos.current}px`,\n left: `${-scrollX}px`,\n right: \"0px\",\n height: \"auto\",\n });\n\n window.setTimeout(\n () =>\n window.requestAnimationFrame(() => {\n // Attempt to check if the bottom bar appeared due to the position change\n const bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollPos.current >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;\n }\n }),\n 300\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const restorePositionSetting = React.useCallback(() => {\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n\n if (previousBodyPosition !== null && !noBodyStyles) {\n // Convert the position from \"px\" to Int\n const y = -parseInt(document.body.style.top, 10);\n const x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n Object.assign(document.body.style, previousBodyPosition);\n\n window.requestAnimationFrame(() => {\n if (preventScrollRestoration && activeUrl !== window.location.href) {\n setActiveUrl(window.location.href);\n return;\n }\n\n window.scrollTo(x, y);\n });\n\n previousBodyPosition = null;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeUrl]);\n\n React.useEffect(() => {\n function onScroll() {\n scrollPos.current = window.scrollY;\n }\n\n onScroll();\n\n window.addEventListener(\"scroll\", onScroll);\n\n return () => {\n window.removeEventListener(\"scroll\", onScroll);\n };\n }, []);\n\n React.useEffect(() => {\n if (!modal) return;\n\n return () => {\n if (typeof document === \"undefined\") return;\n\n // Another drawer is opened, safe to ignore the execution\n const hasDrawerOpened = !!document.querySelector(\"[data-vaul-drawer]\");\n if (hasDrawerOpened) return;\n\n restorePositionSetting();\n };\n }, [modal, restorePositionSetting]);\n\n React.useEffect(() => {\n if (nested || !hasBeenOpened) return;\n // This is needed to force Safari toolbar to show **before** the drawer starts animating to prevent a gnarly shift from happening\n if (isOpen) {\n // avoid for standalone mode (PWA)\n const isStandalone = window.matchMedia(\n \"(display-mode: standalone)\"\n ).matches;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n !isStandalone && setPositionFixed();\n\n if (!modal) {\n window.setTimeout(() => {\n restorePositionSetting();\n }, 500);\n }\n } else {\n restorePositionSetting();\n }\n }, [\n isOpen,\n hasBeenOpened,\n activeUrl,\n modal,\n nested,\n setPositionFixed,\n restorePositionSetting,\n ]);\n\n return { restorePositionSetting };\n}\n"],"names":["previousBodyPosition","usePositionFixed","isOpen","modal","nested","hasBeenOpened","preventScrollRestoration","noBodyStyles","activeUrl","setActiveUrl","React","useState","window","location","href","scrollPos","useRef","setPositionFixed","useCallback","isSafari","position","document","body","style","top","left","height","right","scrollX","innerHeight","setProperty","Object","assign","current","setTimeout","requestAnimationFrame","bottomBarHeight","restorePositionSetting","y","parseInt","x","scrollTo","useEffect","onScroll","scrollY","addEventListener","removeEventListener","hasDrawerOpened","querySelector","isStandalone","matchMedia","matches"],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useLayoutEffect } from 'react';
|
|
2
|
-
export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
|
|
3
|
-
interface PreventScrollOptions {
|
|
4
|
-
/** Whether the scroll lock is disabled. */
|
|
5
|
-
isDisabled?: boolean;
|
|
6
|
-
focusCallback?: () => void;
|
|
7
|
-
}
|
|
8
|
-
export declare function isScrollable(node: Element): boolean;
|
|
9
|
-
export declare function getScrollParent(node: Element): Element;
|
|
10
|
-
/**
|
|
11
|
-
* Prevents scrolling on the document body on mount, and
|
|
12
|
-
* restores it on unmount. Also ensures that content does not
|
|
13
|
-
* shift due to the scrollbars disappearing.
|
|
14
|
-
*/
|
|
15
|
-
export declare function usePreventScroll(options?: PreventScrollOptions): void;
|
|
16
|
-
export declare function isInput(target: Element): boolean;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=use-prevent-scroll.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-prevent-scroll.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/vaul/use-prevent-scroll.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAC;AAKnD,eAAO,MAAM,yBAAyB,wBACuB,CAAC;AAE9D,UAAU,oBAAoB;IAC5B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAeD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAKnD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAUtD;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,oBAAyB,QAsBlE;AA+OD,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,WAOtC"}
|